Machetes Varios

apuntes varios erp cwa logic ( ahora SoftLand Logic ) – sql y veremos que otra cosa

CJ -Conceptos por Comprobantes desde el concepto


Sirve para dar de alta un concepto nuevo y desde el mismo lugar levantarlo en todos los comprobantes. Ej: Un nuevo Banco, se le da “guardar como” a uno anterior.

nueva-solapa.jpg

Implementación:

1) Crear con el STDICCIO una tabla USR_V_GRCCBI como hija de GRCCOH

2) Crear los stored procedure Usr_Sp_USR_GRCCBI_InsertUpdate y

3) Reemplazar la tabla por la vista del mismo nombre, la cual contendrá dos triggers INSTEAD OF

IO_Trig_INS_USR_V_GRCCBI para Insert y Update ( el cual llama al stored anterior o borra el registro en caso de corresponder )

IO_Trig_DEL_USR_V_GRCCBI : para Delete, simplemente no hace nada
4) Crear la tabla USR_CJCCBI como alias de USR_V_GRCCBI y como hija de CJCCOH ( lo cual la hará visible como solapa de los conceptos de Tesorería )

Detalle:

Tabla USR_V_GRCCBI

stdiccio-usr_v_grccbi-tabla.jpgstdiccio-usr_v_grccbi-campos.jpg

Stored Procedures Usr_Sp_USR_GRCCBI_InsertUpdate , Usr_Sp_USR_GRCCBI_Delete

-- 
 CREATE PROCEDURE Usr_Sp_USR_GRCCBI_InsertUpdate-- Add the parameters for the stored procedure here

@MODCOM VARCHAR(2),
@CODCOM CHAR(6),
@MODCPT VARCHAR(2),
@TIPCPT CHAR(1),
@CODCPT	VARCHAR(6),
@DEBHAB VARCHAR(1)

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here

DECLARE @EXISTE INTEGER
SELECT @EXISTE = COUNT(1)
FROM GRCCBI
WHERE
GRCCBI_MODCOM  = @MODCOM
AND GRCCBI_CODCOM = @CODCOM
AND GRCCBI_MODCPT  =@MODCPT
AND GRCCBI_TIPCPT = @TIPCPT
AND GRCCBI_CODCPT = @CODCPT
AND GRCCBI_DEBHAB = @DEBHAB

IF @EXISTE > 0
UPDATE GRCCBI
SET GRCCBI_FECMOD  = GETDATE()
WHERE
GRCCBI_CODCOM = @CODCOM
AND GRCCBI_MODCPT  =@MODCPT
AND GRCCBI_TIPCPT = @TIPCPT
AND GRCCBI_CODCPT = @CODCPT
AND GRCCBI_DEBHAB = @DEBHAB

ELSE

INSERT INTO GRCCBI
( GRCCBI_MODCOM,
GRCCBI_CODCOM,
GRCCBI_MODCPT,
GRCCBI_TIPCPT,
GRCCBI_CODCPT,
GRCCBI_DEBHAB,
GRCCBI_EDITXT,
GRCCBI_MODEST,
GRCCBI_COMEST,
GRCCBI_CODEST,
GRCCBI_IMPUES,
GRCCBI_EDIIMP,
GRCCBI_CJCNTITM,
GRCCBI_EDICPT,
GRCCBI_CJCOLSUB,
GRCCBI_CUENTA,
GRCCBI_CUENTD,
GRCCBI_CUENTC,
GRCCBI_MODCPD,
GRCCBI_TIPCPD,
GRCCBI_CODCPD,
GRCCBI_FORMUL,
GRCCBI_FORMU1,
GRCCBI_FORMU2,
GRCCBI_FECALT,
GRCCBI_FECMOD,
GRCCBI_USERID,
GRCCBI_ULTOPR,
GRCCBI_DEBAJA,
GRCCBI_HORMOV,
GRCCBI_MODULE,
GRCCBI_OALIAS
)

SELECT

