Instructivo

Almacenamiento de Conocimiento

Herramientas de usuario

Herramientas del sitio


pago_no_ubicado_lote

encontrar pago en Hermes y Sql

Busqueda de cobranzas en lotes de pago, por fecha

Version SQL por las dudas

-- Busqueda de cobranzas dentro de un lote
-----Delaro propiedad variable ---------------------------------------------------
set dateformat ymd
declare @facnrofact varchar(11), @importe money, @fechaini date  , @fechafin date , @importe_det money , @ente int
-- creo un cursores para totales y saldos
declare @Totales table (abonumero varchar(11), saldo money default 0, desenrec varchar(30), ente int, facnrofact varchar(11), LOTIMPORTE money, ctanrocomp varchar(11), fecha datetime )
declare @Tsaldos table (abonumero varchar(11), saldo money)
----Declaro la variable con el dato-----------------------------------------------
--set @facnrofact = {{facnrofact}}
set @facnrofact = '16963627'
set @facnrofact = ''
--set @importe = {{importe}}*-1
set @importe = 1626
set @importe = @importe *-1
--set @ente = {{ente}}
set @ente = 5
--set @fechaini = {{fecha_inicio}}
--set @fechafin = {{fecha_fin}}
set @fechaini = '2021-07-01'
set @fechafin = '2021-07-23'
--------fin de declaraciones ------------------------------------------------------
-- si no elige facnrofact trae todas las cobranzas por lote dentro de un ente seleccionado entre las fechas filtradas
-- en caso contrario busca por facnrofact (nro interno de factura)
if @facnrofact =''
	begin
		insert into @Totales (desenrec , ente , facnrofact , abonumero , LOTIMPORTE , ctanrocomp , fecha )
		select entesrec.desenrec, lotescab.ente, lotesdet.facnrofact,lotesdet.abonumero,LOTIMPORTE,lotesdet.CTANROCOMP , ctacte.ctafemis
		from ctacte,lotesdet, lotescab
			left join entesrec on codtar = lotescab.ENTE
		where ctacte.ctanrocomp = lotesdet.ctanrocomp
			and lotescab.lotnrolote = lotesdet.lotnrolote
			and lotescab.ente = @ente
			and lotesdet.lotimporte = @importe *-1
			and convert(varchar,ctafemis,23) < convert(varchar,@fechafin ,23)
	end
else
	begin
		insert into @Totales (desenrec , ente , facnrofact , abonumero , LOTIMPORTE , ctanrocomp , fecha )
		select entesrec.desenrec, lotescab.ente, lotesdet.facnrofact,lotesdet.abonumero,LOTIMPORTE,lotesdet.CTANROCOMP , ctacte.ctafemis
		from ctacte,lotesdet, lotescab
			left join entesrec on codtar = lotescab.ENTE
		where ctacte.ctanrocomp = lotesdet.ctanrocomp
			and lotescab.lotnrolote = lotesdet.lotnrolote
			and lotesdet.facnrofact = @facnrofact
			and lotescab.ente = @ente
			
	end
		
-- Traigo saldos segun clientes seleccionados en la consulta anterior
	insert into @Tsaldos (abonumero, saldo)
	select ctacte.abonumero,sum(ctaimpgrab) as saldo
	from ctacte, @Totales as tl
	where ctacte.abonumero = tl.abonumero
		and ctacte.abonumero in (
			select ctacte.abonumero from ctacte with (nolock)
			where CTAIMPGRAB = @importe and ctafemis between @fechaini and @fechafin
		)  ----CcARGAR ENTIDAD
		and convert(varchar,ctafemis,23) < convert(varchar,@fechafin ,23)
		group by ctacte.abonumero
		HAVING sum(ctaimpgrab) < 0
		order by abonumero
		
-- Actualizo saldos
	update tl set saldo = ts.saldo from @Tsaldos as ts , @Totales as tl where ts.abonumero = tl.abonumero
	delete @Totales where saldo >= 0
	select * from @Totales order by saldo
pago_no_ubicado_lote.txt · Última modificación: 2021/08/11 18:27 por fas