Última reunión
Nos reunimos por última vez hoy martes 29, día anterior a la entrega del proyecto
aprox (2,5hrs)
El estado de la base de datos (modelo, datos, sp's, scripts,etc) se encuentra en sus últimos detalles (los cuales enumeraremos de forma más espe´cifica posteriormente) y por esto se decide comenzar con la capa lógica (interfaz de usuario).
aprox (2,5hrs)
El estado de la base de datos (modelo, datos, sp's, scripts,etc) se encuentra en sus últimos detalles (los cuales enumeraremos de forma más espe´cifica posteriormente) y por esto se decide comenzar con la capa lógica (interfaz de usuario).
Requerimentos
Los requerimientos para la parte visual del proyecto consiste en implementar el ambiente para el usario Abonado y Mnucipalidad-Admi. Estos requieren que se pueda ver recibos, pagar recibos, ver los abonados más morosos y los distritos que concentran mayor morosidad, proveer mantenimiento las tablas de Abonado y TipoServicio y ver detaller de recibos tambien.
Diseño de ventanas
En base a los requerimentos procedemos a diseñar la experiencia de usario, deseñamos las ventanas de forma que es fácil de entender y usar:
Así se visualiza la estructura de ventanas de la interfaz bajo el ambiente ASP.NET de visual studio. La lógica se maneja bajo C# y como es de esperarse es rendirisado en el browser bajo HTML.
Trabajamos en unir las versiones de la base sobre las cuales estamos trabajando
Se actualizó el sp de los recibos pendientes para mostrar al usuario
ALTER PROCEDURE [dbo].[spRecibosPendientesAbonado]
@idAbonado int = 0
as
Begin
--Recibe un identificador de cliente y lista el
--número de recibo,++
--el monto a pagar,++
--el monto de intereses moratorios,++
--y monto a pagar incluyendo intereses moratorios.++
--En orden de la fecha menos reciente a la fecha más reciente.
--Y total general pendiente que es la suma de todos los recibos incluyendo intereses moratorios.
--Todo esto para cada propiedad del abonado.
--se declaran las tablas
--recibo consulta que va a contener los datos de los recibos aún no pagados por el abonado
--resultado en el que se le va a ingresar el calculo del monto de los recibos a pagar
DECLARE @reciboConsulta table (sec int identity(1,1), idRecibo int, numeroFinca int, idmuni int, idAbonado int, valor int, nombre varchar(30), fechaEmision dateTime, fechaLimite dateTime, fechaPagado dateTime, valorMAgua float, tasaInteres int)
DECLARE @resultado table (sec int identity(1,1), idRecibo int,subTotalSinInteresmoratorio float, intMoratorio float, subtotalConInteresMoratorio float)
--obtiene los recibos que aún no han sido pagados = null por el abonado
Insert into @reciboConsulta Select Recibo.ID, Recibo.NumeroFinca, IdMunicipalidad, IdAbonado, Valor, Abonado.Nombre, FechaEmision, FechaLimite, FechaPagado, ValorMAgua, TasaInteres from Propiedad join Abonado on Propiedad.IdAbonado = Abonado.ID
join Recibo on Propiedad.NumeroFinca = Recibo.NumeroFinca
join Municipalidad on Propiedad.IdMunicipalidad = Municipalidad.ID where Propiedad.IdAbonado = @idAbonado and FechaPagado is null ORDER BY FechaEmision desc
--Select * from @reciboConsulta
--se declaran variables para obtener los datos
DECLARE @low int = 1
DECLARE @high int = 0
DECLARE @montoAgua float = 0
DECLARE @montoAlumbrado float = 0
DECLARE @montoBasura float = 0
DECLARE @montoParques float = 0
DECLARE @montoPatente float = 0
DECLARE @intMoratorio float = 0
DECLARE @subTotalSinInteresMoratorio float = 0
DECLARE @subtotalConInteresMoratorio float = 0
DECLARE @morosidad float = 0
DECLARE @numFinca int = 0
DECLARE @idRecibo int = 0
DECLARE @fechalimite dateTime
DECLARE @interesMoratorio float = 0
DECLARE @impuestoPropiedad float = 0
Print 'comienza loop------------------------------'
Select @high = max(T.sec) from @reciboConsulta T
--procede a iterar por los recibos para obtener el valor a pagar del agua,alumbrado,parques,patente,interesMoratiorio en caso de que el servicio no sea solicitado settea un 0 en la tabla
while @low <= @high
Begin
--obtiene numero de finca e id recibo a pagar
Set @numFinca = (Select numeroFinca from @reciboConsulta where sec = @low)
Set @idRecibo = (Select idRecibo from @reciboConsulta where sec = @low)
--obtiene el valor del pago correspondiente al recibo del agua por medio del id del recibo
Execute dbo.spGetCalculoAguaPorRecibo @idRecibo,@montoAgua out
--obtiene los servicios que paga la finca al mes, en caso de no haber solicitado algún servicio se settea un 0 al valor para no afectar el subtotal
Execute spGetPagos @numFinca,@montoAlumbrado out,@montoBasura out,@montoParques out,@montoPatente out
--suma subtotal
Set @subtotalSinInteresMoratorio = @montoAlumbrado + @montoBasura + @montoParques + @montoPatente + @montoAgua
--obtiene el id de la municipalidad por medio del numero de finca para sacar el interes moratorio
Set @interesMoratorio = (Select Municipalidad.TasaInteres from Municipalidad where Municipalidad.ID = (Select Municipalidad.ID from Propiedad join Municipalidad on Propiedad.IdMunicipalidad = Municipalidad.ID where Propiedad.NumeroFinca = @numFinca))
Set @fechalimite = (Select FechaLimite from Recibo where Recibo.ID = @idRecibo)
Set @impuestoPropiedad = (Select Valor from Propiedad where Propiedad.NumeroFinca = @numFinca)
Set @impuestoPropiedad = @impuestoPropiedad * 0.5
Set @subtotalConInteresMoratorio = 0
--datediff = dias de atraso
if(DATEDIFF(DAY,@fechalimite,GETDATE()) > 0)
begin
Set @morosidad = @subtotalSinInteresMoratorio * (@interesMoratorio/360) * DATEDIFF(DAY,@fechalimite,GETDATE())
Set @subtotalConInteresMoratorio = @subTotalSinInteresMoratorio + @morosidad
end
Insert into @resultado values(@idRecibo,@subTotalSinInteresMoratorio,@morosidad,@subtotalConInteresMoratorio)
Set @low = @low + 1
end
Select * from @resultado
end
@idAbonado int = 0
as
Begin
--Recibe un identificador de cliente y lista el
--número de recibo,++
--el monto a pagar,++
--el monto de intereses moratorios,++
--y monto a pagar incluyendo intereses moratorios.++
--En orden de la fecha menos reciente a la fecha más reciente.
--Y total general pendiente que es la suma de todos los recibos incluyendo intereses moratorios.
--Todo esto para cada propiedad del abonado.
--se declaran las tablas
--recibo consulta que va a contener los datos de los recibos aún no pagados por el abonado
--resultado en el que se le va a ingresar el calculo del monto de los recibos a pagar
DECLARE @reciboConsulta table (sec int identity(1,1), idRecibo int, numeroFinca int, idmuni int, idAbonado int, valor int, nombre varchar(30), fechaEmision dateTime, fechaLimite dateTime, fechaPagado dateTime, valorMAgua float, tasaInteres int)
DECLARE @resultado table (sec int identity(1,1), idRecibo int,subTotalSinInteresmoratorio float, intMoratorio float, subtotalConInteresMoratorio float)
--obtiene los recibos que aún no han sido pagados = null por el abonado
Insert into @reciboConsulta Select Recibo.ID, Recibo.NumeroFinca, IdMunicipalidad, IdAbonado, Valor, Abonado.Nombre, FechaEmision, FechaLimite, FechaPagado, ValorMAgua, TasaInteres from Propiedad join Abonado on Propiedad.IdAbonado = Abonado.ID
join Recibo on Propiedad.NumeroFinca = Recibo.NumeroFinca
join Municipalidad on Propiedad.IdMunicipalidad = Municipalidad.ID where Propiedad.IdAbonado = @idAbonado and FechaPagado is null ORDER BY FechaEmision desc
--Select * from @reciboConsulta
--se declaran variables para obtener los datos
DECLARE @low int = 1
DECLARE @high int = 0
DECLARE @montoAgua float = 0
DECLARE @montoAlumbrado float = 0
DECLARE @montoBasura float = 0
DECLARE @montoParques float = 0
DECLARE @montoPatente float = 0
DECLARE @intMoratorio float = 0
DECLARE @subTotalSinInteresMoratorio float = 0
DECLARE @subtotalConInteresMoratorio float = 0
DECLARE @morosidad float = 0
DECLARE @numFinca int = 0
DECLARE @idRecibo int = 0
DECLARE @fechalimite dateTime
DECLARE @interesMoratorio float = 0
DECLARE @impuestoPropiedad float = 0
Print 'comienza loop------------------------------'
Select @high = max(T.sec) from @reciboConsulta T
--procede a iterar por los recibos para obtener el valor a pagar del agua,alumbrado,parques,patente,interesMoratiorio en caso de que el servicio no sea solicitado settea un 0 en la tabla
while @low <= @high
Begin
--obtiene numero de finca e id recibo a pagar
Set @numFinca = (Select numeroFinca from @reciboConsulta where sec = @low)
Set @idRecibo = (Select idRecibo from @reciboConsulta where sec = @low)
--obtiene el valor del pago correspondiente al recibo del agua por medio del id del recibo
Execute dbo.spGetCalculoAguaPorRecibo @idRecibo,@montoAgua out
--obtiene los servicios que paga la finca al mes, en caso de no haber solicitado algún servicio se settea un 0 al valor para no afectar el subtotal
Execute spGetPagos @numFinca,@montoAlumbrado out,@montoBasura out,@montoParques out,@montoPatente out
--suma subtotal
Set @subtotalSinInteresMoratorio = @montoAlumbrado + @montoBasura + @montoParques + @montoPatente + @montoAgua
--obtiene el id de la municipalidad por medio del numero de finca para sacar el interes moratorio
Set @interesMoratorio = (Select Municipalidad.TasaInteres from Municipalidad where Municipalidad.ID = (Select Municipalidad.ID from Propiedad join Municipalidad on Propiedad.IdMunicipalidad = Municipalidad.ID where Propiedad.NumeroFinca = @numFinca))
Set @fechalimite = (Select FechaLimite from Recibo where Recibo.ID = @idRecibo)
Set @impuestoPropiedad = (Select Valor from Propiedad where Propiedad.NumeroFinca = @numFinca)
Set @impuestoPropiedad = @impuestoPropiedad * 0.5
Set @subtotalConInteresMoratorio = 0
--datediff = dias de atraso
if(DATEDIFF(DAY,@fechalimite,GETDATE()) > 0)
begin
Set @morosidad = @subtotalSinInteresMoratorio * (@interesMoratorio/360) * DATEDIFF(DAY,@fechalimite,GETDATE())
Set @subtotalConInteresMoratorio = @subTotalSinInteresMoratorio + @morosidad
end
Insert into @resultado values(@idRecibo,@subTotalSinInteresMoratorio,@morosidad,@subtotalConInteresMoratorio)
Set @low = @low + 1
end
Select * from @resultado
end
Creamos estos stored procedures básicos que simplemente llevan el mantenimiento del punto opcional #2
estos a su vez afectan las tablas bitácora.
Comentarios
Publicar un comentario