/****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPago] Script Date: 30/06/2020 14:36:51 ******/ 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_TraEspCausacion] Script Date: 30/06/2020 14:36:51 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspCausacion]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspCausacion] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspAnticipos] Script Date: 30/06/2020 14:36:51 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspAnticipos]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspAnticipos] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvOrdenPago] Script Date: 30/06/2020 14:36:51 ******/ 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: UserDefinedTableType [dbo].[dataTypeTrn_ComFactura] Script Date: 30/06/2020 14:36:51 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_ComFactura' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_ComFactura] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_ComFactura] Script Date: 30/06/2020 14:36:51 ******/ CREATE TYPE [dbo].[dataTypeTrn_ComFactura] AS TABLE( [TipFac] [varchar](3) NULL, [Factura] [varchar](15) NULL, [IdCia] [char](2) NULL DEFAULT ('01'), [Item] [int] NULL DEFAULT ((1)), [IdProveedor] [varchar](16) NULL, [IdCuenta] [varchar](16) NULL, [TipDoc] [varchar](3) NULL, [Documento] [int] NULL DEFAULT ((0)), [IdCiaDoc] [char](2) NULL DEFAULT ('01'), [FecEmision] [smalldatetime] NULL, [FecVence] [smalldatetime] NULL, [VrFactura] [money] NULL DEFAULT ((0)), [VrAbonado] [money] NULL DEFAULT ((0)), [TipCom] [varchar](3) NULL, [Comprobante] [int] NULL DEFAULT ((0)), [ItemCom] [int] NULL DEFAULT ((0)), [Referencia] [varchar](50) NULL, [Detalle] [varchar](100) NULL, [pVehiculo] [varchar](10) NULL, [VehPropio] [bit] NULL DEFAULT ((0)), [TipRef] [varchar](3) NULL, [DocRef] [int] NULL DEFAULT ((0)), [IdCiaRef] [char](2) NULL, [EstadoApr] [int] NULL DEFAULT ((0)), [MontoAprob] [money] NOT NULL DEFAULT ((0)), [FecProgPago] [smalldatetime] NULL, [ObservAprob] [varchar](250) NULL ) GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvOrdenPago] Script Date: 30/06/2020 14:36: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) 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) 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) 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) 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 ) 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 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 ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes 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_TraEspAnticipos] Script Date: 30/06/2020 14:36:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 15/12/2016 -- Description: Insertar Trn_TraEspAnticipos. -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspAnticipos] @Trn_TraEspAnticipos dataTypeTrn_TraEspAnticipos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ATraESpAnticipos @Trn_Comprobantes dataTypeTrn_Comprobantes READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Aprobacion @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 NiifDetalle @Trn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComFactura @operacion varchar(1) --@dataTypeTrn_Pagos dataTypeTrn_Pagos READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Pagos --@dataTypeTrn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComFactura 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 @TDAnt VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @CiaAnt VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Anticipo INT --En esta variable se guarda el consecutivo del documento aprobación --DECLARE @Trn_TraComprobantes dataTypeTrn_Comprobantes --En esta variable se guarda el consecutivo del documento aprobación NO --DECLARE @Trn_ComDetalle dataTypeTrn_ComDetalle --En esta variable se guarda el consecutivo del documento aprobación NO BEGIN TRAN BEGIN TRY declare @idcta varchar(4) declare @tpago varchar(10) declare @consecutivoCh int = 0 declare @numcheque VARCHAR (20) declare @rango varchar(20) declare @rangof varchar(20) declare @TipFac varchar(3) declare @Factura varchar(15) declare @IdCiaFac varchar(2) if(@operacion = 'i') BEGIN SELECT TOP 1 @TDAnt = TipDoc, @CiaAnt = IdCia, @idcta = IdCta, @tpago = TipoPago, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia, @numcheque = NumCheque FROM @Trn_TraEspAnticipos SELECT @Anticipo = Numero + 1 FROM TiposDocCons where IdDoc = @TDAnt AND IdCia = @CiaAnt IF(@Anticipo > 0) UPDATE TiposDocCons SET Numero = @Anticipo WHERE IdDoc = @TDAnt AND IdCia = @CiaAnt ELSE BEGIN SELECT @Anticipo = 1 INSERT INTO TiposDocCons VALUES (@TDAnt,@CiaAnt,0,0,0,0,NULL,'',@Anticipo,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompFis <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF((select UPPER(TipoPago) from @Trn_TraEspAnticipos) = 'CHEQUE') BEGIN if((select ConsCheques from CtasCorrientes where IdCta = @idcta) = '1') begin begin try select @consecutivoCh = (ConsActual + 1), @rango = (substring(RangoCons,1,(charindex('-',RangoCons)-1))), @rangof = (substring(RangoCons,(charindex('-',RangoCons)+1),len(RangoCons))) from CtasCorrientes where IdCta = @idcta if not(@consecutivoCh >= Convert(int,@rango) and @consecutivoCh <= Convert(int,@rangof)) begin RAISERROR('Error, el consecutivo de cheque fuera del rango establecido', 16, 1); end else begin update CtasCorrientes set ConsActual = @consecutivoCh where IdCta = @idcta end end try begin catch RAISERROR('Error, el consecutivo de cheque fuera del rango establecido', 16, 1); end catch end END --4052 IF (EXISTS(SELECT * FROM @Trn_ComFactura) AND (SELECT TOP 1 Modalidad FROM @Trn_TraEspAnticipos) = 'COMBUSTBLE' AND (SELECT TOP 1 p.Vencimiento FROM Puc as p WHERE p.IdCuenta = (SELECT TOP 1 IdCuenta FROM @Trn_TraEspAnticipos)) = 1) BEGIN SELECT TOP 1 @TipFac = TipFac, @Factura = Factura, @IdCiaFac = IdCia FROM @Trn_ComFactura END INSERT INTO Trn_TraEspAnticipos( TipDoc,Anticipo,IdCia,Fecha,IdConcepto,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdPoseedor,IdConductor,VrAnticipo, VrAbonado,Modalidad,TipoPago,NumCheque,FecCheque,IdCta,IdCuenta,Beneficiario,CedBenef,Cantidad,FechaVence, NumPresAnt,TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate, IdCiaCrea,IdUsuario,PreAnticipo ) SELECT @TDAnt,@Anticipo,@CiaAnt,Fecha,IdConcepto,TipRes,Reserva,IdCiaRes,ItemRes,IdVehiculo,IdPoseedor,IdConductor,VrAnticipo, VrAbonado,Modalidad,TipoPago, (CASE WHEN Modalidad = 'COMBUSTBLE' THEN (CASE WHEN (SELECT TOP 1 p.Vencimiento FROM Puc as p WHERE p.IdCuenta = (SELECT TOP 1 IdCuenta FROM @Trn_TraEspAnticipos)) = 0 THEN NumCheque ELSE ISNULL(NumCheque, @Anticipo) END) ELSE (CASE WHEN @consecutivoCh > 0 THEN Convert(Varchar(20),@consecutivoCh) ELSE @numcheque END) END), FecCheque,IdCta,IdCuenta,Beneficiario,CedBenef,Cantidad,FechaVence, NumPresAnt,@TipComp, @Comprobante, @IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd,TimeSys,FecUpdate, IdCiaCrea,IdUsuario,PreAnticipo FROM @Trn_TraEspAnticipos --IF(EXISTS(SELECT * FROM @dataTypeTrn_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 --TipFac,CONVERT(VARCHAR(15), @Anticipo),IdCia,Item,IdProveedor,IdCuenta,@TDAnt,@Anticipo,@CiaAnt,FecEmision,FecVence, --VrFactura,VrAbonado,@TipComp,@Comprobante,ItemCom,Referencia,Detalle,pVehiculo,VehPropio,TipRef, --DocRef,IdCiaRef,EstadoApr --FROM @dataTypeTrn_ComFactura --END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TDAnt, @Anticipo, @CiaAnt, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, cd.Item, cd.Fecha, cd.IdCuenta, cd.Detalle, cd.VrDebito, cd.VrCredito, cd.IdTercero, cd.IdVehiculo, cd.IdCCosto, cd.IdSubCos, cd.VrBase, cd.TarifaBase, @TDAnt, @Anticipo, @CiaAnt, cd.CodConce, cd.NitDoc, (CASE WHEN (SELECT TOP 1 p.Vencimiento FROM Puc as p WHERE p.IdCuenta = cd.IdCuenta) = 1 THEN ISNULL(@TipFac, (case WHEN cd.TipFac <> '' THEN @TDAnt ELSE '' END)) ELSE (case WHEN cd.TipFac <> '' THEN @TDAnt ELSE '' END) END), (CASE WHEN (SELECT TOP 1 p.Vencimiento FROM Puc as p WHERE p.IdCuenta = cd.IdCuenta) = 1 THEN ISNULL(@Factura, (case WHEN cd.Factura <> '' THEN CONVERT(varchar(15), @Anticipo) ELSE '' END)) ELSE (case WHEN cd.Factura <> '' THEN CONVERT(varchar(15), @Anticipo) ELSE '' END) END), (CASE WHEN (SELECT TOP 1 p.Vencimiento FROM Puc as p WHERE p.IdCuenta = cd.IdCuenta) = 1 THEN ISNULL(@IdCiaFac, (case WHEN cd.IdCiaFac <> '' THEN @CiaAnt ELSE '' END))ELSE (case WHEN cd.TipFac <> '' THEN @CiaAnt ELSE '' END) END), cd.ItemFac, cd.FecVence, cd.CodCta, cd.NumCheque, cd.Integrado, cd.TipoAplica, cd.Consolida, cd.CodCargo, cd.NitOtros, cd.CodSubgpo, cd.CiuOrigen, cd.CodAgncia,cd.VehPropio, cd.Referncia, cd.TipDocRef, cd.DocRef, cd.IdCiaRef, cd.TimeSys, cd.FecUpdate, cd.IdCiaCrea, cd.IdUsuario, cd.CdConcTrib, cd.CdTarifTrib, cd.NumEstablec, cd.PtoEmision, cd.Num_Autoriza, cd.FechAutoriza,cd.CdCuentaNiif FROM @Trn_ComDetalle cd 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, @CiaAnt, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TDAnt, @Anticipo, @CiaAnt, 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, @CiaAnt, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TDAnt, @Anticipo, @CiaAnt, 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 IF(EXISTS(SELECT * FROM @Trn_ComFactura))--5042 SE AGREGA ANTICIPOS DE COMBUSTIBLES 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 ISNULL(TipFac, @TDAnt), ISNULL(Factura, @Anticipo), ISNULL(IdCia, @CiaAnt), 1, IdProveedor, IdCuenta, @TDAnt, @Anticipo, @CiaAnt, FecEmision, FecVence, VrFactura, VrAbonado, @TipComp, @Comprobante, 0, Referencia, Detalle, pVehiculo, VehPropio, TipRef, DocRef, IdCiaRef, EstadoApr, MontoAprob FROM @Trn_ComFactura END END if(@operacion = 's') begin update Trn_TraEspAnticipos set VrAbonado = t1.VrAnticipo from Trn_TraEspAnticipos t1, @Trn_TraEspAnticipos t2 where t1.TipDoc = t2.TipDoc and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCia end SELECT @Anticipo,@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_TraEspCausacion] Script Date: 30/06/2020 14:36:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyyy): 15/02/2017 -- Description: Insertar Trn_TraEspCausacion -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspCausacion] @Trn_TraEspCausacion dataTypeTrn_TraEspCausacion READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspCausacion @Trn_TraEspCauDetalle dataTypeTrn_TraEspCauDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspCauDetalle @Trn_ComFactura dataTypeTrn_ComFactura READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Vencimientos @Trn_Comprobantes dataTypeTrn_Comprobantes READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_Comprobantes @Trn_ComDetalle dataTypeTrn_ComDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_ComDetalle @Trn_NiifComp dataTypeTrn_NiifComp READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifComp @Trn_NiifDetalle dataTypeNiifDetalle READONLY, --Tipo de dato definido por el usuario que representa la tabla Trn_NiifDetalle @operacion varchar(1) AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY IF(@operacion = 'i') BEGIN SELECT TOP 1 @TipDoc = TipDoc, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspCausacion SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END END IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspCausacion)) BEGIN INSERT INTO Trn_TraEspCausacion( TipDoc,Causacion,IdCia,Fecha,IdConcepto,IdProv,Factura,VrTotal,VrOtros,VrNeto, TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd, TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,IdProv,Factura,VrTotal,VrOtros,VrNeto, @TipComp, @Comprobante, @IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd, TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspCausacion END IF(EXISTS(SELECT * FROM @Trn_TraEspCauDetalle)) BEGIN INSERT INTO Trn_TraEspCauDetalle( TipDoc,Causacion,IdCia,Item,IdConcepto,Descripcion,TipoConc,VrDebito,VrCredito,CdCuenta, NitTercero,CdCCosto,CdSubCos,pVehiculo,TipoAfiVehic,VrBase,TarifBase,Referencia,TipDocRef,DocRef, TipFac,Factura,IdCiaFac,ItemFac,FecVence,EstadoReg,TipoLiq,NumLiquida,CiaLiquida,VrAbonado ) SELECT @TipDoc,@Numero,@Cia,Item,IdConcepto,Descripcion,TipoConc,VrDebito,VrCredito,CdCuenta, NitTercero,CdCCosto,CdSubCos,pVehiculo,TipoAfiVehic,VrBase,TarifBase,Referencia,TipDocRef,DocRef, TipFac,Factura,IdCiaFac,ItemFac,FecVence,EstadoReg,TipoLiq,NumLiquida,CiaLiquida,VrAbonado FROM @Trn_TraEspCauDetalle 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 TipFac,Factura,@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_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento,IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, cd.Item, cd.Fecha, cd.IdCuenta, cd.Detalle, cd.VrDebito, cd.VrCredito, cd.IdTercero, cd.IdVehiculo, cd.IdCCosto,cd.IdSubCos, cd.VrBase , cd.TarifaBase, @TipDoc, @Numero, @Cia, cd.CodConce, cd.NitDoc, cd.TipFac, cd.Factura, cd.IdCiaFac, cd.ItemFac, cd.FecVence, cd.CodCta, cd.NumCheque, cd.Integrado, cd.TipoAplica, cd.Consolida, cd.CodCargo, cd.NitOtros, cd.CodSubgpo, cd.CiuOrigen, cd.CodAgncia, cd.VehPropio, cd.Referncia, cd.TipDocRef, cd.DocRef, cd.IdCiaRef, cd.TimeSys, cd.FecUpdate, cd.IdCiaCrea, cd.IdUsuario, cd.CdConcTrib, cd.CdTarifTrib, cd.NumEstablec, cd.PtoEmision, cd.Num_Autoriza, cd.FechAutoriza,cd.CdCuentaNiif FROM @Trn_ComDetalle cd END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDoc, @Numero, @Cia, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'a') begin update Trn_TraEspCausacion set Anulado = '1', FecUpdate = GETDATE() from Trn_TraEspCausacion t1, @Trn_TraEspCausacion t2 where t1.TipDoc = t2.TipDoc and t1.Causacion = t2.Causacion and t1.IdCia = t2.IdCia select @Numero = (select Causacion from @Trn_TraEspCausacion) end if(@operacion = 's') begin update Trn_TraEspCauDetalle set VrAbonado = (t2.VrDebito + t2.VrCredito), EstadoReg = 1, TipoLiq = t2.TipDoc, NumLiquida = t2.Causacion, CiaLiquida = t2.IdCia from Trn_TraEspCauDetalle t1, @Trn_TraEspCauDetalle t2 where t1.TipDoc = t2.TipDoc and t1.Causacion = t2.Causacion and t1.IdCia = t2.IdCia and t1.Item = t2.Item select @Numero = (select top 1 Causacion from @Trn_TraEspCauDetalle) 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_TraEspOrdenPago] Script Date: 30/06/2020 14:36: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) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_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 ) 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 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 ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, 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