ALTER PROCEDURE [dbo].[sp_Movimientos_Estado_Carpeta] @Id_Empresa Numeric ,@Id_Agente Numeric ,@ValorizadosUnicamente Numeric = 0 ,@Reporte Numeric = 0 ,@SoloCarpetas Numeric=1, @Carpeta varchar(255) = '' AS Set Nocount on Declare @Cuit as varchar(50) Declare @CuitEmpresa as varchar(50) Declare @Version numeric(13,2) Declare @ExcluirCarpetasSintia Numeric Declare @FiltrarFcSinCae Numeric Declare @Id_Cliente_Alpha Numeric Select @Cuit=replace(Documento_Numero,'-','') From Agentes Where Generadorid=@Id_Agente Select @CuitEmpresa=replace(Documento_Numero,'-','') From Agentes Where Generadorid=@Id_Empresa --while exists (select carpeta from tempa where carpeta = '') --Begin -- select * Into #x1 from Agentes -- Drop Table #x1 --End Select @ExcluirCarpetasSintia=ExcluirCarpetasSintia,@FiltrarFcSinCae=FiltrarFcSinCae,@Id_Cliente_Alpha=Id_Cliente_Alpha From Parametros Where Generadorid=@Id_Empresa If @ExcluirCarpetasSintia is null Set @ExcluirCarpetasSintia = 0 Print '@ExcluirCarpetasSintia:' + ltrim(@ExcluirCarpetasSintia) If @Id_Agente=0 Set @Cuit='' Print '@Cuit:' + Convert(Varchar(50),@Cuit) Print '@CuitEmpresa:' + Convert(Varchar(50),@CuitEmpresa) SELECT Carpeta=Convert(Varchar(50),'') ,Cuit=Convert(Varchar(50),'') ,Id_Agente=Convert(Numeric,0) ,NombreAgente=Convert(Varchar(100),'') ,t_Anticipos=Convert(Money,0) ,t_Compras=Convert(Money,0) ,t_Rendiciones=Convert(Money,0) ,t_Facturas=Convert(Money,0) ,FacturacionManual=Convert(Int,0) ,Estado=Convert(Int,0) ,CuitEmpresa=Convert(Varchar(50),'') ,t_Proformas=Convert(Money,0) ,Referencia=Convert(Varchar(100),'') Into #TempA Truncate Table #TempA SELECT Carpeta=Convert(Varchar(50),'') ,Id=Convert(Numeric,0) ,Cuit=Convert(Varchar(50),'') ,CuitEmpresa=Convert(Varchar(50),'') Into #TempSintiaSeguimiento Truncate Table #TempSintiaSeguimiento if @Carpeta<>'' and @Carpeta is not null begin declare @IdAgente as numeric, @NombreAgente as varchar(100) --INSERT #test exec sp_Buscar_Agente_Carpeta @IdAgente output ,@NombreAgente output, 1 ,'1' --select @IdAgente,@NombreAgente Select Carpeta=@Carpeta ,Cuit='' ,Id_Agente=@IdAgente ,NombreAgente=@NombreAgente ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,CuitEmpresa='' ,t_Proformas=0 ,Referencia='' return end --================Carpetas en Sintia================================================ IF EXISTS (select Name from sys.databases where Name='Alpha2000') And @ExcluirCarpetasSintia=0 Begin if @Cuit is Not Null Begin Insert #TempSintiaSeguimiento select Cast(interno as Varchar(50)) ,Id=0 ,CuitCliente ,CuitEmpresa=@CuitEmpresa From Alpha2000..caratula Where CuitCliente= case when @Id_Agente=0 then CuitCliente else @Cuit end and caratula.IdEmpresa=@Id_Empresa and caratula.CuitCliente is not null Order by caratula.FechaAlta Desc End End --================Carpetas en Seguimiento================================================ IF EXISTS (select Name from sys.databases where Name='AlphaSeguimiento' and @Reporte=0) Begin print '@Cuit:' + ltrim(@Cuit) print '@CuitEmpresa:' + ltrim(@CuitEmpresa) exec sp_CompararVersionSeguimiento @Version output if @Version > 1.97 and @Cuit is Not Null Begin Insert #TempSintiaSeguimiento exec AlphaSeguimiento..BO_Contable_List '',@Cuit,@CuitEmpresa print 'AlphaSeguimiento..BO_Contable_List' print @Cuit print @CuitEmpresa End End --================Carpetas en Seguimiento y Sintia ======================================= Insert #TempA Select Carpeta ,Cuit ,Id_Agente=(Select Top 1 Generadorid From Agentes Where Documento_Numero=Cuit) ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Documento_Numero=Cuit) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,CuitEmpresa ,t_Proformas=0 ,Referencia='' From #TempSintiaSeguimiento Update #TempA set Id_Agente = agentes.Generadorid, NombreAgente=agentes.Nombre from Agentes where Documento_Numero <> '' and replace(Documento_Numero,'-','')=replace(Cuit,'-','') and id_Agente=0 and exists (select * from Roles_Autorizados where Id_Agente=Agentes.Generadorid and Id_Rol = 2) Update #TempA Set Id_Agente=0,NombreAgente='Cuit:' + cuit Where NombreAgente Is Null --=====================Carpetas en Carga Manual========================================== Insert #TempA Select Carpeta ,Cuit='' ,Id_Cliente ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Generadorid=Id_Cliente) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,@CuitEmpresa ,t_Proformas=0 ,Referencia='' From Carpetas_Manuales Where Id_Cliente=Case When @Id_Agente=0 then Id_Cliente else @Id_Agente end And Carpeta Not In(Select Carpeta From #TempA) And IdEmpresa=@Id_Empresa --================Carpetas en Rendicion de Gastos======================================== Insert #TempA Select Carpeta_Numero ,Cuit='' ,Id_Agente=Id_Cliente ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Generadorid=Id_Cliente) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,@CuitEmpresa ,t_Proformas=0 ,Referencia='' From rendicion_terceros Where Id_Cliente=Case When @Id_Agente=0 then Id_Cliente else @Id_Agente end And Carpeta_Numero Not In(Select Carpeta From #TempA) And Id_Rendicion_Cabecera in (Select Generadorid From Rendicion_Cabecera Where Id_Empresa=@Id_Empresa) --================Carpetas en Cobranzas================================================== Insert #TempA Select Carpeta ,Cuit='' ,Id_Agente ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Generadorid=Id_Agente) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,@CuitEmpresa ,t_Proformas=0 ,Referencian='' From Cobranzas_Terceros Where Id_Agente=Case When @Id_Agente=0 then Id_Agente else @Id_Agente end And Carpeta Not In(Select Carpeta From #TempA) And Id_Cobranzas_Header in (Select GeneradorId From Cobranzas_Header Where Id_Empresa=@Id_Empresa) --================Carpetas en Compras===================================================== --En compras no esta el cliente --================Carpetas en Ventas===================================================== Insert #TempA Select Carpeta ,Cuit='' ,Id_Agente=Id_Agente_Asiento ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Generadorid=Id_Agente_Asiento) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,@CuitEmpresa ,t_Proformas=0 ,Referencia='' From Ventas_Header Left Join Ventas_Detail On Ventas_Detail.Id_Ventas_Header=Ventas_Header.Generadorid Where Id_Agente_Asiento=Case When @Id_Agente=0 then Id_Agente_Asiento else @Id_Agente end And Ventas_Detail.Carpeta Not In(Select Carpeta From #TempA) And Ventas_Header.Id_Empresa=@Id_Empresa --================Carpetas en Proformas===================================================== Insert #TempA Select Carpeta ,Cuit='' ,Id_Agente=Id_Agente_Asiento ,Nombre_Agente=(Select Top 1 Nombre From Agentes Where Generadorid=Id_Agente_Asiento) ,t_Anticipos=0 ,t_Compras=0 ,t_Rendiciones=0 ,t_Facturas=0 ,FacturacionManual=0 ,Estado=0 ,@CuitEmpresa ,t_Proformas=0 ,Referencia='' From prof_Ventas_Header Left Join prof_Ventas_Detail On prof_Ventas_Detail.Id_Ventas_Header=prof_Ventas_Header.Generadorid Where Id_Agente_Asiento=Case When @Id_Agente=0 then Id_Agente_Asiento else @Id_Agente end And prof_Ventas_Detail.Carpeta Not In(Select Carpeta From #TempA) And prof_Ventas_Header.Id_Empresa=@Id_Empresa Delete from #TempA Where Carpeta='' --================Carpetas en Caja y Bancos=================================================== --Insert #TempA --Select Carpeta --,Cuit='' --,0 --,'' --,0 --,0 --,0 --,0 --From Salidas_Caja_Cabecera --Where Salidas_Caja_Cabecera.Carpeta Not In(Select Carpeta From #TempA) --And Salidas_Caja_Cabecera.Id_Empresa=@Id_Empresa -- -- -- --Delete from #TempA Where Carpeta='' --================Actualizar Referencia de Sintia========================================== IF EXISTS (select Name from sys.databases where Name='Alpha2000') And @ExcluirCarpetasSintia=0 Begin if @Cuit is Not Null Begin Update #TempA Set Referencia=Identificador_Externo From Alpha2000..caratula Where CuitCliente= case when @Id_Agente=0 then CuitCliente else @Cuit end and caratula.IdEmpresa=@Id_Empresa and caratula.CuitCliente is not null and caratula.interno=Carpeta End End IF EXISTS (select Name from sys.databases where Name='AlphaSeguimiento') --And @ExcluirCarpetasSintia=0 Begin if @Cuit is Not Null Begin Update #TempA Set Referencia=VuestraReferencia From AlphaSeguimiento..SeguimientoEstado1 Where SeguimientoEstado1.CodigoEstablecimiento =@Id_Empresa and SeguimientoEstado1.Carpeta = #TempA.Carpeta End End --===============Llenar Valores de Carpetas================================================ --Update #TempA --Set t_Anticipos=v_Anticipos_Carpetas.Total --From v_Anticipos_Carpetas --Where v_Anticipos_Carpetas.Carpeta=#TempA.Carpeta -- --Update #TempA --Set t_Anticipos=sum(Comprobantes_Header.Total) --From cobranzas_Header --Left Join Comprobantes_Header On Comprobantes_Header.N_AsientoGlobal=cobranzas_Header.N_AsientoGlobal --Where Comprobantes_Header.IdComprobante in(15) Update #TempA Set t_Facturas=( Select Sum(ventas_detail.Total * case ventas_header.idcomprobante when 12 then -1 else 1 end ) From Ventas_Detail left join ventas_header on ventas_header.generadorid=ventas_detail.Id_ventas_header Where Ventas_Detail.Carpeta=#TempA.Carpeta and Ventas_Header.FE_Cae_Nro<> Case When @FiltrarFcSinCae=0 then '' when @FiltrarFcSinCae=1 then Ventas_Header.FE_Cae_Nro + Ventas_Header.FE_Cae_Nro end ) if @SoloCarpetas =0 Begin Update #TempA Set t_Anticipos=( Select Sum(Total) From Comprobantes_Header Where IdComprobante in(15) And Carpeta=#TempA.Carpeta ) Update #TempA Set t_Compras=( Select Sum(Total) From Compras_Detail Where Compras_Detail.Carpeta=#TempA.Carpeta ) Update #TempA Set t_Rendiciones=( Select Sum(Total) From rendicion_terceros Where Carpeta_Numero=#TempA.Carpeta ) Update #TempA Set t_Proformas=( Select Sum(Total) From prof_ventas_detail Where Carpeta=#TempA.Carpeta ) update #TempA Set t_Facturas=0 Where t_Facturas Is Null update #TempA Set t_Rendiciones=0 Where t_Rendiciones Is Null update #TempA Set t_Compras=0 Where t_Compras Is Null update #TempA Set t_Anticipos=0 Where t_Anticipos Is Null update #TempA Set t_Proformas=0 Where t_Proformas Is Null Update #TempA Set FacturacionManual=1 Where Carpeta in (Select Carpeta From [CarpetasMarcadasFacturada]) Update #TempA Set Estado = 1 Where FacturacionManual=1 or t_Facturas <>0 If @Id_Cliente_Alpha =508 begin update #TempA Set t_Facturas=t_facturas + t_Proformas End End update #TempA Set t_Facturas=0 Where t_Facturas Is Null Update #TempA Set Estado = 1 Where FacturacionManual=1 or t_Facturas <>0 update #TempA Set Referencia='' Where Referencia Is Null --Valorizados-------------------------------------------------------------------------- if @ValorizadosUnicamente=1 and @SoloCarpetas=0 Delete From #TempA Where t_Anticipos=0 And t_Compras=0 And t_Rendiciones=0 And t_Facturas=0 ---------------------------------------------------------------------------------------- Select Distinct Carpeta ,Cuit ,Id_Agente ,NombreAgente ,t_Anticipos ,t_Compras ,t_Rendiciones ,t_Facturas ,FacturacionManual ,Estado ,CuitEmpresa ,t_Proformas ,Referencia Into #TempB From #TempA ---------CONSULTA FINAL----------------------------------------------------------------- Select Carpeta ,Cuit ,Id_Agente ,NombreAgente = IsNull((Select Top 1 convert(varchar(15),FechaAlta,103) + ' - ' From Alpha2000..caratula Where interno = #TempB.Carpeta),'') + NombreAgente ,t_Anticipos ,t_Compras ,t_Rendiciones ,t_Facturas ,FacturacionManual ,Estado ,CuitEmpresa ,t_Proformas ,Referencia ,SoloCarpetas=@SoloCarpetas ,Fecha=IsNull((Select Top 1 FechaAlta From Alpha2000..caratula Where interno = #TempB.Carpeta),getdate()) From #TempB Order by Fecha Drop Table #TempSintiaSeguimiento Drop Table #TempA Drop Table #TempB Go