GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvFuec] Script Date: 23/08/2024 10:30:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsMsvFuec] -- @Trn_TraEspFuec [dbo].[dataTypeTrn_TraEspFuec] READONLY, @Trn_TraEspFuecDetalle [dbo].[dataTypeTrn_TraEspFuecDetalle] READONLY, @Trn_TraEspFuecAnexo [dbo].[dataTypeTrn_TraEspFuecAnexo] READONLY, @Trn_TraEspFuecCndtores [dbo].[dataTypeTrn_TraEspFuecCndtores] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Documento INT --Esta variable guarda el número de consecutivo del Fuec DECLARE @TipDoc VARCHAR(3) --Esta variable guarda el tipo de documento del Fuec DECLARE @IdCia VARCHAR(4) --Esta variable guarda la compañia del Fuec --declare @item int BEGIN TRAN BEGIN TRY CREATE TABLE #LogFuecDetalle( TipDocFuec varchar(3) NOT NULL, Fuec int NOT NULL, IdCiaFuec char(2) NOT NULL, IdVehiculo varchar(10) NOT NULL, TipDocRes varchar(3) NOT NULL, Reservas int NOT NULL, IdCiaRes char(2) NOT NULL, ItemRes int NOT NULL ) --declare @NumProc int = 1 declare @TipDocu varchar(3) declare @Fuec INT declare @CiaFuec varchar(2) declare @IdVehiculo varchar(10) declare @TipDocRes varchar(3) declare @Reservas int declare @IdCiaRes char(2) declare @ItemRes int --esta variable para ir asignando el consecutivo fuec declare @Resolucion varchar(30) declare @ConsecutivoFUEC int = 0 declare @_TipDocCOE varchar(3) ='COE' declare @_COE INT = 0 declare @_CiaCOE char(2) ='00' declare @TipDocCOE varchar(3) declare @COE INT declare @CiaCOE char(2) declare @TipDocPgr varchar(3) declare @NumPgr INT declare @IdCiaPgr char(2) declare @ItemPgr INT -- --DECLARE fueccursor CURSOR --FOR SELECT TipDoc,Fuec,IdCia,IdVehiculo,TipDocCnt,Contrato,CiaCnt,TipDocPgr,NumPgr,IdCiaPgr,ItemPgr FROM @Trn_TraEspFuec order by TipDocCnt, Contrato, CiaCnt --OPEN fueccursor --FETCH NEXT FROM fueccursor INTO @TipDocu,@Fuec,@CiaFuec,@IdVehiculo,@TipDocCOE,@COE,@CiaCOE,@TipDocPgr,@NumPgr,@IdCiaPgr,@ItemPgr --WHILE @@FETCH_STATUS = 0 --BEGIN -- --Seleccionar Variables -- IF(@operacion = 'i') -- BEGIN -- SELECT TOP 1 @TipDoc = @TipDocu, @IdCia = @CiaFuec -- SELECT @Documento = (Numero + 1 ), @Resolucion = Resolucion 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 -- --INSERT NO-EXISTE RECORDS -- IF(@operacion = 'i') -- BEGIN -- --Para asignar el númro de consecutivo -- if((@_TipDocCOE = @TipDocCOE) AND (@_COE = @COE) AND (@_CiaCOE = @CiaCOE)) -- begin -- SET @ConsecutivoFUEC = @ConsecutivoFUEC + 1; -- end -- ELSE -- BEGIN -- set @ConsecutivoFUEC = 0 -- SELECT Top 1 @ConsecutivoFUEC = (ISNULL(MAX(Consecutivo), 0) + 1), @_TipDocCOE = TipDocCnt, @_COE = Contrato, @_CiaCOE = CiaCnt FROM Trn_TraEspFuec where ((TipDocCnt + CONVERT(varchar, Contrato) + CiaCnt)IN(@TipDocCOE + CONVERT(varchar, @COE) + @CiaCOE)) group by Consecutivo, TipDocCnt, Contrato, CiaCnt order by Consecutivo desc -- IF(@ConsecutivoFUEC = 0) -- BEGIN -- SET @ConsecutivoFUEC = 1 -- END -- IF(@ConsecutivoFUEC = 1) -- BEGIN -- SET @_TipDocCOE = @TipDocCOE -- SET @_COE = @COE -- SET @_CiaCOE = @CiaCOE -- END -- END -- IF(EXISTS(SELECT * FROM @Trn_TraEspFuec)) -- begin -- --this.txtvNumResolucion.Text + Convert.ToDateTime(this.msktxtFecFUECTES.Text).Year.ToString() + this.txtvNumCOE.Text.PadLeft(4, '0') + Fuec.Fuec.Consecutivo.ToString().PadLeft(4, '0'); -- INSERT INTO Trn_TraEspFuec( -- TipDoc, Fuec, IdCia, Numero, Fecha, FechaInicio, FechaFin, CdCarga, IdVehiculo, IdConductor, IdConductor2, IdConductor3, IdPoseedor, -- IdRuta, CdTipRuta, IdOrigen, IdDestino, Modalidad, CantPasajeros, CodTarRet,CodTarIca, VrPresupuesto, VrCobro, VrPagos, VrCargos, VrDctos, -- VrIva, VrRetencion, VrReteIca, Cantidad, Peso, TipDocPgr, NumPgr, IdCiaPgr, ItemPgr, TipDocCnt, Contrato, CiaCnt, OrigenAdd, Anulado, FecDev, -- IdEstado,TimeSys, FecUpdate, IdCiaCrea, IdUsuario, Consecutivo, Itinerario, FuecParcial, ComenParcial -- ) -- SELECT -- @TipDoc,@Documento,@IdCia,SUBSTRING(convert(varchar, (@Resolucion + convert(varchar, DATEPART(YEAR, Fecha)) + (right(('0000' + convert(varchar, Contrato)), 4)) + (right(('0000' + convert(varchar, @ConsecutivoFUEC)), 4)))), 1, 21), Fecha, FechaInicio, FechaFin, CdCarga, IdVehiculo, IdConductor, IdConductor2, IdConductor3, IdPoseedor, -- IdRuta, CdTipRuta, IdOrigen, IdDestino, Modalidad, CantPasajeros, CodTarRet,CodTarIca, VrPresupuesto, VrCobro, VrPagos, VrCargos, VrDctos, -- VrIva, VrRetencion, VrReteIca, Cantidad, Peso, TipDocPgr, NumPgr, IdCiaPgr, ItemPgr, TipDocCnt, Contrato, CiaCnt, OrigenAdd, Anulado, FecDev, -- IdEstado,TimeSys, FecUpdate, IdCiaCrea, IdUsuario, @ConsecutivoFUEC, Itinerario, FuecParcial, ComenParcial -- FROM @Trn_TraEspFuec f WHERE f.TipDoc= @TipDocu and f.Fuec = @Fuec and f.IdCia = @CiaFuec -- end -- IF(EXISTS(SELECT * FROM @Trn_TraEspFuecDetalle)) -- begin -- select @TipDocRes = TipRes, @Reservas = Reserva, @IdCiaRes = IdCiaRes, @ItemRes = ItemRes FROM @Trn_TraEspFuecDetalle df WHERE df.TipDoc = @TipDocu and df.Fuec = @Fuec and df.IdCia = @CiaFuec -- INSERT INTO Trn_TraEspFuecDetalle( -- TipDoc, Fuec, IdCia, Item, TipRes, Reserva, IdCiaRes, ItemRes, NumPasajeros, PesoNeto, VrCobro, VrPagos, Referencia1, Referencia2, Referencia3, -- CdTipServicio, EsRutaCliente, Kilometros, DirOrigen, FecOrigen, DirDestino, FecDestino -- ) -- SELECT -- @TipDoc,@Documento,@IdCia,Item, TipRes, Reserva, IdCiaRes, ItemRes, NumPasajeros, PesoNeto, VrCobro, VrPagos, Referencia1, Referencia2, Referencia3, -- CdTipServicio, EsRutaCliente, Kilometros, DirOrigen, FecOrigen, DirDestino, FecDestino -- FROM @Trn_TraEspFuecDetalle df WHERE df.TipDoc = @TipDocu and df.Fuec = @Fuec and df.IdCia = @CiaFuec -- end -- IF(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) -- begin -- INSERT INTO Trn_TraEspFuecAnexo( -- TipDoc, Fuec, IdCia, TipContrato, IdContrato, ObjContrato, DescripCarga, Observacion, RespViaje, VehConvenio, EmpresaVehCon -- ) -- SELECT -- @TipDoc,@Documento,@IdCia,TipContrato, IdContrato, ObjContrato, DescripCarga, Observacion, RespViaje, VehConvenio, EmpresaVehCon -- FROM @Trn_TraEspFuecAnexo df WHERE df.TipDoc = @TipDocu and df.Fuec = @Fuec and df.IdCia = @CiaFuec -- end -- IF(EXISTS(SELECT * FROM @Trn_TraEspFuecCndtores)) -- begin -- INSERT INTO Trn_TraEspFuecCndtores( -- TipDoc, Fuec, IdCia, Item, IdConductor) -- SELECT -- @TipDoc,@Documento,@IdCia,Item, IdConductor -- FROM @Trn_TraEspFuecCndtores df WHERE df.TipDoc = @TipDocu and df.Fuec = @Fuec and df.IdCia = @CiaFuec -- end -- --ACTUALIZAR PORGRAMACIONES -- UPDATE Trn_TraEspProgramaDet -- SET TipDocFuec = @TipDoc,NumFuec = @Documento, IdCiaFuec = @CiaFuec -- FROM Trn_TraEspProgramaDet -- --@Trn_TraEspFuecDetalle t3 -- WHERE TipDoc = 'PGR' and Programa = @NumPgr and IdCia = @IdCiaPgr and Item = @ItemPgr; -- INSERT INTO #LogFuecDetalle(TipDocFuec,Fuec,IdCiaFuec,IdVehiculo,TipDocRes,Reservas,IdCiaRes,ItemRes) -- select @TipDocu,@Fuec,@CiaFuec,@IdVehiculo,@TipDocRes,@Reservas,@IdCiaRes,@ItemRes -- END --FETCH NEXT FROM fueccursor INTO @TipDocu,@Fuec,@CiaFuec,@IdVehiculo,@TipDocCOE,@COE,@CiaCOE,@TipDocPgr,@NumPgr,@IdCiaPgr,@ItemPgr --END --CLOSE fueccursor --DEALLOCATE fueccursor SELECT * FROM #LogFuecDetalle --SELECT * FROM #LogProgDetalle --select @NumProc 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_TraEspFuec] Script Date: 23/08/2024 9:53:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsTrn_TraEspFuec] -- @Trn_TraEspFuec [dbo].[dataTypeTrn_TraEspFuec] READONLY, @Trn_TraEspFuecAnexo [dbo].[dataTypeTrn_TraEspFuecAnexo] READONLY, @Trn_TraEspFuecDetalle [dbo].[dataTypeTrn_TraEspFuecDetalle] READONLY, @Trn_TraEspFuecCndtores [dbo].[dataTypeTrn_TraEspFuecCndtores] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Documento INT --Esta variable guarda el número de consecutivo del Fuec DECLARE @TipDoc VARCHAR(3) --Esta variable guarda el tipo de documento del Fuec DECLARE @IdCia VARCHAR(4) --Esta variable guarda la compañia del Fuec declare @item int declare @consecutivo int = 0 declare @numcontrato int declare @idciacnt varchar(4) BEGIN TRAN BEGIN TRY --Seleccionar Variables IF(@operacion = 'i') begin --SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia,@idciacnt = CiaCnt, @numcontrato = Contrato --FROM @Trn_TraEspFuec SELECT @Documento = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @IdCia select @consecutivo = (ISNULL(MAX(Consecutivo),0) + 1) from Trn_TraEspFuec where TipDocCnt = 'COE' and Contrato = @numcontrato AND CiaCnt = @idciacnt IF(@Documento <> '' OR @Documento is not null) 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 --Seleccionar Variables --IF(@operacion = 'u') --begin -- SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuec --end --UPDATE SI-EXISTE RECORDS IF(@operacion = 'u') BEGIN --if(EXISTS(SELECT * FROM @Trn_TraEspFuec)) --begin -- UPDATE Trn_TraEspFuec -- SET -- TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, -- Numero = t2.Numero, Fecha = t2.Fecha, FechaInicio = t2.FechaInicio, -- FechaFin = t2.FechaFin, CdCarga = t2.CdCarga, IdVehiculo = t2.IdVehiculo, -- IdConductor = t2.IdConductor, IdConductor2 = t2.IdConductor2, IdConductor3 = t2.IdConductor3, -- IdPoseedor = t2.IdPoseedor, IdRuta = t2.IdRuta, -- CdTipRuta = t2.CdTipRuta, IdOrigen = t2.IdOrigen, IdDestino = t2.IdDestino, -- Modalidad = t2.Modalidad, CantPasajeros = t2.CantPasajeros, CodTarRet = t2.CodTarRet, -- CodTarIca = t2.CodTarIca, VrPresupuesto = t2.VrPresupuesto, VrCobro = t2.VrCobro, -- VrPagos = t2.VrPagos, VrCargos = t2.VrCargos, VrDctos = t2.VrDctos, -- VrIva = t2.VrIva, VrRetencion = t2.VrRetencion, VrReteIca = t2.VrReteIca, -- Cantidad = t2.Cantidad, Peso = t2.Peso, TipDocPgr = t2.TipDocPgr, -- NumPgr = t2.NumPgr, IdCiaPgr = t2.IdCiaPgr, ItemPgr = t2.ItemPgr, -- TipDocCnt = t2.TipDocCnt, Contrato = t2.Contrato, CiaCnt = t2.CiaCnt, -- OrigenAdd = t2.OrigenAdd, Anulado = t2.Anulado, FecDev = t2.FecDev, -- IdEstado = t2.IdEstado, TimeSys = t2.TimeSys, FecUpdate = t2.FecUpdate, -- IdCiaCrea = t2.IdCiaCrea, IdUsuario = t2.IdUsuario, Consecutivo = t2.Consecutivo, -- Itinerario=t2.Itinerario, FuecParcial = t2.FuecParcial, ComenParcial = t2.ComenParcial, -- Qr = t2.Qr -- FROM -- Trn_TraEspFuec t1 -- JOIN -- @Trn_TraEspFuec t2 -- ON t1.TipDoc = t2.TipDoc -- and t1.Fuec = t2.Fuec -- and t1.IdCia = t2.IdCia --end if(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin UPDATE Trn_TraEspFuecAnexo SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, TipContrato = t2.TipContrato, IdContrato = t2.IdContrato, ObjContrato = t2.ObjContrato, DescripCarga = t2.DescripCarga, Observacion = t2.Observacion, RespViaje = t2.RespViaje, VehConvenio=t2.VehConvenio, EmpresaVehCon = t2.EmpresaVehCon FROM Trn_TraEspFuecAnexo t1 JOIN @Trn_TraEspFuecAnexo t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia end if(EXISTS(SELECT * FROM @Trn_TraEspFuecDetalle)) begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuecDetalle select @item = isnull(MAX(Item),0) from Trn_TraEspFuecDetalle where TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia --actualizar los que vienen en el tipo de dato y coincida con los que ya están en la tabla UPDATE Trn_TraEspFuecDetalle SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, Item = t2.Item, TipRes = t2.TipRes, Reserva = t2.Reserva, IdCiaRes = t2.IdCiaRes, ItemRes = t2.ItemRes, NumPasajeros = t2.NumPasajeros, PesoNeto = t2.PesoNeto, VrCobro = t2.VrCobro, VrPagos = t2.VrPagos, Referencia1 = t2.Referencia1, Referencia2 = t2.Referencia2, Referencia3 = t2.Referencia3, CdTipServicio = t2.CdTipServicio, EsRutaCliente = t2.EsRutaCliente, Kilometros = t2.Kilometros, DirOrigen = t2.DirOrigen, FecOrigen = t2.FecOrigen, DirDestino = t2.DirDestino, FecDestino = t2.FecDestino FROM Trn_TraEspFuecDetalle t1 JOIN @Trn_TraEspFuecDetalle t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item WHERE t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item --Inserta los que no existen INSERT INTO Trn_TraEspFuecDetalle( TipDoc,Fuec,IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino ) SELECT @TipDoc, @Documento, @IdCia, (@Item + ROW_NUMBER() OVER(ORDER BY Item ASC)),TipRes, Reserva, IdCiaRes, ItemRes, NumPasajeros, PesoNeto, VrCobro, VrPagos, Referencia1, Referencia2, Referencia3, CdTipServicio, EsRutaCliente, Kilometros, DirOrigen, FecOrigen, DirDestino, FecDestino FROM @Trn_TraEspFuecDetalle WHERE (TipDoc + Convert(varchar,Fuec) + IdCia + Convert(varchar,Item)) NOT IN(SELECT(TipDoc + Convert(varchar, Fuec) + IdCia + Convert(varchar,Item)) FROM Trn_TraEspFuecDetalle) --Eliminar los que no existen en lo que envian delete from Trn_TraEspFuecDetalle WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia and Item NOT IN(SELECT Item FROM @Trn_TraEspFuecDetalle) end if(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin UPDATE Trn_TraEspFuecAnexo SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, TipContrato = t2.TipContrato, IdContrato = t2.IdContrato, ObjContrato = t2.ObjContrato, DescripCarga = t2.DescripCarga, Observacion = t2.Observacion, RespViaje = t2.RespViaje, VehConvenio=t2.VehConvenio, EmpresaVehCon=t2.EmpresaVehCon FROM Trn_TraEspFuecAnexo t1 JOIN @Trn_TraEspFuecAnexo t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia end if(EXISTS(SELECT top 1 Fuec FROM @Trn_TraEspFuecCndtores)) begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuecCndtores select @item = isnull(MAX(Item),0) from @Trn_TraEspFuecCndtores where TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia --actualizar los que vienen en el tipo de dato y coincida con los que ya están en la tabla UPDATE Trn_TraEspFuecCndtores SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, Item = t2.Item, IdConductor = t2.IdConductor FROM Trn_TraEspFuecCndtores t1 JOIN @Trn_TraEspFuecCndtores t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item WHERE t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item --Eliminar los que no existen en lo que envian delete from Trn_TraEspFuecCndtores WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia and Item NOT IN(SELECT Item FROM @Trn_TraEspFuecCndtores) --Inserta los que no existen INSERT INTO Trn_TraEspFuecCndtores( TipDoc, Fuec, IdCia, Item, IdConductor ) SELECT @TipDoc, @Documento, @IdCia, (@item + ROW_NUMBER() OVER(ORDER BY Item ASC)), IdConductor FROM @Trn_TraEspFuecCndtores WHERE (TipDoc + Convert(varchar, Fuec) + IdCia + Convert(varchar,Item)) NOT IN(SELECT(TipDoc + Convert(varchar, Fuec) + IdCia+Convert(varchar, Item)) FROM Trn_TraEspFuecCndtores) end END --INSERT NO-EXISTE RECORDS IF(@operacion = 'i') BEGIN --IF(EXISTS(SELECT * FROM @Trn_TraEspFuec)) --begin -- INSERT INTO Trn_TraEspFuec( -- TipDoc, Fuec, IdCia, Numero, Fecha, FechaInicio, -- FechaFin, CdCarga, IdVehiculo, IdConductor, IdConductor2, IdConductor3, -- IdPoseedor, IdRuta, CdTipRuta, IdOrigen, IdDestino, Modalidad, -- CantPasajeros, CodTarRet, CodTarIca, VrPresupuesto, VrCobro, VrPagos, -- VrCargos, VrDctos, VrIva, VrRetencion, VrReteIca, Cantidad, -- Peso, TipDocPgr, NumPgr, IdCiaPgr, ItemPgr, TipDocCnt, -- Contrato, CiaCnt, OrigenAdd, Anulado, FecDev, IdEstado, -- TimeSys, FecUpdate, IdCiaCrea, IdUsuario, Consecutivo, Itinerario, -- FuecParcial, ComenParcial, Qr -- ) -- SELECT -- @TipDoc,@Documento,@IdCia,Numero,Fecha,FechaInicio, -- FechaFin,CdCarga,IdVehiculo,IdConductor,IdConductor2,IdConductor3, -- IdPoseedor,IdRuta,CdTipRuta,IdOrigen,IdDestino,Modalidad, -- CantPasajeros,CodTarRet,CodTarIca,VrPresupuesto,VrCobro,VrPagos, -- VrCargos,VrDctos,VrIva,VrRetencion,VrReteIca,Cantidad, -- Peso,TipDocPgr,NumPgr,IdCiaPgr,ItemPgr,TipDocCnt, -- Contrato,CiaCnt,OrigenAdd,Anulado,FecDev,IdEstado, -- TimeSys,FecUpdate,IdCiaCrea,IdUsuario,@consecutivo,Itinerario, -- FuecParcial,ComenParcial, Qr -- FROM -- @Trn_TraEspFuec --end IF(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin INSERT INTO Trn_TraEspFuecAnexo( TipDoc,Fuec,IdCia,TipContrato,IdContrato,ObjContrato, DescripCarga,Observacion,RespViaje,VehConvenio,EmpresaVehCon ) SELECT @TipDoc,@Documento,@IdCia,TipContrato,IdContrato,ObjContrato, DescripCarga,Observacion,RespViaje,VehConvenio,EmpresaVehCon FROM @Trn_TraEspFuecAnexo end IF(EXISTS(SELECT * FROM @Trn_TraEspFuecDetalle)) begin INSERT INTO Trn_TraEspFuecDetalle( TipDoc,Fuec,IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino ) SELECT @TipDoc,@Documento,@IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino FROM @Trn_TraEspFuecDetalle end IF(EXISTS(SELECT TOP 1 Fuec FROM @Trn_TraEspFuecCndtores)) begin INSERT INTO Trn_TraEspFuecCndtores( TipDoc,Fuec,IdCia,Item,IdConductor ) SELECT @TipDoc,@Documento,@IdCia,Item, IdConductor FROM @Trn_TraEspFuecCndtores end --Actualizar Programación-Detalles --UPDATE -- Trn_TraEspProgramaDet --SET -- TipDocFuec = @TipDoc,NumFuec = @Documento, IdCiaFuec = @IdCia --FROM -- Trn_TraEspProgramaDet t1, @Trn_TraEspFuec t2, @Trn_TraEspFuecDetalle t3 --WHERE -- t1.TipDoc = 'PGR' -- and t1.Programa = t2.NumPgr -- and t1.IdCia = t2.IdCiaPgr -- and t1.TipDocRes = t3.TipRes -- and t1.Reserva = t3.Reserva -- and t1.IdCiaRes = t3.IdCiaRes -- and t1.ItemRes = t3.ItemRes END --DELETE RECORDS IF(@operacion = 'd') BEGIN declare @Fuec int --select @TipDoc = TipDoc, @IdCia = IdCia, @Fuec = Fuec --from @Trn_TraEspFuec DELETE FROM Trn_TraEspFuecDetalle WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuecAnexo WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuec WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuecCndtores WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia END --ANULAR RECORDS IF(@operacion = 'a') BEGIN --select @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec --from @Trn_TraEspFuec UPDATE Trn_TraEspFuec SET IdEstado = '9999', Anulado = 1 WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia --UPDATE Trn_TraEspProgramaDet --SET TipDocFuec = 'FUE',NumFuec = 0, IdCiaFuec = '00' --FROM Trn_TraEspProgramaDet t1, @Trn_TraEspFuec t2 --WHERE t1.TipDocFuec = 'FUE' -- and t1.NumFuec = t2.Fuec -- and t1.IdCiaFuec = t2.IdCia END SELECT @Documento COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000), @ErrorSeverity INT, @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].[paWcfSeInsMsvTrn_DevFcr] Script Date: 23/08/2024 16:15:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsMsvTrn_DevFcr] -- @Trn_DevFcr [dbo].[dataTypeTrn_DevFcr] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeNiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY CREATE TABLE #LogTraEspFacturas( Numero int NOT NULL DEFAULT ((0)), Fecha smalldatetime NOT NULL, EstadoProc int NOT NULL DEFAULT ((0)), Observacion varchar(250) NULL, TimeSys smalldatetime NOT NULL, IdUsuario varchar(11) NOT NULL, Nombre varchar(50) NOT NULL, Tipo varchar(10) NOT NULL ) CREATE TABLE #LogTraEspFacReservas( Numero int NOT NULL, Item int NOT NULL, TipFac varchar(3) NOT NULL, Factura int NOT NULL, IdCia char(2) NOT NULL, TipoReg int NOT NULL DEFAULT ((0)), FechaFact smalldatetime NOT NULL, TipRes varchar(3) NOT NULL DEFAULT ('RES'), Reserva int NOT NULL DEFAULT ((0)), IdCiaRes char(2) NOT NULL DEFAULT ('01'), ItemRes int NOT NULL DEFAULT ((0)), FecReserva smalldatetime NOT NULL, Descripcion varchar(250) NOT NULL, Cantidad decimal(14, 4) NOT NULL DEFAULT ((0)), VrServicio money NOT NULL DEFAULT ((0)), VrUnitario money NOT NULL DEFAULT ((0)), VrCosto money NOT NULL DEFAULT ((0)), TarifaIva decimal(14, 4) NOT NULL DEFAULT ((0)), VrImpuesto money NOT NULL DEFAULT ((0)), TarifaDct decimal(14, 4) NOT NULL DEFAULT ((0)), VrDescuento money NOT NULL DEFAULT ((0)), DocCliente varchar(30) NOT NULL, Referencia1 varchar(50) NULL, Referencia2 varchar(50) NULL, Referencia3 varchar(50) NULL, CdConcepto varchar(4) NOT NULL, CdCCosto varchar(16) NULL, CdSubCos varchar(16) NULL, NitTercero varchar(16) NOT NULL DEFAULT ('0'), CdAgencia varchar(16) NOT NULL DEFAULT ('0'), pVehiculo varchar(10) NOT NULL DEFAULT ('0'), TipoAfiVehic varchar(10) NOT NULL DEFAULT ('TERCEROS'), IdOrigen varchar(8) NOT NULL, IdDestino varchar(8) NOT NULL, Anulado int NOT NULL DEFAULT ((0)), TipDocRef varchar(3) NULL, NumDocRef int NOT NULL DEFAULT ((0)), IdCiaRef char(2) NULL DEFAULT ('01'), FecDocRef smalldatetime NULL, CodTarDct varchar(4) NULL, CodTarRet varchar(4) NULL, CodTarIca varchar(4) NULL, TarifaRet decimal(14, 4) NOT NULL, VrRetencion money NOT NULL, TarifaIca decimal(14, 4) NOT NULL, VrReteIca money NOT NULL, Comentarios varchar(max) NULL ) declare @NumProc int = 1 declare @ItemProc int = 1 declare @TipDev varchar(3) declare @Devolucion INT declare @IdCia varchar(2) declare @TipFac varchar(3) declare @Factura INT declare @IdCiaDoc varchar(2) declare @Fecha datetime declare @observ varchar(250) declare @IdCliente varchar(16) declare @VrNeto money DECLARE @modalidad varchar(10) declare @fecdev smalldatetime --DECLARE dvfactcursor CURSOR --FOR SELECT TipDev,Devolucion,IdCia,TipDoc,Factura,IdCiaDoc,Fecha,IdCliente,VrNeto,Modalidad FROM @Trn_DevFcr --OPEN dvfactcursor --FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad --WHILE @@FETCH_STATUS = 0 --BEGIN -- IF(@operacion = 'i') -- begin -- SELECT TOP 1 @TipDoc = @TipDev, @Cia = @IdCia, @IdCiaComp = @IdCia, @IdCiaCompNiif = @IdCia, @IdCiaCompFis = @IdCia -- SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia -- IF(@Numero > 0) -- UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia -- ELSE -- BEGIN -- SELECT @Numero = 1 -- INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,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_DevFcr)) -- BEGIN -- INSERT INTO Trn_DevFcr( -- TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, -- VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, -- VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, -- IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom, -- Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, -- VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, -- VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, -- VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, -- IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp, -- Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, -- VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd -- FROM @Trn_DevFcr df WHERE df.TipDev = @TipDev and df.Devolucion = @Devolucion and df.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) -- BEGIN -- INSERT INTO Trn_TraEspFacReservas( -- TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, -- TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, -- pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, -- TarifaIca,VrReteIca,EstadoItem -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, -- TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, -- pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, -- TarifaIca,VrReteIca,EstadoItem -- FROM @Trn_TraEspFacReservas dfr WHERE dfr.TipDoc = @TipDev and dfr.Factura = @Devolucion and dfr.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) -- BEGIN -- INSERT INTO Trn_RecAFavor( -- TipDoc,Recibo,IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend -- ) -- SELECT -- @TipDev,@Devolucion,@IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend -- FROM @Trn_RecAFavor ra WHERE ra.TipDoc = @TipDev and ra.Recibo = @Devolucion and ra.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) -- BEGIN -- declare @tiprec varchar(3) -- declare @recibo int -- declare @idciarec varchar(2) -- declare @item int -- SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos va where va.TipDoc = @TipFac and va.Factura = @Factura and va.IdCiaFac = @IdCiaDoc -- select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec -- INSERT INTO Trn_VencAbonos( -- TipRec,Recibo,IdCia,Item,Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, -- VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys -- ) -- SELECT -- @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, -- VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys -- FROM @Trn_VencAbonos -- END -- IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) -- BEGIN -- INSERT INTO Trn_DetCuentas( -- TipDoc,Documento,IdCia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, -- VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, -- VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif -- FROM @Trn_DetCuentas dc WHERE dc.TipDoc = @TipDev and dc.Documento = @Devolucion and dc.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_DocMemo)) -- BEGIN -- INSERT INTO Trn_DocMemo( -- TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg -- FROM @Trn_DocMemo dm WHERE dm.TipDoc = @TipDev and dm.Documento = @Devolucion and dm.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) -- BEGIN -- INSERT INTO Trn_Comprobantes( -- TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, -- NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, -- TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, -- VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, -- Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, -- PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, 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 cp WHERE cp.TipDoc = @TipDev and cp.Documento = @Devolucion and cp.IdCiaDoc = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) -- BEGIN -- INSERT INTO Trn_ComDetalle( -- TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, -- IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, -- IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, -- NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, -- CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, -- IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif -- ) -- SELECT -- @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, -- IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, -- CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, -- NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, -- CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, -- IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif -- FROM @Trn_ComDetalle cd WHERE cd.TipDoc = @TipDev and cd.Documento = @Devolucion and cd.IdCia = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_NiifComp)) -- BEGIN -- INSERT INTO Trn_NiifComp( -- TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, -- EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, -- FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, -- VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, -- IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, -- Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, -- CtbTipo, CtbNumero, -- FisTipo, FisNumero -- ) -- SELECT -- CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, -- CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, -- @Cia, -- C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, -- C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, -- C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, -- C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, -- C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, -- C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, -- CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, -- CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END -- FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont -- where C.TipDoc = @TipDev and C.Documento = @Devolucion and C.IdCia = @IdCia -- and N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia -- END -- IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) -- BEGIN -- INSERT INTO Trn_NiifDetalle( -- TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, -- VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, -- VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, -- NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, -- NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, -- CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, -- DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, -- CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, -- FechAutoriza, CodCuentaCG -- ) -- SELECT -- CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, -- CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, -- @Cia, -- N.Item, N.Fecha, N.IdCuenta, N.Detalle, -- N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, -- N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce, -- N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, -- N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, -- N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, -- N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, -- N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, -- N.FechAutoriza, N.CodCuentaCG -- FROM @Trn_NiifDetalle as N -- JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante and NC.TipDoc = @TipDev and NC.Documento = @Devolucion and NC.IdCiaDoc = @IdCia -- where N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia -- END -- end -- IF(@operacion = 'i') -- begin -- --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas -- UPDATE Trn_TraEspResDetalle -- SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r -- WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCia and d.Item = r.ItemRes -- --ACTUALIZAR FACTURA -- IF(UPPER(@modalidad) = 'TOTAL') -- BEGIN -- UPDATE Trn_Facturas -- SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev -- FROM Trn_Facturas F, @Trn_DevFcr DF -- WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc -- END -- --actualiza el cliente -- UPDATE TercCliente -- SET VrSaldo = c.VrSaldo - f.VrNeto -- FROM TercCliente c, @Trn_DevFcr f -- WHERE c.IdClie = f.IdCliente -- --actualizar vencimientos,cuando es necesario -- IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) -- BEGIN -- UPDATE Trn_Vencimientos -- SET VrAbonado = v.VrAbonado + dv.VrAbono -- FROM Trn_Vencimientos v, @Trn_VencAbonos dv -- WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac -- END -- end -- IF(@NumProc = @ItemProc) -- BEGIN -- select top 1 @observ = Observacion FROM @Trn_DevFcr WHERE TipDoc = @TipDev and Devolucion = @Devolucion and IdCia = @IdCia -- INSERT INTO #LogTraEspFacturas( -- Numero,Fecha,EstadoProc,Observacion,TimeSys,IdUsuario,Nombre,Tipo -- ) -- SELECT -- @NumProc,t1.Fecha,1,@observ,t1.TimeSys,t1.IdUsuario,u.Usuario,'DEVOLUCION' -- FROM @Trn_DevFcr as t1 -- left join adm_Usuarios u on u.IdUsuario = t1.IdUsuario -- WHERE t1.TipDev = @TipDev and t1.Devolucion = @Devolucion and t1.IdCia = @IdCia -- END -- SELECT @ItemProc = @ItemProc + 1 -- INSERT INTO #LogTraEspFacReservas( -- Numero,Item,TipFac,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, -- TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, -- pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, -- TarifaIca,VrReteIca,Comentarios -- ) -- SELECT -- @NumProc,@item,TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, -- TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, -- pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, -- TarifaIca,VrReteIca,EstadoItem -- FROM Trn_TRaEspFAcReservas where TipDoc = @TipDoc and Factura = @Factura and IdCia = @IdCia --FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad --END --CLOSE dvfactcursor --DEALLOCATE dvfactcursor SELECT * FROM #LogTraEspFacturas SELECT * FROM #LogTraEspFacReservas COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 -- ========================================================================================================================================================================================================================================================================== GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 23/08/2024 16:40:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] -- @Trn_DevFcr [dbo].[dataTypeTrn_DevFcr] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime DECLARE @modalidad varchar(10) --IF(@operacion = 'i') --begin -- --SELECT TOP 1 @TipDoc = TipDev, @Cia = IdCia,@fecdev = Fecha,@modalidad = ModdDev, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia -- --FROM @Trn_DevFcr -- SELECT @Numero = Numero + 1 -- FROM TiposDocCons -- where IdDoc = @TipDoc -- AND IdCia = @Cia -- IF(@Numero > 0) -- UPDATE TiposDocCons -- SET Numero = @Numero -- WHERE IdDoc = @TipDoc -- AND IdCia = @Cia -- ELSE -- BEGIN -- SELECT @Numero = 1 -- INSERT INTO TiposDocCons -- VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,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_DevFcr)) -- BEGIN -- INSERT INTO Trn_DevFcr ( -- REVISAR -- TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc, -- Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, -- VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, -- VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, -- VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, -- BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, -- IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, -- IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, -- ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom,Observacion, -- IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, -- VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, -- DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, -- TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc, -- Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, -- VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, -- VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, -- VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, -- BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, -- IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, -- IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, -- ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp,Observacion, -- IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, -- VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, -- DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, -- TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP -- FROM -- @Trn_DevFcr -- END -- IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) -- BEGIN -- INSERT INTO Trn_TraEspFacReservas( -- REVISAR -- TipDoc,Factura,IdCia,Item,TipoReg,FechaFact, -- TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, -- Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, -- TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, -- CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, -- TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, -- IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, -- VrRetencion,TarifaIca,VrReteIca,EstadoItem -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact, -- TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, -- Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, -- TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, -- CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, -- TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, -- IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, -- VrRetencion,TarifaIca,VrReteIca,EstadoItem -- FROM -- @Trn_TraEspFacReservas -- END -- IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) -- BEGIN -- INSERT INTO Trn_RecAFavor( -- TipDoc, Recibo, IdCia, Fecha, VrAFavor, VrOtrosDb, -- VrAbono, IdCliente, IdAgencia, IdVend -- ) -- SELECT -- @TipDoc, @Numero, @Cia, Fecha, VrAFavor, VrOtrosDb, -- VrAbono, IdCliente, IdAgencia, IdVend -- FROM -- @Trn_RecAFavor -- END -- IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) -- BEGIN -- declare @tiprec varchar(3) -- declare @recibo int -- declare @idciarec varchar(2) -- declare @item int -- SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo -- FROM @Trn_VencAbonos -- select @item = isnull(MAX(Item),0) -- from Trn_VencAbonos -- where TipRec = @tiprec -- and Recibo = @recibo -- and IdCia = @idciarec -- INSERT INTO Trn_VencAbonos( -- REVISAR -- TipRec,Recibo,IdCia,Item,Fecha,TipDoc, -- Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, -- IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, -- TipoAplica,TimeSys -- ) -- SELECT -- @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc, -- Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, -- IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, -- TipoAplica,TimeSys -- FROM -- @Trn_VencAbonos -- END -- IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) -- BEGIN -- INSERT INTO Trn_DetCuentas( -- TipDoc,Documento,IdCia,Concepto,Item,IdCuenta, -- Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, -- pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, -- FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, -- CodConc,CodTarif -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta, -- Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, -- pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, -- FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, -- CodConc,CodTarif -- FROM -- @Trn_DetCuentas -- END -- IF(EXISTS(SELECT * FROM @Trn_DocMemo)) -- BEGIN -- INSERT INTO Trn_DocMemo( -- TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2, -- Nota3,CantImp,ArchivoImg -- ) -- SELECT -- @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2, -- Nota3,CantImp,ArchivoImg -- FROM -- @Trn_DocMemo -- END -- IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) -- BEGIN -- INSERT INTO Trn_Comprobantes( -- TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, -- IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, -- IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, -- pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, -- VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, -- Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, -- IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, -- FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, 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, C.Item, Fecha, IdCuenta, -- Detalle, VrDebito, VrCredito, -- CASE -- IdTercer -- WHEN IdVehiculo = '0' THEN IdTercero -- ELSE ( -- ISNULL( -- ( -- SELECT DISTINCT CD.IdTercero -- FROM Trn_ComDetalle AS CD -- WHERE CD.Comprobante = ( -- SELECT TOP 1 Factura -- FROM @Trn_DevFcr -- ) -- AND CD.TipCom = 'FCE' -- AND CD.Item = C.Item -- ), -- ( -- SELECT F.NitTercero -- FROM @Trn_TraEspFacReservas F -- WHERE -- F.pVehiculo = C.IdVehiculo -- AND F.TipDoc = 'FCE' -- AND F.Item = C.Item -- ) -- ) -- ) -- END, -- CASE -- IdVehiculo -- WHEN IdVehiculo = '0' THEN IdVehiculo -- ELSE ( -- SELECT DISTINCT CD.IdVehiculo -- FROM Trn_ComDetalle AS CD -- WHERE CD.Comprobante = ( -- SELECT TOP 1 Factura -- FROM @Trn_DevFcr -- ) -- AND CD.TipCom = 'FCE' -- AND CD.Item = C.Item -- ) -- END, -- 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 c -- END -- IF(EXISTS(SELECT * FROM @Trn_NiifComp)) -- BEGIN -- INSERT INTO Trn_NiifComp ( -- TipCom, -- Comprobante, -- IdCia, Fecha, IdTercero, VrTotal, IdCta,EnEfectivo, -- NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, -- NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, -- CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, -- PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, -- Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, -- CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, -- CtbTipo, -- CtbNumero, -- FisTipo, -- FisNumero -- ) -- SELECT -- CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, -- CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, -- @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, -- C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, -- C.NumDev,C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, -- C.CedCondtor, C.CodConce, C.Beneficiario,C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, -- C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, -- C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, -- C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, -- CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, -- CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, -- CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, -- CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END -- FROM -- @Trn_Comprobantes AS C -- JOIN -- @Trn_NiifComp AS N ON C.TipCom = N.TipComCont -- AND C.Comprobante = N.ComprobanteCont -- END -- IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) -- BEGIN -- INSERT INTO Trn_NiifDetalle ( -- TipCom, -- Comprobante, -- IdCia, Item, Fecha, IdCuenta, Detalle,VrDebito, -- VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos,VrBase, -- TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, -- TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, -- NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, -- CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, -- DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, -- CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, -- CodCuentaCG -- ) -- SELECT -- CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, -- CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, -- @Cia,N.Item, N.Fecha, N.IdCuenta, N.Detalle,N.VrDebito, -- N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos,N.VrBase, -- N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce,N.NitDoc, -- N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, -- N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, -- N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, -- N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, -- N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza,N.FechAutoriza, -- N.CodCuentaCG -- FROM -- @Trn_NiifDetalle as N -- JOIN -- @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom -- AND N.Comprobante = NC.Comprobante -- END --end --IF(@operacion = 'i') --begin -- --esto antes de la versión 5048 estaba desués del cursor ahora no para poder buscar solo las factruas activas -- --ACTUALIZAR FACTURA -- IF(UPPER(@modalidad) = 'TOTAL') -- BEGIN -- UPDATE Trn_Facturas -- SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev -- FROM Trn_Facturas F, @Trn_DevFcr DF -- WHERE F.TipDoc = DF.TipDoc -- AND F.Factura = DF.Factura -- AND F.IdCia = DF.IdCiaDoc -- END -- --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas -- --Antes de la versión 48 esto hacía Joe -- --UPDATE Trn_TraEspResDetalle -- --SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem -- --FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r -- --WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes -- --Versión 48 se debe buscar si la opción FRM está activa y si está activa debe colocar la última factura que no esté anulada de la reserva (Con este parámetro se puede factrar muchas veces la reserva) -- --Si la factrua que se anula es menor a la última se debe seguir dejando la última factura, ejemplo: si la última factura de esa reserva es la 3 y se anula la factrua 2 correspondiente a esa reserva -- --Se sigue dejando la 3 -- IF((SELECT ISNULL(Valor, '0') FROM adm_Opciones where IdOpc ='FRM') = '1') -- BEGIN -- DECLARE @TipRes VARCHAR(3) -- DECLARE @TipDocFacDev VARCHAR(3) -- DECLARE @TipDocFacActual VARCHAR(3) -- DECLARE @TipDocFac VARCHAR(3) -- DECLARE @CiaRes VARCHAR(2) -- DECLARE @CiaFac VARCHAR(2) -- DECLARE @CiaFacDev VARCHAR(2) -- DECLARE @CiaFacActual VARCHAR(2) -- DECLARE @NumRes INT -- DECLARE @NumFacDev INT -- DECLARE @NumFacActual INT -- DECLARE @NumFac INT -- DECLARE @ItemRes INT -- DECLARE @reserva Int = 0 -- DECLARE @cantres Int = 0 -- DECLARE @cantresfact Int = 0 -- DECLARE @FechaFac datetime -- DECLARE @asingadofa BIT = 0 -- SELECT TOP (1) @TipDocFacDev = TipDoc, @NumFacDev = Factura, @CiaFacDev = IdCiaDoc FROM @Trn_DevFcr -- DECLARE faccursor CURSOR -- --Verificar todas las reservas que viene en la devolución, tenga facturas -- FOR SELECT TipRes,Reserva,IdCiaRes,ItemRes FROM @Trn_TraEspFacReservas -- OPEN faccursor -- FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes -- WHILE @@FETCH_STATUS = 0 -- BEGIN -- SELECT @TipDocFacActual = TipFac, @NumFacActual = Factura, @CiaFacActual = IdCiaFac -- FROM Trn_TraEspResDetalle -- WHERE TipDoc = @TipRes -- and Reserva = @NumRes -- and IdCia = @CiaRes -- and Item = @ItemRes -- IF(@TipDocFacActual = @TipDocFacDev and @NumFacActual = @NumFacDev and @CiaFacActual = @CiaFacDev) -- BEGIN -- IF(EXISTS( -- SELECT TOP(1) fd.Factura -- FROM Trn_TraEspFacReservas AS fd -- JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc -- AND fd.Factura = f.Factura -- AND fd.IdCia = f.IdCia -- WHERE fd.TipRes = @TipRes -- AND fd.Reserva = @NumRes -- AND fd.IdCia = @CiaRes -- AND fd.Item = @ItemRes -- AND f.Anulado = 0 -- and fd.TipDoc = @TipDocFacDev -- and fd.Factura < @NumFacDev -- and fd.IdCia = @CiaFacDev -- and fd.Factura <> @NumFacDev order by fd.Factura desc -- )) -- BEGIN -- SELECT TOP(1) @TipDocFac = fd.TipDoc, @NumFac = fd.Factura, @CiaFac = fd.IdCia, @FechaFac = f.Fecha -- FROM Trn_TraEspFacReservas AS fd -- JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc -- AND fd.Factura = f.Factura -- AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes -- AND fd.Reserva = @NumRes -- AND fd.IdCia = @CiaRes -- AND fd.Item = @ItemRes -- AND f.Anulado = 0 -- and fd.TipDoc = @TipDocFacDev -- and fd.Factura < @NumFacDev -- and fd.IdCia = @CiaFacDev -- and fd.Factura <> @NumFacDev -- order by -- Fd.Factura desc -- UPDATE d -- SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle AS d -- JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes -- and d.Reserva = r.Reserva -- and d.IdCia = r.IdCiaRes -- WHERE d.TipDoc = @TipRes -- and d.Reserva = @NumRes -- and d.IdCia = @CiaRes -- and d.Item = @ItemRes -- --DECLARE facupdatecursor CURSOR -- --FOR SELECT fd.TipDoc, fd.Factura, fd.IdCia, f.Fecha FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 -- --OPEN facupdatecursor -- --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac -- --WHILE @@FETCH_STATUS = 0 -- ----OR @asingadofa = 0 -- --BEGIN -- -- --La factura actual de la reserva debe ser menor -- -- IF((SELECT Factura FROM Trn_TraEspResDetalle WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes and @ItemRes = Item) = @NumFac) -- AND @asingadofa = 0 -- -- begin -- -- UPDATE d -- -- SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem -- -- FROM Trn_TraEspResDetalle AS d -- -- JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes -- -- WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes -- -- --set @asingadofa = 1 -- -- BREAK -- -- end -- --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac -- --END -- --CLOSE facupdatecursor -- --DEALLOCATE facupdatecursor -- END -- ELSE -- BEGIN -- UPDATE Trn_TraEspResDetalle -- SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r -- WHERE d.TipDoc = r.TipRes -- and d.Reserva = r.Reserva -- and d.IdCia = r.IdCiaRes -- and d.Item = r.ItemRes -- END -- END -- FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes -- END -- CLOSE faccursor -- DEALLOCATE faccursor -- END -- ELSE -- BEGIN -- UPDATE Trn_TraEspResDetalle -- SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r -- WHERE d.TipDoc = r.TipRes -- and d.Reserva = r.Reserva -- and d.IdCia = r.IdCiaRes -- and d.Item = r.ItemRes -- END -- --actualiza el cliente -- UPDATE TercCliente -- SET VrSaldo = c.VrSaldo - f.VrNeto -- FROM TercCliente c, @Trn_DevFcr f -- WHERE c.IdClie = f.IdCliente -- --actualizar vencimientos,cuando es necesario -- IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) -- BEGIN -- UPDATE Trn_Vencimientos -- SET VrAbonado = v.VrAbonado + dv.VrAbono -- FROM Trn_Vencimientos v, @Trn_VencAbonos dv -- WHERE v.TipDoc = dv.TipDoc -- and v.Factura = dv.Factura -- and v.IdCia = dv.IdCiaFac -- END --end SELECT @Numero, @Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = CONCAT( ' Mensaje de error:', ERROR_MESSAGE(), ' Numero error:', ERROR_NUMBER(), ' Error severity:', ERROR_SEVERITY(), ' Linea:', ERROR_LINE(), ' Error Procedure', ERROR_PROCEDURE()), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 -- ========================================================================================================================================================================================================================================================================== -- Creamos la Columna IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Trn_TraEspFuec' ) BEGIN ALTER TABLE Trn_TraEspFuec ALTER COLUMN Qr IMAGE NULL END ELSE BEGIN ALTER TABLE Trn_TraEspFuec ADD Qr IMAGE NULL END -- Eliminamos el tipo DROP TYPE dataTypeTrn_TraEspFuec DROP TYPE dataTypeTrn_DevFcr -- Creamos el tipo CREATE TYPE [dbo].[dataTypeTrn_TraEspFuec] AS TABLE( [TipDoc] [varchar](3) NULL DEFAULT ('FUE'), [Fuec] [int] NULL DEFAULT ((0)), [IdCia] [char](2) NULL DEFAULT ('01'), [Numero] [varchar](21) NULL, [Fecha] [datetime] NULL, [FechaInicio] [smalldatetime] NULL, [FechaFin] [smalldatetime] NULL, [CdCarga] [varchar](15) NULL, [IdVehiculo] [varchar](10) NULL, [IdConductor] [varchar](16) NULL, [IdConductor2] [varchar](16) NULL, [IdConductor3] [varchar](16) NULL, [IdPoseedor] [varchar](16) NULL, [IdRuta] [varchar](4) NULL, [CdTipRuta] [varchar](15) NULL, [IdOrigen] [varchar](8) NULL, [IdDestino] [varchar](8) NULL, [Modalidad] [varchar](10) NULL, [CantPasajeros] [decimal](14, 4) NULL DEFAULT ((0)), [CodTarRet] [varchar](4) NULL, [CodTarIca] [varchar](4) NULL, [VrPresupuesto] [money] NULL DEFAULT ((0)), [VrCobro] [money] NULL DEFAULT ((0)), [VrPagos] [money] NULL DEFAULT ((0)), [VrCargos] [money] NULL DEFAULT ((0)), [VrDctos] [money] NULL DEFAULT ((0)), [VrIva] [money] NULL DEFAULT ((0)), [VrRetencion] [money] NULL DEFAULT ((0)), [VrReteIca] [money] NULL DEFAULT ((0)), [Cantidad] [decimal](14, 4) NULL DEFAULT ((0)), [Peso] [decimal](14, 4) NULL DEFAULT ((0)), [TipDocPgr] [varchar](3) NULL DEFAULT ('0'), [NumPgr] [int] NULL DEFAULT ((0)), [IdCiaPgr] [char](2) NULL DEFAULT ('00'), [ItemPgr] [int] NULL DEFAULT ((0)), [TipDocCnt] [varchar](3) NULL, [Contrato] [int] NULL, [CiaCnt] [char](2) NULL, [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, [Consecutivo] [int] NULL, [Itinerario] [varchar](1000) NULL, [FuecParcial] [bit] NULL DEFAULT ((0)), [ComenParcial] [varchar](500) NULL, [Qr] [varchar](max) NULL ) CREATE TYPE [dbo].[dataTypeTrn_DevFcr] AS TABLE( [TipDev] [varchar](3) NOT NULL, [Devolucion] [int] NOT NULL, [IdCia] [char](2) NOT NULL, [Fecha] [smalldatetime] NOT NULL, [IdConcepto] [varchar](4) NOT NULL, [TipDoc] [varchar](3) NOT NULL, [Factura] [int] NOT NULL, [IdCiaDoc] [char](2) NOT NULL, [FecDoc] [smalldatetime] NOT NULL, [IdCliente] [varchar](16) NOT NULL, [IdAgencia] [varchar](16) NOT NULL, [VrSubTotal] [money] NOT NULL, [VrDescuento] [money] NOT NULL, [VrImpuesto] [money] NOT NULL, [VrRetencion] [money] NOT NULL, [VrReteICA] [money] NOT NULL, [VrReteIVA] [money] NOT NULL, [VrFletes] [money] NOT NULL, [VrOtros] [money] NOT NULL, [VrCargos] [money] NOT NULL, [VrOtrDcto] [money] NOT NULL, [VrCostos] [money] NOT NULL, [VrSobretasa] [money] NOT NULL, [VrImpGlobal] [money] NOT NULL, [VrFaltantes] [money] NOT NULL, [VrAnticipos] [money] NOT NULL, [VrNeto] [money] NOT NULL, [Cantidad] [decimal](14, 4) NOT NULL, [CantPuntos] [decimal](14, 4) NOT NULL, [BaseImp] [money] NOT NULL, [BaseRet] [money] NOT NULL, [IdCCosto] [varchar](16) NOT NULL, [IdSubCos] [varchar](16) NOT NULL, [IdVend] [varchar](16) NOT NULL, [TarifaCom] [decimal](14, 4) NOT NULL, [CodTarCom] [varchar](4) NULL, [IdLocEnv] [varchar](8) NOT NULL, [Pedido] [int] NOT NULL, [IdCiaPed] [char](2) NOT NULL, [Remision] [int] NOT NULL, [IdCiaRem] [char](2) NOT NULL, [Cotizacion] [int] NOT NULL, [IdCiaCot] [char](2) NOT NULL, [FecPedido] [smalldatetime] NULL, [Modalidad] [varchar](10) NOT NULL, [ModdDev] [varchar](10) NOT NULL, [PlacaVehic] [varchar](10) NULL, [KmtVehic] [int] NOT NULL, [ZonaFrontera] [int] NOT NULL, [OrigenAdd] [varchar](10) NOT NULL, [TipCom] [varchar](3) NOT NULL, [Comprobante] [int] NOT NULL, [IdCiaCom] [char](2) NOT NULL, [Observacion] [varchar](250) NULL, [IdEstado] [varchar](4) NOT NULL, [TimeSys] [smalldatetime] NOT NULL, [FecUpdate] [smalldatetime] NULL, [IdCiaCrea] [char](2) NOT NULL, [IdUsuario] [varchar](11) NOT NULL, [VrImpCons] [money] NOT NULL, [VrReteCREE] [money] NOT NULL, [TarifaRtc] [decimal](14, 4) NOT NULL, [CodTarRtc] [varchar](4) NULL, [BaseIvaObsq] [money] NOT NULL, [VrIvaObsequio] [money] NOT NULL, [VrImpCarbono] [money] NOT NULL, [DevMasivo] [int] NOT NULL, [NumRecibo] [int] NOT NULL, [CdCiaRec] [char](2) NULL, [CdMotDev] [varchar](4) NULL, [BaseIvaIgp] [money] NOT NULL, [VrIvaIngProd] [money] NOT NULL, [TarifaArf] [decimal](14, 4) NOT NULL, [VrAutRetFte] [money] NOT NULL, [TarifaAri] [decimal](14, 4) NOT NULL, [VrAutRetIca] [money] NOT NULL, [VrImpuBA] [money] NOT NULL, [VrImpuCUP] [money] NOT NULL, [ImpAviTab] [money] NULL, [TarifaAvta] [decimal](14, 4) NULL, [VrBomberil] [money] NULL, [TarifaBom] [decimal](14, 4) NULL, [VrAutRetIat] [money] NULL, [VrAutRetBom] [money] NULL ) -- ========================================================================================================================================================================================================================================================================== GO /****** Object: StoredProcedure [dbo].[paWcfSeInsMsvTrn_DevFcr] Script Date: 23/08/2024 16:32:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsMsvTrn_DevFcr] @Trn_DevFcr [dbo].[dataTypeTrn_DevFcr] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeNiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY CREATE TABLE #LogTraEspFacturas( Numero int NOT NULL DEFAULT ((0)), Fecha smalldatetime NOT NULL, EstadoProc int NOT NULL DEFAULT ((0)), Observacion varchar(250) NULL, TimeSys smalldatetime NOT NULL, IdUsuario varchar(11) NOT NULL, Nombre varchar(50) NOT NULL, Tipo varchar(10) NOT NULL ) CREATE TABLE #LogTraEspFacReservas( Numero int NOT NULL, Item int NOT NULL, TipFac varchar(3) NOT NULL, Factura int NOT NULL, IdCia char(2) NOT NULL, TipoReg int NOT NULL DEFAULT ((0)), FechaFact smalldatetime NOT NULL, TipRes varchar(3) NOT NULL DEFAULT ('RES'), Reserva int NOT NULL DEFAULT ((0)), IdCiaRes char(2) NOT NULL DEFAULT ('01'), ItemRes int NOT NULL DEFAULT ((0)), FecReserva smalldatetime NOT NULL, Descripcion varchar(250) NOT NULL, Cantidad decimal(14, 4) NOT NULL DEFAULT ((0)), VrServicio money NOT NULL DEFAULT ((0)), VrUnitario money NOT NULL DEFAULT ((0)), VrCosto money NOT NULL DEFAULT ((0)), TarifaIva decimal(14, 4) NOT NULL DEFAULT ((0)), VrImpuesto money NOT NULL DEFAULT ((0)), TarifaDct decimal(14, 4) NOT NULL DEFAULT ((0)), VrDescuento money NOT NULL DEFAULT ((0)), DocCliente varchar(30) NOT NULL, Referencia1 varchar(50) NULL, Referencia2 varchar(50) NULL, Referencia3 varchar(50) NULL, CdConcepto varchar(4) NOT NULL, CdCCosto varchar(16) NULL, CdSubCos varchar(16) NULL, NitTercero varchar(16) NOT NULL DEFAULT ('0'), CdAgencia varchar(16) NOT NULL DEFAULT ('0'), pVehiculo varchar(10) NOT NULL DEFAULT ('0'), TipoAfiVehic varchar(10) NOT NULL DEFAULT ('TERCEROS'), IdOrigen varchar(8) NOT NULL, IdDestino varchar(8) NOT NULL, Anulado int NOT NULL DEFAULT ((0)), TipDocRef varchar(3) NULL, NumDocRef int NOT NULL DEFAULT ((0)), IdCiaRef char(2) NULL DEFAULT ('01'), FecDocRef smalldatetime NULL, CodTarDct varchar(4) NULL, CodTarRet varchar(4) NULL, CodTarIca varchar(4) NULL, TarifaRet decimal(14, 4) NOT NULL, VrRetencion money NOT NULL, TarifaIca decimal(14, 4) NOT NULL, VrReteIca money NOT NULL, Comentarios varchar(max) NULL ) declare @NumProc int = 1 declare @ItemProc int = 1 declare @TipDev varchar(3) declare @Devolucion INT declare @IdCia varchar(2) declare @TipFac varchar(3) declare @Factura INT declare @IdCiaDoc varchar(2) declare @Fecha datetime declare @observ varchar(250) declare @IdCliente varchar(16) declare @VrNeto money DECLARE @modalidad varchar(10) declare @fecdev smalldatetime DECLARE dvfactcursor CURSOR FOR SELECT TipDev,Devolucion,IdCia,TipDoc,Factura,IdCiaDoc,Fecha,IdCliente,VrNeto,Modalidad FROM @Trn_DevFcr OPEN dvfactcursor FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad WHILE @@FETCH_STATUS = 0 BEGIN IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = @TipDev, @Cia = @IdCia, @IdCiaComp = @IdCia, @IdCiaCompNiif = @IdCia, @IdCiaCompFis = @IdCia SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,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_DevFcr)) BEGIN INSERT INTO Trn_DevFcr( TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc,Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal,VrDescuento,VrImpuesto, VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos, VrNeto,Cantidad,CantPuntos,BaseImp,BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,IdLocEnv,Pedido,IdCiaPed,Remision, IdCiaRem,Cotizacion,IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic,ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp, Observacion,IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd FROM @Trn_DevFcr df WHERE df.TipDev = @TipDev and df.Devolucion = @Devolucion and df.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) BEGIN INSERT INTO Trn_TraEspFacReservas( TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem FROM @Trn_TraEspFacReservas dfr WHERE dfr.TipDoc = @TipDev and dfr.Factura = @Devolucion and dfr.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) BEGIN INSERT INTO Trn_RecAFavor( TipDoc,Recibo,IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend ) SELECT @TipDev,@Devolucion,@IdCia,Fecha,VrAFavor,VrOtrosDb,VrAbono,IdCliente,IdAgencia,IdVend FROM @Trn_RecAFavor ra WHERE ra.TipDoc = @TipDev and ra.Recibo = @Devolucion and ra.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos va where va.TipDoc = @TipFac and va.Factura = @Factura and va.IdCiaFac = @IdCiaDoc select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( TipRec,Recibo,IdCia,Item,Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys ) SELECT @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys FROM @Trn_VencAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif FROM @Trn_DetCuentas dc WHERE dc.TipDoc = @TipDev and dc.Documento = @Devolucion and dc.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_DocMemo)) BEGIN INSERT INTO Trn_DocMemo( TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg ) SELECT @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2,Nota3,CantImp,ArchivoImg FROM @Trn_DocMemo dm WHERE dm.TipDoc = @TipDev and dm.Documento = @Devolucion and dm.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, 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 cp WHERE cp.TipDoc = @TipDev and cp.Documento = @Devolucion and cp.IdCiaDoc = @IdCia END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif FROM @Trn_ComDetalle cd WHERE cd.TipDoc = @TipDev and cd.Documento = @Devolucion and cd.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont where C.TipDoc = @TipDev and C.Documento = @Devolucion and C.IdCia = @IdCia and N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante and NC.TipDoc = @TipDev and NC.Documento = @Devolucion and NC.IdCiaDoc = @IdCia where N.TipDoc = @TipDev and N.Documento = @Devolucion and N.IdCiaDoc = @IdCia END end IF(@operacion = 'i') begin --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCia and d.Item = r.ItemRes --ACTUALIZAR FACTURA IF(UPPER(@modalidad) = 'TOTAL') BEGIN UPDATE Trn_Facturas SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev FROM Trn_Facturas F, @Trn_DevFcr DF WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc END --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo - f.VrNeto FROM TercCliente c, @Trn_DevFcr f WHERE c.IdClie = f.IdCliente --actualizar vencimientos,cuando es necesario IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN UPDATE Trn_Vencimientos SET VrAbonado = v.VrAbonado + dv.VrAbono FROM Trn_Vencimientos v, @Trn_VencAbonos dv WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac END end IF(@NumProc = @ItemProc) BEGIN select top 1 @observ = Observacion FROM @Trn_DevFcr WHERE TipDoc = @TipDev and Devolucion = @Devolucion and IdCia = @IdCia INSERT INTO #LogTraEspFacturas( Numero,Fecha,EstadoProc,Observacion,TimeSys,IdUsuario,Nombre,Tipo ) SELECT @NumProc,t1.Fecha,1,@observ,t1.TimeSys,t1.IdUsuario,u.Usuario,'DEVOLUCION' FROM @Trn_DevFcr as t1 left join adm_Usuarios u on u.IdUsuario = t1.IdUsuario WHERE t1.TipDev = @TipDev and t1.Devolucion = @Devolucion and t1.IdCia = @IdCia END SELECT @ItemProc = @ItemProc + 1 INSERT INTO #LogTraEspFacReservas( Numero,Item,TipFac,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,Comentarios ) SELECT @NumProc,@item,TipDoc,Factura,IdCia,Item,TipoReg,FechaFact,TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion,Cantidad,VrServicio,VrUnitario,VrCosto, TarifaIva,VrImpuesto,TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3,CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia, pVehiculo,TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef,IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet,VrRetencion, TarifaIca,VrReteIca,EstadoItem FROM Trn_TRaEspFAcReservas where TipDoc = @TipDoc and Factura = @Factura and IdCia = @IdCia FETCH NEXT FROM dvfactcursor INTO @TipDev,@Devolucion,@IdCia, @TipFac,@Factura,@IdCiaDoc,@fecdev,@IdCliente,@VrNeto,@modalidad END CLOSE dvfactcursor DEALLOCATE dvfactcursor SELECT * FROM #LogTraEspFacturas SELECT * FROM #LogTraEspFacReservas COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 -- ========================================================================================================================================================================================================================================================================== GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 23/08/2024 16:40:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] @Trn_DevFcr [dbo].[dataTypeTrn_DevFcr] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compa�ia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el n�mero consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobaci�n BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime DECLARE @modalidad varchar(10) IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDev, @Cia = IdCia,@fecdev = Fecha,@modalidad = ModdDev, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_DevFcr SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,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_DevFcr)) BEGIN INSERT INTO Trn_DevFcr ( -- REVISAR TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc, Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc, Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP FROM @Trn_DevFcr END IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) BEGIN INSERT INTO Trn_TraEspFacReservas( -- REVISAR TipDoc,Factura,IdCia,Item,TipoReg,FechaFact, TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, VrRetencion,TarifaIca,VrReteIca,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact, TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, VrRetencion,TarifaIca,VrReteIca,EstadoItem FROM @Trn_TraEspFacReservas END IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) BEGIN INSERT INTO Trn_RecAFavor( TipDoc, Recibo, IdCia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend ) SELECT @TipDoc, @Numero, @Cia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend FROM @Trn_RecAFavor END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( -- REVISAR TipRec,Recibo,IdCia,Item,Fecha,TipDoc, Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, TipoAplica,TimeSys ) SELECT @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc, Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, TipoAplica,TimeSys FROM @Trn_VencAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif FROM @Trn_DetCuentas END IF(EXISTS(SELECT * FROM @Trn_DocMemo)) BEGIN INSERT INTO Trn_DocMemo( TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2, Nota3,CantImp,ArchivoImg ) SELECT @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2, Nota3,CantImp,ArchivoImg FROM @Trn_DocMemo END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, 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, C.Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, CASE -- IdTercer WHEN IdVehiculo = '0' THEN IdTercero ELSE ( ISNULL( ( SELECT DISTINCT CD.IdTercero FROM Trn_ComDetalle AS CD WHERE CD.Comprobante = ( SELECT TOP 1 Factura FROM @Trn_DevFcr ) AND CD.TipCom = 'FCE' AND CD.Item = C.Item ), ( SELECT F.NitTercero FROM @Trn_TraEspFacReservas F WHERE F.pVehiculo = C.IdVehiculo AND F.TipDoc = 'FCE' AND F.Item = C.Item ) ) ) END, CASE -- IdVehiculo WHEN IdVehiculo = '0' THEN IdVehiculo ELSE ( SELECT DISTINCT CD.IdVehiculo FROM Trn_ComDetalle AS CD WHERE CD.Comprobante = ( SELECT TOP 1 Factura FROM @Trn_DevFcr ) AND CD.TipCom = 'FCE' AND CD.Item = C.Item ) END, 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 c END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta,EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev,C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario,C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle,VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos,VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia,N.Item, N.Fecha, N.IdCuenta, N.Detalle,N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos,N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce,N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza,N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'i') begin --esto antes de la versi�n 5048 estaba desu�s del cursor ahora no para poder buscar solo las factruas activas --ACTUALIZAR FACTURA IF(UPPER(@modalidad) = 'TOTAL') BEGIN UPDATE Trn_Facturas SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev FROM Trn_Facturas F, @Trn_DevFcr DF WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc END --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas --Antes de la versi�n 48 esto hac�a Joe --UPDATE Trn_TraEspResDetalle --SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem --FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r --WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes --Versi�n 48 se debe buscar si la opci�n FRM est� activa y si est� activa debe colocar la �ltima factura que no est� anulada de la reserva (Con este par�metro se puede factrar muchas veces la reserva) --Si la factrua que se anula es menor a la �ltima se debe seguir dejando la �ltima factura, ejemplo: si la �ltima factura de esa reserva es la 3 y se anula la factrua 2 correspondiente a esa reserva --Se sigue dejando la 3 IF((SELECT ISNULL(Valor, '0') FROM adm_Opciones where IdOpc ='FRM') = '1') BEGIN DECLARE @TipRes VARCHAR(3) DECLARE @TipDocFacDev VARCHAR(3) DECLARE @TipDocFacActual VARCHAR(3) DECLARE @TipDocFac VARCHAR(3) DECLARE @CiaRes VARCHAR(2) DECLARE @CiaFac VARCHAR(2) DECLARE @CiaFacDev VARCHAR(2) DECLARE @CiaFacActual VARCHAR(2) DECLARE @NumRes INT DECLARE @NumFacDev INT DECLARE @NumFacActual INT DECLARE @NumFac INT DECLARE @ItemRes INT DECLARE @reserva Int = 0 DECLARE @cantres Int = 0 DECLARE @cantresfact Int = 0 DECLARE @FechaFac datetime DECLARE @asingadofa BIT = 0 SELECT TOP (1) @TipDocFacDev = TipDoc, @NumFacDev = Factura, @CiaFacDev = IdCiaDoc FROM @Trn_DevFcr DECLARE faccursor CURSOR --Verificar todas las reservas que viene en la devoluci�n, tenga facturas FOR SELECT TipRes,Reserva,IdCiaRes,ItemRes FROM @Trn_TraEspFacReservas OPEN faccursor FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes WHILE @@FETCH_STATUS = 0 BEGIN SELECT @TipDocFacActual = TipFac, @NumFacActual = Factura, @CiaFacActual = IdCiaFac FROM Trn_TraEspResDetalle WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes and Item = @ItemRes IF(@TipDocFacActual = @TipDocFacDev and @NumFacActual = @NumFacDev and @CiaFacActual = @CiaFacDev) BEGIN IF(EXISTS( SELECT TOP(1) fd.Factura FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 and fd.TipDoc = @TipDocFacDev and fd.Factura < @NumFacDev and fd.IdCia = @CiaFacDev and fd.Factura <> @NumFacDev order by fd.Factura desc )) BEGIN SELECT TOP(1) @TipDocFac = fd.TipDoc, @NumFac = fd.Factura, @CiaFac = fd.IdCia, @FechaFac = f.Fecha FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 and fd.TipDoc = @TipDocFacDev and fd.Factura < @NumFacDev and fd.IdCia = @CiaFacDev and fd.Factura <> @NumFacDev order by Fd.Factura desc UPDATE d SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle AS d JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes --DECLARE facupdatecursor CURSOR --FOR SELECT fd.TipDoc, fd.Factura, fd.IdCia, f.Fecha FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 --OPEN facupdatecursor --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac --WHILE @@FETCH_STATUS = 0 ----OR @asingadofa = 0 --BEGIN -- --La factura actual de la reserva debe ser menor -- IF((SELECT Factura FROM Trn_TraEspResDetalle WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes and @ItemRes = Item) = @NumFac) -- AND @asingadofa = 0 -- begin -- UPDATE d -- SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle AS d -- JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes -- WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes -- --set @asingadofa = 1 -- BREAK -- end --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac --END --CLOSE facupdatecursor --DEALLOCATE facupdatecursor END ELSE BEGIN UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes END END FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes END CLOSE faccursor DEALLOCATE faccursor END ELSE BEGIN UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes END --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo - f.VrNeto FROM TercCliente c, @Trn_DevFcr f WHERE c.IdClie = f.IdCliente --actualizar vencimientos,cuando es necesario IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN UPDATE Trn_Vencimientos SET VrAbonado = v.VrAbonado + dv.VrAbono FROM Trn_Vencimientos v, @Trn_VencAbonos dv WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac END end SELECT @Numero, @Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = CONCAT( ' Mensaje de error:', ERROR_MESSAGE(), ' Numero error:', ERROR_NUMBER(), ' Error severity:', ERROR_SEVERITY(), ' Linea:', ERROR_LINE(), ' Error Procedure', ERROR_PROCEDURE()), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 -- ========================================================================================================================================================================================================================================================================== /****** Object: StoredProcedure [dbo].[paWcfSeLisTrn_TraEspCuenta] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeLisTrn_TraEspCuenta] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPago] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPago] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspFuec] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspFuec] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdp] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdp] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 23/08/2024 10:53:11 ******/ DROP PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_DevFcr] Script Date: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_DevFcr] @Trn_DevFcr [dbo].[dataTypeTrn_DevFcr] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el número consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el número consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compañia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el número consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compañia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobación DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobación BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime DECLARE @modalidad varchar(10) IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDev, @Cia = IdCia,@fecdev = Fecha,@modalidad = ModdDev, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_DevFcr SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,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_DevFcr)) BEGIN INSERT INTO Trn_DevFcr ( -- REVISAR TipDev,Devolucion,IdCia,Fecha,IdConcepto,TipDoc, Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, ZonaFrontera,OrigenAdd,TipCom,Comprobante,IdCiaCom,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,TipDoc, Factura,IdCiaDoc,FecDoc,IdCliente,IdAgencia,VrSubTotal, VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes, VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal, VrFaltantes,VrAnticipos,VrNeto,Cantidad,CantPuntos,BaseImp, BaseRet,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom, IdLocEnv,Pedido,IdCiaPed,Remision,IdCiaRem,Cotizacion, IdCiaCot,FecPedido,Modalidad,ModdDev,PlacaVehic,KmtVehic, ZonaFrontera,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons, VrReteCREE,TarifaRtc,CodTarRtc,BaseIvaObsq,VrIvaObsequio,VrImpCarbono, DevMasivo,NumRecibo,CdCiaRec,CdMotDev,BaseIvaIgp,VrIvaIngProd, TarifaArf,VrAutRetFte,TarifaAri,VrAutRetIca,VrImpuBA,VrImpuCUP FROM @Trn_DevFcr END IF(EXISTS(SELECT * FROM @Trn_TraEspFacReservas)) BEGIN INSERT INTO Trn_TraEspFacReservas( -- REVISAR TipDoc,Factura,IdCia,Item,TipoReg,FechaFact, TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, VrRetencion,TarifaIca,VrReteIca,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,TipoReg,FechaFact, TipRes,Reserva,IdCiaRes,ItemRes,FecReserva,Descripcion, Cantidad,VrServicio,VrUnitario,VrCosto,TarifaIva,VrImpuesto, TarifaDct,VrDescuento,DocCliente,Referencia1,Referencia2,Referencia3, CdConcepto,CdCCosto,CdSubCos,NitTercero,CdAgencia,pVehiculo, TipoAfiVehic,IdOrigen,IdDestino,Anulado,TipDocRef,NumDocRef, IdCiaRef,FecDocRef,CodTarDct,CodTarRet,CodTarIca,TarifaRet, VrRetencion,TarifaIca,VrReteIca,EstadoItem FROM @Trn_TraEspFacReservas END IF(EXISTS(SELECT * FROM @Trn_RecAFavor)) BEGIN INSERT INTO Trn_RecAFavor( TipDoc, Recibo, IdCia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend ) SELECT @TipDoc, @Numero, @Cia, Fecha, VrAFavor, VrOtrosDb, VrAbono, IdCliente, IdAgencia, IdVend FROM @Trn_RecAFavor END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( -- REVISAR TipRec,Recibo,IdCia,Item,Fecha,TipDoc, Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, TipoAplica,TimeSys ) SELECT @TipDoc,@Numero,@Cia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,TipDoc, Factura,IdCiaFac,ItemFac,VrAbono,VrDescto,VrBaseCms, IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago, TipoAplica,TimeSys FROM @Trn_VencAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif FROM @Trn_DetCuentas END IF(EXISTS(SELECT * FROM @Trn_DocMemo)) BEGIN INSERT INTO Trn_DocMemo( TipDoc,Documento,IdCia,Comentarios,Nota1,Nota2, Nota3,CantImp,ArchivoImg ) SELECT @TipDoc,@Numero,@Cia,Comentarios,Nota1,Nota2, Nota3,CantImp,ArchivoImg FROM @Trn_DocMemo END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, 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, C.Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, CASE -- IdTercer WHEN IdVehiculo = '0' THEN IdTercero ELSE ( ISNULL( ( SELECT DISTINCT CD.IdTercero FROM Trn_ComDetalle AS CD WHERE CD.Comprobante = ( SELECT TOP 1 Factura FROM @Trn_DevFcr ) AND CD.TipCom = 'FCE' AND CD.Item = C.Item ), ( SELECT F.NitTercero FROM @Trn_TraEspFacReservas F WHERE F.pVehiculo = C.IdVehiculo AND F.TipDoc = 'FCE' AND F.Item = C.Item ) ) ) END, CASE -- IdVehiculo WHEN IdVehiculo = '0' THEN IdVehiculo ELSE ( SELECT DISTINCT CD.IdVehiculo FROM Trn_ComDetalle AS CD WHERE CD.Comprobante = ( SELECT TOP 1 Factura FROM @Trn_DevFcr ) AND CD.TipCom = 'FCE' AND CD.Item = C.Item ) END, 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 c END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta,EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev,C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario,C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle,VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos,VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia,N.Item, N.Fecha, N.IdCuenta, N.Detalle,N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos,N.VrBase, N.TarifaBase, @TipDoc,@Numero,@Cia, N.CodConce,N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza,N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'i') begin --esto antes de la versión 5048 estaba desués del cursor ahora no para poder buscar solo las factruas activas --ACTUALIZAR FACTURA IF(UPPER(@modalidad) = 'TOTAL') BEGIN UPDATE Trn_Facturas SET Anulado = 1,NumDev = @Numero,FecDev = @fecdev FROM Trn_Facturas F, @Trn_DevFcr DF WHERE F.TipDoc = DF.TipDoc AND F.Factura = DF.Factura AND F.IdCia = DF.IdCiaDoc END --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas --Antes de la versión 48 esto hacía Joe --UPDATE Trn_TraEspResDetalle --SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem --FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r --WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes --Versión 48 se debe buscar si la opción FRM está activa y si está activa debe colocar la última factura que no esté anulada de la reserva (Con este parámetro se puede factrar muchas veces la reserva) --Si la factrua que se anula es menor a la última se debe seguir dejando la última factura, ejemplo: si la última factura de esa reserva es la 3 y se anula la factrua 2 correspondiente a esa reserva --Se sigue dejando la 3 IF((SELECT ISNULL(Valor, '0') FROM adm_Opciones where IdOpc ='FRM') = '1') BEGIN DECLARE @TipRes VARCHAR(3) DECLARE @TipDocFacDev VARCHAR(3) DECLARE @TipDocFacActual VARCHAR(3) DECLARE @TipDocFac VARCHAR(3) DECLARE @CiaRes VARCHAR(2) DECLARE @CiaFac VARCHAR(2) DECLARE @CiaFacDev VARCHAR(2) DECLARE @CiaFacActual VARCHAR(2) DECLARE @NumRes INT DECLARE @NumFacDev INT DECLARE @NumFacActual INT DECLARE @NumFac INT DECLARE @ItemRes INT DECLARE @reserva Int = 0 DECLARE @cantres Int = 0 DECLARE @cantresfact Int = 0 DECLARE @FechaFac datetime DECLARE @asingadofa BIT = 0 SELECT TOP (1) @TipDocFacDev = TipDoc, @NumFacDev = Factura, @CiaFacDev = IdCiaDoc FROM @Trn_DevFcr DECLARE faccursor CURSOR --Verificar todas las reservas que viene en la devolución, tenga facturas FOR SELECT TipRes,Reserva,IdCiaRes,ItemRes FROM @Trn_TraEspFacReservas OPEN faccursor FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes WHILE @@FETCH_STATUS = 0 BEGIN SELECT @TipDocFacActual = TipFac, @NumFacActual = Factura, @CiaFacActual = IdCiaFac FROM Trn_TraEspResDetalle WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes and Item = @ItemRes IF(@TipDocFacActual = @TipDocFacDev and @NumFacActual = @NumFacDev and @CiaFacActual = @CiaFacDev) BEGIN IF(EXISTS( SELECT TOP(1) fd.Factura FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 and fd.TipDoc = @TipDocFacDev and fd.Factura < @NumFacDev and fd.IdCia = @CiaFacDev and fd.Factura <> @NumFacDev order by fd.Factura desc )) BEGIN SELECT TOP(1) @TipDocFac = fd.TipDoc, @NumFac = fd.Factura, @CiaFac = fd.IdCia, @FechaFac = f.Fecha FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 and fd.TipDoc = @TipDocFacDev and fd.Factura < @NumFacDev and fd.IdCia = @CiaFacDev and fd.Factura <> @NumFacDev order by Fd.Factura desc UPDATE d SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle AS d JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes --DECLARE facupdatecursor CURSOR --FOR SELECT fd.TipDoc, fd.Factura, fd.IdCia, f.Fecha FROM Trn_TraEspFacReservas AS fd JOIN Trn_Facturas AS f ON fd.TipDoc = f.TipDoc AND fd.Factura = f.Factura AND fd.IdCia = f.IdCia WHERE fd.TipRes = @TipRes AND fd.Reserva = @NumRes AND fd.IdCia = @CiaRes AND fd.Item = @ItemRes AND f.Anulado = 0 --OPEN facupdatecursor --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac --WHILE @@FETCH_STATUS = 0 ----OR @asingadofa = 0 --BEGIN -- --La factura actual de la reserva debe ser menor -- IF((SELECT Factura FROM Trn_TraEspResDetalle WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes and @ItemRes = Item) = @NumFac) -- AND @asingadofa = 0 -- begin -- UPDATE d -- SET d.Factura = @NumFac, d.IdCiaFac = @CiaFac, d.FechaFac = @FechaFac, d.EstadoItem = r.EstadoItem -- FROM Trn_TraEspResDetalle AS d -- JOIN @Trn_TraEspFacReservas AS r ON d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes -- WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes -- --set @asingadofa = 1 -- BREAK -- end --FETCH NEXT FROM facupdatecursor INTO @TipDocFac,@NumFac,@CiaFac,@FechaFac --END --CLOSE facupdatecursor --DEALLOCATE facupdatecursor END ELSE BEGIN UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes END END FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes END CLOSE faccursor DEALLOCATE faccursor END ELSE BEGIN UPDATE Trn_TraEspResDetalle SET Factura = 0, IdCiaFac = '00', FechaFac = null, EstadoItem = r.EstadoItem FROM Trn_TraEspResDetalle d, @Trn_TraEspFacReservas r WHERE d.TipDoc = r.TipRes and d.Reserva = r.Reserva and d.IdCia = r.IdCiaRes and d.Item = r.ItemRes END --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo - f.VrNeto FROM TercCliente c, @Trn_DevFcr f WHERE c.IdClie = f.IdCliente --actualizar vencimientos,cuando es necesario IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN UPDATE Trn_Vencimientos SET VrAbonado = v.VrAbonado + dv.VrAbono FROM Trn_Vencimientos v, @Trn_VencAbonos dv WHERE v.TipDoc = dv.TipDoc and v.Factura = dv.Factura and v.IdCia = dv.IdCiaFac END end SELECT @Numero, @Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = CONCAT( ' Mensaje de error:', ERROR_MESSAGE(), ' Numero error:', ERROR_NUMBER(), ' Error severity:', ERROR_SEVERITY(), ' Linea:', ERROR_LINE(), ' Error Procedure', ERROR_PROCEDURE()), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdp] Script Date: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdp] @Trn_TraEspDevOdp [dbo].[dataTypeTrn_TraEspDevOdp] READONLY, @Trn_EgrFactura [dbo].[dataTypeTrn_EgrFactura] READONLY, @Trn_TraEspAntAbonos [dbo].[dataTypeTrn_TraEspAntAbonos] READONLY, @Trn_Pagos [dbo].[dataTypeTrn_Pagos] READONLY, @Trn_TraEspOrdenReservas [dbo].[dataTypeTrn_TraEspOrdenReservas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compa�ia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el n�mero consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante Fiscal DECLARE @TipDev VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @CiaDev VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Dev INT --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime IF(@operacion = 'i') begin SELECT TOP 1 @TipDev = TipDev, @CiaDev = IdCia,@TipDoc = TipDoc, @Cia = IdCiaDoc,@fecdev = Fecha, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspDevOdp SELECT @Dev = Numero + 1 FROM TiposDocCons where IdDoc = @TipDev AND IdCia = @CiaDev IF(@Dev > 0) UPDATE TiposDocCons SET Numero = @Dev WHERE IdDoc = @TipDev AND IdCia = @CiaDev ELSE BEGIN SELECT @Dev = 1 INSERT INTO TiposDocCons VALUES (@TipDev,@CiaDev,0,0,0,0,NULL,'',@Dev,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END --John Roa--DIEGO ROMERO DICE QUE SI NO EXISTE EL COMPROBANTE CON ELMISMO NOMBRE DE DOC DEVOLUCI�N INSERTA UN COMPROBANTE CON EL TIPCOM SEA IIGUAL AL TIPDEV, en la tabla TiposCom(tipos de comprobantes) --es INACTIVO = 1, PARA PODER INSERTAR EN EGRFACTURA ESTE TIPCOM IF(NOT EXISTS(SELECT IdCom FROM TiposCom where IdCom = @TipDev)) BEGIN INSERT INTO TiposCom VALUES (@TipDev,'DEVOLUCION DE ORDEN DE PAGO ESPECIAL',0,0,0,1,CURRENT_TIMESTAMP,NULL,NULL,null) END -- IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspDevOdp)) BEGIN INSERT INTO Trn_TraEspDevOdp ( TipDev, Devolucion, IdCia, Fecha, IdConcepto, TipDoc, OrdPago, IdCiaDoc, FecDoc, IdVehiculo, IdPoseedor, IdConductor, CxPagar, ModdDev, TipCom, Comprobante, IdCiaCom, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario ) SELECT @TipDev, @Dev, @CiaDev, Fecha, IdConcepto, TipDoc, OrdPago, IdCiaDoc, FecDoc, IdVehiculo, IdPoseedor, IdConductor, CxPagar, ModdDev, @TipComp, @Comprobante, @IdCiaComp, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario FROM @Trn_TraEspDevOdp END IF(EXISTS(SELECT * FROM @Trn_EgrFactura)) BEGIN INSERT INTO Trn_EgrFactura ( TipCom, Comprobante, IdCia, Item, Fecha, TipFac, Factura, IdCiaFac, ItemFac, IdProveedor, IdCuenta, VrAbono, EsEgreso, ItemCom, pVehiculo, VehPropio, TipDev, NumDev, DetAbono ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, TipFac, Factura, IdCiaFac, ItemFac, IdProveedor, IdCuenta, VrAbono, EsEgreso, ItemCom, pVehiculo, VehPropio, @TipDev, @Dev, DetAbono FROM @Trn_EgrFactura END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos ( TipDoc, Documento, IdCia, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, VrAbono, TipoAplica, Detalle, CdCuentaAnt ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, (-VrAbono), TipoAplica, Detalle, CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos ( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDev, @Dev, @CiaDev, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, ( SELECT DISTINCT ISNULL(T.IdCuenta, TCD.IdCuenta) FROM @Trn_TraEspOrdenReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE TCD.Detalle WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END ) AND T.TipDoc = 'OPE' ) AS 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 AS TCD END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @CiaDev, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDev, @Dev, @CiaDev, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo,IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @CiaDev, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDev, @Dev, @CiaDev, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, N.Referncia, N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'i') begin --Se actualiza la orden de pago con los datos de la devoluci�n update Trn_TraEspOrdenPago set NumDev = @Dev, FecDev = @fecdev,Anulado = 1 from Trn_TraEspOrdenPago t1, @Trn_TraEspDevOdp t2 where t1.TipDoc = t2.TipDoc and t1.OrdPago = t2.OrdPago and t1.IdCia = t2.IdCiaDoc --se actualiza la Trn_Comfactura update Trn_ComFactura set VrAbonado = t1.VrAbonado + t2.VrAbono from Trn_ComFactura t1, @Trn_EgrFactura t2 where t1.TipFac = t2.TipFac and t1.Factura = t2.Factura and t1.IdCia = t2.Idcia and t1.Item = t2.ItemFac and t1.IdProveedor = t2.IdProveedor --Actualiza los items de la programaci�n detalle de cada reserva agregada en la Orden de Pago y que se devuelve UPDATE Trn_TraEspProgramaDet SET TipDocOdp = 'OPE',NumOdp = 0, IdCiaOdp = '00' FROM Trn_TraEspProgramaDet t1, @Trn_TraEspDevOdp t2 WHERE t1.TipDocOdp = 'OPE' and t1.NumOdp = t2.OrdPago and t1.IdCiaOdp = t2.IdCiaDoc --Actualizar item de Reservas al estado en el que se encontraba antes de cuando le realizaron la Orden de Pago UPDATE Trn_TraEspResDetalle SET EstadoItem = t.EstadoItem FROM Trn_TraEspResDetalle r, @Trn_TraEspOrdenReservas t WHERE r.TipDoc = t.TipRes and r.Reserva = t.Reserva and r.IdCia = t.IdCiaRes and r.Item = t.ItemRes --actualiza los anticipos(restar) para que quede como estaba antes de hacer la Orden de Pago UPDATE Trn_TraEspAnticipos SET VrAbonado = t2.VrAbono - VrAbonado FROM Trn_TraEspAnticipos t1, @Trn_TraEspAntAbonos t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt end SELECT @Dev, @Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] Script Date: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspDevOdpGIE] @Trn_TraEspDevOdp [dbo].[dataTypeTrn_TraEspDevOdp] READONLY, @Trn_EgrFactura [dbo].[dataTypeTrn_EgrFactura] READONLY, @Trn_TraEspAntAbonos [dbo].[dataTypeTrn_TraEspAntAbonos] READONLY, @Trn_Pagos [dbo].[dataTypeTrn_Pagos] READONLY, @Trn_TraEspOrdenReservas [dbo].[dataTypeTrn_TraEspOrdenReservas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compa�ia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el n�mero consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante Fiscal DECLARE @TipDev VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @CiaDev VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Dev INT --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n BEGIN TRAN BEGIN TRY declare @fecdev smalldatetime IF(@operacion = 'i') begin SELECT TOP 1 @TipDev = TipDev, @CiaDev = IdCia,@TipDoc = TipDoc, @Cia = IdCiaDoc,@fecdev = Fecha, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspDevOdp SELECT @Dev = Numero + 1 FROM TiposDocCons where IdDoc = @TipDev AND IdCia = @CiaDev IF(@Dev > 0) UPDATE TiposDocCons SET Numero = @Dev WHERE IdDoc = @TipDev AND IdCia = @CiaDev ELSE BEGIN SELECT @Dev = 1 INSERT INTO TiposDocCons VALUES (@TipDev,@CiaDev,0,0,0,0,NULL,'',@Dev,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END --John Roa--DIEGO ROMERO DICE QUE SI NO EXISTE EL COMPROBANTE CON ELMISMO NOMBRE DE DOC DEVOLUCI�N INSERTA UN COMPROBANTE CON EL TIPCOM SEA IIGUAL AL TIPDEV, en la tabla TiposCom(tipos de comprobantes) --es INACTIVO = 1, PARA PODER INSERTAR EN EGRFACTURA ESTE TIPCOM IF(NOT EXISTS(SELECT IdCom FROM TiposCom where IdCom = @TipDev)) BEGIN INSERT INTO TiposCom VALUES (@TipDev,'DEVOLUCION DE ORDEN DE PAGO ESPECIAL',0,0,0,1,CURRENT_TIMESTAMP,NULL,NULL,null) END -- IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspDevOdp)) BEGIN INSERT INTO Trn_TraEspDevOdp ( TipDev, Devolucion, IdCia, Fecha, IdConcepto, TipDoc, OrdPago, IdCiaDoc, FecDoc, IdVehiculo, IdPoseedor, IdConductor, CxPagar, ModdDev, TipCom, Comprobante, IdCiaCom, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario ) SELECT @TipDev, @Dev, @CiaDev, Fecha, IdConcepto, TipDoc, OrdPago, IdCiaDoc, FecDoc, IdVehiculo, IdPoseedor, IdConductor, CxPagar, ModdDev, @TipComp, @Comprobante, @IdCiaComp, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario FROM @Trn_TraEspDevOdp END IF(EXISTS(SELECT * FROM @Trn_EgrFactura)) BEGIN INSERT INTO Trn_EgrFactura ( TipCom, Comprobante, IdCia, Item, Fecha, TipFac, Factura, IdCiaFac, ItemFac, IdProveedor, IdCuenta, VrAbono, EsEgreso, ItemCom, pVehiculo, VehPropio, TipDev, NumDev, DetAbono ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, TipFac, Factura, IdCiaFac, ItemFac, IdProveedor, IdCuenta, VrAbono, EsEgreso, ItemCom, pVehiculo, VehPropio, @TipDev, @Dev, DetAbono FROM @Trn_EgrFactura END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos ( TipDoc, Documento, IdCia, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, VrAbono, TipoAplica, Detalle, CdCuentaAnt ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, (-VrAbono), TipoAplica, Detalle, CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos ( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDev, @Dev, @CiaDev, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDev, @Dev, @CiaDev, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, ( SELECT DISTINCT ISNULL(T.IdCuenta, TCD.IdCuenta) FROM @Trn_TraEspOrdenReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE TCD.Detalle WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END ) AND T.TipDoc = 'OPE' ) AS 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 AS TCD 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_TraEspFuec] Script Date: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspFuec] @Trn_TraEspFuec [dbo].[dataTypeTrn_TraEspFuec] READONLY, @Trn_TraEspFuecAnexo [dbo].[dataTypeTrn_TraEspFuecAnexo] READONLY, @Trn_TraEspFuecDetalle [dbo].[dataTypeTrn_TraEspFuecDetalle] READONLY, @Trn_TraEspFuecCndtores [dbo].[dataTypeTrn_TraEspFuecCndtores] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Documento INT --Esta variable guarda el número de consecutivo del Fuec DECLARE @TipDoc VARCHAR(3) --Esta variable guarda el tipo de documento del Fuec DECLARE @IdCia VARCHAR(4) --Esta variable guarda la compañia del Fuec declare @item int declare @consecutivo int = 0 declare @numcontrato int declare @idciacnt varchar(4) BEGIN TRAN BEGIN TRY --Seleccionar Variables IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia,@idciacnt = CiaCnt, @numcontrato = Contrato FROM @Trn_TraEspFuec SELECT @Documento = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @IdCia select @consecutivo = (ISNULL(MAX(Consecutivo),0) + 1) from Trn_TraEspFuec where TipDocCnt = 'COE' and Contrato = @numcontrato AND CiaCnt = @idciacnt IF(@Documento <> '' OR @Documento is not null) 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 --Seleccionar Variables --IF(@operacion = 'u') --begin -- SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuec --end --UPDATE SI-EXISTE RECORDS IF(@operacion = 'u') BEGIN if(EXISTS(SELECT * FROM @Trn_TraEspFuec)) begin UPDATE Trn_TraEspFuec SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, Numero = t2.Numero, Fecha = t2.Fecha, FechaInicio = t2.FechaInicio, FechaFin = t2.FechaFin, CdCarga = t2.CdCarga, IdVehiculo = t2.IdVehiculo, IdConductor = t2.IdConductor, IdConductor2 = t2.IdConductor2, IdConductor3 = t2.IdConductor3, IdPoseedor = t2.IdPoseedor, IdRuta = t2.IdRuta, CdTipRuta = t2.CdTipRuta, IdOrigen = t2.IdOrigen, IdDestino = t2.IdDestino, Modalidad = t2.Modalidad, CantPasajeros = t2.CantPasajeros, CodTarRet = t2.CodTarRet, CodTarIca = t2.CodTarIca, VrPresupuesto = t2.VrPresupuesto, VrCobro = t2.VrCobro, VrPagos = t2.VrPagos, VrCargos = t2.VrCargos, VrDctos = t2.VrDctos, VrIva = t2.VrIva, VrRetencion = t2.VrRetencion, VrReteIca = t2.VrReteIca, Cantidad = t2.Cantidad, Peso = t2.Peso, TipDocPgr = t2.TipDocPgr, NumPgr = t2.NumPgr, IdCiaPgr = t2.IdCiaPgr, ItemPgr = t2.ItemPgr, TipDocCnt = t2.TipDocCnt, Contrato = t2.Contrato, CiaCnt = t2.CiaCnt, OrigenAdd = t2.OrigenAdd, Anulado = t2.Anulado, FecDev = t2.FecDev, IdEstado = t2.IdEstado, TimeSys = t2.TimeSys, FecUpdate = t2.FecUpdate, IdCiaCrea = t2.IdCiaCrea, IdUsuario = t2.IdUsuario, Consecutivo = t2.Consecutivo, Itinerario=t2.Itinerario, FuecParcial = t2.FuecParcial, ComenParcial = t2.ComenParcial, Qr = t2.Qr FROM Trn_TraEspFuec t1 JOIN @Trn_TraEspFuec t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia end if(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin UPDATE Trn_TraEspFuecAnexo SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, TipContrato = t2.TipContrato, IdContrato = t2.IdContrato, ObjContrato = t2.ObjContrato, DescripCarga = t2.DescripCarga, Observacion = t2.Observacion, RespViaje = t2.RespViaje, VehConvenio=t2.VehConvenio, EmpresaVehCon = t2.EmpresaVehCon FROM Trn_TraEspFuecAnexo t1 JOIN @Trn_TraEspFuecAnexo t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia end if(EXISTS(SELECT * FROM @Trn_TraEspFuecDetalle)) begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuecDetalle select @item = isnull(MAX(Item),0) from Trn_TraEspFuecDetalle where TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia --actualizar los que vienen en el tipo de dato y coincida con los que ya están en la tabla UPDATE Trn_TraEspFuecDetalle SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, Item = t2.Item, TipRes = t2.TipRes, Reserva = t2.Reserva, IdCiaRes = t2.IdCiaRes, ItemRes = t2.ItemRes, NumPasajeros = t2.NumPasajeros, PesoNeto = t2.PesoNeto, VrCobro = t2.VrCobro, VrPagos = t2.VrPagos, Referencia1 = t2.Referencia1, Referencia2 = t2.Referencia2, Referencia3 = t2.Referencia3, CdTipServicio = t2.CdTipServicio, EsRutaCliente = t2.EsRutaCliente, Kilometros = t2.Kilometros, DirOrigen = t2.DirOrigen, FecOrigen = t2.FecOrigen, DirDestino = t2.DirDestino, FecDestino = t2.FecDestino FROM Trn_TraEspFuecDetalle t1 JOIN @Trn_TraEspFuecDetalle t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item WHERE t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item --Inserta los que no existen INSERT INTO Trn_TraEspFuecDetalle( TipDoc,Fuec,IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino ) SELECT @TipDoc, @Documento, @IdCia, (@Item + ROW_NUMBER() OVER(ORDER BY Item ASC)),TipRes, Reserva, IdCiaRes, ItemRes, NumPasajeros, PesoNeto, VrCobro, VrPagos, Referencia1, Referencia2, Referencia3, CdTipServicio, EsRutaCliente, Kilometros, DirOrigen, FecOrigen, DirDestino, FecDestino FROM @Trn_TraEspFuecDetalle WHERE (TipDoc + Convert(varchar,Fuec) + IdCia + Convert(varchar,Item)) NOT IN(SELECT(TipDoc + Convert(varchar, Fuec) + IdCia + Convert(varchar,Item)) FROM Trn_TraEspFuecDetalle) --Eliminar los que no existen en lo que envian delete from Trn_TraEspFuecDetalle WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia and Item NOT IN(SELECT Item FROM @Trn_TraEspFuecDetalle) end if(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin UPDATE Trn_TraEspFuecAnexo SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, TipContrato = t2.TipContrato, IdContrato = t2.IdContrato, ObjContrato = t2.ObjContrato, DescripCarga = t2.DescripCarga, Observacion = t2.Observacion, RespViaje = t2.RespViaje, VehConvenio=t2.VehConvenio, EmpresaVehCon=t2.EmpresaVehCon FROM Trn_TraEspFuecAnexo t1 JOIN @Trn_TraEspFuecAnexo t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia end if(EXISTS(SELECT top 1 Fuec FROM @Trn_TraEspFuecCndtores)) begin SELECT TOP 1 @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec FROM @Trn_TraEspFuecCndtores select @item = isnull(MAX(Item),0) from @Trn_TraEspFuecCndtores where TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia --actualizar los que vienen en el tipo de dato y coincida con los que ya están en la tabla UPDATE Trn_TraEspFuecCndtores SET TipDoc = t2.TipDoc, Fuec = t2.Fuec, IdCia = t2.IdCia, Item = t2.Item, IdConductor = t2.IdConductor FROM Trn_TraEspFuecCndtores t1 JOIN @Trn_TraEspFuecCndtores t2 ON t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item WHERE t1.TipDoc = t2.TipDoc and t1.Fuec = t2.Fuec and t1.IdCia = t2.IdCia and t1.Item = t2.Item --Eliminar los que no existen en lo que envian delete from Trn_TraEspFuecCndtores WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia and Item NOT IN(SELECT Item FROM @Trn_TraEspFuecCndtores) --Inserta los que no existen INSERT INTO Trn_TraEspFuecCndtores( TipDoc, Fuec, IdCia, Item, IdConductor ) SELECT @TipDoc, @Documento, @IdCia, (@item + ROW_NUMBER() OVER(ORDER BY Item ASC)), IdConductor FROM @Trn_TraEspFuecCndtores WHERE (TipDoc + Convert(varchar, Fuec) + IdCia + Convert(varchar,Item)) NOT IN(SELECT(TipDoc + Convert(varchar, Fuec) + IdCia+Convert(varchar, Item)) FROM Trn_TraEspFuecCndtores) end END --INSERT NO-EXISTE RECORDS IF(@operacion = 'i') BEGIN IF(EXISTS(SELECT * FROM @Trn_TraEspFuec)) begin INSERT INTO Trn_TraEspFuec( TipDoc, Fuec, IdCia, Numero, Fecha, FechaInicio, FechaFin, CdCarga, IdVehiculo, IdConductor, IdConductor2, IdConductor3, IdPoseedor, IdRuta, CdTipRuta, IdOrigen, IdDestino, Modalidad, CantPasajeros, CodTarRet, CodTarIca, VrPresupuesto, VrCobro, VrPagos, VrCargos, VrDctos, VrIva, VrRetencion, VrReteIca, Cantidad, Peso, TipDocPgr, NumPgr, IdCiaPgr, ItemPgr, TipDocCnt, Contrato, CiaCnt, OrigenAdd, Anulado, FecDev, IdEstado, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, Consecutivo, Itinerario, FuecParcial, ComenParcial, Qr ) SELECT @TipDoc,@Documento,@IdCia,Numero,Fecha,FechaInicio, FechaFin,CdCarga,IdVehiculo,IdConductor,IdConductor2,IdConductor3, IdPoseedor,IdRuta,CdTipRuta,IdOrigen,IdDestino,Modalidad, CantPasajeros,CodTarRet,CodTarIca,VrPresupuesto,VrCobro,VrPagos, VrCargos,VrDctos,VrIva,VrRetencion,VrReteIca,Cantidad, Peso,TipDocPgr,NumPgr,IdCiaPgr,ItemPgr,TipDocCnt, Contrato,CiaCnt,OrigenAdd,Anulado,FecDev,IdEstado, TimeSys,FecUpdate,IdCiaCrea,IdUsuario,@consecutivo,Itinerario, FuecParcial,ComenParcial, Qr FROM @Trn_TraEspFuec end IF(EXISTS(SELECT * FROM @Trn_TraEspFuecAnexo)) begin INSERT INTO Trn_TraEspFuecAnexo( TipDoc,Fuec,IdCia,TipContrato,IdContrato,ObjContrato, DescripCarga,Observacion,RespViaje,VehConvenio,EmpresaVehCon ) SELECT @TipDoc,@Documento,@IdCia,TipContrato,IdContrato,ObjContrato, DescripCarga,Observacion,RespViaje,VehConvenio,EmpresaVehCon FROM @Trn_TraEspFuecAnexo end IF(EXISTS(SELECT * FROM @Trn_TraEspFuecDetalle)) begin INSERT INTO Trn_TraEspFuecDetalle( TipDoc,Fuec,IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino ) SELECT @TipDoc,@Documento,@IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,NumPasajeros,PesoNeto,VrCobro,VrPagos, Referencia1,Referencia2,Referencia3,CdTipServicio,EsRutaCliente,Kilometros, DirOrigen,FecOrigen,DirDestino,FecDestino FROM @Trn_TraEspFuecDetalle end IF(EXISTS(SELECT TOP 1 Fuec FROM @Trn_TraEspFuecCndtores)) begin INSERT INTO Trn_TraEspFuecCndtores( TipDoc,Fuec,IdCia,Item,IdConductor ) SELECT @TipDoc,@Documento,@IdCia,Item, IdConductor FROM @Trn_TraEspFuecCndtores end --Actualizar Programación-Detalles UPDATE Trn_TraEspProgramaDet SET TipDocFuec = @TipDoc,NumFuec = @Documento, IdCiaFuec = @IdCia FROM Trn_TraEspProgramaDet t1, @Trn_TraEspFuec t2, @Trn_TraEspFuecDetalle t3 WHERE t1.TipDoc = 'PGR' and t1.Programa = t2.NumPgr and t1.IdCia = t2.IdCiaPgr and t1.TipDocRes = t3.TipRes and t1.Reserva = t3.Reserva and t1.IdCiaRes = t3.IdCiaRes and t1.ItemRes = t3.ItemRes END --DELETE RECORDS IF(@operacion = 'd') BEGIN declare @Fuec int select @TipDoc = TipDoc, @IdCia = IdCia, @Fuec = Fuec from @Trn_TraEspFuec DELETE FROM Trn_TraEspFuecDetalle WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuecAnexo WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuec WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia DELETE FROM Trn_TraEspFuecCndtores WHERE TipDoc = @TipDoc and Fuec = @Fuec and IdCia = @IdCia END --ANULAR RECORDS IF(@operacion = 'a') BEGIN select @TipDoc = TipDoc, @IdCia = IdCia, @Documento = Fuec from @Trn_TraEspFuec UPDATE Trn_TraEspFuec SET IdEstado = '9999', Anulado = 1 WHERE TipDoc = @TipDoc and Fuec = @Documento and IdCia = @IdCia UPDATE Trn_TraEspProgramaDet SET TipDocFuec = 'FUE',NumFuec = 0, IdCiaFuec = '00' FROM Trn_TraEspProgramaDet t1, @Trn_TraEspFuec t2 WHERE t1.TipDocFuec = 'FUE' and t1.NumFuec = t2.Fuec and t1.IdCiaFuec = t2.IdCia END SELECT @Documento COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000), @ErrorSeverity INT, @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: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPago] @Trn_TraEspOrdenPago [dbo].[dataTypeTrn_TraEspOrdenPago] READONLY, @Trn_TraEspOrdenReservas [dbo].[dataTypeTrn_TraEspOrdenReservas] READONLY, @Trn_TraEspOrdenProg [dbo].[dataTypeTrn_TraEspOrdenProg] READONLY, @Trn_TraEspConceptos [dbo].[dataTypeTrn_TraEspConceptos] READONLY, @Trn_TraEspAntAbonos [dbo].[dataTypeTrn_TraEspAntAbonos] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_ComFactura [dbo].[dataTypeTrn_ComFactura] READONLY, @Trn_Pagos [dbo].[dataTypeTrn_Pagos] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeNiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compa�ia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el n�mero consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobaci�n --Nuevas variables DECLARE @Reserva INT = (SELECT TOP 1 Reserva FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el n�mero de reserva DECLARE @ItemRes INT = (SELECT TOP 1 ItemRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el n�mero de �tem de reserva DECLARE @IdCiaRes CHAR(2) = (SELECT TOP 1 IdCiaRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda la compa�ia de la reserva DECLARE @VrPagos MONEY = 0 --En esta variable va guarda el valor de pago real de la reserva DECLARE @VrTotalPagosaRES MONEY = 0 --En esta variable va guarda el valor de pagos hechas a la reserva por ordenes de pago DECLARE @TipoTarifa varchar(20) BEGIN TRAN BEGIN TRY IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspOrdenPago SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenPago)) BEGIN INSERT INTO Trn_TraEspOrdenPago ( TipDoc,OrdPago,IdCia,Fecha,TipRes,Reserva, IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar, MulPlazos,IdPlazo,FechaVence,TipCom,Comprobante,IdCiaCom, Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd, TimeSys,FecUpdate,IdCiaCrea,IdUsuario ) SELECT @TipDoc,@Numero,@Cia,Fecha,TipRes,Reserva, IdCiaRes,IdConcepto,Cantidad,Modalidad,LiqReservas,CxPagar, MulPlazos,IdPlazo,FechaVence,@TipComp,@Comprobante,@IdCiaComp, Anulado,NumDev,FecDev,Observacion,IdEstado,OrigenAdd, TimeSys,FecUpdate,IdCiaCrea,IdUsuario FROM @Trn_TraEspOrdenPago END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenReservas)) BEGIN INSERT INTO Trn_TraEspOrdenReservas ( TipDoc,OrdPago,IdCia,Item,Fecha,TipRes, Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario, IdPoseedor,VrServicio,VrDescuento,VrRetencion,VrReteIca,VrReteCREE, VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet, BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr, NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro, VrConcAporte,VrConcImpuesto,VrRecCaja,CdForma,CdCenCosto,CdSubCenCos, VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipRes, Reserva,IdCiaRes,ItemRes,IdVehiculo,IdConductor,IdPropietario, IdPoseedor,VrServicio,VrDescuento,VrRetencion,VrReteIca,VrReteCREE, VrAnticipos,VrOtrosDctos,VrImpuestos,VrOtrosPagos,VrNeto,BaseRet, BaseIca,BaseCree,TarifaRet,TarifaIca,TarifaRtc,CodTarRet, CodTarIca,CodTarRtc,TipEgr,Egreso,IdCiaEgr,FechaEgr, NumCheque,Referencia,VrConcPagos,VrConcDctos,VrConcFondo,VrConcSeguro, VrConcAporte,VrConcImpuesto,VrRecCaja,CdForma,CdCenCosto,CdSubCenCos, VrSeguros,VrFondos,VrAportes,EdoLiqCausac,EstadoItem FROM @Trn_TraEspOrdenReservas END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenProg)) BEGIN INSERT INTO Trn_TraEspOrdenProg ( TipDoc,OrdPago,IdCia,Item,TipRes,Reserva, IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr, VrRecorrido ) SELECT @TipDoc,@Numero,@Cia,Item,TipRes,Reserva, IdCiaRes,ItemRes,TipPgr,Programa,IdCiaPgr,ItemPgr, VrRecorrido FROM @Trn_TraEspOrdenProg END IF(EXISTS(SELECT * FROM @Trn_TraEspConceptos)) BEGIN INSERT INTO Trn_TraEspConceptos ( TipDoc,Documento,IdCia,Item,Descripcion,Tarifa, TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto, CdCuenta,NitTercero,CdTipoEsc,FechaNov,VrBase,TipoTarif, RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente, Conductor,Vehiculo,ItemDoc,IdVehiculo ) SELECT @TipDoc,@Numero,@Cia,Item,Descripcion,Tarifa, TipoConc,RubroConcep,Cantidad,VrUnitario,TarifIva,IdConcepto, CdCuenta,NitTercero,CdTipoEsc,FechaNov,VrBase,TipoTarif, RefConc,Fijos,IncBaseRet,Referencia2,Referencia3,Cliente, Conductor,Vehiculo,ItemDoc,IdVehiculo FROM @Trn_TraEspConceptos END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc,Documento,IdCia,Item,Fecha,TipAnt, Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,TipAnt, Anticipo,IdCiaAnt,VrAbono,TipoAplica,Detalle,CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas ( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta, Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos, pVehiculo,VrBase,TipFac,Factura,IdCiaFac,ItemFac, FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif, CodConc,CodTarif FROM @Trn_DetCuentas END IF(EXISTS(SELECT * FROM @Trn_ComFactura)) BEGIN INSERT INTO Trn_ComFactura( TipFac,Factura,IdCia,Item,IdProveedor,IdCuenta, TipDoc,Documento,IdCiaDoc,FecEmision,FecVence,VrFactura, VrAbonado,TipCom,Comprobante,ItemCom,Referencia,Detalle, pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr, MontoAprob ) SELECT @TipDoc,@Numero,@Cia,Item,IdProveedor,IdCuenta, @TipDoc,@Numero,@Cia,FecEmision,FecVence,VrFactura, VrAbonado,@TipComp,@Comprobante,ItemCom,Referencia,Detalle, pVehiculo,VehPropio,TipRef,DocRef,IdCiaRef,EstadoApr, MontoAprob FROM @Trn_ComFactura END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos ( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, ( SELECT DISTINCT ISNULL(T.IdCuenta, TCD.IdCuenta) FROM @Trn_TraEspOrdenReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE TCD.Detalle WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END ) AND T.TipDoc = 'OPE' ) AS 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 AS TCD END IF(EXISTS(SELECT * FROM @Trn_NiifComp)) BEGIN INSERT INTO Trn_NiifComp ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev,FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, TipoNiif, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac,FechaAut, CtbTipo, CtbNumero, FisTipo, FisNumero ) SELECT CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @Cia, C.Anulado, C.NumDev, C.FecDev, C.TipEgr, C.NEgreso, C.pVehiculo, C.VehPropio, C.CedCondtor, C.CodConce, C.Beneficiario, C.VrDivisa1, C.VrDivisa2, C.VrDivisa3, C.PermEditar, C.Integrado, C.EsEgreso, C.Anticipo, C.Observacion, C.IdEstado, C.Propddes, C.TimeSys, C.FecUpdate, C.IdCiaCrea, C.IdUsuario, N.TipoNiif, C.CdSustento, C.Tipo_Pago, C.Establec, C.PEmision, C.Autorizac, C.FechaAut, CASE N.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE NULL END, CASE N.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE 0 END, CASE N.TipoNiif WHEN 'FISCAL' THEN @TipCompFis ELSE NULL END, CASE N.TipoNiif WHEN 'FISCAL' THEN @CompFis ELSE 0 END FROM @Trn_Comprobantes AS C JOIN @Trn_NiifComp AS N ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont END IF(EXISTS(SELECT * FROM @Trn_NiifDetalle)) BEGIN INSERT INTO Trn_NiifDetalle ( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza, CodCuentaCG ) SELECT CASE NC.TipoNiif WHEN 'NIIF' THEN @TipCompNiif ELSE @TipCompFis END, CASE NC.TipoNiif WHEN 'NIIF' THEN @CompNiif ELSE @CompFis END, @Cia, N.Item, N.Fecha, N.IdCuenta, N.Detalle, N.VrDebito, N.VrCredito, N.IdTercero, N.IdVehiculo,N.IdCCosto, N.IdSubCos, N.VrBase, N.TarifaBase, @TipDoc, @Numero, @Cia, N.CodConce, N.NitDoc, N.TipFac, N.Factura, N.IdCiaFac, N.ItemFac, N.FecVence, N.CodCta, N.NumCheque, N.Integrado, N.TipoAplica, N.Consolida, N.CodCargo, N.NitOtros, N.CodSubgpo, N.CiuOrigen, N.CodAgncia, N.VehPropio, SUBSTRING(N.Referncia,0,50), N.TipDocRef, N.DocRef, N.IdCiaRef, N.TimeSys, N.FecUpdate, N.IdCiaCrea, N.IdUsuario, N.CdConcTrib, N.CdTarifTrib, N.NumEstablec, N.PtoEmision ,N.Num_Autoriza, N.FechAutoriza, N.CodCuentaCG FROM @Trn_NiifDetalle as N JOIN @Trn_NiifComp AS NC ON N.TipCom = NC.TipCom AND N.Comprobante = NC.Comprobante END end IF(@operacion = 'i') begin --actualiza los items de la programaci�n detalle de cada reserva agregada en la Orden de Pago UPDATE Trn_TraEspProgramaDet SET TipDocOdp = 'OPE',NumOdp = @Numero, IdCiaOdp = t3.IdCia, FechaOdp = t3.Fecha FROM Trn_TraEspProgramaDet t1, @Trn_TraEspOrdenProg t2, @Trn_TraEspOrdenPago t3 WHERE t1.TipDoc = t2.TipPgr and t1.Programa = t2.Programa and t1.IdCia = t2.IdCiaPgr and t1.Item = t2.ItemPgr and t1.TipDocRes = t2.TipRes and t1.Reserva = t2.Reserva and t1.IdCiaRes = t2.IdCiaRes and t1.ItemRes = t2.ItemRes --JHON ROA-->Nuevo l�nea de c�digo actualizar el estado de la reserva cuando ya se cumpla el valor total de la reserva --11/12/2017 Se cambia para tener en cuenta cuando TipoTarifa de la reserva es diaria. SELECT @TipoTarifa = TipoTarifa FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes --No se necesita traer la actual reserva, poque ya fue insertada arriba en este procedimiento SELECT @VrTotalPagosaRES = ROUND(ISNULL(SUM(R.VrServicio),0), 1) FROM Trn_TraEspOrdenReservas R LEFT JOIN Trn_TraEspOrdenPago AS OP ON R.TipDoc = OP.TipDoc AND R.OrdPago = OP.OrdPago AND R.IdCia = OP.IdCia WHERE R.Reserva = @Reserva AND R.IdCiaRes = @IdCiaRes AND R.ItemRes = @ItemRes AND OP.Anulado = 0; IF(upper(@TipoTarifa) <> 'DIA') BEGIN SELECT @VrPagos = VrPagos FROM Trn_TraEspResDetalle WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END ELSE -- revisar que la cant de veh que se vayan a liquidar(programados no novedad) ya hayan sido liquidados(pasan de xliquidar a liquidado) y que la reserva no se haya vencido BEGIN declare @cantveh int= 0, @cantord int = 0, @fechares date, @fechasys date, @idveh varchar(10) select @cantveh = count(*) from trn_traespprogramadet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' select @fechares = fechafin from trn_traespreservas where Reserva = @Reserva AND IdCia = @IdCiaRes select @fechasys = FechaActual from companias where IdCia = @IdCiaRes --selecciono los progdetalle de esos vehiculos declare @Trn_TraEspProgramaDet dataTypeTrn_TraEspProgramaDet INSERT INTO @Trn_TraEspProgramaDet ( TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin, TipDocRes,Reserva,IdCiaRes,ItemRes,IdOrigen,IdDestino, IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad, Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos, DiasDisp,Parada,CdTipServicio,DirOrigen,DirDestino,IdRuta, CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido, Observacion ) SELECT TipDoc,Programa,IdCia,Item,FechaInicio,FechaFin, TipDocRes,Reserva,IdCiaRes,ItemRes,IdOrigen,IdDestino, IdVehiculo,CdTipVeh,IdConductor,NumPasajeros,TipDocFuec,NumFuec, IdCiaFuec,TipDocOdp,NumOdp,IdCiaOdp,FechaOdp,IdNovedad, Novedad,Cumplido,FecIniCump,FecFinCump,VrCobro,VrPagos, DiasDisp,Parada,CdTipServicio,DirOrigen,DirDestino,IdRuta, CdTipRuta,PesoNeto,EstadoItem,VrMonitor,CantMonitor,VrRecorrido, Observacion FROM Trn_TraEspProgramaDet where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' --cursor para verififcar si los vehiculos fueron pagados en ordenes de pago DECLARE verificar CURSOR FOR SELECT IdVehiculo FROM @Trn_TraEspProgramaDet OPEN verificar FETCH NEXT FROM verificar INTO @idveh WHILE @@FETCH_STATUS = 0 BEGIN --verifico la cantidad que ya fueron liquidados(tiene en cuenta la actual) if (exists(select * from Trn_TraEspOrdenReservas where Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdVehiculo = @idveh)) select @cantord = @cantord + 1 FETCH NEXT FROM verificar INTO @idveh END CLOSE verificar DEALLOCATE verificar --se verifica que cumpal para colocar la resrva a liquidada IF((@cantord >= @cantveh) AND (@fechasys >= @fechares)) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END END ELSE BEGIN SELECT @VrPagos = ISNULL(SUM(VrPagos),0) FROM Trn_TraEspProgramaDet AS PD JOIN Trn_TraEspPrograma AS P ON P.TipDoc = PD.TipDoc AND P.Programa = PD.Programa AND P.IdCia = PD.IdCia WHERE Reserva = @Reserva AND IdCiaRes = @IdCiaRes AND ItemRes = @ItemRes and IdNovedad = '0' and IdVehiculo <>'0' and p.Anulado = 0 IF(@VrTotalPagosaRES >= @VrPagos) BEGIN UPDATE Trn_TraEspResDetalle SET EstadoItem ='LIQUIDADA' WHERE Reserva = @Reserva AND IdCia = @IdCiaRes AND Item = @ItemRes END END --actualiza los anticipos UPDATE Trn_TraEspAnticipos SET VrAbonado = VrAbonado + t2.VrAbono FROM Trn_TraEspAnticipos t1, @Trn_TraEspAntAbonos t2 WHERE t1.TipDoc = t2.TipAnt and t1.Anticipo = t2.Anticipo and t1.IdCia = t2.IdCiaAnt end SELECT @Numero,@Comprobante COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); RAISERROR( @ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. ); END CATCH RETURN 0 GO /****** Object: StoredProcedure [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] Script Date: 23/08/2024 10:53:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_TraEspOrdenPagoGIE] @Trn_TraEspOrdenPago [dbo].[dataTypeTrn_TraEspOrdenPago] READONLY, @Trn_TraEspOrdenReservas [dbo].[dataTypeTrn_TraEspOrdenReservas] READONLY, @Trn_TraEspOrdenProg [dbo].[dataTypeTrn_TraEspOrdenProg] READONLY, @Trn_TraEspConceptos [dbo].[dataTypeTrn_TraEspConceptos] READONLY, @Trn_TraEspAntAbonos [dbo].[dataTypeTrn_TraEspAntAbonos] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_ComFactura [dbo].[dataTypeTrn_ComFactura] READONLY, @Trn_Pagos [dbo].[dataTypeTrn_Pagos] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeNiifComp] READONLY, @Trn_NiifDetalle [dbo].[dataTypeNiifDetalle] READONLY, @operacion [varchar](1) WITH EXECUTE AS CALLER AS DECLARE @Comprobante INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante DECLARE @TipComp VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante DECLARE @IdCiaComp VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante DECLARE @CompNiif INT = 0 --Esta variable guarda el n�mero consecutivo del comprobante Niif DECLARE @TipCompNiif VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Niif DECLARE @IdCiaCompNiif VARCHAR(4) = '00'--Esta variable guarda la compa�ia del comprobante Niif DECLARE @CompFis INT = 0 --Esta variable guarda el n�mero consecutivo de comprobante Fiscal DECLARE @TipCompFis VARCHAR(3) = '0' --Esta variable guarda el tipo de comprobante Fiscal DECLARE @IdCiaCompFis VARCHAR(4) = '00' --Esta variable guarda la compa�ia del comprobante Fiscal DECLARE @TipDoc VARCHAR(3) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Cia VARCHAR(2) --En esta variable se guarda el consecutivo del documento aprobaci�n DECLARE @Numero INT --En esta variable se guarda el consecutivo del documento aprobaci�n --Nuevas variables DECLARE @Reserva INT = (SELECT TOP 1 Reserva FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el n�mero de reserva DECLARE @ItemRes INT = (SELECT TOP 1 ItemRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda el n�mero de �tem de reserva DECLARE @IdCiaRes CHAR(2) = (SELECT TOP 1 IdCiaRes FROM @Trn_TraEspOrdenReservas) --Esta variable guarda la compa�ia de la reserva DECLARE @VrPagos MONEY = 0 --En esta variable va guarda el valor de pago real de la reserva DECLARE @VrTotalPagosaRES MONEY = 0 --En esta variable va guarda el valor de pagos hechas a la reserva por ordenes de pago DECLARE @TipoTarifa varchar(20) BEGIN TRAN BEGIN TRY IF(@operacion = 'i') begin SELECT TOP 1 @TipDoc = TipDoc, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia FROM @Trn_TraEspOrdenPago SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia ELSE BEGIN SELECT @Numero = 1 INSERT INTO TiposDocCons VALUES (@TipDoc,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN SELECT TOP 1 @TipComp = TipCom FROM @Trn_Comprobantes SELECT @Comprobante = Numero + 1 FROM TiposComCons where IdCom = @TipComp AND IdCia = @IdCiaComp --UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp AND IdCia = @IdCiaComp IF(@Comprobante <> '') UPDATE TiposComCons SET Numero = @Comprobante WHERE IdCom = @TipComp and IdCia = @IdCiaComp ELSE BEGIN SELECT @Comprobante = 1 INSERT INTO TiposComCons VALUES (@TipComp,@IdCiaComp,0,0,@Comprobante,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF')) BEGIN SELECT TOP 1 @TipCompNiif = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' SELECT @CompNiif = Numero + 1 FROM TiposComCons where IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif --UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif AND IdCia = @IdCiaCompNiif IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif ELSE BEGIN SELECT @CompNiif = 1 INSERT INTO TiposComCons VALUES (@TipCompNiif,@IdCiaCompNiif,0,0,@CompNiif,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL')) BEGIN SELECT TOP 1 @TipCompFis = TipCom FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' SELECT @CompFis = Numero + 1 FROM TiposComCons where IdCom = @TipCompFis AND IdCia = @IdCiaCompFis --UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis AND IdCia = @IdCiaCompFis IF(@CompNiif <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END end IF(@operacion = 'i') begin IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenPago)) BEGIN INSERT INTO Trn_TraEspOrdenPago ( TipDoc, OrdPago, IdCia, Fecha, TipRes, Reserva, IdCiaRes, IdConcepto, Cantidad, Modalidad, LiqReservas, CxPagar, MulPlazos, IdPlazo, FechaVence, TipCom, Comprobante, IdCiaCom, Anulado, NumDev, FecDev, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario ) SELECT @TipDoc, @Numero, @Cia, Fecha, TipRes, Reserva, IdCiaRes, IdConcepto, Cantidad, Modalidad, LiqReservas, CxPagar, MulPlazos, IdPlazo, FechaVence, @TipComp, @Comprobante, @IdCiaComp, Anulado, NumDev, FecDev, Observacion, IdEstado, OrigenAdd, TimeSys, FecUpdate, IdCiaCrea, IdUsuario FROM @Trn_TraEspOrdenPago END IF(EXISTS(SELECT * FROM @Trn_TraEspOrdenReservas)) BEGIN INSERT INTO Trn_TraEspOrdenReservas ( TipDoc, OrdPago, IdCia, Item, Fecha, TipRes, Reserva, IdCiaRes, ItemRes, IdVehiculo, IdConductor, IdPropietario, IdPoseedor, VrServicio, VrDescuento, VrRetencion, VrReteIca, VrReteCREE, VrAnticipos, VrOtrosDctos, VrImpuestos, VrOtrosPagos, VrNeto, BaseRet, BaseIca, BaseCree, TarifaRet, TarifaIca, TarifaRtc, CodTarRet, CodTarIca, CodTarRtc, TipEgr, Egreso, IdCiaEgr, FechaEgr, NumCheque, Referencia, VrConcPagos, VrConcDctos, VrConcFondo, VrConcSeguro, VrConcAporte, VrConcImpuesto, VrRecCaja, CdForma, CdCenCosto, CdSubCenCos, VrSeguros, VrFondos, VrAportes, EdoLiqCausac, EstadoItem ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, TipRes, Reserva, IdCiaRes, ItemRes, IdVehiculo, IdConductor, IdPropietario, IdPoseedor, VrServicio, VrDescuento, VrRetencion, VrReteIca, VrReteCREE, VrAnticipos, VrOtrosDctos, VrImpuestos, VrOtrosPagos, VrNeto, BaseRet, BaseIca, BaseCree, TarifaRet, TarifaIca, TarifaRtc, CodTarRet, CodTarIca, CodTarRtc, TipEgr, Egreso, IdCiaEgr, FechaEgr, NumCheque, Referencia, VrConcPagos, VrConcDctos, VrConcFondo, VrConcSeguro, VrConcAporte, VrConcImpuesto, VrRecCaja, CdForma, CdCenCosto, CdSubCenCos, VrSeguros, VrFondos, VrAportes, EdoLiqCausac, EstadoItem FROM @Trn_TraEspOrdenReservas END IF(EXISTS(SELECT * FROM @Trn_TraEspConceptos)) BEGIN INSERT INTO Trn_TraEspConceptos( TipDoc, Documento, IdCia, Item, Descripcion, Tarifa, TipoConc, RubroConcep, Cantidad, VrUnitario, TarifIva, IdConcepto, CdCuenta, NitTercero, CdTipoEsc, FechaNov, VrBase, TipoTarif, RefConc, Fijos, IncBaseRet, Referencia2, Referencia3, Cliente, Conductor, Vehiculo, ItemDoc, IdVehiculo ) SELECT @TipDoc, @Numero, @Cia, Item, Descripcion, Tarifa, TipoConc, RubroConcep, Cantidad, VrUnitario, TarifIva, IdConcepto, CdCuenta, NitTercero, CdTipoEsc, FechaNov, VrBase, TipoTarif, RefConc, Fijos, IncBaseRet, Referencia2, Referencia3, Cliente, Conductor, Vehiculo, ItemDoc, IdVehiculo FROM @Trn_TraEspConceptos END IF(EXISTS(SELECT * FROM @Trn_TraEspAntAbonos)) BEGIN INSERT INTO Trn_TraEspAntAbonos( TipDoc, Documento, IdCia, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, VrAbono, TipoAplica, Detalle, CdCuentaAnt ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, TipAnt, Anticipo, IdCiaAnt, VrAbono, TipoAplica, Detalle, CdCuentaAnt FROM @Trn_TraEspAntAbonos END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas ( TipDoc, Documento, IdCia, Concepto, Item, IdCuenta, Valor, Detalle, IdTercero, CodAgncia, CdCCosto, CdSubCos, pVehiculo, VrBase, TipFac, Factura, IdCiaFac, ItemFac, FecVence, Cheque, CiuOrigen, Referencia, VrTarifa, TipoTarif, CodConc, CodTarif ) SELECT @TipDoc, @Numero, @Cia, Concepto, Item, IdCuenta, Valor, Detalle, IdTercero, CodAgncia, CdCCosto, CdSubCos, pVehiculo, VrBase, TipFac, Factura, IdCiaFac, ItemFac, FecVence, Cheque, CiuOrigen, Referencia, VrTarifa, TipoTarif, CodConc, CodTarif FROM @Trn_DetCuentas END IF(EXISTS(SELECT * FROM @Trn_ComFactura)) BEGIN INSERT INTO Trn_ComFactura( TipFac, Factura, IdCia, Item, IdProveedor, IdCuenta, TipDoc, Documento, IdCiaDoc, FecEmision, FecVence, VrFactura, VrAbonado, TipCom, Comprobante, ItemCom, Referencia, Detalle, pVehiculo, VehPropio, TipRef, DocRef, IdCiaRef, EstadoApr, MontoAprob ) SELECT @TipDoc, @Numero, @Cia, Item, IdProveedor, IdCuenta, @TipDoc, @Numero, @Cia, FecEmision, FecVence, VrFactura, VrAbonado, @TipComp, @Comprobante, ItemCom, Referencia, Detalle, pVehiculo, VehPropio, TipRef, DocRef, IdCiaRef, EstadoApr, MontoAprob FROM @Trn_ComFactura END IF(EXISTS(SELECT * FROM @Trn_Pagos)) BEGIN INSERT INTO Trn_Pagos ( TipDoc, Documento, IdCia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh ) SELECT @TipDoc, @Numero, @Cia, Item, Fecha, IdForma, Detalle, VrPagado, VrCambio, EsCaja, IdBanco, NitCliente, CdAgencia, NumForma, FecForma, CtaForma, Beneficiario, Referncia1, Referncia2, CdLocal, NumAutoriza, VrDenom, Cantidad, TipDenom, TipRef, DocRef, IdCiaRef, ItemDoc, CdCta, IdUsuario, CdProducto, FE_Ticket, Cant_Gals, PrecioBase, PrecioUnit, ConsCP, CodCueCons, PrecioPub, RefVehiculo, RefNumVeh FROM @Trn_Pagos END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes ( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, ( SELECT DISTINCT ISNULL(T.IdCuenta, D.IdCuenta) FROM @Trn_TraEspOrdenReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE D.Detalle WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END ) AND T.TipDoc = 'OPE' ) AS IdCuenta, CASE WHEN D.Detalle = 'CUENTA POR PAGAR' THEN ( CASE WHEN EXISTS (SELECT 1 FROM @Trn_TraEspOrdenReservas WHERE Referencia != '') THEN 'CUENTA POR PAGAR-REF:' + (SELECT Referencia FROM @Trn_TraEspOrdenReservas WHERE Referencia != '') ELSE 'CUENTA POR PAGAR' END ) ELSE D.Detalle END AS 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 D 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 -- ========================================================================================================================================================================================================================================================================== IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'tm_TraEsDetConc') BEGIN /****** Object: Table [dbo].[tm_TraEsDetConc] Script Date: 24/08/2024 10:20:26 ******/ SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo].[tm_TraEsDetConc]( [TmNumero] [varchar](5) NULL, [TipDoc] [varchar](50) NULL, [Causacion] [int] NULL, [IdCia] [varchar](50) NULL, [Item] [int] NULL, [IdConcepto] [varchar](50) NULL, [Descripcion] [varchar](255) NULL, [TipoConc] [varchar](50) NULL, [VrDebito] [decimal](18, 4) NULL, [VrCredito] [decimal](18, 4) NULL, [CdCuenta] [varchar](50) NULL, [NitTercero] [varchar](50) NULL, [RazonSocial] [varchar](255) NULL, [CdCCosto] [varchar](50) NULL, [CCosto] [varchar](255) NULL, [CdSubCos] [varchar](50) NULL, [SubCosto] [varchar](255) NULL, [pVehiculo] [varchar](50) NULL, [NumVeh] [varchar](50) NULL, [ClaseMat] [varchar](50) NULL, [TipoAfiVehic] [varchar](50) NULL, [VrBase] [decimal](18, 4) NULL, [TarifBase] [decimal](18, 4) NULL, [Referencia] [varchar](50) NULL, [TipDocRef] [varchar](50) NULL, [DocRef] [int] NULL, [TipFac] [varchar](50) NULL, [Factura] [varchar](50) NULL, [IdCiaFac] [varchar](50) NULL, [ItemFac] [int] NULL, [FecVence] [datetime] NULL, [EstadoReg] [int] NULL, [TipoLiq] [varchar](50) NULL, [NumLiquida] [int] NULL, [CiaLiquida] [varchar](50) NULL, [VrAbonado] [decimal](18, 4) NULL ) ON [PRIMARY] END -- ==========================================================================================================================================================================================================================================================================