/****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_DevFcr]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsMsvTrn_DevFcr]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsMsvTrn_DevFcr] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_DevFcr' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_DevFcr] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ CREATE TYPE [dbo].[dataTypeTrn_DevFcr] AS TABLE( [TipDev] [varchar](3) NULL, [Devolucion] [int] NULL, [IdCia] [char](2) NULL, [Fecha] [smalldatetime] NULL, [IdConcepto] [varchar](4) NULL, [TipDoc] [varchar](3) NULL, [Factura] [int] NULL, [IdCiaDoc] [char](2) NULL, [FecDoc] [smalldatetime] NULL, [IdCliente] [varchar](16) NULL, [IdAgencia] [varchar](16) NULL, [VrSubTotal] [money] NULL, [VrDescuento] [money] NULL, [VrImpuesto] [money] NULL, [VrRetencion] [money] NULL, [VrReteICA] [money] NULL, [VrReteIVA] [money] NULL, [VrFletes] [money] NULL, [VrOtros] [money] NULL, [VrCargos] [money] NULL, [VrOtrDcto] [money] NULL, [VrCostos] [money] NULL, [VrSobretasa] [money] NULL, [VrImpGlobal] [money] NULL, [VrFaltantes] [money] NULL, [VrAnticipos] [money] NULL, [VrNeto] [money] NULL, [Cantidad] [decimal](14, 4) NULL, [CantPuntos] [decimal](14, 4) NULL, [BaseImp] [money] NULL, [BaseRet] [money] NULL, [IdCCosto] [varchar](16) NULL, [IdSubCos] [varchar](16) NULL, [IdVend] [varchar](16) NULL, [TarifaCom] [decimal](14, 4) NULL, [CodTarCom] [varchar](4) NULL, [IdLocEnv] [varchar](8) NULL, [Pedido] [int] NULL, [IdCiaPed] [char](2) NULL, [Remision] [int] NULL, [IdCiaRem] [char](2) NULL, [Cotizacion] [int] NULL, [IdCiaCot] [char](2) NULL, [FecPedido] [smalldatetime] NULL, [Modalidad] [varchar](10) NULL, [ModdDev] [varchar](10) NULL, [PlacaVehic] [varchar](10) NULL, [KmtVehic] [int] NULL, [ZonaFrontera] [int] NULL, [OrigenAdd] [varchar](10) NULL, [TipCom] [varchar](3) NULL, [Comprobante] [int] NULL, [IdCiaCom] [char](2) NULL, [Observacion] [varchar](250) NULL, [IdEstado] [varchar](4) NULL, [TimeSys] [smalldatetime] NULL, [FecUpdate] [smalldatetime] NULL, [IdCiaCrea] [char](2) NULL, [IdUsuario] [varchar](11) NULL, [VrImpCons] [money] NULL, [VrReteCREE] [money] NULL, [TarifaRtc] [decimal](14, 4) NULL, [CodTarRtc] [varchar](4) NULL, [BaseIvaObsq] [money] NULL, [VrIvaObsequio] [money] NULL, [VrImpCarbono] [money] NULL, [DevMasivo] [int] NULL, [NumRecibo] [int] NULL, [CdCiaRec] [char](2) NULL, [CdMotDev] [varchar](4) NULL, [BaseIvaIgp] [money] NULL, [VrIvaIngProd] [money] NULL, [TarifaArf] [decimal](14, 4) NULL, [VrAutRetFte] [money] NULL, [TarifaAri] [decimal](14, 4) NULL, [VrAutRetIca] [money] NULL ) GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 24/04/2018 -- Description: Insertar Trn_DevFcr -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsMsvTrn_DevFcr] @Trn_DevFcr dataTypeTrn_DevFcr READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DevFcr @Trn_TraEspFacReservas dataTypeTrn_TraEspFacReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspFacReservas @Trn_RecAfavor dataTypeTrn_RecAfavor READONLY,--Tipo de dato definido por el usuario que representa la tabla Trn_RecAfavor @Trn_VencAbonos dataTypeTrn_VencAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_VencAbonos @Trn_DocMemo dataTypeTrn_DocMemo READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DocMemo @Trn_DetCuentas dataTypeTrn_DetCuentas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DetCuentas @Trn_Comprobantes dataTypeTrn_Comprobantes READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Comprobantes @Trn_ComDetalle dataTypeTrn_ComDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComDetalle @Trn_NiifComp dataTypeNiifComp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifComp @Trn_NiifDetalle dataTypeNiifDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifDetalle @operacion varchar(1) AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY CREATE TABLE #LogTraEspFacturas( Numero int NOT NULL DEFAULT ((0)), Fecha smalldatetime NOT NULL, EstadoProc int NOT NULL DEFAULT ((0)), Observacion varchar(250) NULL, TimeSys smalldatetime NOT NULL, IdUsuario varchar(11) NOT NULL, Nombre varchar(50) NOT NULL, Tipo varchar(10) NOT NULL ) CREATE TABLE #LogTraEspFacReservas( Numero int NOT NULL, Item int NOT NULL, TipFac varchar(3) NOT NULL, Factura int NOT NULL, IdCia char(2) NOT NULL, TipoReg int NOT NULL DEFAULT ((0)), FechaFact smalldatetime NOT NULL, TipRes varchar(3) NOT NULL DEFAULT ('RES'), Reserva int NOT NULL DEFAULT ((0)), IdCiaRes char(2) NOT NULL DEFAULT ('01'), ItemRes int NOT NULL DEFAULT ((0)), FecReserva smalldatetime NOT NULL, Descripcion varchar(250) NOT NULL, Cantidad decimal(14, 4) NOT NULL DEFAULT ((0)), VrServicio money NOT NULL DEFAULT ((0)), VrUnitario money NOT NULL DEFAULT ((0)), VrCosto money NOT NULL DEFAULT ((0)), TarifaIva decimal(14, 4) NOT NULL DEFAULT ((0)), VrImpuesto money NOT NULL DEFAULT ((0)), TarifaDct decimal(14, 4) NOT NULL DEFAULT ((0)), VrDescuento money NOT NULL DEFAULT ((0)), DocCliente varchar(30) NOT NULL, Referencia1 varchar(50) NULL, Referencia2 varchar(50) NULL, Referencia3 varchar(50) NULL, CdConcepto varchar(4) NOT NULL, CdCCosto varchar(16) NULL, CdSubCos varchar(16) NULL, NitTercero varchar(16) NOT NULL DEFAULT ('0'), CdAgencia varchar(16) NOT NULL DEFAULT ('0'), pVehiculo varchar(10) NOT NULL DEFAULT ('0'), TipoAfiVehic varchar(10) NOT NULL DEFAULT ('TERCEROS'), IdOrigen varchar(8) NOT NULL, IdDestino varchar(8) NOT NULL, Anulado int NOT NULL DEFAULT ((0)), TipDocRef varchar(3) NULL, NumDocRef int NOT NULL DEFAULT ((0)), IdCiaRef char(2) NULL DEFAULT ('01'), FecDocRef smalldatetime NULL, CodTarDct varchar(4) NULL, CodTarRet varchar(4) NULL, CodTarIca varchar(4) NULL, TarifaRet decimal(14, 4) NOT NULL, VrRetencion money NOT NULL, TarifaIca decimal(14, 4) NOT NULL, VrReteIca money NOT NULL, Comentarios varchar(max) NULL ) declare @NumProc int = 1 declare @ItemProc int = 1 declare @TipDev varchar(3) declare @Devolucion INT declare @IdCia varchar(2) declare @TipFac varchar(3) declare @Factura INT declare @IdCiaDoc varchar(2) declare @Fecha datetime declare @observ varchar(250) declare @IdCliente varchar(16) declare @VrNeto money DECLARE @modalidad varchar(10) declare @fecdev smalldatetime DECLARE dvfactcursor CURSOR FOR SELECT TipDev,Devolucion,IdCia,TipDoc,Factura,IdCiaDoc,Fecha,IdCliente,VrNeto,Modalidad FROM @Trn_DevFcr OPEN dvfactcursor FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad WHILE @@FETCH_STATUS = 0 BEGIN IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = @TipDev, @Cia = @IdCia, @IdCiaComp = @IdCia, @IdCiaCompNiif = @IdCia, @IdCiaCompFis = @IdCia SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_DevFcr)) BEGIN INSERT INTO Trn_DevFcr( TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd FROM @Trn_DevFcr df WHERE df.TipDev = @TipDev and df.Devolucion = @Devolucion and df.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) BEGIN INSERT INTO Trn_TraEspFacReservas( TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem FROM @Trn_TraEspFacReservas dfr WHERE dfr.TipDoc = @TipDev and dfr.Factura = @Devolucion and dfr.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) BEGIN INSERT INTO Trn_RecAFavor( TipDoc,Recibo,IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend ) SELECT @TipDev,@Devolucion,@IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend FROM @Trn_RecAFavor ra WHERE ra.TipDoc = @TipDev and ra.Recibo = @Devolucion and ra.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos va where va.TipDoc = @TipFac and va.Factura = @Factura and va.IdCiaFac = @IdCiaDoc select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( TipRec,Recibo,IdCia,Item,Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys ) SELECT @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys FROM @Trn_VencAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif FROM @Trn_DetCuentas dc WHERE dc.TipDoc = @TipDev and dc.Documento = @Devolucion and dc.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_DocMemo)) BEGIN INSERT INTO Trn_DocMemo( TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg ) SELECT @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg FROM @Trn_DocMemo dm WHERE dm.TipDoc = @TipDev and dm.Documento = @Devolucion and dm.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes cp WHERE cp.TipDoc = @TipDev and cp.Documento = @Devolucion and cp.IdCiaDoc = @IdCia END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif FROM @Trn_ComDetalle cd WHERE cd.TipDoc = @TipDev and cd.Documento = @Devolucion and cd.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont where C.TipDoc = @TipDev and C.Documento = @Devolucion and C.IdCia = @IdCia and N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante and NC.TipDoc = @TipDev and NC.Documento = @Devolucion and NC.IdCiaDoc = @IdCia where N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia END end IF(@operacion = 'i') begin --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCia and d.Item = r.ItemRes --ACTUALIZAR FACTURA IF(UPPER(@modalidad) = 'TOTAL') BEGIN UPDATE Trn_Facturas SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev FROM Trn_Facturas F, @Trn_DevFcr DF WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc END --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo - f.VrNeto FROM TercCliente c, @Trn_DevFcr f WHERE c.IdClie = f.IdCliente --actualizar vencimientos,cuando es necesario IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN UPDATE Trn_Vencimientos SET VrAbonado = v.VrAbonado + dv.VrAbono FROM Trn_Vencimientos v, @Trn_VencAbonos dv WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac END end IF(@NumProc = @ItemProc) BEGIN select top 1 @observ = Observacion FROM @Trn_DevFcr WHERE TipDoc = @TipDev and Devolucion = @Devolucion and IdCia = @IdCia INSERT INTO #LogTraEspFacturas( Numero,Fecha,EstadoProc,Observacion,TimeSys,IdUsuario,Nombre,Tipo ) SELECT @NumProc,t1.Fecha,1,@observ,t1.TimeSys,t1.IdUsuario,u.Usuario,'DEVOLUCION' FROM @Trn_DevFcr as t1 left join adm_Usuarios u on u.IdUsuario = t1.IdUsuario WHERE t1.TipDev = @TipDev and t1.Devolucion = @Devolucion and t1.IdCia = @IdCia END SELECT @ItemProc = @ItemProc + 1 INSERT INTO #LogTraEspFacReservas( Numero,Item,TipFac,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,Comentarios ) SELECT @NumProc,@item,TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem FROM Trn_TRaEspFAcReservas where TipDoc = @TipDoc and Factura = @Factura and IdCia = @IdCia FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad END CLOSE dvfactcursor DEALLOCATE dvfactcursor SELECT * FROM #LogTraEspFacturas SELECT * FROM #LogTraEspFacReservas COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 01/07/2020 9:49:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 24/01/2017 -- Description: Insertar Trn_DevFcr -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] @Trn_DevFcr dataTypeTrn_DevFcr READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DevFcr @Trn_TraEspFacReservas dataTypeTrn_TraEspFacReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspFacReservas @Trn_RecAfavor dataTypeTrn_RecAfavor READONLY,--Tipo de dato definido por el usuario que representa la tabla Trn_RecAfavor @Trn_VencAbonos dataTypeTrn_VencAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_VencAbonos @Trn_DocMemo dataTypeTrn_DocMemo READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DocMemo @Trn_DetCuentas dataTypeTrn_DetCuentas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DetCuentas @Trn_Comprobantes dataTypeTrn_Comprobantes READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Comprobantes @Trn_ComDetalle dataTypeTrn_ComDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComDetalle @Trn_NiifComp dataTypeTrn_NiifComp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifComp @Trn_NiifDetalle dataTypeNiifDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifDetalle @operacion varchar(1) AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime DECLARE @modalidad varchar(10) IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDev, @Cia = IdCia,@fecdev = Fecha,@modalidad = ModdDev, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_DevFcr SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_DevFcr)) BEGIN INSERT INTO Trn_DevFcr( TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd FROM @Trn_DevFcr END IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) BEGIN INSERT INTO Trn_TraEspFacReservas( TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem FROM @Trn_TraEspFacReservas END IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) BEGIN INSERT INTO Trn_RecAFavor( TipDoc, Recibo, IdCia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend ) SELECT @TipDoc, @Numero, @Cia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend FROM @Trn_RecAFavor END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( TipRec,Recibo,IdCia,Item,Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys ) SELECT @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys FROM @Trn_VencAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif FROM @Trn_DetCuentas END IF(EXISTS(SELECT * FROM @Trn_DocMemo)) BEGIN INSERT INTO Trn_DocMemo( TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg ) SELECT @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg FROM @Trn_DocMemo END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif FROM @Trn_ComDetalle END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'i') begin --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes --ACTUALIZAR FACTURA IF(UPPER(@modalidad) = 'TOTAL') BEGIN UPDATE Trn_Facturas SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev FROM Trn_Facturas F, @Trn_DevFcr DF WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc END --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo - f.VrNeto FROM TercCliente c, @Trn_DevFcr f WHERE c.IdClie = f.IdCliente --actualizar vencimientos,cuando es necesario IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN UPDATE Trn_Vencimientos SET VrAbonado = v.VrAbonado + dv.VrAbono FROM Trn_Vencimientos v, @Trn_VencAbonos dv WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac END end SELECT @Numero, @Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 GO