/****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspReservas] Script Date: 30/06/2021 7:56:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[paWcfSeInsTrn_TraEspReservas]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspReservas] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] Script Date: 30/06/2021 7:56:07 ******/ 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_TraEspDevOdpGIE] Script Date: 30/06/2021 7:56:07 ******/ 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: UserDefinedTableType [dbo].[dataTypeTrn_TraEspReservas] Script Date: 30/06/2021 7:56:07 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_TraEspReservas' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_TraEspReservas] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_TraEspResDetalle] Script Date: 30/06/2021 7:56:07 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_TraEspResDetalle' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_TraEspResDetalle] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_TraEspResAnexo] Script Date: 30/06/2021 7:56:07 ******/ IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'dataTypeTrn_TraEspResAnexo' AND ss.name = N'dbo') DROP TYPE [dbo].[dataTypeTrn_TraEspResAnexo] GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_TraEspResAnexo] Script Date: 30/06/2021 7:56:07 ******/ CREATE TYPE [dbo].[dataTypeTrn_TraEspResAnexo] AS TABLE( [TipDoc] [varchar](3) NULL, [Reserva] [int] NULL, [IdCia] [char](2) NULL, [NomCliente] [varchar](250) NULL, [TelCliente] [varchar](100) NULL, [emlCliente] [varchar](150) NULL, [DireccionCli] [varchar](100) NULL, [Observacion] [varchar](1000) NULL, [NombArchivo] [varchar](100) NULL, [DescripCarga] [varchar](250) NULL, [Clausulas] [varchar](2500) NULL, [Responsable] [varchar](100) NULL ) GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_TraEspResDetalle] Script Date: 30/06/2021 7:56:07 ******/ CREATE TYPE [dbo].[dataTypeTrn_TraEspResDetalle] AS TABLE( [TipDoc] [varchar](3) NULL, [Reserva] [int] NULL, [IdCia] [char](2) NULL, [Item] [int] NULL, [ItemCnt] [int] NULL, [IdVehiculo] [varchar](10) NULL, [CdTipVeh] [varchar](4) NULL, [IdConductor] [varchar](16) NULL, [IdRuta] [varchar](4) NULL, [CdTipRuta] [varchar](15) NULL, [NumPasajeros] [int] NULL, [PesoNeto] [decimal](12, 4) NULL, [VrCobro] [money] NULL, [VrPagos] [money] NULL, [Referencia1] [varchar](50) NULL, [Referencia2] [varchar](50) NULL, [Referencia3] [varchar](50) NULL, [EsRutaCliente] [bit] NULL, [CdCiuOrigen] [varchar](8) NULL, [DirOrigen] [varchar](max) NULL, [FecOrigen] [datetime] NULL, [CdCiuDestino] [varchar](8) NULL, [DirDestino] [varchar](max) NULL, [FecDestino] [datetime] NULL, [DiasDisp] [int] NULL, [VrDia] [money] NULL, [Parada] [varchar](10) NULL, [CdTipServicio] [varchar](20) NULL, [EstadoItem] [varchar](20) NULL, [VrMonitor] [decimal](14, 4) NULL, [CantMonitor] [int] NULL, [VrRecorrido] [decimal](14, 4) NULL, [NumDias] [int] NULL, [TipoTarifa] [varchar](10) NULL, [IdColegio] [varchar](4) NULL, [TipFac] [varchar](3) NULL, [Factura] [int] NULL, [IdCiaFac] [char](2) NULL, [FechaFac] [smalldatetime] NULL, [TipCum] [varchar](3) NULL, [Cumplido] [int] NULL, [IdCiaCum] [char](2) NULL, [FechaCum] [smalldatetime] NULL, [Codigo] [varchar](3) NULL, [Itinerario] [varchar](1000) NULL, [VLargo] [bit] NULL, [IdOtroSi] [int] NULL, [EsItemPME] [bit] NULL ) GO /****** Object: UserDefinedTableType [dbo].[dataTypeTrn_TraEspReservas] Script Date: 30/06/2021 7:56:07 ******/ CREATE TYPE [dbo].[dataTypeTrn_TraEspReservas] AS TABLE( [TipDoc] [varchar](3) NULL DEFAULT ('RES'), [Reserva] [int] NULL DEFAULT ((0)), [IdCia] [char](2) NULL DEFAULT ('01'), [Fecha] [datetime] NULL, [FechaInicio] [datetime] NULL, [FechaFin] [datetime] NULL, [TipDocCnt] [varchar](3) NULL, [Contrato] [int] NULL, [IdCiaCnt] [char](2) NULL, [EstadoRes] [varchar](20) NULL, [IdCliente] [varchar](16) NULL, [IdAgencia] [varchar](16) NULL DEFAULT ('0'), [IdMneda] [varchar](5) NULL DEFAULT ('COP'), [CdCarga] [varchar](15) NULL, [Modalidad] [varchar](10) NULL, [TipoLiquid] [varchar](8) NULL, [TipFac] [varchar](3) NULL, [Factura] [int] NULL DEFAULT ((0)), [IdCiaFac] [char](2) NULL DEFAULT ('00'), [FechaFac] [smalldatetime] NULL, [TipFuec] [varchar](3) NULL, [NumFuec] [int] NULL DEFAULT ((0)), [IdCiaFuec] [char](2) NULL DEFAULT ('00'), [VrCobro] [money] NULL DEFAULT ((0)), [VrPagos] [money] NULL DEFAULT ((0)), [OrigenAdd] [varchar](10) NULL, [Anulado] [bit] NULL DEFAULT ((0)), [FecDev] [smalldatetime] NULL, [IdEstado] [varchar](4) NULL, [TimeSys] [smalldatetime] NULL, [FecUpdate] [smalldatetime] NULL, [IdCiaCrea] [char](2) NULL DEFAULT ('01'), [IdUsuario] [varchar](11) NULL, [IdGrupo] [varchar](4) NULL, [IdRutaG] [varchar](4) NULL, [NoRequiereGIE] [bit] NULL DEFAULT ((0)) ) GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] Script Date: 30/06/2021 7:56:09 ******/ 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 ) 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 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_TraEspOrdenPagoGIE] Script Date: 30/06/2021 7:56:09 ******/ 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 ) 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 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 /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspReservas] Script Date: 30/06/2021 7:56:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Joe Alexander Núñez Yaguna -- Create date(dd/MM/yyy): 21/10/2016 -- Description: Insertar CRUD Rerservas. --Se actualiza procedimiento para agregar campo de reservas NoRequiereGIE 24/06/2021 -- ============================================= CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspReservas] @Trn_TraEspReservas dataTypeTrn_TraEspReservas READONLY,--Tipo de dato definido por el usuario que representa la tabla Trn_TraEspReservas @Trn_TraEspResAnexo dataTypeTrn_TraEspResAnexo READONLY,--Tipo de dato definido por el usuario que representa la tabla Trn_TraEspEspAnexo @Trn_TraEspResDetalle dataTypeTrn_TraEspResDetalle READONLY,--Tipo de dato definido por el usuario que representa la tabla Trn_TraEspEspDetalle @operacion varchar(1) AS DECLARE @Documento INT --Esta variable guarda el número de consecutivo del Reserva/Cotización DECLARE @TipDoc VARCHAR(3) --Esta variable guarda el tipo de documento del Reserva/Cotización DECLARE @IdCia VARCHAR(4) --Esta variable guarda la compañia del Reserva/Cotización declare @item int declare @vranterior money DECLARE @Detalle dataTypeTrn_TraEspResDetalle --Tipo de dato definido por el usuario que representa la tabla Trn_TraEspEspDetalle BEGIN TRAN BEGIN TRY --Seleccionar Variables IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia FROM @Trn_TraEspReservas SELECT @Documento = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @IdCia IF(@Documento <> '') UPDATE TiposDocCons SET Numero = @Documento WHERE IdDoc = @TipDoc and IdCia = @IdCia ELSE BEGIN SELECT @Documento = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@IdCia,0,0,0,0,NULL,'',@Documento,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END end --UPDATE SI-EXISTE RECORDS IF(@operacion = 'u') BEGIN SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Reserva FROM @Trn_TraEspResDetalle --captura el valor de cobro para ver si cambia o no cambia para actualizarlo en el contrato select @vranterior = VrCobro from Trn_TraEspReservas where TipDoc = (select TipDoc from @Trn_TraEspReservas) and IdCia = (select IdCia from @Trn_TraEspReservas) and Reserva = (select Reserva from @Trn_TraEspReservas) INSERT INTO @Detalle( TipDoc,Reserva,IdCia,Item,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia, Parada,CdTipServicio,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac, TipCum,Cumplido,IdCiaCum,FechaCum,Codigo,Itinerario,VLargo,IdOtroSi,EsItemPME) SELECT TipDoc,Reserva,IdCia,Item,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia, Parada,CdTipServicio,EstadoItem,VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac, TipCum,Cumplido,IdCiaCum,FechaCum,Codigo,Itinerario,VLargo,IdOtroSi,EsItemPME FROM Trn_TraEspResDetalle WHERE TipDoc = @TipDoc and Reserva = @Documento and IdCia = @IdCia if(EXISTS(SELECT * FROM @Trn_TraEspReservas)) begin UPDATE Trn_TraEspReservas SET TipDoc = t2.TipDoc,Reserva = t2.Reserva,IdCia = t2.IdCia,Fecha = t2.Fecha,FechaInicio = t2.FechaInicio,FechaFin = t2.FechaFin, TipDocCnt = t2.TipDocCnt,Contrato = t2.Contrato,IdCiaCnt = t2.IdCiaCnt,EstadoRes = t2.EstadoRes,IdCliente = t2.IdCliente, IdAgencia = t2.IdAgencia,IdMneda = t2.IdMneda,CdCarga = t2.CdCarga,Modalidad = t2.Modalidad,TipoLiquid = t2.TipoLiquid, TipFac = t2.TipFac,Factura = t2.Factura,IdCiaFac = t2.IdCiaFac,FechaFac = t2.FechaFac, TipFuec = t2.TipFuec,NumFuec = t2.NumFuec,IdCiaFuec = t2.IdCiaFuec, VrCobro = t2.VrCobro,VrPagos = t2.VrPagos,OrigenAdd = t2.OrigenAdd,Anulado = t2.Anulado,FecDev = t2.FecDev, IdEstado = t2.IdEstado,TimeSys = t2.TimeSys,FecUpdate = t2.FecUpdate,IdCiaCrea = t2.IdCiaCrea,IdUsuario = t2.IdUsuario, IdGrupo = t2.IdGrupo, IdRutaG = t2.IdRutaG, NoRequiereGIE = t2.NoRequiereGIE FROM Trn_TraEspReservas t1 JOIN @Trn_TraEspReservas t2 ON t1.TipDoc = t2.TipDoc and t1.Reserva = t2.Reserva and t1.IdCia = t2.IdCia end if(EXISTS(SELECT * FROM @Trn_TraEspResAnexo)) begin UPDATE Trn_TraEspResAnexo SET TipDoc = t2.TipDoc,Reserva = t2.Reserva,IdCia = t2.IdCia,NomCliente = t2.NomCliente,TelCliente = t2.TelCliente, emlCliente = t2.emlCliente,DireccionCli = t2.DireccionCli,Observacion = t2.Observacion,NombArchivo = t2.NombArchivo, DescripCarga = t2.DescripCarga,Clausulas = t2.Clausulas,Responsable = t2.Responsable FROM Trn_TraEspResAnexo t1 JOIN @Trn_TraEspResAnexo t2 ON t1.TipDoc = t2.TipDoc and t1.Reserva = t2.Reserva and t1.IdCia = t2.IdCia end if(EXISTS(SELECT * FROM @Trn_TraEspResDetalle)) begin select @item = isnull(MAX(Item),0) from Trn_TraEspResDetalle where TipDoc = @TipDoc and Reserva = @Documento and IdCia = @IdCia --actualizar los que vienen en el tipo de datos y coincida con los que estan en la tabla UPDATE Trn_TraEspResDetalle SET TipDoc = t2.TipDoc,Reserva = t2.Reserva,IdCia = t2.IdCia,Item = t2.Item,ItemCnt = t2.ItemCnt,IdVehiculo = t2.IdVehiculo, CdTipVeh = t2.CdTipVeh,IdConductor = t2.IdConductor,IdRuta = t2.IdRuta,CdTipRuta = t2.CdTipRuta,NumPasajeros = t2.NumPasajeros, PesoNeto = t2.PesoNeto,VrCobro = t2.VrCobro,VrPagos = t2.VrPagos,Referencia1 = t2.Referencia1,Referencia2 = t2.Referencia2, Referencia3 = t2.Referencia3,EsRutaCliente = t2.EsRutaCliente,CdCiuOrigen = t2.CdCiuOrigen,DirOrigen = t2.DirOrigen, FecOrigen = t2.FecOrigen,CdCiuDestino = t2.CdCiuDestino,DirDestino = t2.DirDestino,FecDestino = t2.FecDestino,DiasDisp = t2.DiasDisp, VrDia = t2.VrDia,Parada = t2.Parada,CdTipServicio = t2.CdTipServicio,EstadoItem = t2.EstadoItem,VrMonitor = t2.VrMonitor,CantMonitor = t2.CantMonitor, VrRecorrido = t2.VrRecorrido,NumDias=t2.NumDias,TipoTarifa=t2.TipoTarifa,IdColegio = t2.IdColegio, TipFac = t2.TipFac,Factura = t2.Factura,IdCiaFac = t2.IdCiaFac,FechaFac = t2.FechaFac, TipCum = t2.TipCum,Cumplido = t2.Cumplido,IdCiaCum = t2.IdCiaCum,FechaCum = t2.FechaCum,Codigo=t2.Codigo, Itinerario=t2.Itinerario,VLargo = t2.VLargo, IdOtroSi = t2.IdOtroSi, EsItemPME = t2.EsItemPME FROM Trn_TraEspResDetalle t1 JOIN @Trn_TraEspResDetalle t2 ON t1.TipDoc = t2.TipDoc and t1.Reserva = t2.Reserva and t1.IdCia = t2.IdCia and t1.Item = t2.Item WHERE t1.TipDoc = t2.TipDoc and t1.Reserva = t2.Reserva and t1.IdCia = t2.IdCia and t1.Item = t2.Item --Inserta los que no existen INSERT INTO Trn_TraEspResDetalle( TipDoc,Reserva,IdCia,Item,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia,Parada,CdTipServicio,EstadoItem, VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac,TipCum,Cumplido,IdCiaCum,FechaCum,Codigo,Itinerario,VLargo, IdOtroSi,EsItemPME ) SELECT @TipDoc,@Documento,@IdCia,(@Item + ROW_NUMBER() OVER(ORDER BY Item ASC)) ,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia,Parada,CdTipServicio,EstadoItem ,VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac,TipCum,Cumplido,IdCiaCum,FechaCum,isnull(Codigo,null), Itinerario,VLargo,IdOtroSi,EsItemPME FROM @Trn_TraEspResDetalle WHERE (TipDoc + Convert(varchar,Reserva)+IdCia+Convert(varchar,Item)) NOT IN(SELECT(TipDoc + Convert(varchar,Reserva)+IdCia+Convert(varchar,Item)) FROM Trn_TraEspResDetalle) --Eliminar los que no existen en el tipo de dato delete from Trn_TraEspResDetalle WHERE TipDoc = @TipDoc and Reserva = @Documento and IdCia = @IdCia and Item NOT IN(SELECT Item FROM @Trn_TraEspResDetalle) end END --INSERT NO-EXISTE RECORDS IF(@operacion = 'i') BEGIN IF(EXISTS(SELECT * FROM @Trn_TraEspReservas)) begin INSERT INTO Trn_TraEspReservas( TipDoc,Reserva,IdCia,Fecha,FechaInicio,FechaFin,TipDocCnt,Contrato,IdCiaCnt,EstadoRes,IdCliente,IdAgencia,IdMneda,CdCarga,Modalidad,TipoLiquid, TipFac,Factura,IdCiaFac,FechaFac,TipFuec,NumFuec,IdCiaFuec,VrCobro,VrPagos,OrigenAdd,Anulado,FecDev,IdEstado, TimeSys,FecUpdate,IdCiaCrea,IdUsuario,IdGrupo,IdRutaG,NoRequiereGIE ) SELECT @TipDoc,@Documento,@IdCia,Fecha,FechaInicio,FechaFin,TipDocCnt,Contrato,IdCiaCnt,EstadoRes,IdCliente,IdAgencia,IdMneda,CdCarga,Modalidad,TipoLiquid, TipFac,Factura,IdCiaFac,FechaFac,TipFuec,NumFuec,IdCiaFuec,VrCobro,VrPagos,OrigenAdd,Anulado,FecDev,IdEstado, TimeSys,FecUpdate,IdCiaCrea,IdUsuario,IdGrupo,IdRutaG,NoRequiereGIE FROM @Trn_TraEspReservas end IF(EXISTS(SELECT * FROM @Trn_TraEspResAnexo)) begin INSERT INTO Trn_TraEspResAnexo( TipDoc,Reserva,IdCia,NomCliente,TelCliente,emlCliente,DireccionCli,Observacion, NombArchivo,DescripCarga,Clausulas,Responsable ) SELECT @TipDoc,@Documento,@IdCia,NomCliente,TelCliente,emlCliente,DireccionCli,Observacion, NombArchivo,DescripCarga,Clausulas,Responsable FROM @Trn_TraEspResAnexo end IF(EXISTS(SELECT * FROM @Trn_TraEspResDetalle)) begin INSERT INTO Trn_TraEspResDetalle( TipDoc,Reserva,IdCia,Item,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia,Parada,CdTipServicio,EstadoItem, VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac,TipCum,Cumplido,IdCiaCum,FechaCum,Codigo,Itinerario,VLargo, IdOtroSi,EsItemPME ) SELECT @TipDoc,@Documento,@IdCia,Item,ItemCnt,IdVehiculo,CdTipVeh,IdConductor,IdRuta,CdTipRuta,NumPasajeros,PesoNeto,VrCobro,VrPagos,Referencia1, Referencia2,Referencia3,EsRutaCliente,CdCiuOrigen,DirOrigen,FecOrigen,CdCiuDestino,DirDestino,FecDestino,DiasDisp,VrDia,Parada,CdTipServicio,EstadoItem, VrMonitor,CantMonitor,VrRecorrido,NumDias,TipoTarifa,IdColegio,TipFac,Factura,IdCiaFac,FechaFac,TipCum,Cumplido,IdCiaCum,FechaCum,isnull(Codigo, null), Itinerario,VLargo,IdOtroSi,EsItemPME FROM @Trn_TraEspResDetalle end END --DELETE RECORDS IF(@operacion = 'd') BEGIN declare @Reserva int select @TipDoc = TipDoc, @IdCia = IdCia, @Reserva = Reserva from @Trn_TraEspReservas DELETE FROM Trn_TraEspResDetalle WHERE TipDoc = @TipDoc and Reserva = @Reserva and IdCia = @IdCia DELETE FROM Trn_TraEspResAnexo WHERE TipDoc = @TipDoc and Reserva = @Reserva and IdCia = @IdCia DELETE FROM Trn_TraEspReservas WHERE TipDoc = @TipDoc and Reserva = @Reserva and IdCia = @IdCia END --ANULAR RECORDS IF(@operacion = 'a') BEGIN declare @FecDev smalldatetime select @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Reserva, @FecDev = FecDev from @Trn_TraEspReservas UPDATE Trn_TraEspReservas SET IdEstado = '9999',Anulado = '1', FecDev = @FecDev WHERE TipDoc = @TipDoc and Reserva = @Documento and IdCia = @IdCia UPDATE Trn_TraEspContratoDet SET TipRes = 'RES', NumRes = 0, IdCiaRes = '00',ItemRes = 0 FROM Trn_TraEspContratoDet cd WHERE cd.TipRes = @TipDoc and cd.NumRes = @Documento and cd.IdCiaRes = @IdCia --actualizar el valor de presupuesto del contrato cuando se anula una reserva UPDATE Trn_TraEspContratos SET VrSaldoPresup = p.VrSaldoPresup + r.VrCobro FROM Trn_TraEspContratos p JOIN Trn_TraEspReservas r on r.TipDoc = @TipDoc and r.Reserva = @Documento and r.IdCia = @IdCia WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt UPDATE Trn_TraEspContratos SET IdEstado = '0001' FROM Trn_TraEspContratos p JOIN Trn_TraEspReservas r on r.TipDoc = @TipDoc and r.Reserva = @Documento and r.IdCia = @IdCia WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt and p.VrSaldoPresup > 0 and p.IdEstado = '9998' ------------------------------------ END --ACTUALIZAR DETALLES DE CONTRATOS IF(@operacion = 'i') BEGIN UPDATE Trn_TraEspContratoDet SET TipRes = @TipDoc, NumRes = @Documento, IdCiaRes = @IdCia,ItemRes = d.Item FROM Trn_TraEspContratoDet cd, @Trn_TraEspResDetalle d, @Trn_TraEspReservas r WHERE cd.TipDoc = r.TipDocCnt and cd.Contrato = r.Contrato and cd.IdCia = r.IdCiaCnt and cd.Item = d.ItemCnt --actualizar el valor de presupuestro del contrato, luego de insertar una reserva UPDATE Trn_TraEspContratos SET VrSaldoPresup = p.VrSaldoPresup - r.VrCobro FROM Trn_TraEspContratos p, @Trn_TraEspReservas r WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt UPDATE Trn_TraEspContratos SET IdEstado = '9998' FROM Trn_TraEspContratos p, @Trn_TraEspReservas r WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt and p.VrSaldoPresup = 0 ---------------------------------------- END IF(@operacion = 'u') BEGIN --actualiza los items de un contrato con los que se relacionan en el tipo de datos nuevo UPDATE Trn_TraEspContratoDet SET TipRes = 'RES', NumRes = 0, IdCiaRes = '00',ItemRes = 0 FROM Trn_TraEspContratoDet cd, @Detalle d, @Trn_TraEspReservas r WHERE cd.TipDoc = r.TipDocCnt and cd.Contrato = r.Contrato and cd.IdCia = r.IdCiaCnt and cd.Item = d.ItemCnt UPDATE Trn_TraEspContratoDet SET TipRes = @TipDoc, NumRes = @Documento, IdCiaRes = @IdCia,ItemRes = d.Item FROM Trn_TraEspContratoDet cd, @Trn_TraEspResDetalle d, @Trn_TraEspReservas r WHERE cd.TipDoc = r.TipDocCnt and cd.Contrato = r.Contrato and cd.IdCia = r.IdCiaCnt and cd.Item = d.ItemCnt --actualizar el valor de presupuestro del contrato if(@vranterior <> (select VrCobro from @Trn_TraEspReservas)) begin UPDATE Trn_TraEspContratos SET VrSaldoPresup = (p.VrSaldoPresup + @vranterior) - r.VrCobro FROM Trn_TraEspContratos p, @Trn_TraEspReservas r WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt end UPDATE Trn_TraEspContratos SET IdEstado = '9998' FROM Trn_TraEspContratos p, @Trn_TraEspReservas r WHERE p.TipDoc = r.TipDocCnt and p.Contrato = r.Contrato and p.IdCia = r.IdCiaCnt and p.VrSaldoPresup = 0 END SELECT @Documento 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