@MODCOM GRCCBI_MODCOM,
@CODCOM GRCCBI_CODCOM,
@MODCPT GRCCBI_MODCPT,
@TIPCPT GRCCBI_TIPCPT,
@CODCPT GRCCBI_CODCPT,
@DEBHAB GRCCBI_DEBHAB,
'S' GRCCBI_EDITXT,
NULL GRCCBI_MODEST,
NULL GRCCBI_COMEST,
NULL GRCCBI_CODEST,
NULL GRCCBI_IMPUES,
'N' GRCCBI_EDIIMP,
1 GRCCBI_CJCNTITM,
NULL GRCCBI_EDICPT,
0 GRCCBI_CJCOLSUB,
NULL GRCCBI_CUENTA,
NULL GRCCBI_CUENTD,
NULL GRCCBI_CUENTC,
NULL GRCCBI_MODCPD,
NULL GRCCBI_TIPCPD,
NULL GRCCBI_CODCPD,
NULL GRCCBI_FORMUL,
NULL GRCCBI_FORMU1,
NULL GRCCBI_FORMU2,
GETDATE() GRCCBI_FECALT,
GETDATE() GRCCBI_FECMOD,
'TRIGGER' GRCCBI_USERID,
'A' GRCCBI_ULTOPR,
'N' GRCCBI_DEBAJA,
NULL GRCCBI_HORMOV,
NULL GRCCBI_MODULE,
@MODCOM+'CCBI' GRCCBI_OALIAS

END

-- =============================================
-- Author:		Carlos L. Pedranti
-- Create date: 11/03/2008
-- Description:	Actualiza o Inserta Conceptos por Comprobante
-- =============================================
CREATE PROCEDURE Usr_Sp_USR_GRCCBI_Delete
	-- Add the parameters for the stored procedure here
	@MODCOM VARCHAR(2),
	@CODCOM CHAR(6),
	@MODCPT VARCHAR(2),
	@TIPCPT CHAR(1),
	@CODCPT	VARCHAR(6),
	@DEBHAB VARCHAR(1)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here

		DELETE GRCCBI
		WHERE
		GRCCBI_CODCOM = @CODCOM
		AND GRCCBI_MODCPT  =@MODCPT
		AND GRCCBI_TIPCPT = @TIPCPT
		AND GRCCBI_CODCPT = @CODCPT
		AND GRCCBI_DEBHAB = @DEBHAB

END

Vista USR_V_GRCCBI

DROP TABLE USR_V_GRCCBICREATE VIEW USR_V_GRCCBI

AS

-- En Cwa Creada como tabla Hija de GRCCOH

-- Usada para dar de alta y ver conceptos por comprobantes desde

-- el concepto

SELECT
GRCCBI_MODCPT	USR_V_GRCCBI_MODCPT,
GRCCBI_TIPCPT	USR_V_GRCCBI_TIPCPT,
GRCCBI_CODCPT	USR_V_GRCCBI_CODCPT,
GRCCBI_MODCOM	USR_V_GRCCBI_MODCOM,
GRCCBI_CODCOM	USR_V_GRCCBI_CODCOM,
GRCCBI_DEBHAB	USR_V_GRCCBI_DEBHAB,
'N'	USR_V_GRCCBI_BORRAR,
GRCCBI_FECALT	USR_V__FECALT,
GRCCBI_FECMOD	USR_V__FECMOD,
GRCCBI_USERID	USR_V__USERID,
GRCCBI_ULTOPR	USR_V__ULTOPR,
GRCCBI_DEBAJA	USR_V__DEBAJA,
GRCCBI_HORMOV	USR_V__HORMOV,
GRCCBI_MODULE	USR_V__MODULE,
'USR_'+GRCCBI_OALIAS	USR_V__OALIAS,
GRCCBI_LOTTRA	USR_V__LOTTRA,
GRCCBI_LOTREC	USR_V__LOTREC,
GRCCBI_LOTORI	USR_V__LOTORI,
GRCCBI_SYSVER	USR_V__SYSVER,
GRCCBI_CMPVER	USR_V__CMPVER

FROM GRCCBI

Triggers INSTEAD OF

/*******trigger upd ********/
CREATE TRIGGER IO_Trig_INS_USR_V_GRCCBI ON USR_V_GRCCBI
INSTEAD OF UPDATE,INSERT
AS
BEGIN
SET NOCOUNT ON
DECLARE
@U_MODCOM VARCHAR(2),
 @U_CODCOM char(6),
 @U_MODCPT varchar(2),
 @U_TIPCPT CHAR(1),
 @U_CODCPT VARCHAR(6),
 @U_DEBHAB VARCHAR(1),
 @U_BORRAR VARCHAR(1)
