-- ===== CodTarAvTa ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'CodTarAvTa' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD CodTarAvTa VARCHAR(4) NULL END GO -- ===== TarifaAvTa ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'TarifaAvTa' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD TarifaAvTa DECIMAL(14, 4) NOT NULL DEFAULT(0.0000) END GO -- ===== VrAvTa ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'VrAvTa' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD VrAvTa MONEY NOT NULL DEFAULT(0.00) END GO -- ===== CodTarBom ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'CodTarBom' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD CodTarBom VARCHAR(4) NULL END GO -- ===== TarifaBom ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'TarifaBom' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD TarifaBom DECIMAL(14, 4) NOT NULL DEFAULT(0.0000) END GO -- ===== VrBom ===== IF NOT EXISTS( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Trn_TraEspFacReservas' AND COLUMN_NAME = 'VrBom' ) BEGIN ALTER TABLE Trn_TraEspFacReservas ADD VrBom MONEY NOT NULL DEFAULT(0.00) END GO IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'paWcfSeInsTrn_Facturas') AND type = N'P' ) BEGIN DROP PROCEDURE paWcfSeInsTrn_Facturas END GO IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'paWcfSeInsMsvTrn_Facturas') AND type = N'P' ) BEGIN DROP PROCEDURE paWcfSeInsMsvTrn_Facturas END GO IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'paWcfSeInsTrn_DevFcr') AND type = N'P' ) BEGIN DROP PROCEDURE paWcfSeInsTrn_DevFcr END IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'paWcfSeInsMsvTrn_DevFcr') AND type = N'P' ) BEGIN DROP PROCEDURE paWcfSeInsMsvTrn_DevFcr END IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'paWcfSeInsPreFacturas') AND type = N'P' ) BEGIN DROP PROCEDURE paWcfSeInsPreFacturas END DROP TYPE [dbo].[dataTypeTrn_TraEspFacReservas] GO CREATE TYPE [dbo].[dataTypeTrn_TraEspFacReservas] AS TABLE( [TipDoc] [varchar](3) NULL, [Factura] [int] NULL, [IdCia] [char](2) NULL, [Item] [int] NULL, [TipoReg] [int] NULL, [FechaFact] [smalldatetime] NULL, [TipRes] [varchar](3) NULL, [Reserva] [int] NULL, [IdCiaRes] [char](2) NULL, [ItemRes] [int] NULL, [FecReserva] [smalldatetime] NULL, [Descripcion] [varchar](250) NULL, [Cantidad] [decimal](14, 4) NULL, [VrServicio] [money] NULL, [VrUnitario] [money] NULL, [VrCosto] [money] NULL, [TarifaIva] [decimal](14, 4) NULL, [VrImpuesto] [money] NULL, [TarifaDct] [decimal](14, 4) NULL, [VrDescuento] [money] NULL, [DocCliente] [varchar](30) NULL, [Referencia1] [varchar](50) NULL, [Referencia2] [varchar](50) NULL, [Referencia3] [varchar](50) NULL, [CdConcepto] [varchar](4) NULL, [CdCCosto] [varchar](16) NULL, [CdSubCos] [varchar](16) NULL, [NitTercero] [varchar](16) NULL, [CdAgencia] [varchar](16) NULL, [pVehiculo] [varchar](10) NULL, [TipoAfiVehic] [varchar](10) NULL, [IdOrigen] [varchar](8) NULL, [IdDestino] [varchar](8) NULL, [Anulado] [int] NULL, [TipDocRef] [varchar](3) NULL, [NumDocRef] [int] NULL, [IdCiaRef] [char](2) NULL, [FecDocRef] [smalldatetime] NULL, [CodTarDct] [varchar](4) NULL, [CodTarRet] [varchar](4) NULL, [CodTarIca] [varchar](4) NULL, [TarifaRet] [decimal](14, 4) NULL, [VrRetencion] [money] NULL, [TarifaIca] [decimal](14, 4) NULL, [VrReteIca] [money] NULL, [EstadoItem] [varchar](20) NULL, [CodTarAvTa] [VARCHAR](4) NULL, [TarifaAvTa] [DECIMAL](14, 4) NULL DEFAULT(0.0000), [VrAvTa] [MONEY] NULL DEFAULT(0.00), [CodTarBom] [VARCHAR](4) NULL, [TarifaBom] [DECIMAL](14, 4) NULL DEFAULT(0.0000), [VrBom] [MONEY] NULL DEFAULT(0.00) ) GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsTrn_Facturas] @Trn_Facturas [dbo].[dataTypeTrn_Facturas] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_TraEspFacResVehiculos [dbo].[dataTypeTrn_TraEspFacResVehiculos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_TraEspAuxFactura [dbo].[dataTypeTrn_TraEspAuxFactura] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_Vencimientos [dbo].[dataTypeTrn_Vencimientos] 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 @CodigoPre VARCHAR(3) 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 declare @FechaFac smalldatetime BEGIN TRAN BEGIN TRY IF(@operacion = 'i') BEGIN SELECT TOP 1 @TipDoc = TipDoc,@CodigoPre = CodigoPreFact, @Cia = IdCia, @IdCiaComp = IdCia, @IdCiaCompNiif = IdCia, @IdCiaCompFis = IdCia, @FechaFac = Fecha FROM @Trn_Facturas IF(@CodigoPre is not null or @CodigoPre <> '') select @Numero = (SELECT TOP 1 Factura FROM @Trn_Facturas) ELSE BEGIN 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 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(@CompFis <> '') UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis ELSE BEGIN SELECT @CompFis = 1 INSERT INTO TiposComCons VALUES (@TipCompFis,@IdCiaCompFis,0,0,@CompFis,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null) END END END IF(@operacion = 'i') BEGIN IF(EXISTS(SELECT * FROM @Trn_Facturas)) BEGIN INSERT INTO Trn_Facturas( TipDoc,Factura,IdCia,Fecha,IdConcepto,IdCliente,IdAgencia,FechaVence,VrSubTotal,VrDescuento,VrImpuesto,VrRetencion,VrReteICA, VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos,VrNeto,VrAplicado,Cantidad, CantPuntos,PuntosAcum,BaseImp,BaseRet,BaseIca,BaseRiv,TarifaIva,TarifaRet,TarifaIca,TarifaRiv,CodTarIva,CodTarRet,CodTarIca, CodTarRiv,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,DirEnvio,IdLocEnv,DiasEntraga,NitContac,NomContac,TelContac,emlContac, CargoContac,IdForma,DetallePago,MulPlazos,IdPlazo,CdMney,NitEmpTrans,EmpTrans,pVehiculo,CdConductor,CdRuta,TipPed,Pedido,IdCiaPed, TipRem,Remision,IdCiaRem,TipCot,Cotizacion,IdCiaCot,FecPedido,AutzaMora,AutzaCupo,Modalidad,KmtVehic,ZonaFrontera,PesoTotal, UnidTotal,VolTotal,CantFalt,VrCostoRem,VrCostoAfi,CodAutoRet,OrigenAdd,TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,Parqueadero,FecCuotaParq,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,TipoFE,FechaFE,BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,IdCliente,IdAgencia,FechaVence,VrSubTotal,VrDescuento,VrImpuesto,VrRetencion,VrReteICA, VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos,VrNeto,VrAplicado,Cantidad, CantPuntos,PuntosAcum,BaseImp,BaseRet,BaseIca,BaseRiv,TarifaIva,TarifaRet,TarifaIca,TarifaRiv,CodTarIva,CodTarRet,CodTarIca, CodTarRiv,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,DirEnvio,IdLocEnv,DiasEntraga,NitContac,NomContac,TelContac,emlContac, CargoContac,IdForma,DetallePago,MulPlazos,IdPlazo,CdMney,NitEmpTrans,EmpTrans,pVehiculo,CdConductor,CdRuta,TipPed,Pedido,IdCiaPed, TipRem,Remision,IdCiaRem,TipCot,Cotizacion,IdCiaCot,FecPedido,AutzaMora,AutzaCupo,Modalidad,KmtVehic,ZonaFrontera,PesoTotal, UnidTotal,VolTotal,CantFalt,VrCostoRem,VrCostoAfi,CodAutoRet,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp,Anulado,NumDev,FecDev,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,Parqueadero,FecCuotaParq,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,TipoFE,FechaFE,BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca FROM @Trn_Facturas 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, CodTarAvTa, TarifaAvTa, VrAvTa, CodTarBom, TarifaBom, VrBom ) 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, CodTarAvTa, TarifaAvTa, VrAvTa, CodTarBom, TarifaBom, VrBom FROM @Trn_TraEspFacReservas END IF(EXISTS(SELECT * FROM @Trn_TraEspFacResVehiculos)) BEGIN INSERT INTO Trn_TraEspFacResVehiculos( TipDoc,Factura,IdCIa,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido ) SELECT @TipDoc,@Numero,@Cia,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido FROM @Trn_TraEspFacResVehiculos END IF(EXISTS(SELECT * FROM @Trn_Vencimientos)) BEGIN INSERT INTO Trn_Vencimientos( TipDoc,Factura,IdCia,Item,Fecha,FechaVence,VrFactura,VrAbonado,IdCliente,IdAgencia,IdVend,Comision,TarifDcto, TipoDcto,TipoBase,FecLmtDcto,IdConcepto,Referencia,Detalle,TipRef,DocRef,IdCiaRef,FecUltPago,NumNota,IdCiaNot, TarifInt,FecLiqMora,FecPlazoCal ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,FechaVence,VrFactura,VrAbonado,IdCliente,IdAgencia,IdVend,Comision,TarifDcto, TipoDcto,TipoBase,FecLmtDcto,IdConcepto,Referencia,Detalle,TipRef,DocRef,IdCiaRef,FecUltPago,NumNota,IdCiaNot, TarifInt,FecLiqMora,FecPlazoCal FROM @Trn_Vencimientos 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_TraEspAuxFactura)) BEGIN INSERT INTO Trn_TraEspAuxFactura( TipFac,Factura,IdCiaFac,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact ) SELECT @TipDoc,@Numero,@Cia,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact FROM @Trn_TraEspAuxFactura END IF(EXISTS(SELECT * FROM @Trn_RecAfavor)) BEGIN update Trn_RecAfavor set VrAbono = t1.VrAbono + t2.VrAbono from Trn_RecAfavor t1, @Trn_RecAfavor t2 where t1.TipDoc = t2.TipDoc and t1.Recibo = t2.Recibo and t1.IdCia = t2.IdCia and t1.IdCliente = t2.IdCliente and t1.IdAgencia = t2.IdAgencia and t1.IdVend = t2.IdVend END IF(EXISTS(SELECT * FROM @Trn_VencAbonos)) BEGIN declare @tiprec varchar(3) declare @recibo int declare @idciarec varchar(2) declare @item int SELECT TOP 1 @tiprec = TipRec, @idciarec = IdCia, @recibo = Recibo FROM @Trn_VencAbonos select @item = isnull(MAX(Item),0) from Trn_VencAbonos where TipRec = @tiprec and Recibo = @recibo and IdCia = @idciarec INSERT INTO Trn_VencAbonos( TipRec,Recibo,IdCia,Item,Fecha,TipDoc,Factura,IdCiaFac,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys ) SELECT TipRec,Recibo,IdCia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,@TipDoc,@Numero,@Cia,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_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 --FUNCION PARA AGREGAR EL NIT APORPIADO AL IDVEHICULO 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, COALESCE( ( -- Retencion en detalle, buscar tarifa SELECT DISTINCT T.IdCuenta FROM @Trn_TraEspFacReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE C.Referncia WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END) AND T.TipDoc = 'FCE' WHERE O.Reserva = C.DocRef ), ( -- Retencion en total, buscar tarifa SELECT T.IdCuenta FROM @Trn_Facturas AS TF LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE C.Referncia WHEN 'RETENCION EN LA FUENTE' THEN TF.CodTarRet WHEN 'RETENCION ICA' THEN TF.CodTarIca END) AND T.TipDoc = 'FCE' ), C.IdCuenta -- Cuenta concepto. ) AS IdCuenta, Detalle, VrDebito, VrCredito, --IdTercero, IdVehiculo, CASE WHEN IdVehiculo = '0' THEN IdTercero ELSE isnull((SELECT F.NitTercero FROM @Trn_TraEspFacReservas F WHERE F.pVehiculo = C.IdVehiculo AND F.TipDocRef = 'RES'), IdTercero) END, C.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 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 ---------------factura una 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 IF(UPPER((SELECT TipDoc FROM @Trn_Facturas)) <> 'PFE') BEGIN --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas DECLARE @TipRes VARCHAR(3) DECLARE @CiaRes VARCHAR(2) DECLARE @NumRes INT DECLARE @ItemRes INT DECLARE @reserva Int = 0 DECLARE @cantres Int = 0 DECLARE @cantresfact Int = 0 DECLARE faccursor CURSOR 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 UPDATE Trn_TraEspResDetalle SET TipFac = @TipDoc, Factura = @Numero, IdCiaFac = @Cia, FechaFac = @FechaFac, EstadoItem = 'FACTURADA' FROM Trn_TraEspResDetalle d WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes --se agrega 11/04/2018 para sacar este codigo de la aplicación IF (@NumRes <> @reserva) BEGIN SET @reserva = @NumRes SELECT @cantres = count(*) FROM Trn_TraEspResDetalle AS rd WHERE rd.TipDoc = @TipRes and rd.Reserva = @NumRes and rd.IdCia = @CiaRes SELECT @cantresfact = count(*) FROM Trn_TraEspResDetalle AS rd WHERE rd.TipDoc = @TipRes and rd.Reserva = @NumRes and rd.IdCia = @CiaRes and rd.EstadoItem = 'FACTURADA' IF (@cantresfact = @cantres) BEGIN UPDATE Trn_TraEspReservas SET EstadoRes = 'FACTURADA' WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes END END ------------------------------------------------------------- FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes END CLOSE faccursor DEALLOCATE faccursor --actualiza el cliente UPDATE TercCliente SET VrSaldo = c.VrSaldo + f.VrNeto FROM TercCliente c, @Trn_Facturas f WHERE c.IdClie = f.IdCliente 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 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsMsvTrn_Facturas] @Trn_Facturas [dbo].[dataTypeTrn_Facturas] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_TraEspFacResVehiculos [dbo].[dataTypeTrn_TraEspFacResVehiculos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_TraEspAuxFactura [dbo].[dataTypeTrn_TraEspAuxFactura] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_Vencimientos [dbo].[dataTypeTrn_Vencimientos] READONLY, @Trn_DetCuentas [dbo].[dataTypeTrn_DetCuentas] READONLY, @Trn_Comprobantes [dbo].[dataTypeTrn_Comprobantes] READONLY, @Trn_ComDetalle [dbo].[dataTypeTrn_ComDetalle] READONLY, @Trn_NiifComp [dbo].[dataTypeTrn_NiifCompFMsv] 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 CHAR(2) = '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 CHAR(2) = '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 @CodigoPre VARCHAR(3) 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 declare @FechaFac smalldatetime 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( NewTipFac varchar(3) NOT NULL, NewFactura int NOT NULL, NewIdCiaFac char(2) NOT NULL, OldTipFac varchar(3) NOT NULL, OldFactura int NOT NULL, OldIdCiaFac char(2) NOT NULL, ) declare @NumProc int = 1 declare @ItemProc int = 1 declare @TipFac varchar(3) declare @Factura INT declare @IdCia varchar(2) declare @Fecha datetime declare @observ varchar(250) declare @IdCliente varchar(16) declare @VrNeto money DECLARE factcursor CURSOR FOR SELECT TipDoc,Factura,IdCia,Fecha,IdCliente,VrNeto FROM @Trn_Facturas OPEN factcursor FETCH NEXT FROM factcursor INTO @TipFac,@Factura,@IdCia,@Fecha,@IdCliente,@VrNeto WHILE @@FETCH_STATUS = 0 BEGIN IF(@operacion = 'i') BEGIN SET @TipDoc = @TipFac SET @Cia = @IdCia SET @IdCiaComp = @IdCia SET @IdCiaCompNiif = @IdCia SET @IdCiaCompFis = @IdCia SET @FechaFac = @Fecha 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' AND Documento = @Factura)) 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 > 0) BEGIN --declare @bcpCommand varchar(255), @Result int --declare @FileName varchar(255) --set @FileName ='D:\hola.txt' --set @bcpCommand = 'bcp "Select 1 as a" queryout "' + @FileName + '" -c -t, -T -S ' --exec @Result = master..xp_cmdshell @bcpCommand, no_output UPDATE TiposComCons SET Numero = @CompNiif WHERE IdCom = @TipCompNiif and IdCia = @IdCiaCompNiif END 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' AND Documento = @Factura)) 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(@CompFis > 0) BEGIN UPDATE TiposComCons SET Numero = @CompFis WHERE IdCom = @TipCompFis and IdCia = @IdCiaCompFis END 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 IF(EXISTS(SELECT * FROM @Trn_Facturas)) BEGIN INSERT INTO Trn_Facturas( TipDoc, Factura, IdCia, Fecha, IdConcepto, IdCliente, IdAgencia, FechaVence, VrSubTotal, VrDescuento, VrImpuesto, VrRetencion, VrReteICA, VrReteIVA, VrFletes, VrOtros, VrCargos, VrOtrDcto, VrCostos, VrSobretasa, VrImpGlobal, VrFaltantes, VrAnticipos, VrNeto, VrAplicado, Cantidad, CantPuntos, PuntosAcum, BaseImp, BaseRet, BaseIca, BaseRiv, TarifaIva, TarifaRet, TarifaIca, TarifaRiv, CodTarIva, CodTarRet, CodTarIca, CodTarRiv, IdCCosto, IdSubCos, IdVend, TarifaCom, CodTarCom, DirEnvio, IdLocEnv, DiasEntraga, NitContac, NomContac, TelContac, emlContac, CargoContac, IdForma, DetallePago, MulPlazos, IdPlazo, CdMney, NitEmpTrans, EmpTrans, pVehiculo, CdConductor, CdRuta, TipPed, Pedido, IdCiaPed, TipRem, Remision, IdCiaRem, TipCot, Cotizacion, IdCiaCot, FecPedido, AutzaMora, AutzaCupo, Modalidad, KmtVehic, ZonaFrontera, PesoTotal, UnidTotal, VolTotal, CantFalt, VrCostoRem, VrCostoAfi, CodAutoRet, OrigenAdd, TipCom, Comprobante, IdCiaCom, Anulado, NumDev, FecDev, Observacion, IdEstado, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, VrImpCons, VrReteCREE, TarifaRtc, CodTarRtc, Parqueadero, FecCuotaParq, BaseIvaObsq, VrIvaObsequio, VrImpCarbono, TipoFE, FechaFE, BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca ) SELECT @TipDoc,@Numero,@Cia,Fecha,IdConcepto,IdCliente,IdAgencia,FechaVence,VrSubTotal,VrDescuento,VrImpuesto,VrRetencion,VrReteICA,VrReteIVA,VrFletes,VrOtros, VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos,VrNeto,VrAplicado,Cantidad,CantPuntos,PuntosAcum,BaseImp,BaseRet,BaseIca, BaseRiv,TarifaIva,TarifaRet,TarifaIca,TarifaRiv,CodTarIva,CodTarRet,CodTarIca,CodTarRiv,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,DirEnvio,IdLocEnv, DiasEntraga,NitContac,NomContac,TelContac,emlContac,CargoContac,IdForma,DetallePago,MulPlazos,IdPlazo,CdMney,NitEmpTrans,EmpTrans,pVehiculo,CdConductor, CdRuta,TipPed,Pedido,IdCiaPed,TipRem,Remision,IdCiaRem,TipCot,Cotizacion,IdCiaCot,FecPedido,AutzaMora,AutzaCupo,Modalidad,KmtVehic,ZonaFrontera,PesoTotal, UnidTotal,VolTotal,CantFalt,VrCostoRem,VrCostoAfi,CodAutoRet,OrigenAdd,@TipComp,@Comprobante,@IdCiaComp,Anulado,NumDev,FecDev,Observacion,IdEstado,TimeSys, FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,Parqueadero,FecCuotaParq,BaseIvaObsq,VrIvaObsequio,VrImpCarbono,TipoFE,FechaFE, BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca FROM @Trn_Facturas p WHERE p.TipDoc = @TipFac and p.Factura = @Factura and p.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 p WHERE p.TipDoc = @TipFac and p.Factura = @Factura and p.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspFacResVehiculos)) BEGIN INSERT INTO Trn_TraEspFacResVehiculos( TipDoc,Factura,IdCIa,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido ) SELECT @TipDoc,@Numero,@Cia,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido FROM @Trn_TraEspFacResVehiculos p WHERE p.TipDoc = @TipFac and p.Factura = @Factura and p.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_Vencimientos)) BEGIN INSERT INTO Trn_Vencimientos( TipDoc,Factura,IdCia,Item,Fecha,FechaVence,VrFactura,VrAbonado,IdCliente,IdAgencia,IdVend,Comision,TarifDcto, TipoDcto,TipoBase,FecLmtDcto,IdConcepto,Referencia,Detalle,TipRef,DocRef,IdCiaRef,FecUltPago,NumNota,IdCiaNot, TarifInt,FecLiqMora,FecPlazoCal ) SELECT @TipDoc,@Numero,@Cia,Item,Fecha,FechaVence,VrFactura,VrAbonado,IdCliente,IdAgencia,IdVend,Comision,TarifDcto, TipoDcto,TipoBase,FecLmtDcto,IdConcepto,Referencia,Detalle,TipRef,DocRef,IdCiaRef,FecUltPago,NumNota,IdCiaNot, TarifInt,FecLiqMora,FecPlazoCal FROM @Trn_Vencimientos p WHERE p.TipDoc = @TipFac and p.Factura = @Factura and p.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 p WHERE p.TipDoc = @TipFac and p.Documento = @Factura and p.IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_TraEspAuxFactura)) BEGIN INSERT INTO Trn_TraEspAuxFactura( TipFac,Factura,IdCiaFac,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact ) SELECT @TipDoc,@Numero,@Cia,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact FROM @Trn_TraEspAuxFactura p WHERE p.TipFac = @TipFac and p.Factura = @Factura and p.IdCiaFac = @IdCia END IF(EXISTS(SELECT * FROM @Trn_RecAfavor)) BEGIN update Trn_RecAfavor set VrAbono = t1.VrAbono + t2.VrAbono from Trn_RecAfavor t1, @Trn_RecAfavor t2 where t1.TipDoc = t2.TipDoc and t1.Recibo = t2.Recibo and t1.IdCia = t2.IdCia and t1.IdCliente = t2.IdCliente and t1.IdAgencia = t2.IdAgencia and t1.IdVend = t2.IdVend --and TipDoc = @TipDoc and t1.Factura = @Factura and t1.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 WHERE TipDoc = @TipFac and Factura = @Factura and IdCiaFac = @IdCia if((@tiprec <> null and @tiprec <> '') and @recibo > 0) BEGIN 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 TipRec,Recibo,IdCia,(@item + ROW_NUMBER() OVER(ORDER BY Item ASC)),Fecha,@TipDoc,@Numero,@Cia,ItemFac,VrAbono,VrDescto, VrBaseCms,IdCliente,IdAgencia,IdVend,Comision,Detalle,FecPago,TipoAplica,TimeSys FROM @Trn_VencAbonos WHERE TipDoc = @TipFac and Factura = @Factura and IdCiaFac = @IdCia IF(EXISTS(SELECT * FROM @Trn_RecAfavor)) BEGIN UPDATE Trn_RecAfavor SET VrAbono = t1.VrAbono + t2.VrAbono FROM Trn_RecAfavor t1 JOIN(SELECT ra.TipDoc,ra.Recibo,ra.IdCia,ra.Fecha,ra.VrAFavor,ra.VrOtrosDb,ra.VrAbono,ra.IdCliente,ra.IdAgencia,ra.IdVend FROM @Trn_RecAfavor ra JOIN @Trn_VencAbonos va on ra.TipDoc = va.TipRec and ra. Recibo = va.Recibo and ra.IdCia = va.IdCia WHERE va.TipDoc = @TipFac and va.Factura = @Factura and va.IdCiaFac = @IdCia) AS t2 ON t1.TipDoc = t2.TipDoc and t1.Recibo = t2.Recibo and t1.IdCia = t2.IdCia and t1.IdCliente = t2.IdCliente and t1.IdAgencia = t2.IdAgencia and t1.IdVend = t2.IdVend END END END IF(EXISTS(SELECT * FROM @Trn_DetCuentas)) BEGIN INSERT INTO Trn_DetCuentas( TipDoc,Documento,IdCia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif ) SELECT @TipDoc,@Numero,@Cia,Concepto,Item,IdCuenta,Valor,Detalle,IdTercero,CodAgncia,CdCCosto,CdSubCos,pVehiculo, VrBase,TipFac,Factura,IdCiaFac,ItemFac,FecVence,Cheque,CiuOrigen,Referencia,VrTarifa,TipoTarif,CodConc,CodTarif FROM @Trn_DetCuentas where TipDoc = @TipFac and Documento = @Factura and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_Comprobantes)) BEGIN INSERT INTO Trn_Comprobantes( TipCom, Comprobante, IdCia, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, TipDoc, Documento, IdCiaDoc, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, NiifTipo, NiifNumero, FisTipo, FisNumero, DocSoporte, CodRes, DescServicio ) SELECT @TipComp, @Comprobante, @IdCiaComp, Fecha, IdTercero, VrTotal, IdCta, EnEfectivo, NumCheque, FecCheque, @TipDoc, @Numero, @Cia, Anulado, NumDev, FecDev, TipEgr, NEgreso, pVehiculo, VehPropio, CedCondtor, CodConce, Beneficiario, VrDivisa1, VrDivisa2, VrDivisa3, PermEditar, Integrado, EsEgreso, Anticipo, Observacion, IdEstado, Propddes, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdSustento, Tipo_Pago, Establec, PEmision, Autorizac, FechaAut, @TipCompNiif, @CompNiif, @TipCompFis, @CompFis, DocSoporte, CodRes, DescServicio FROM @Trn_Comprobantes where TipDoc = @TipFac and Documento = @Factura and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_ComDetalle)) BEGIN INSERT INTO Trn_ComDetalle( TipCom, Comprobante, IdCia, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, TipDoc, Documento, IdCiaDoc, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif ) SELECT @TipComp, @Comprobante, @IdCiaComp, Item, Fecha, IdCuenta, Detalle, VrDebito, VrCredito, IdTercero, IdVehiculo, IdCCosto, IdSubCos, VrBase, TarifaBase, @TipDoc, @Numero, @Cia, CodConce, NitDoc, TipFac, Factura, IdCiaFac, ItemFac, FecVence, CodCta, NumCheque, Integrado, TipoAplica, Consolida, CodCargo, NitOtros, CodSubgpo, CiuOrigen, CodAgncia, VehPropio, Referncia, TipDocRef, DocRef, IdCiaRef, TimeSys, FecUpdate, IdCiaCrea, IdUsuario, CdConcTrib, CdTarifTrib, NumEstablec, PtoEmision, Num_Autoriza, FechAutoriza,CdCuentaNiif FROM @Trn_ComDetalle where TipDoc = @TipFac and Documento = @Factura and IdCia = @IdCia END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'NIIF' AND Documento = @Factura)) 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 @TipCompNiif, @CompNiif, @IdCia,C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @IdCia, 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, @TipCompNiif, @CompNiif, NULL, 0 FROM @Trn_NiifComp AS N JOIN @Trn_Comprobantes AS C ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont WHERE C.Documento = N.Documento AND N.Documento = @Factura AND N.TipoNiif = 'NIIF' 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 @TipCompNiif, @CompNiif, @IdCia, 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,@IdCia, 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_NiifComp as NC JOIN @Trn_NiifDetalle AS N ON N.Comprobante = NC.ComprobanteCont AND N.TipCom = @TipCompNiif --AND NC.TipoNiif = 'NIIF' where N.Documento = @Factura AND N.Documento = NC.Documento AND NC.TipoNiif = 'NIIF' END END IF(EXISTS(SELECT * FROM @Trn_NiifComp WHERE TipoNiif = 'FISCAL' AND Documento = @Factura)) 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 @TipCompFis, @CompFis, @IdCia,C.Fecha, C.IdTercero, C.VrTotal, C.IdCta, C.EnEfectivo, C.NumCheque, C.FecCheque, @TipDoc, @Numero, @IdCia, 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, @TipCompFis, @CompFis, NULL, 0 FROM @Trn_NiifComp AS N JOIN @Trn_Comprobantes AS C ON C.TipCom = N.TipComCont AND C.Comprobante = N.ComprobanteCont WHERE C.Documento = N.Documento AND N.Documento = @Factura AND N.TipoNiif = 'FISCAL' 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 @TipCompFis, @CompFis, @IdCia, 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,@IdCia, 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_NiifComp as NC JOIN @Trn_NiifDetalle AS N ON N.Comprobante = NC.ComprobanteCont AND N.TipCom = @TipCompFis --AND NC.TipoNiif = 'FISCAL' where N.Documento = @Factura AND N.Documento = NC.Documento AND NC.TipoNiif = 'FISCAL' END END --actualiza los items de las reservas con los que se relacionan en el tipo de datos nuevo de las facturasreservas DECLARE @TipRes VARCHAR(3) DECLARE @CiaRes VARCHAR(2) DECLARE @NumRes INT DECLARE @ItemRes INT DECLARE @Ref VARCHAR(50) DECLARE @reserva Int = 0 DECLARE @cantres Int = 0 DECLARE @cantresfact Int = 0 DECLARE faccursor CURSOR FOR SELECT TipRes,Reserva,IdCiaRes,ItemRes, Referencia1 FROM @Trn_TraEspFacReservas where TipDoc = @TipFac and Factura = @Factura and IdCia = @IdCia OPEN faccursor FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes, @Ref WHILE @@FETCH_STATUS = 0 BEGIN IF(@Ref = 'CLIENTE') BEGIN UPDATE Trn_TraEspResDetalle SET TipFac = @TipDoc, Factura = @Numero, IdCiaFac = @IdCia, FechaFac = @FechaFac, EstadoItem = 'FACTURADA' FROM Trn_TraEspResDetalle d WHERE d.TipDoc = @TipRes and d.Reserva = @NumRes and d.IdCia = @CiaRes and d.Item = @ItemRes END IF (@NumRes <> @reserva) BEGIN SET @reserva = @NumRes SELECT @cantres = count(*) FROM Trn_TraEspResDetalle AS rd WHERE rd.TipDoc = @TipRes and rd.Reserva = @NumRes and rd.IdCia = @CiaRes SELECT @cantresfact = count(*) FROM Trn_TraEspResDetalle AS rd WHERE rd.TipDoc = @TipRes and rd.Reserva = @NumRes and rd.IdCia = @CiaRes and rd.EstadoItem = 'FACTURADA' IF (@cantresfact = @cantres) BEGIN UPDATE Trn_TraEspReservas SET EstadoRes = 'FACTURADA' WHERE TipDoc = @TipRes and Reserva = @NumRes and IdCia = @CiaRes END END FETCH NEXT FROM faccursor INTO @TipRes,@NumRes,@CiaRes,@ItemRes,@Ref END CLOSE faccursor DEALLOCATE faccursor --actualizar el cliente de cada factura UPDATE TercCliente SET VrSaldo = c.VrSaldo + @VrNeto FROM TercCliente c WHERE c.IdClie = @IdCliente --Tabla a Deovler para los nuevos numeros de factura INSERT INTO #LogTraEspFacReservas(NewTipFac,NewFactura,NewIdCiaFac,OldTipFac,OldFactura,OldIdCiaFac) SELECT @TipDoc,@Numero,@Cia,@TipFac, @Factura, @IdCia END FETCH NEXT FROM factcursor INTO @TipFac,@Factura,@IdCia,@Fecha,@IdCliente,@VrNeto END CLOSE factcursor DEALLOCATE factcursor --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 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, COALESCE( ( -- Retencion en detalle, buscar tarifa SELECT DISTINCT T.IdCuenta FROM @Trn_TraEspFacReservas AS O LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE C.Referncia WHEN 'RETENCION EN LA FUENTE' THEN O.CodTarRet WHEN 'RETENCION ICA' THEN O.CodTarIca END) AND T.TipDoc = 'DFE' WHERE O.Reserva = C.DocRef ), ( -- Retencion en total, buscar tarifa SELECT T.IdCuenta FROM @Trn_DevFcr AS TDF LEFT JOIN Trn_Facturas AS TF ON TF.TipDoc = TDF.TipDoc AND TF.Factura = TDF.Factura AND TF.IdCia = TDF.IdCia LEFT JOIN TarifCuentas T ON T.IdTarifa = ( CASE C.Referncia WHEN 'RETENCION EN LA FUENTE' THEN TF.CodTarRet WHEN 'RETENCION ICA' THEN TF.CodTarIca END) AND T.TipDoc = 'DFE' ), C.IdCuenta -- Cuenta concepto. ) AS IdCuenta, Detalle, VrDebito, VrCredito, CASE -- IdTercer WHEN IdVehiculo = '0' THEN IdTercero ELSE ( COALESCE( ( 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 ), IdTercero ) ) END, CASE -- IdVehiculo WHEN IdVehiculo = '0' THEN IdVehiculo ELSE ISNULL( ( 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 ), IdVehiculo ) 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 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE 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 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[paWcfSeInsPreFacturas] @Trn_Facturas [dbo].[dataTypeTrn_Facturas] READONLY, @Trn_TraEspFacReservas [dbo].[dataTypeTrn_TraEspFacReservas] READONLY, @Trn_TraEspFacResVehiculos [dbo].[dataTypeTrn_TraEspFacResVehiculos] READONLY, @Trn_DocMemo [dbo].[dataTypeTrn_DocMemo] READONLY, @Trn_TraEspAuxFactura [dbo].[dataTypeTrn_TraEspAuxFactura] READONLY, @Trn_RecAfavor [dbo].[dataTypeTrn_RecAfavor] READONLY, @Trn_VencAbonos [dbo].[dataTypeTrn_VencAbonos] READONLY, @Trn_Vencimientos [dbo].[dataTypeTrn_Vencimientos] 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 @TipDocPre VARCHAR(3) 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 declare @FechaFac smalldatetime declare @OpcUco VARCHAR BEGIN TRAN BEGIN TRY IF(@operacion = 'i') BEGIN --OPCION DE UNIFICAR CONSECUTIVOS DE PREFACTURAS CON LAS FACTURAS SELECT @OpcUco = Valor FROM adm_Opciones WHERE IdOpc = 'UCO' IF(@OpcUco = '1') SELECT @TipDocPre = TipDoc, @TipDoc = CodigoPreFact FROM @Trn_Facturas ELSE SELECT @TipDocPre = TipDoc, @TipDoc = TipDoc FROM @Trn_Facturas ---- SELECT TOP 1 @Cia = IdCia, @FechaFac = Fecha FROM @Trn_Facturas SELECT @Numero = Numero + 1 FROM TiposDocCons where IdDoc = @TipDoc AND IdCia = @Cia IF(@Numero > 0) BEGIN IF(@OpcUco = '1') begin UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDoc AND IdCia = @Cia UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDocPre AND IdCia = @Cia end else UPDATE TiposDocCons SET Numero = @Numero WHERE IdDoc = @TipDocPre AND IdCia = @Cia END ELSE BEGIN SELECT @Numero = 1 IF(@OpcUco = '1') begin 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) INSERT INTO TiposDocCons VALUES (@TipDocPre,@Cia,0,0,0,0,NULL,'',@Numero,0,0,'','',1,1,1,0,1,CURRENT_TIMESTAMP,null,null,null,null) end else INSERT INTO TiposDocCons VALUES (@TipDocPre,@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_Facturas)) BEGIN INSERT INTO Trn_Facturas( TipDoc,Factura,IdCia,Fecha,IdConcepto,IdCliente,IdAgencia,FechaVence,VrSubTotal,VrDescuento,VrImpuesto,VrRetencion,VrReteICA, VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos,VrNeto,VrAplicado,Cantidad, CantPuntos,PuntosAcum,BaseImp,BaseRet,BaseIca,BaseRiv,TarifaIva,TarifaRet,TarifaIca,TarifaRiv,CodTarIva,CodTarRet,CodTarIca, CodTarRiv,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,DirEnvio,IdLocEnv,DiasEntraga,NitContac,NomContac,TelContac,emlContac, CargoContac,IdForma,DetallePago,MulPlazos,IdPlazo,CdMney,NitEmpTrans,EmpTrans,pVehiculo,CdConductor,CdRuta,TipPed,Pedido,IdCiaPed, TipRem,Remision,IdCiaRem,TipCot,Cotizacion,IdCiaCot,FecPedido,AutzaMora,AutzaCupo,Modalidad,KmtVehic,ZonaFrontera,PesoTotal, UnidTotal,VolTotal,CantFalt,VrCostoRem,VrCostoAfi,CodAutoRet,OrigenAdd,TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,Parqueadero,FecCuotaParq,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,TipoFE,FechaFE,BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca ) SELECT @TipDocPre,@Numero,@Cia,Fecha,IdConcepto,IdCliente,IdAgencia,FechaVence,VrSubTotal,VrDescuento,VrImpuesto,VrRetencion,VrReteICA, VrReteIVA,VrFletes,VrOtros,VrCargos,VrOtrDcto,VrCostos,VrSobretasa,VrImpGlobal,VrFaltantes,VrAnticipos,VrNeto,VrAplicado,Cantidad, CantPuntos,PuntosAcum,BaseImp,BaseRet,BaseIca,BaseRiv,TarifaIva,TarifaRet,TarifaIca,TarifaRiv,CodTarIva,CodTarRet,CodTarIca, CodTarRiv,IdCCosto,IdSubCos,IdVend,TarifaCom,CodTarCom,DirEnvio,IdLocEnv,DiasEntraga,NitContac,NomContac,TelContac,emlContac, CargoContac,IdForma,DetallePago,MulPlazos,IdPlazo,CdMney,NitEmpTrans,EmpTrans,pVehiculo,CdConductor,CdRuta,TipPed,Pedido,IdCiaPed, TipRem,Remision,IdCiaRem,TipCot,Cotizacion,IdCiaCot,FecPedido,AutzaMora,AutzaCupo,Modalidad,KmtVehic,ZonaFrontera,PesoTotal, UnidTotal,VolTotal,CantFalt,VrCostoRem,VrCostoAfi,CodAutoRet,OrigenAdd,TipCom,Comprobante,IdCiaCom,Anulado,NumDev,FecDev,Observacion, IdEstado,TimeSys,FecUpdate,IdCiaCrea,IdUsuario,VrImpCons,VrReteCREE,TarifaRtc,CodTarRtc,Parqueadero,FecCuotaParq,BaseIvaObsq,VrIvaObsequio, VrImpCarbono,TipoFE,FechaFE,BaseIvaIgp,VrIvaIngProd,CodTarArf,TarifaArf,VrAutRetFte,CodTarAri,TarifaAri,VrAutRetIca FROM @Trn_Facturas 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 @TipDocPre,@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_TraEspFacResVehiculos)) BEGIN INSERT INTO Trn_TraEspFacResVehiculos( TipDoc,Factura,IdCIa,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido ) SELECT @TipDocPre,@Numero,@Cia,Item,TipRes,Reserva,IdCIaRes,ItemRes,IdVehiculo,TipoAfil,VrRecorrido FROM @Trn_TraEspFacResVehiculos END IF(EXISTS(SELECT * FROM @Trn_TraEspAuxFactura)) BEGIN INSERT INTO Trn_TraEspAuxFactura( TipFac,Factura,IdCiaFac,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact ) SELECT @TipDocPre,@Numero,@Cia,Resolucion,Rango,FechaResl,Prefijo,TipDocPf,PreFactura,IdCiaPf,CodigoPreFact FROM @Trn_TraEspAuxFactura END END SELECT @Numero 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(SELECT COUNT(IdOpc) FROM adm_Opciones WHERE IdOpc = 'IAT') <= 0 BEGIN INSERT INTO adm_Opciones (IdOpc, Opcion, TipoDato, Valor, NivUp, nModulo) VALUES ('IAT', 'IMPUESTO DE AVISOS / TABLEROS Y BOMBERIL EN FACTURACION TRANSPORTE ESPECIAL', 'BOOLEAN', 0, 4, 'TRAES') END