actualización


aprox 2 horas

Se creó el store procedure que hace un pago, el cual busca el recibo más viejo a pagar, setea la fecha de pago en el día que se ejecuta este sp y crea un registro de pago con la finca del recibo más viejo y la fecha de pago el día que se ejecuta el sp, tambien se leyeron las recomendaciones del profesor en el grupo. Además el compañero Martín comenzó a adaptar el sp que carga los datos ya que se generó otra tabla en los datos de prueba la cual hay que cargar y tambien se intentó resolver unos los datos de las tablas municipalidad especificamente la columna de tasa interés y en la tabla de tipo servicio en la columna valor que el valor del xml sale multiplicado por 100 a la hora de ingresarlo a la tabla. No se logró pero se optó por dividir los datos entre 100 ya que se lleva bastante rato intentando arreglarlo, pensamos que puede ser por los datos ya que tienen un valor extraño con muchos decimales.

ALTER PROCEDURE [dbo].[spHacerPago]
@idAbonado int = 0,
@numFinca int = 0

as
begin
DECLARE @recibos table (sec int identity(1,1),numeroFincaID int, idAbonado int, idRecibo int, fechaEmision datetime, fechaLimite datetime, fechaPagado datetime)
Insert into @recibos Select Propiedad.NumeroFinca,Propiedad.IdAbonado,Recibo.ID as idRecibo,Recibo.FechaEmision,Recibo.FechaLimite,Recibo.FechaPagado from Propiedad join Recibo on Propiedad.NumeroFinca = Recibo.NumeroFinca where IdAbonado = @idAbonado and Propiedad.NumeroFinca = @numFinca and Recibo.FechaPagado is null order by FechaEmision asc
Select * from @recibos


DECLARE @count int
Select @count = max(sec) from @recibos

--si encuentra una fecha de pago en null crea el pago y actualiza el recibo ya que los recibos de la tabla están ordenados
--de más viejo a mas nuevo entonces pagaría el más viejo
--le hace un update a al recibo que tenga el id y numero de finca de la tabla donde se está iterando
--hace un break para no actualizar más recibos
if(@count > 0)
begin
Update Recibo set FechaPagado = GETDATE() where Recibo.NumeroFinca = @numFinca and Recibo.ID = (Select idRecibo from @recibos where sec = 1)
Insert into Pago values (@numFinca,GETDATE())
print 'se canceló un recibo'
end
end


Comentarios

Entradas populares de este blog

XML y carga de datos (actualización)

Última reunión