DECLARE CUR_USR_V_GRCCBI_UPD CURSOR FOR
  SELECT INSERTED.USR_V_GRCCBI_MODCPT,
 		INSERTED.USR_V_GRCCBI_TIPCPT,
 		INSERTED.USR_V_GRCCBI_CODCPT,
 		INSERTED.USR_V_GRCCBI_MODCOM,
 		INSERTED.USR_V_GRCCBI_CODCOM,
 		INSERTED.USR_V_GRCCBI_DEBHAB,
 		INSERTED.USR_V_GRCCBI_BORRAR
FROM INSERTED
OPEN CUR_USR_V_GRCCBI_UPD
FETCH NEXT from CUR_USR_V_GRCCBI_UPD into
 	@U_MODCPT,
 	@U_TIPCPT,
 	@U_CODCPT,
 	@U_MODCOM,
 	@U_CODCOM,
 	@U_DEBHAB,
 	@U_BORRAR

WHILE (@@FETCH_STATUS <> -1 )

 	BEGIN
 		IF @U_BORRAR = 'S'
 			EXEC Usr_Sp_USR_GRCCBI_Delete  @U_MODCOM,@U_CODCOM,
 			@U_MODCPT,@U_TIPCPT,@U_CODCPT,@U_DEBHAB
 		ELSE
 			EXEC Usr_Sp_USR_GRCCBI_InsertUpdate  @U_MODCOM,@U_CODCOM,
 			@U_MODCPT,@U_TIPCPT,@U_CODCPT,@U_DEBHAB

FETCH NEXT from CUR_USR_V_GRCCBI_UPD into
 	@U_MODCPT,
 	@U_TIPCPT,
 	@U_CODCPT,
 	@U_MODCOM,
 	@U_CODCOM,
 	@U_DEBHAB,
 	@U_BORRAR

END
CLOSE CUR_USR_V_GRCCBI_UPD
 DEALLOCATE CUR_USR_V_GRCCBI_UPD
END

/*** trigger delete ***/

ALTER TRIGGER IO_Trig_DEL_USR_V_GRCCBI ON USR_V_GRCCBI

INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@D_MODCOM VARCHAR(2),
 @D_CODCOM char(6),
 @D_MODCPT varchar(2),
 @D_TIPCPT CHAR(1),
 @D_CODCPT VARCHAR(6),
 @D_DEBHAB VARCHAR(1)
DECLARE CUR_USR_V_GRCCBI_DEL CURSOR FOR
  SELECT INSERTED.USR_V_GRCCBI_MODCPT,
 		INSERTED.USR_V_GRCCBI_TIPCPT,
 		INSERTED.USR_V_GRCCBI_CODCPT,
 		INSERTED.USR_V_GRCCBI_MODCOM,
 		INSERTED.USR_V_GRCCBI_CODCOM,
 		INSERTED.USR_V_GRCCBI_DEBHAB
FROM INSERTED
OPEN CUR_USR_V_GRCCBI_DEL
FETCH NEXT from CUR_USR_V_GRCCBI_DEL into
 	@D_MODCPT,
 	@D_TIPCPT,
 	@D_CODCPT,
 	@D_MODCOM,
 	@D_CODCOM,
 	@D_DEBHAB
WHILE (@@FETCH_STATUS <> -1 )
 	BEGIN	    --NO HAGO NADA--
FETCH NEXT from CUR_USR_V_GRCCBI_DEL into
 	@D_MODCPT,
 	@D_TIPCPT,
 	@D_CODCPT,
 	@D_MODCOM,
 	@D_CODCOM,
 	@D_DEBHAB
END

CLOSE CUR_USR_V_GRCCBI_DEL

 DEALLOCATE CUR_USR_V_GRCCBI_DEL

END

TABLA USR_CJCCBI

stdiccio-usr_cjccbi-tabla.jpgstdiccio-usr_cjccbi-campos.jpg

Listo!!

marzo 12, 2008 - Posted by | 1. SotLand Logic, 1.1 Stdiccio, 1.4 CJ -Tesorería, Cwa Logic

Aún no hay comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: