Está en la página 1de 4

Lab 03.

Implementando Aplicació n de Cronograma de Pagos

Lab 03: Implementando Aplicación de


Cronograma de Pagos

Objetivos

 Identificar el modelo del sistema


 Visualizando el prototipo de Cronograma de Pagos.
 Identificar tablas del modelo de datos en TenebrosaOLTP
 Prepara el Procedimiento Almacenado.

1. Modelo del Sistema.

RealizarPagos

Asistente
Comercial
<<extend>>

PrepararPedidos

Caja

GenerarCronograma

MCP. Ing. Ricardo Mendoza Rivera Page 1


Lab 03.Implementando Aplicació n de Cronograma de Pagos

2. Visualizando prototipo de Conograma de Pagos.

Preparando la
Interfaz de
Usuario

3. Tablas

Encontradas en base de datos TenebrosaOLTP

MCP. Ing. Ricardo Mendoza Rivera Page 2


Lab 03.Implementando Aplicació n de Cronograma de Pagos

4. Preparando el Procedimiento Almacenado de Generación de


Cronograma.

a. Parámetros del Procedimiento:

b. Creamdo el Store Procedure: GeneraCrono

CREATE PROCEDURE GeneraCrono


@documento char(9), @tipodoc char(1), @NroCuotas smallint
AS
SET NOCOUNT ON
-- Declarando variables
DECLARE @igv numeric(9,2), @tasa numeric(9,2), @cuenta smallint, @deuda numeric(9,2),
@TotCuota numeric(9,2), @fecha datetime
SET @fecha = GETDATE()
-- Leyendo Parametros...
SELECT @igv = IGV/ 100, @tasa = tasaint/100
FROM parametro WHERE activo = 1
--- Verificando Parametros
IF @igv IS NULL OR @tasa IS NULL
BEGIN
RAISERROR('No existen parametros. Imposible continuar', 16, -1)
RETURN
END
-- Verificando si Documento existe
IF NOT EXISTS( SELECT tipodoc FROM documento WHERE documento = @documento AND tipodoc =@tipodoc)
BEGIN
RAISERROR('Documento ingresado no existe ...', 16, -1)

MCP. Ing. Ricardo Mendoza Rivera Page 3


Lab 03.Implementando Aplicació n de Cronograma de Pagos

RETURN
END
--- Verificando si Documento ya fue Generado...
IF EXISTS( SELECT documento FROM cronograma WHERE documento = @documento AND tipodoc =@tipodoc)
BEGIN
RAISERROR('Documento ya fue generado...', 16, -1)
RETURN
END

--- Calculando deuda


SELECT @deuda = SUM(dd.cantidad * dd.precunit)
FROM documento d INNER JOIN detadoc dd ON d.documento = dd.documento AND d.tipodoc = dd.tipodoc
WHERE d.documento = @documento AND d.tipodoc = @tipodoc

SET @cuenta = 0
WHILE @cuenta < @NroCuotas
BEGIN
SET @cuenta = @cuenta + 1
SET @TotCuota = @deuda / @NroCuotas
INSERT cronograma (NroCuota, Documento ,TipoDoc, Importe, Interes , IgvInteres , feVence )
VALUES (@cuenta, @documento, @tipodoc, @TotCuota, @TotCuota * @Tasa, @TotCuota * @Tasa * @igv,
DATEADD(mm, @cuenta, @fecha))
END

SELECT NroCuota, Importe, Interes, IgvInteres, Importe + Interes + IgvInteres AS ValorCuota, FeVence
FROM cronograma WHERE documento = @documento AND tipodoc = @tipodoc
GO

c. Muestra de ejecución del Stored Procedure.

NroCuotas 5
Monto 2000
interes 2%
igv 18%
Vencimieno Capital Interes IGV Cuota
1 04/06/2019 400 8 1.44 409.44
2 04/07/2019 400 8 1.44 409.44
3 03/08/2019 400 8 1.44 409.44
4 02/09/2019 400 8 1.44 409.44
5 02/10/2019 400 8 1.44 409.44

MCP. Ing. Ricardo Mendoza Rivera Page 4

También podría gustarte