/****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPago] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspOrdenPago]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPago] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspDevOdpGIE]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdp] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspDevOdp]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdp] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvOrdenPago] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsMsvOrdenPago]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsMsvOrdenPago] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTerceros] Script Date: 22/11/2022 16:41:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTerceros]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTerceros] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTerceros] Script Date: 22/11/2022 16:41:49 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTerceros' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTerceros] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_Pagos] Script Date: 17/08/2022 14:43:53 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_Pagos' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_Pagos] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTerceros] Script Date: 22/11/2022 16:41:53 ******/ CREATE TYPE [dbo].[dataTypeTerceros] AS TABLE( [IdTercero] [varchar](16) NULL, [RazonSocial] [varchar](250) NULL, [Codigo] [varchar](16) NULL, [TipoId] [char](1) NULL, [Dv] [char](1) NULL, [NomCial] [varchar](250) NULL, [SiglaRaz] [varchar](50) NULL, [Direccion] [varchar](250) NULL, [IdLocal] [varchar](8) NULL, [Telefono] [varchar](20) NULL, [Fax] [varchar](20) NULL, [TelMovil] [varchar](20) NULL, [SitioWeb] [varchar](100) NULL, [e_mail] [varchar](100) NULL, [EsCliente] [bit] NULL, [EsVendedor] [bit] NULL, [EsConductor] [bit] NULL, [EsPropietario] [bit] NULL, [EsProveedor] [bit] NULL, [EsEmpleado] [bit] NULL, [EsOperario] [bit] NULL, [EsAccnista] [bit] NULL, [EsCiaAseg] [bit] NULL, [EsCliePres] [bit] NULL, [IdSector] [varchar](8) NULL, [IdProf] [varchar](4) NULL, [IdRegimen] [varchar](4) NULL, [TipEnte] [char](1) NULL, [IdLugarCed] [varchar](8) NULL, [FecExpCed] [smalldatetime] NULL, [Observacion] [varchar](250) NULL, [IniStgNom] [int] NULL, [IdEstado] [varchar](4) NULL, [Inactivo] [bit] NULL, [FechaAdd] [smalldatetime] NULL, [FechaUpdate] [smalldatetime] NULL, [IdUsuario] [varchar](11) NULL, [ImgFoto] [varchar](30) NULL, [ImgFirma] [varchar](30) NULL, [ImagenDoc1] [varchar](50) NULL, [ImagenDoc2] [varchar](50) NULL, [ImagenDoc3] [varchar](50) NULL, [FechaNac] [smalldatetime] NULL, [IdEstOper] [varchar](4) NULL, [IdLocUbic] [varchar](8) NULL, [DescUbicac] [varchar](150) NULL, [CdGrupoTerc] [varchar](4) NULL, [RegimenFE] [bit] NULL, [PN_RUT] [bit] NULL DEFAULT ((0)) ) GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTerceros] Script Date: 22/11/2022 16:43:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 02/05/2016 -- Description: Insertar/Actualizar/Eliminar Terceros. -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTerceros] @Terceros dataTypeTerceros READONLY, @operacion varchar(1) AS BEGIN TRAN BEGIN TRY --UPDATE SI-EXISTE RECORDS IF(@operacion = 'u') BEGIN UPDATE Terceros SET IdTercero = t2.IdTercero, RazonSocial = t2.RazonSocial, Codigo = t2.Codigo, TipoId = t2.TipoId, Dv = t2.Dv, NomCial = t2.NomCial, SiglaRaz = t2.SiglaRaz, Direccion = t2.Direccion, IdLocal = t2.IdLocal, Telefono = t2.Telefono, Fax = t2.Fax, TelMovil = t2.TelMovil, SitioWeb = t2.SitioWeb, e_mail = t2.e_mail, EsCliente = t2.EsCliente, EsVendedor = t2.EsVendedor, EsConductor = t2.EsConductor, EsPropietario = t2.EsPropietario, EsProveedor = t2.EsProveedor, EsEmpleado = t2.EsEmpleado, EsOperario = t2.EsOperario, EsAccnista = t2.EsAccnista, EsCiaAseg = t2.EsCiaAseg, EsCliePres = t2.EsCliePres, IdSector = t2.IdSector, IdProf = t2.IdProf, IdRegimen = t2.IdRegimen, TipEnte = t2.TipEnte, IdLugarCed = t2.IdLugarCed, FecExpCed = t2.FecExpCed, Observacion = t2.Observacion, IniStgNom = t2.IniStgNom, IdEstado = t2.IdEstado, Inactivo = t2.Inactivo, FechaAdd = t2.FechaAdd, FechaUpdate = t2.FechaUpdate, IdUsuario = t2.IdUsuario, ImgFoto = t2.ImgFoto, ImgFirma = t2.ImgFirma, ImagenDoc1 = t2.ImagenDoc1, ImagenDoc2 = t2.ImagenDoc2, ImagenDoc3 = t2.ImagenDoc3, FechaNac = t2.FechaNac,IdEstOper = t2.IdEstOper, IdLocUbic = t2.IdLocUbic, DescUbicac = t2.DescUbicac, CdGrupoTerc = t2.CdGrupoTerc, RegimenFE = t2.RegimenFE FROM Terceros t1 JOIN @Terceros t2 ON t1.IdTercero = t2.IdTercero END --INSERT NO-EXISTE RECORDS IF(@operacion = 'i') BEGIN INSERT INTO Terceros( IdTercero,RazonSocial,Codigo,TipoId,Dv,NomCial,SiglaRaz,Direccion,IdLocal,Telefono, Fax,TelMovil,SitioWeb,e_mail,EsCliente,EsVendedor,EsConductor,EsPropietario,EsProveedor, EsEmpleado,EsOperario,EsAccnista,EsCiaAseg,EsCliePres,IdSector,IdProf,IdRegimen,TipEnte, IdLugarCed,FecExpCed,Observacion,IniStgNom,IdEstado,Inactivo,FechaAdd,FechaUpdate,IdUsuario, ImgFoto,ImgFirma,ImagenDoc1,ImagenDoc2,ImagenDoc3,FechaNac,IdEstOper,IdLocUbic,DescUbicac, CdGrupoTerc, RegimenFE, PN_RUT ) SELECT IdTercero,RazonSocial,Codigo,TipoId,Dv,NomCial,SiglaRaz,Direccion,IdLocal,Telefono, Fax,TelMovil,SitioWeb,e_mail,EsCliente,EsVendedor,EsConductor,EsPropietario,EsProveedor, EsEmpleado,EsOperario,EsAccnista,EsCiaAseg,EsCliePres,IdSector,IdProf,IdRegimen,TipEnte, IdLugarCed,FecExpCed,Observacion,IniStgNom,IdEstado,Inactivo,FechaAdd,FechaUpdate,IdUsuario, ImgFoto,ImgFirma,ImagenDoc1,ImagenDoc2,ImagenDoc3,FechaNac,IdEstOper,IdLocUbic,DescUbicac, CdGrupoTerc,RegimenFE, PN_RUT FROM @Terceros WHERE IdTercero NOT IN(SELECT IdTercero FROM Terceros) END --DELETE RECORDS IF(@operacion = 'd') BEGIN DECLARE @id varchar(16) SELECT @id = IdTercero FROM @Terceros DELETE FROM Terceros WHERE IdTercero = @id END SELECT '1' 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: UserDefinedTableType [dbo].[dataTypeTrn_Pagos] Script Date: 17/08/2022 14:43:53 ******/ CREATE TYPE [dbo].[dataTypeTrn_Pagos] AS TABLE( [TipDoc] [varchar](3) NOT NULL, [Documento] [int] NOT NULL DEFAULT ((0)), [IdCia] [char](2) NOT NULL DEFAULT ('01'), [Item] [int] NOT NULL DEFAULT ((0)), [Fecha] [smalldatetime] NOT NULL, [IdForma] [varchar](4) NOT NULL DEFAULT ('EFE'), [Detalle] [varchar](150) NOT NULL, [VrPagado] [money] NOT NULL DEFAULT ((0)), [VrCambio] [money] NOT NULL DEFAULT ((0)), [EsCaja] [bit] NOT NULL DEFAULT ((1)), [IdBanco] [varchar](4) NOT NULL, [NitCliente] [varchar](16) NOT NULL DEFAULT ('0'), [CdAgencia] [varchar](16) NOT NULL DEFAULT ('0'), [NumForma] [varchar](20) NULL, [FecForma] [smalldatetime] NULL, [CtaForma] [varchar](30) NULL, [Beneficiario] [varchar](150) NULL, [Referncia1] [varchar](50) NULL, [Referncia2] [varchar](50) NULL, [CdLocal] [varchar](8) NOT NULL DEFAULT ('0'), [NumAutoriza] [varchar](30) NULL, [VrDenom] [money] NOT NULL DEFAULT ((0)), [Cantidad] [int] NOT NULL DEFAULT ((0)), [TipDenom] [char](1) NOT NULL DEFAULT ('B'), [TipRef] [varchar](3) NOT NULL DEFAULT ('0'), [DocRef] [int] NOT NULL DEFAULT ((0)), [IdCiaRef] [char](2) NOT NULL DEFAULT ('00'), [ItemDoc] [int] NOT NULL DEFAULT ((0)), [CdCta] [varchar](4) NULL, [IdUsuario] [varchar](11) NOT NULL, [CdProducto] [varchar](16) NULL, [FE_Ticket] [bit] NOT NULL DEFAULT ((0)), [Cant_Gals] [decimal](14, 4) NULL, [PrecioBase] [money] NOT NULL DEFAULT ((0)), [PrecioUnit] [money] NOT NULL DEFAULT ((0)), [ConsCP] [bit] NOT NULL DEFAULT ((0)), [CodCueCons] [varchar](16) NULL, [PrecioPub] [money] NOT NULL DEFAULT ((0)), [RefVehiculo] [varchar](10) NULL, [RefNumVeh] [varchar](10) NULL ) GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvOrdenPago] Script Date: 17/08/2022 14:43:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 23/10/2017 -- Description: Insertar Trn_TraEspOrdenPago Masivas -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsMsvOrdenPago] @Trn_TraEspOrdenPago dataTypeTrn_TraEspOrdenPago READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenPago @Trn_TraEspOrdenReservas dataTypeTrn_TraEspOrdenReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenReservas @Trn_TraEspOrdenProg dataTypeTrn_TraEspOrdenProg READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenProg @Trn_TraEspConceptos dataTypeTrn_TraEspConceptos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspConceptos @Trn_TraEspAntAbonos dataTypeTrn_TraEspAntAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspAntAbonos @Trn_DetCuentas dataTypeTrn_DetCuentas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DetCuentas @Trn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComFactura @Trn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos @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 #LogOrden( Numero int NOT NULL, Fecha smalldatetime NOT NULL, EstadoProc int NOT NULL, Observacion varchar(1000) NULL, TimeSys smalldatetime NOT NULL, IdUsuario varchar(11) NOT NULL, Nombre varchar(50) NOT NULL ) CREATE TABLE #LogOrdenDet( Numero int NOT NULL, Item int NOT NULL, TipDoc varchar(3) NOT NULL, Orden int NOT NULL, IdCia char(2) NOT NULL, Fecha smalldatetime NOT NULL, IdConcepto varchar(4) NOT NULL, TipoCom varchar(3) NULL, Comprobante int NOT NULL, TipRes varchar(3) NOT NULL, Reserva int NOT NULL, IdCiaRes char(2) NOT NULL, ItemRes int NOT NULL, IdOrigen varchar(8) NOT NULL, CiuOrigen varchar(50) NULL, IdDestino varchar(8) NOT NULL, CiuDestino varchar(50) NULL, IdRuta varchar(4) NOT NULL, Ruta varchar(100) NULL, IdVehiculo varchar(10) NOT NULL, IdConductor varchar(16) NOT NULL, IdPropietario varchar(16) NOT NULL, IdPoseedor varchar(16) NOT NULL, Cumplido int NOT NULL, IdCiaCum varchar(2) NOT NULL, EstadoReg int NOT NULL, VrServicio money NOT NULL, VrDescuento money NOT NULL, VrRetencion money NOT NULL, VrReteIca money NOT NULL, VrReteCREE money NOT NULL, VrAnticipos money NOT NULL, VrOtrosDctos money NOT NULL, VrImpuestos money NOT NULL, VrOtrosPagos money NOT NULL, VrNeto money NOT NULL, TarifaRet decimal(14, 4) NOT NULL, TarifaIca decimal(14, 4) NOT NULL, TarifaRtc decimal(14, 4) NOT NULL, CodTarRet varchar(4) NULL, CodTarIca varchar(4) NULL, CodTarRtc varchar(4) NULL, VrConcPagos money NOT NULL, VrConcDctos money NOT NULL, VrConcFondo money NOT NULL, VrConcSeguro money NOT NULL, VrConcAporte money NOT NULL, VrConcImpuesto money NOT NULL, VrRecCaja money NOT NULL, CdForma varchar(4) NULL, IdCCosto varchar(16) NULL, IdSubCos varchar(16) NULL, VrSeguros money NOT NULL, VrFondos money NOT NULL, VrAportes money NOT NULL, Comentarios varchar(1000) NULL ) declare @TipDocu varchar(3) declare @Orden int declare @IdCia CHAR(2) DECLARE @Reserva INT --Esta variable guarda el número de reserva DECLARE @IdCiaRes CHAR(2) --Esta variable guarda la compañia de la reserva DECLARE @ItemRes INT --Esta variable guarda el número de ítem de reserva DECLARE @VrPagos MONEY = 0 --En esta variable va guarda el valor de pago real de la reserva DECLARE @VrTotalPagosaRES MONEY = 0 --En esta variable va guarda el valor de pagos hechas a la reserva por ordenes de pago DECLARE @TipoTarifa varchar(20) declare @NumProc int = 1 declare @ItemProc int = 1 DECLARE ordencursor CURSOR FOR SELECT TipDoc,OrdPago,IdCia FROM @Trn_TraEspOrdenPago OPEN ordencursor FETCH NEXT FROM ordencursor INTO @TipDocu,@Orden,@IdCia WHILE @@FETCH_STATUS = 0 BEGIN IF(@operacion = 'i') begin SELECT @TipDoc = @TipDocu, @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,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes where TipDoc = @TipDocu and Documento = @Orden and IdCiaDoc = @IdCia 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,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' and TipDoc = @TipDocu and Documento = @Orden and IdCiaDoc = @IdCia 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,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' and TipDoc = @TipDocu and Documento = @Orden and IdCiaDoc = @IdCia 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,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenPago)) BEGIN INSERT INTO Trn_TraEspOrdenPago( TipDoc,OrdPago,IdCia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDoc,@Numero,@Cia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, @TipComp,@Comprobante,@IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspOrdenPago where TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenReservas)) BEGIN INSERT INTO Trn_TraEspOrdenReservas( TipDoc,OrdPago,IdCia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem FROM @Trn_TraEspOrdenReservas where TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenProg)) BEGIN INSERT INTO Trn_TraEspOrdenProg( TipDoc,OrdPago,IdCia,Item,TipRes,Reserva,IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr,VrRecorrido ) SELECT @TipDoc,@Numero,@Cia,Item,TipRes,Reserva,IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr,VrRecorrido FROM @Trn_TraEspOrdenProg where TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspConceptos)) BEGIN INSERT INTO Trn_TraEspConceptos( TipDoc,Documento,IdCia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo ) SELECT @TipDoc,@Numero,@Cia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo FROM @Trn_TraEspConceptos where TipDoc = @TipDocu and Documento = @Orden and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos where TipDoc = @TipDocu and Documento = @Orden and IdCia = @IdCia 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 where TipDoc = @TipDocu and Documento = @Orden and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_ComFactura)) BEGIN INSERT INTO Trn_ComFactura( TipFac,Factura,IdCia,Item,IdProveedor,IdCuenta,TipDoc,Documento,IdCiaDoc,FecEmision,FecVence,VrFactura,VrAbonado,TipCom,Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob ) SELECT @TipDoc,@Numero,@Cia,Item,IdProveedor,IdCuenta,@TipDoc,@Numero,@Cia,FecEmision,FecVence,VrFactura,VrAbonado,@TipComp,@Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob FROM @Trn_ComFactura where TipDoc = @TipDocu and Documento = @Orden and IdCiaDoc = @IdCia END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos where TipDoc = @TipDocu and Documento = @Orden and 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, DocSoporte, CodRes, DescServicio ) 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, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes where TipDoc = @TipDocu and Documento = @Orden and IdCia = @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 where TipDoc = @TipDocu and Documento = @Orden and 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 = @TipDocu and C.Documento = @Orden and C.IdCia = @IdCia and N.TipDoc = @TipDocu and N.Documento = @Orden 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 = @TipDocu and NC.Documento = @Orden and NC.IdCiaDoc = @IdCia where N.TipDoc = @TipDocu and N.Documento = @Orden and N.IdCia = @IdCia END end IF(@operacion = 'i') begin --actualiza los items de la programnación detalle de cada reserva agregada en la Orden de Pago UPDATE Trn_TraEspProgramaDet SET TipDocOdp = 'OPE',NumOdp = @Numero, IdCiaOdp = @Cia, FechaOdp = t3.Fecha FROM Trn_TraEspProgramaDet t1 ,(Select TipRes,Reserva,IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr from Trn_TraEspOrdenProg where TipDoc = 'OPE' and OrdPago = @Numero and IdCia = @Cia) as t2 ,(Select Fecha from Trn_TraEspOrdenPago where TipDoc = 'OPE' and OrdPago = @Numero and IdCia = @Cia) as t3 WHERE t1.TipDocRes = t2.TipRes and t1.Reserva = t2.Reserva and t1.IdCiaRes = t2.IdCiaRes and t1.ItemRes = t2.ItemRes and t1.TipDoc = t2.TipPgr and t1.Programa = t2.Programa and t1.IdCia = t2.IdCiaPgr and t1.Item = t2.ItemPgr --actualización de la resdetalle Select @Reserva = Reserva, @IdCiaRes = IdCiaRes, @ItemRes = ItemRes from @Trn_TraEspOrdenReservas where TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia SELECT @TipoTarifa = TipoTarifa FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes SELECT @VrTotalPagosaRES = ISNULL(SUM(R.VrServicio),0) FROM Trn_TraEspOrdenReservas R LEFT JOIN Trn_TraEspOrdenPago AS OP ON R.TipDoc = OP.TipDoc AND R.OrdPago = OP.OrdPago AND R.IdCia = OP.IdCia WHERE R.Reserva = @Reserva AND R.IdCiaRes = @IdCiaRes AND R.ItemRes = @ItemRes AND OP.Anulado = 0 IF(upper(@TipoTarifa) <> 'DIA') BEGIN SELECT @VrPagos = VrPagos FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END ELSE -- revisar que la cant de veh se vayan a liquidar(programados no novedad) ya hayan sido liquidados(pasan de xliquidar a liquidado) y que la reserva no se haya vencido BEGIN declare @cantveh int= 0, @cantord int = 0, @fechares date, @fechasys date,@idveh varchar(10) select @cantveh = count(*) from trn_traespprogramadet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' select @fechares = fechafin from trn_traespreservas where Reserva = @Reserva AND IdCia = @IdCiaRes select @fechasys = FechaActual from companias where IdCia = @IdCiaRes --selecciono los progdetalle de esos vehiculos declare @Trn_TraEspProgramaDet dataTypeTrn_TraEspProgramaDet INSERT INTO @Trn_TraEspProgramaDet( TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin,TipDocRes,Reserva,IdCiaRes,ItemRes, IdOrigen,IdDestino,IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad,Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos,DiasDisp,Parada, CdTipServicio,DirOrigen,DirDestino,IdRuta,CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,Observacion ) SELECT TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin,TipDocRes,Reserva,IdCiaRes,ItemRes, IdOrigen,IdDestino,IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad,Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos,DiasDisp,Parada, CdTipServicio,DirOrigen,DirDestino,IdRuta,CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,Observacion FROM Trn_TraEspProgramaDet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' --cursor para verififcar si los vehiculos fueron pagados en ordenes de pago DECLARE verificar CURSOR FOR SELECT IdVehiculo FROM @Trn_TraEspProgramaDet OPEN verificar FETCH NEXT FROM verificar INTO @idveh WHILE @@FETCH_STATUS = 0 BEGIN --verifico la cantidad que ya fueron liquidados(tine encuenta la actual) if (exists(select * from Trn_TraEspOrdenReservas where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdVehiculo = @idveh)) select @cantord = @cantord + 1 FETCH NEXT FROM verificar INTO @idveh END CLOSE verificar DEALLOCATE verificar --se verifica que cumpal para colocar la resrva a liquidada IF((@cantord >= @cantveh) AND (@fechasys >= @fechares)) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END END ELSE BEGIN SELECT @VrPagos = ISNULL(SUM(VrPagos),0) FROM Trn_TraEspProgramaDet WHERE Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END --actualiza los anticipos UPDATE Trn_TraEspAnticipos SET VrAbonado = t2.VrAbono + VrAbonado FROM Trn_TraEspAnticipos t1 ,(Select TipAnt,Anticipo,IdCiaAnt,VrAbono from @Trn_TraEspAntAbonos where TipDoc = @TipDocu and Documento = @Orden and IdCia = @IdCia) as t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt end IF(@NumProc = @ItemProc) BEGIN INSERT INTO #LogOrden( Numero,Fecha,EstadoProc,Observacion,TimeSys,IdUsuario,Nombre ) SELECT @NumProc,t1.Fecha,1,t1.Observacion,t1.TimeSys,t1.IdUsuario,u.Usuario FROM @Trn_TraEspOrdenPago as t1 left join adm_Usuarios u on u.IdUsuario = t1.IdUsuario WHERE t1.TipDoc = @TipDocu and t1.OrdPago = @Orden and t1.IdCia = @IdCia END INSERT INTO #LogOrdenDet( Numero,Item,TipDoc,Orden,IdCia,Fecha,IdConcepto,TipoCom,Comprobante,TipRes,Reserva,IdCiaRes, ItemRes,IdOrigen,CiuOrigen,IdDestino,CiuDestino,IdRuta,Ruta,IdVehiculo,IdConductor,IdPropietario, IdPoseedor,Cumplido,IdCiaCum,EstadoReg,VrServicio,VrDescuento,VrRetencion,VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos, VrOtrosPagos,VrNeto,TarifaRet,TarifaIca,TarifaRtc,CodTarRet,CodTarIca,CodTarRtc,VrConcPagos,VrConcDctos, VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto,VrRecCaja,CdForma,IdCCosto,IdSubCos,VrSeguros,VrFondos, VrAportes,Comentarios ) SELECT @NumProc,@ItemProc,@TipDoc,@Numero,@Cia,t1.Fecha,t1.IdConcepto,@TipComp,@Comprobante,t2.TipRes,t2.Reserva,t2.IdCiaRes, t2.ItemRes,t3.CdCiuOrigen,t3.CiuOrigen,t3.CdCiuDestino,t3.CiuDestino,t3.IdRuta,t3.Ruta,t2.IdVehiculo,t2.IdConductor,t2.IdPropietario, t2.IdPoseedor,t3.Cumplido,t3.IdCiaCum,1,t2.VrServicio,t2.VrDescuento,t2.VrRetencion,t2.VrReteIca,t2.VrReteCREE,t2.VrAnticipos,t2.VrOtrosDctos,t2.VrImpuestos, t2.VrOtrosPagos,t2.VrNeto,t2.TarifaRet,t2.TarifaIca,t2.TarifaRtc,t2.CodTarRet,t2.CodTarIca,t2.CodTarRtc,t2.VrConcPagos,t2.VrConcDctos, t2.VrConcFondo,t2.VrConcSeguro,t2.VrConcAporte,t2.VrConcImpuesto,t2.VrRecCaja,t2.CdForma,t2.CdCenCosto,t2.CdSubCenCos,t2.VrSeguros,t2.VrFondos, t2.VrAportes,'Se guarda correctamente' FROM (SELECT * FROM @Trn_TraEspOrdenPago WHERE TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia) AS t1, (SELECT * FROM @Trn_TraEspOrdenReservas WHERE TipDoc = @TipDocu and OrdPago = @Orden and IdCia = @IdCia) AS t2, (SELECT r.IdRuta,rt.Ruta,r.CdCiuOrigen,lo.Localidad AS CiuOrigen,r.CdCiuDestino, ld.Localidad AS CiuDestino,r.Cumplido,r.IdCiaCum FROM @Trn_TraEspOrdenReservas AS ord join Trn_TraEspResDetalle r ON r.TipDoc = ord.TipRes and r.Reserva = ord.Reserva and r.IdCia = ord.IdCiaRes and r.Item = ord.ItemRes left join Rutas rt ON rt.IdRuta = r.IdRuta left join Localidades lo ON lo.IdLocal = r.CdCiuOrigen left join Localidades ld ON ld.IdLocal = r.CdCiuDestino WHERE ord.TipDoc = @TipDocu and ord.OrdPago = @Orden and ord.IdCia = @IdCia) AS t3 SELECT @ItemProc = @ItemProc + 1 FETCH NEXT FROM ordencursor INTO @TipDocu,@Orden,@IdCia END CLOSE ordencursor DEALLOCATE ordencursor SELECT * FROM #LogOrden SELECT * FROM #LogOrdenDet COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = Convert(varchar(10),ERROR_LINE()) +' '+ 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_TraEspDevOdp] Script Date: 17/08/2022 14:43:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 30/01/2017 -- Description: Insertar Trn_TraEspDevOdp -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdp] @Trn_TraEspDevOdp dataTypeTrn_TraEspDevOdp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspDevOdp @Trn_EgrFactura dataTypeTrn_EgrFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_EgrFactura @Trn_TraEspAntAbonos dataTypeTrn_TraEspAntAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspAntAbonos @Trn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos @Trn_TraEspOrdenReservas dataTypeTrn_TraEspOrdenReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenReservas @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 @TipDev VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @CiaDev VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Dev INT --En esta variable se guarda el consecutivo del documento aprobación 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 BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime IF(@operacion = 'i') begin SELECT TOP 1 @TipDev = TipDev, @CiaDev = IdCia,@TipDoc = TipDoc, @Cia = IdCiaDoc,@fecdev = Fecha, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspDevOdp SELECT @Dev = Numero + 1 FROM TiposDocCons where IdDoc = @TipDev AND IdCia = @CiaDev IF(@Dev > 0) UPDATE TiposDocCons SET Numero = @Dev WHERE IdDoc = @TipDev AND IdCia = @CiaDev ELSE BEGIN SELECT @Dev = 1 INSERT INTO TiposDocCons VALUES (@TipDev,@CiaDev,0,0,0,0,NULL,'',@Dev,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END --John Roa--DIEGO ROMERO DICE QUE SI NO EXISTE EL COMPROBANTE CON ELMISMO NOMBRE DE DOC DEVOLUCIÓN INSERTA UN COMPROBANTE CON EL TIPCOM SEA IIGUAL AL TIPDEV, en la tabla TiposCom(tipos de comprobantes) --es INACTIVO = 1, PARA PODER INSERTAR EN EGRFACTURA ESTE TIPCOM IF(NOT EXISTS(SELECT IdCom FROM TiposCom where IdCom = @TipDev)) BEGIN INSERT INTO TiposCom VALUES (@TipDev,'DEVOLUCION DE ORDEN DE PAGO ESPECIAL',0,0,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,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,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,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspDevOdp)) BEGIN INSERT INTO Trn_TraEspDevOdp( TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,OrdPago,IdCiaDoc,FecDoc,IdVehiculo,IdPoseedor,IdConductor,CxPagar,ModdDev,TipCom,Comprobante, IdCiaCom,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDev,@Dev,@CiaDev,Fecha,IdConcepto,TipDoc,OrdPago,IdCiaDoc,FecDoc,IdVehiculo,IdPoseedor,IdConductor,CxPagar,ModdDev,@TipComp, @Comprobante, @IdCiaComp,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspDevOdp END IF(EXISTS(SELECT * FROM @Trn_EgrFactura)) BEGIN INSERT INTO Trn_EgrFactura( TipCom,Comprobante,IdCia,Item,Fecha,TipFac,Factura,IdCiaFac, ItemFac,IdProveedor,IdCuenta,VrAbono,EsEgreso,ItemCom,pVehiculo, VehPropio,TipDev,NumDev,DetAbono ) SELECT @TipDev,@Dev,@CiaDev,Item,Fecha,TipFac,Factura,IdCiaFac, ItemFac,IdProveedor,IdCuenta,VrAbono,EsEgreso,ItemCom,pVehiculo, VehPropio,@TipDev,@Dev,DetAbono FROM @Trn_EgrFactura END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDev,@Dev,@CiaDev,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,(-VrAbono),TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto,FE_Ticket,Cant_Gals,PrecioBase,PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos 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, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDev, @Dev, @CiaDev, 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, DocSoporte, CodRes, DescServicio 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, @TipDev, @Dev, @CiaDev, 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, @CiaDev, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDev, @Dev, @CiaDev, 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, @CiaDev, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDev, @Dev, @CiaDev, 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 --Se actualiza la orden de pago con los datos de la devolución update Trn_TraEspOrdenPago set NumDev = @Dev, FecDev = @fecdev,Anulado = 1 from Trn_TraEspOrdenPago t1, @Trn_TraEspDevOdp t2 where t1.TipDoc = t2.TipDoc and t1.OrdPago = t2.OrdPago and t1.IdCia = t2.IdCiaDoc --se actualiza la Trn_Comfactura update Trn_ComFactura set VrAbonado = t1.VrAbonado + t2.VrAbono from Trn_ComFactura t1, @Trn_EgrFactura t2 where t1.TipFac = t2.TipFac and t1.Factura = t2.Factura and t1.IdCia = t2.Idcia and t1.Item = t2.ItemFac and t1.IdProveedor = t2.IdProveedor --Actualiza los items de la programación detalle de cada reserva agregada en la Orden de Pago y que se devuelve UPDATE Trn_TraEspProgramaDet SET TipDocOdp = 'OPE',NumOdp = 0, IdCiaOdp = '00' FROM Trn_TraEspProgramaDet t1, @Trn_TraEspDevOdp t2 WHERE t1.TipDocOdp = 'OPE' and t1.NumOdp = t2.OrdPago and t1.IdCiaOdp = t2.IdCiaDoc --Actualizar item de Reservas al estado en el que se encontraba antes de cuando le realizaron la Orden de Pago UPDATE Trn_TraEspResDetalle SET EstadoItem = t.EstadoItem FROM Trn_TraEspResDetalle r, @Trn_TraEspOrdenReservas t WHERE r.TipDoc = t.TipRes and r.Reserva = t.Reserva and r.IdCia = t.IdCiaRes and r.Item = t.ItemRes --actualiza los anticipos(restar) para que quede como estaba antes de hacer la Orden de Pago UPDATE Trn_TraEspAnticipos SET VrAbonado = t2.VrAbono - VrAbonado FROM Trn_TraEspAnticipos t1, @Trn_TraEspAntAbonos t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt end SELECT @Dev,@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 /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] Script Date: 17/08/2022 14:43:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Heiman Daza Tamayo -- Create date(dd/MM/yyyy): 24/06/2021 -- Description: Insertar Trn_TraEspDevOdp sin Generacion de ingresos -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] @Trn_TraEspDevOdp dataTypeTrn_TraEspDevOdp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspDevOdp @Trn_EgrFactura dataTypeTrn_EgrFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_EgrFactura @Trn_TraEspAntAbonos dataTypeTrn_TraEspAntAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspAntAbonos @Trn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos @Trn_TraEspOrdenReservas dataTypeTrn_TraEspOrdenReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenReservas @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 @TipDev VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @CiaDev VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Dev INT --En esta variable se guarda el consecutivo del documento aprobación 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 BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime IF(@operacion = 'i') begin SELECT TOP 1 @TipDev = TipDev, @CiaDev = IdCia,@TipDoc = TipDoc, @Cia = IdCiaDoc,@fecdev = Fecha, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspDevOdp SELECT @Dev = Numero + 1 FROM TiposDocCons where IdDoc = @TipDev AND IdCia = @CiaDev IF(@Dev > 0) UPDATE TiposDocCons SET Numero = @Dev WHERE IdDoc = @TipDev AND IdCia = @CiaDev ELSE BEGIN SELECT @Dev = 1 INSERT INTO TiposDocCons VALUES (@TipDev,@CiaDev,0,0,0,0,NULL,'',@Dev,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END --John Roa--DIEGO ROMERO DICE QUE SI NO EXISTE EL COMPROBANTE CON ELMISMO NOMBRE DE DOC DEVOLUCIÓN INSERTA UN COMPROBANTE CON EL TIPCOM SEA IIGUAL AL TIPDEV, en la tabla TiposCom(tipos de comprobantes) --es INACTIVO = 1, PARA PODER INSERTAR EN EGRFACTURA ESTE TIPCOM IF(NOT EXISTS(SELECT IdCom FROM TiposCom where IdCom = @TipDev)) BEGIN INSERT INTO TiposCom VALUES (@TipDev,'DEVOLUCION DE ORDEN DE PAGO ESPECIAL',0,0,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,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,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,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspDevOdp)) BEGIN INSERT INTO Trn_TraEspDevOdp( TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,OrdPago,IdCiaDoc,FecDoc,IdVehiculo,IdPoseedor,IdConductor,CxPagar,ModdDev,TipCom,Comprobante, IdCiaCom,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDev,@Dev,@CiaDev,Fecha,IdConcepto,TipDoc,OrdPago,IdCiaDoc,FecDoc,IdVehiculo,IdPoseedor,IdConductor,CxPagar,ModdDev,@TipComp, @Comprobante, @IdCiaComp,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspDevOdp END IF(EXISTS(SELECT * FROM @Trn_EgrFactura)) BEGIN INSERT INTO Trn_EgrFactura( TipCom,Comprobante,IdCia,Item,Fecha,TipFac,Factura,IdCiaFac, ItemFac,IdProveedor,IdCuenta,VrAbono,EsEgreso,ItemCom,pVehiculo, VehPropio,TipDev,NumDev,DetAbono ) SELECT @TipDev,@Dev,@CiaDev,Item,Fecha,TipFac,Factura,IdCiaFac, ItemFac,IdProveedor,IdCuenta,VrAbono,EsEgreso,ItemCom,pVehiculo, VehPropio,@TipDev,@Dev,DetAbono FROM @Trn_EgrFactura END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDev,@Dev,@CiaDev,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,(-VrAbono),TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto,FE_Ticket,Cant_Gals,PrecioBase,PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos 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, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDev, @Dev, @CiaDev, 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, DocSoporte, CodRes, DescServicio 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, @TipDev, @Dev, @CiaDev, 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, @CiaDev, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDev, @Dev, @CiaDev, 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, @CiaDev, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDev, @Dev, @CiaDev, 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 --Se actualiza la orden de pago con los datos de la devolución update Trn_TraEspOrdenPago set NumDev = @Dev, FecDev = @fecdev,Anulado = 1 from Trn_TraEspOrdenPago t1, @Trn_TraEspDevOdp t2 where t1.TipDoc = t2.TipDoc and t1.OrdPago = t2.OrdPago and t1.IdCia = t2.IdCiaDoc --se actualiza la Trn_Comfactura update Trn_ComFactura set VrAbonado = t1.VrAbonado + t2.VrAbono from Trn_ComFactura t1, @Trn_EgrFactura t2 where t1.TipFac = t2.TipFac and t1.Factura = t2.Factura and t1.IdCia = t2.Idcia and t1.Item = t2.ItemFac and t1.IdProveedor = t2.IdProveedor --Actualizar item de Reservas al estado en el que se encontraba antes de cuando le realizaron la Orden de Pago UPDATE Trn_TraEspResDetalle SET EstadoItem = t.EstadoItem FROM Trn_TraEspResDetalle r, @Trn_TraEspOrdenReservas t WHERE r.TipDoc = t.TipRes and r.Reserva = t.Reserva and r.IdCia = t.IdCiaRes and r.Item = t.ItemRes --actualiza los anticipos(restar) para que quede como estaba antes de hacer la Orden de Pago UPDATE Trn_TraEspAnticipos SET VrAbonado = t2.VrAbono - VrAbonado FROM Trn_TraEspAnticipos t1, @Trn_TraEspAntAbonos t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt end SELECT @Dev,@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 /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPago] Script Date: 17/08/2022 14:43:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 30/01/2017 -- Description: Insertar Trn_TraEspOrdenPago -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPago] @Trn_TraEspOrdenPago dataTypeTrn_TraEspOrdenPago READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenPago @Trn_TraEspOrdenReservas dataTypeTrn_TraEspOrdenReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenReservas @Trn_TraEspOrdenProg dataTypeTrn_TraEspOrdenProg READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenProg @Trn_TraEspConceptos dataTypeTrn_TraEspConceptos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspConceptos @Trn_TraEspAntAbonos dataTypeTrn_TraEspAntAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspAntAbonos @Trn_DetCuentas dataTypeTrn_DetCuentas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DetCuentas @Trn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComFactura @Trn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos @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 --16-01-2020.Yaqueline Lizarazo Diaz.Se cambia por el tipo de dato que se utiliza en el masivo de ordenes de pago, modificación que se realizo despues de dejar la contabilización en la misma clase. --@Trn_NiifComp dataTypeTrn_NiifComp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifComp @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 --Nuevas variables DECLARE @Reserva INT = (SELECT TOP 1 Reserva FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el número de reserva DECLARE @ItemRes INT = (SELECT TOP 1 ItemRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el número de ítem de reserva DECLARE @IdCiaRes CHAR(2) = (SELECT TOP 1 IdCiaRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda la compañia de la reserva DECLARE @VrPagos MONEY = 0 --En esta variable va guarda el valor de pago real de la reserva DECLARE @VrTotalPagosaRES MONEY = 0 --En esta variable va guarda el valor de pagos hechas a la reserva por ordenes de pago DECLARE @TipoTarifa varchar(20) BEGIN TRAN BEGIN TRY IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspOrdenPago 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,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,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,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,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenPago)) BEGIN INSERT INTO Trn_TraEspOrdenPago( TipDoc,OrdPago,IdCia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDoc,@Numero,@Cia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, @TipComp,@Comprobante,@IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspOrdenPago END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenReservas)) BEGIN INSERT INTO Trn_TraEspOrdenReservas( TipDoc,OrdPago,IdCia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem FROM @Trn_TraEspOrdenReservas END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenProg)) BEGIN INSERT INTO Trn_TraEspOrdenProg( TipDoc,OrdPago,IdCia,Item,TipRes,Reserva,IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr,VrRecorrido ) SELECT @TipDoc,@Numero,@Cia,Item,TipRes,Reserva,IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr,VrRecorrido FROM @Trn_TraEspOrdenProg END IF(EXISTS(SELECT * FROM @Trn_TraEspConceptos)) BEGIN INSERT INTO Trn_TraEspConceptos( TipDoc,Documento,IdCia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo ) SELECT @TipDoc,@Numero,@Cia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo FROM @Trn_TraEspConceptos END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos 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_ComFactura)) BEGIN INSERT INTO Trn_ComFactura( TipFac,Factura,IdCia,Item,IdProveedor,IdCuenta,TipDoc,Documento,IdCiaDoc,FecEmision,FecVence,VrFactura,VrAbonado,TipCom,Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob ) SELECT @TipDoc,@Numero,@Cia,Item,IdProveedor,IdCuenta,@TipDoc,@Numero,@Cia,FecEmision,FecVence,VrFactura,VrAbonado,@TipComp,@Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob FROM @Trn_ComFactura END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos 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, DocSoporte, CodRes, DescServicio ) 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, DocSoporte, CodRes, DescServicio 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, SUBSTRING(Referncia, 0, 50), 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, SUBSTRING(N.Referncia,0,50), 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 la programación detalle de cada reserva agregada en la Orden de Pago UPDATE Trn_TraEspProgramaDet SET TipDocOdp = 'OPE',NumOdp = @Numero, IdCiaOdp = t3.IdCia, FechaOdp = t3.Fecha FROM Trn_TraEspProgramaDet t1, @Trn_TraEspOrdenProg t2, @Trn_TraEspOrdenPago t3 WHERE t1.TipDoc = t2.TipPgr and t1.Programa = t2.Programa and t1.IdCia = t2.IdCiaPgr and t1.Item = t2.ItemPgr and t1.TipDocRes = t2.TipRes and t1.Reserva = t2.Reserva and t1.IdCiaRes = t2.IdCiaRes and t1.ItemRes = t2.ItemRes --JHON ROA-->Nuevo línea de código actualizar el estado de la reserva cuando ya se cumpla el valor total de la reserva --11/12/2017 Se cambia para tener en cuenta cuando TipoTarifa de la reserva es diaria. SELECT @TipoTarifa = TipoTarifa FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes --No se necesita traer la actual reserva, poque ya fue insertada arriba en este procedimiento SELECT @VrTotalPagosaRES = ROUND(ISNULL(SUM(R.VrServicio),0), 1) FROM Trn_TraEspOrdenReservas R LEFT JOIN Trn_TraEspOrdenPago AS OP ON R.TipDoc = OP.TipDoc AND R.OrdPago = OP.OrdPago AND R.IdCia = OP.IdCia WHERE R.Reserva = @Reserva AND R.IdCiaRes = @IdCiaRes AND R.ItemRes = @ItemRes AND OP.Anulado = 0; IF(upper(@TipoTarifa) <> 'DIA') BEGIN SELECT @VrPagos = VrPagos FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END ELSE -- revisar que la cant de veh que se vayan a liquidar(programados no novedad) ya hayan sido liquidados(pasan de xliquidar a liquidado) y que la reserva no se haya vencido BEGIN declare @cantveh int= 0, @cantord int = 0, @fechares date, @fechasys date,@idveh varchar(10) select @cantveh = count(*) from trn_traespprogramadet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' select @fechares = fechafin from trn_traespreservas where Reserva = @Reserva AND IdCia = @IdCiaRes select @fechasys = FechaActual from companias where IdCia = @IdCiaRes --selecciono los progdetalle de esos vehiculos declare @Trn_TraEspProgramaDet dataTypeTrn_TraEspProgramaDet INSERT INTO @Trn_TraEspProgramaDet( TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin,TipDocRes,Reserva,IdCiaRes,ItemRes, IdOrigen,IdDestino,IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad,Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos,DiasDisp,Parada, CdTipServicio,DirOrigen,DirDestino,IdRuta,CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,Observacion ) SELECT TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin,TipDocRes,Reserva,IdCiaRes,ItemRes, IdOrigen,IdDestino,IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad,Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos,DiasDisp,Parada, CdTipServicio,DirOrigen,DirDestino,IdRuta,CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,Observacion FROM Trn_TraEspProgramaDet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' --cursor para verififcar si los vehiculos fueron pagados en ordenes de pago DECLARE verificar CURSOR FOR SELECT IdVehiculo FROM @Trn_TraEspProgramaDet OPEN verificar FETCH NEXT FROM verificar INTO @idveh WHILE @@FETCH_STATUS = 0 BEGIN --verifico la cantidad que ya fueron liquidados(tiene en cuenta la actual) if (exists(select * from Trn_TraEspOrdenReservas where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdVehiculo = @idveh)) select @cantord = @cantord + 1 FETCH NEXT FROM verificar INTO @idveh END CLOSE verificar DEALLOCATE verificar --se verifica que cumpal para colocar la resrva a liquidada IF((@cantord >= @cantveh) AND (@fechasys >= @fechares)) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END END ELSE BEGIN SELECT @VrPagos = ISNULL(SUM(VrPagos),0) FROM Trn_TraEspProgramaDet AS PD JOIN Trn_TraEspPrograma AS P ON P.TipDoc = PD.TipDoc AND P.Programa = PD.Programa AND P.IdCia = PD.IdCia WHERE Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' and p.Anulado = 0 IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END --actualiza los anticipos UPDATE Trn_TraEspAnticipos SET VrAbonado = VrAbonado + t2.VrAbono FROM Trn_TraEspAnticipos t1, @Trn_TraEspAntAbonos t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt 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 /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] Script Date: 17/08/2022 14:43:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Heiman Daza Tamayo -- Create date(dd/MM/yyyy): 24/06/2021 -- Description: Insertar Trn_TraEspOrdenPago para fincas Santur -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] @Trn_TraEspOrdenPago dataTypeTrn_TraEspOrdenPago READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenPago @Trn_TraEspOrdenReservas dataTypeTrn_TraEspOrdenReservas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenReservas @Trn_TraEspOrdenProg dataTypeTrn_TraEspOrdenProg READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspOrdenProg @Trn_TraEspConceptos dataTypeTrn_TraEspConceptos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspConceptos @Trn_TraEspAntAbonos dataTypeTrn_TraEspAntAbonos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspAntAbonos @Trn_DetCuentas dataTypeTrn_DetCuentas READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_DetCuentas @Trn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComFactura @Trn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos @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 --16-01-2020.Yaqueline Lizarazo Diaz.Se cambia por el tipo de dato que se utiliza en el masivo de ordenes de pago, modificación que se realizo despues de dejar la contabilización en la misma clase. --@Trn_NiifComp dataTypeTrn_NiifComp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifComp @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 --Nuevas variables DECLARE @Reserva INT = (SELECT TOP 1 Reserva FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el número de reserva DECLARE @ItemRes INT = (SELECT TOP 1 ItemRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el número de ítem de reserva DECLARE @IdCiaRes CHAR(2) = (SELECT TOP 1 IdCiaRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda la compañia de la reserva DECLARE @VrPagos MONEY = 0 --En esta variable va guarda el valor de pago real de la reserva DECLARE @VrTotalPagosaRES MONEY = 0 --En esta variable va guarda el valor de pagos hechas a la reserva por ordenes de pago DECLARE @TipoTarifa varchar(20) BEGIN TRAN BEGIN TRY IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspOrdenPago 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,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,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,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,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenPago)) BEGIN INSERT INTO Trn_TraEspOrdenPago( TipDoc,OrdPago,IdCia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDoc,@Numero,@Cia,Fecha,TipRes,Reserva,IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar,MulPlazos,IdPlazo,FechaVence, @TipComp,@Comprobante,@IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspOrdenPago END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenReservas)) BEGIN INSERT INTO Trn_TraEspOrdenReservas( TipDoc,OrdPago,IdCia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario,IdPoseedor,VrServicio,VrDescuento,VrRetencion, VrReteIca,VrReteCREE,VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet,BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr,NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro,VrConcAporte,VrConcImpuesto, VrRecCaja,CdForma,CdCenCosto,CdSubCenCos,VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem FROM @Trn_TraEspOrdenReservas END IF(EXISTS(SELECT * FROM @Trn_TraEspConceptos)) BEGIN INSERT INTO Trn_TraEspConceptos( TipDoc,Documento,IdCia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo ) SELECT @TipDoc,@Numero,@Cia,Item,Descripcion,Tarifa,TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto,CdCuenta,NitTercero, CdTipoEsc,FechaNov,VrBase,TipoTarif,RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente,Conductor,Vehiculo,ItemDoc,IdVehiculo FROM @Trn_TraEspConceptos END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipAnt,Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos 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_ComFactura)) BEGIN INSERT INTO Trn_ComFactura( TipFac,Factura,IdCia,Item,IdProveedor,IdCuenta,TipDoc,Documento,IdCiaDoc,FecEmision,FecVence,VrFactura,VrAbonado,TipCom,Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob ) SELECT @TipDoc,@Numero,@Cia,Item,IdProveedor,IdCuenta,@TipDoc,@Numero,@Cia,FecEmision,FecVence,VrFactura,VrAbonado,@TipComp,@Comprobante,ItemCom, Referencia,Detalle,pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr,MontoAprob FROM @Trn_ComFactura END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos 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, DocSoporte, CodRes, DescServicio ) 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, DocSoporte, CodRes, DescServicio 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, SUBSTRING(Referncia, 0, 50), 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, SUBSTRING(N.Referncia,0,50), 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 BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes 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