Sei sulla pagina 1di 51

SEMINARIO DE PROFUNDIZACION

PL/SQL CON ORACLE


BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE UNA
TIENDA

EDER LARA
CRISTOBAL TAVERA
WOLFANG FRANK ESQUIVEL CORTES

UNIVERSIDAD DEL TOLIMA


IDEAD
INGENIERIA DE SISTEMAS
IBAGU - TOLIMA
2015

SEMINARIO DE PROFUNDIZACION
GESTIN DE BASES DE DATOS
CON PLSQL Y SQL DEVELOPER
BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE UNA
TIENDA

EDER LARA
CRSITOVAL TAVERA
WOLFANG FRANK ESQUIVEL CORTES
Trabajo presentado como requisito parcial para optar al ttulo de Ingeniero de
Sistemas
JORGE PACHECO CASADIEGO
Ing. De Sistemas

UNIVERSIDAD DEL TOLIMA


IDEAD
INGENIERIA DE SISTEMAS
IBAGU - TOLIMA
2015

CONTENIDO
Pg.
INTRODUCCIN
1. OBJETIVOS
1.1 OBJETIVO GENERAL
1.2 OBJETIVOS ESPECFICOS
2. METODOLOGA
3. REQUISITOS
3.1 ALCANCE
3.2 MODELO DE CASOS DE USO
3.2.1 Diagramas Caso de Uso
3.2.2 Descripcin Caso de Uso
3.3 MODELO LGICO DE DATOS
3.3.1 Diagrama Entidad relacin E / R
3.3.2 Descripcin de Entidades, Atributos y Relaciones
4. DISEO
4.1 MODELO FSICO DE DATOS
4.1.1 Diagrama Relacional
4.1.2 Descripcin Tablas, ndices, secuenciadores, Vistas
4.2. ARQUITECTURA MODULAR
4.2.1 Diagrama Jerarqua de Mdulos
4.2.2
Descripcin de Mdulos
5. CONSTRUCCIN
5.1 CAPA DE ALMACENAMIENTO
5.1.1 Script de la Base de Datos
5.2 CAPA LGICA
5.2.1 Procedimientos
5.2.1.1 Edicin(Insercin, Actualizacin, Eliminacin)
5.2.1.2 Consultas
5.2.1.3 Procesos De Actualizacin De Datos En Lote
6. PRUEBAS

4
5
5
5
6
7
7
10
11
11
13
13
13
14
14
14
15
18
18
18
20
20
20
35
35
37
40
43
45

INTRODUCCION
El desarrollo de este proyecto tiene como propsito evidenciar la apropiacin de
los temas vistos en el seminario de PL/SQL con Oracle a travs de la elaboracin
de un sistema de informacin que permite la gestin de cuentas por cobrar de una
tienda actualizando el saldo anterior con el actual y consultar las deudas de los
clientes. Tambin se pretende mostrar la aplicacin de la metodologa utilizada y
las actividades realizadas en las distintas sesiones de trabajo.
Este sistema se cre con el fin de implementar todos los conocimientos adquiridos
y efectuar distintas operaciones a nivel de la capa de almacenamiento y la capa
lgica del mismo usando procedimientos de

edicin, aplicacin transaccional,

consultas e informes que permiten la facilidad para gestionar los saldos de los
clientes y manejar la informacin como los datos de los clientes con sus
respectivos identificadores, codificacin de departamentos y ciudades, entre otras
bondades del lenguaje pl/sql.
Adems se logra por medio de este ejercicio pedaggico el conocimiento de los
diversos comandos y formas de utilizarlos para posibilitar el dinamismo de la base
de datos en la captura de datos y la generacin de reportes.

1. OBJETIVOS
1.1 GENERAL
Disear e Implementar una aplicacin con Base de Datos para la gestin de
una tiendan con el fin de llevar un registro de los clientes deudores utilizando
Oracle.
1.2 ESPECFICOS

Disear el modelo de datos del subsistema( entre ellos modelo conceptual,

fsico y generacin de script)


Elaborar los procesos de edicin, consulta y aplicacin de transacciones del

subsistema de cuentas por cobrar.


Dar a conocer la jerarqua de dos de los mdulos de cuentas por cobrar

para las transacciones necesarias


Mostrar el funcionamiento de el software oracle y el sql developer para

consultas con PL/SQL


Utilizar PL/ SQL para la creacin de Informes.
Utilizar el PL/SQL para insertar, modificar y actualizar registros de los
clientes pendientes por pagar.

2. METODOLOGA
En cada tutoria de trabajaron actividades utilizando el ejercicio tienda con las
herramientas CASE y Oracle developer para diseo de la base de datos, ejecucin
de comandos bsicos y creacin de procedimientos y otras sentencias en el
lenguaje PL/SQL.
A continuacin se describen de forma detallada las actividades realizadas teniendo
en cuenta el modelo clsico secuencial y un enfoque estructurado.
ACTIVIDAD
Definicin alcance

TCNICA O
PRCTICA
Entrevistas a
alto nivel

HERRAMIENTAS

Definicin de
requisitos

Entrevistas
detalladas

Elaboracin
Modelo de
comportamiento

Modelo de
Casos de
Uso

Elaboracin del
Modelo de datos

Modelo
relacional

Formato de
requisitos
Herramienta
CASE
Formato de
requisitos
Herramienta
CASE

PRODUCTOS
Catlogo de requisitos
a alto nivel

Catlogo de requisitos
a nivel de detalle

Herramienta
CASE

Herramienta
CASE

Diagrama
Notacin
detallada
Diagrama E/R
Descripcin del
modelo

3. REQUISITOS
3.1 ALCANCE
Ante el volumen de transacciones diarias a procesar con el fin de actualizar el
inventario, el dueo de la tienda est interesado en modernizar su negocio con
cambios estructurales en su modelo de negocio y en la tecnologa de soporte a
sus procesos crticos. A continuacin se expone la estructura funcional y los
requerimientos de tecnologa de la informacin definidos por el dueo:
Se implementar una oficina de atencin al cliente

que tendr como

funciones principales el registrar y actualizar la informacin de los clientes;


comunicar a los clientes, las promociones y eventos de la tienda; atender
las solicitudes de los clientes en cuanto a peticiones, quejas, reclamos y
devoluciones; administrar los procesos de catlogo de puntos y redencin
de puntos. Esta seccin ser atendida por cuatro funcionarias encargadas
de afiliacin de clientes, promociones, PQR y puntos, que contarn con
cuatro estaciones de trabajo conectadas al servidor principal de la tienda.
Para la aplicacin de las transacciones diarias de inventario, el registro de
productos y la generacin de los informes resmenes de venta y saldos de
almacn, se dispondr de una estacin de trabajo operada por un
funcionario de la oficina de Bodega.
Se implementar una oficina de atencin al proveedor que tendr como
funciones principales el registrar y actualizar la informacin de los
proveedores; desarrollar la gestin de reposicin de los artculos; registrar
las compras a los proveedores; registrar las devoluciones; registrar los
pagos a los proveedores y generar los listados resmenes de compra. Esta

seccin ser atendida por tres funcionarios que contarn con tres
estaciones de trabajo conectadas al servidor principal de la tienda.
La Seccin de Contabilidad deber generar cada da la informacin relativa
al estado de la cartera de los clientes o cuentas por cobrar y el de cuentas
por pagar a proveedores.
Para efecto de control de los puntos de ventas, se realizarn aperturas de
caja, entregas parciales de dinero y cierres de caja con participacin del
supervisor de turno y el cajero responsable. Estos procesos se registrarn
en el terminal de venta.
CUENTAS POR COBRAR
Consulta de ventas adeudadas por un cliente
El sistema permitir la consulta de la relacin de ventas pendientes de pago
por el cliente. Con base en el nmero de identificacin del cliente, el sistema
desplegar las ventas a cargo del cliente, indicando fecha, valor adeudado por
cada una y el valor total adeudado por el cliente.
Abonos de los clientes
Los clientes con ventas pendientes de pago, realizarn sus abonos en los
terminales de punto de ventas o cajas. El abono lo registrar el cajero
indicndole al sistema el nmero de identificacin del cliente el valor del
abono y la forma de pago (efectivo, tarjeta o cheque). El sistema validar
que el abono sea suficiente para pagar una o ms de una de las ventas
pendientes de pago.
Como poltica del negocio se aceptan abonos completos por ventas. No se
aceptan abonos parciales a una venta. En un abono se puede abonar a una
o ms ventas. El abono se puede detallar de acuerdo con la forma de pago
indicando el monto de pago por cada detalle, ej: abon un milln de pesos y
los montos son quinientos mil en efectivo, cuatrocientos mil en tarjeta
crdito y cien mil en cheque.

El sistema generar un comprobante de abono indicando fecha, hora, caja


fsica, nombre cajero, nmero y valor de cada venta abonada, total del
abono y forma de pago detallada.
Aplicar abonos de los clientes
El sistema facilitar la aplicacin de los abonos de forma que actualice el saldo
del cliente a travs del descuento del valor del abono y actualice el estado del
abono cambindolo de P= Pendiente de aplicar a A= Aplicado y el estado de la
venta pasando de PP= Pendiente de pago a PA= Pagada.
Generar informes de cuentas por cobrar

El sistema generar un informe diario de los saldos a cargo de los clientes


indicando fecha de corte, nombre del cliente y valor del saldo a cargo del

cliente.
El sistema generar un informe diario de los abonos recibidos, relacionando el
nmero del abono, el valor y la forma de pago. Al final deber informar el

nmero de abonos y el total del monto abonado


El sistema generar un informe resumen indicando el valor de la cartera a la
fecha

3.2 MODELO DE CASOS DE USO


3.2.1 DIAGRAMAS CASO DE USO
CASO DE USO: CONSULTA ABONO A LA FECHA

DESCRIPCION
CASO DE USO: CONSULTAR ABONOS A LA FECHA
ACTOR (ES): Administrador
PROPOSITO: Realizar y consultar abonos de clientes
CASO DE XITO:
PASO
1.
2.
4.
5.

ACTIVIDAD
El Administrador solicita informe de abonos
El sistema genera el reporte a travs del programa parametrizado
El sistema verifica existencia de los abonos.
El sistema genera un reporte de los abonos identificando el cliente y el
monto del abono

EXTENSIONES:
6.1
6.1.1

No existen abonos
El sistema muestra mensaje indicando que no hay abonos a la fecha

10

CASO DE USO: REGISTRAR ABONO

DESCRIPCION
CASO DE USO: REGISTRAR ABONO
ACTOR (ES): Funcionario
PROPOSITO: Ingresar el abono del cliente.
CASO DE XITO:
PASO
1.
2.
3.
4.
5.

ACTIVIDAD
El Funcionario solicita el nmero de cdula del cliente.
El funcionario ingresa el nmero de la cdula del cliente.
El funcionario ingresa el valor del abono.
El sistema almacena el registro del abono del cliente.
El sistema indica con un mensaje que el abono se ha registrado
correctamente.

EXTENSIONES:
3.1
3.1.1
3.3
3.3.1

No se ingres la cdula del cliente.


El sistema solicita el ingreso de la cedula.
No se ingres el valor del abono.
Mensaje del Sistema solicitando el valor del abono.

11

CASO DE USO: GENERAR INFORMES

DESCRIPCION
CASO DE USO: GENERAR INFORME DIARIO DE ABONOS
ACTOR (ES): Usuario del sistema
PROPOSITO: Solicitar el conteo de los abonos diarios agrupndolos segn
el nmero del registro y mostrar el valor de cada abono.
CASO DE XITO:
PASO
1.
2.
3.
4.

ACTIVIDAD
Seleccionar fecha actual.
Conteo de abonos
Asociar los abonos con la fecha a consultar
Mostrar resultado de la consulta y el valor de cada abono.

CASO DE USO: GENERAR INFORME DE CARTERA.


ACTOR (ES): Subsistema.

12

PROPOSITO: Solicitar el conteo de las ventas con saldos.


CASO DE XITO:
PASO
1.
2.
3.
4.

ACTIVIDAD
Seleccionar saldos con valores mayores a 0.
Conteo de saldos.
Agrupar conteo de saldos por nombre del cliente.
Mostrar Resultados.

13

3.2

MODELO LGICO DE DATOS

3.3.1 Diagrama Entidad relacin E / R


3.3.2 Descripcin de Entidades, Atributos y Relaciones

4 DISEO
4.1 MODELO FSICO DE DATOS
4.1.1 Diagrama Relacional

14

15

4.1.2

DESCRIPCIN TABLAS, NDICES, SECUENCIADORES, VISTAS

TABLA CLIENTE
En esta tabla se almacenan los datos correspondientes al Cliente
CLIENTE
Atributo

Descripcin

Tipo

Longitud

Permite
Nulos

ID_CLIENTE

Documento de
identidad

Number

38

No

TIPODOC
U

Tipo de
Documento

No

NOMBRE

Nombre de
Cliente

50

No

GENERO

Genero de
Cliente (M / F)

No

DIRECCI
ON
MUNICIPI
O

Direccion de
localizacin de
Cliente
Municipio de
localizacin de
Cliente
Numero
Telefonico de
localizacin de
Cliente

50

No

50

Si

Number

38

Si

Variable
charact
ers (2)

No

TELEFON
O
APLICAC
RE

Aplica Credito
(S / N)

Variable
charact
ers (2)
Variable
charact
ers (2)
Variable
charact
ers (2)
Variable
charact
ers (2)
Variable
charact
ers (2)

Llave
Principal
X

Llave
Forn
ea

Tabla
Llave
Forne
a

Observacion
es

TABLA VENTA
Aqu se registran las ventas efectuadas a los clientes, se incluye el campo
saldo para determinar las deudas de cada uno de los clientes
VENTA
Atributo

Descripcin

Tipo

Longitud

Permite
Nulos

Llave
Principal

ID_VENTA

Codigo de
venta

Number

38

No

ID_CLIENTE

Documento
de identidad

Number

38

No

FEVEN

TIPOVEN

Fecha de
efectuada la
compra
Forma de
venta
(Credito /
Contado)

Date

Varchar2

No

No

16

Llave
Fornea

Tabla
Llave
Fornea

CLENTE

Observaciones

Estado de
venta
(Pendiente /
Pagada)
Total de
Venta
Saldo
despus de
Aplicar
Abonos

ESTADOV
TOTALVEN

SALDO

Varchar2

No

Float

No

Float

Si

TABLA ABONO
Aqu se almacenan los registros de los abonos relacionados a cada venta
ABONO
Atributo
ID_ABONO
ID_VENTA
FECHA

ESTADOA

Descripcin
Cdigo del
Abono
Codigo de
venta
Fecha de
Realizacin
De Abono
Indica si el
abono se ah
aplicado para
la
actualizacin
del saldo en
la venta

Tipo

Longitud

Permite
Nulos

Llave
Principal

Number

38

No

Number

38

No

Date

Llave
Fornea

Tabla
Llave
Fornea

VENTA

Observaciones

No

Number

38

Se actualiza al
generar una
consulta
(Procedimiento)

No

TABLA DETALLE DE ABONO


Aqu se almacenan los detalles del abono en si
DETALLE DE ABONO
Llave
Forne
a

Tabla
Llave
Forne
a

No

ABONO

No

MEDIO
DE
PAGO

Atributo

Descripcin

Tipo

Longit
ud

Permit
e
Nulos

Llave
Principa
l

ID_DET_ABONO

Cdigo de
detalle de
Abono

Number

38

No

ID_ABONO

Cdigo de
Abono

Number

38

Number

38

ID_MEDIO_DE_PAG
O
VALOR_ABONO

Codigo
Medio de
Pago
Valor
Abonado

No

17

Observacione
s

TABLA FORMA DE PAGO


Tabla para almacenar los diferentes tipos de pago.
CONSULTORIO
Longitu
Permit
d
e
Nulos

Atributo

Descripcin

Tipo

ID_MEDIO_DE_PA
GO

Codigo de
Medio de
Pago
Descripcion
de Forma De
Pago

Number

38

No

Varchar
2

30

No

MEDIO__PAGO

18

Llave
Principa
l
X

Llave
Forne
a

Tabla
Llave
Forn
ea

Observaciones

4.1.3

ARQUITECTURA MODULAR

ARQUITECTURA DE INSERCION

ARQUITECTURA DE CONSULTA

19

ARQUITECTURA DE CONSULTA A UN ABONO PERSPECTIVA DE CAPAS

20

CONSTRUCCIN

5.1 CAPA DE ALMACENAMIENTO


5.1.1 Script de la Base de Datos
/*Este script fue generado desde la herramienta case Sybase PowerDesigner 16.1
a partir del modelo fsico de datos.
Autores:
EDER LARA TRUJILLO
CRISTOVAL TAVERA PARRA
WOLFANG FRANK ESQUIVEL CORTES.
--------------------------------------------------------- Archivo creado - domingo-abril-05-2015
---------------------------------------------------------------------------------------------------------------- DDL for Table ABONO
-------------------------------------------------------CREATE TABLE "EDER"."ABONO"
(
"ID_ABONO" NUMBER(*,0),
"ID_VENTA" NUMBER(*,0),
"FECHA" DATE,
"ESTADOA" CHAR(2 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Table CLIENTE
-------------------------------------------------------CREATE TABLE "EDER"."CLIENTE"
(
"ID_CLIENTE" NUMBER(*,0),
"TIPODOCU" VARCHAR2(2 BYTE),
"NOMBRE" VARCHAR2(50 BYTE),
"GENERO" CHAR(1 BYTE),
"DIRECCION" VARCHAR2(50 BYTE),
"MUNICIPIO" VARCHAR2(50 BYTE),
"TELEFONO" NUMBER,
"APLICACRED" VARCHAR2(2 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Table DETALLE_DE_ABONO

21

-------------------------------------------------------CREATE TABLE "EDER"."DETALLE_DE_ABONO"


(
"ID_DET_ABONO" NUMBER(*,0),
"ID_ABONO" NUMBER(*,0),
"ID_MEDIO_DE_PAGO" NUMBER(*,0),
"VALOR_ABONO" FLOAT(126)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Table FORMA_DE_PAGO
-------------------------------------------------------CREATE TABLE "EDER"."FORMA_DE_PAGO"
(
"ID_MEDIO_DE_PAGO" NUMBER(*,0),
"MEDIO__PAGO" VARCHAR2(30 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Table VENTA
-------------------------------------------------------CREATE TABLE "EDER"."VENTA"
(
"ID_VENTA" NUMBER(*,0),
"ID_CLIENTE" NUMBER(*,0),
"FEVEN" DATE,
"TIPOVEN" VARCHAR2(30 BYTE),
"ESTADOV" CHAR(2 BYTE),
"TOTALVEN" FLOAT(126),
"SALDO" FLOAT(126)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
REM INSERTING into EDER.ABONO
SET DEFINE OFF;
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('1','100',to_date('01/01/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('3','103',to_date('03/12/14','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('4','101',to_date('02/03/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('5','104',to_date('02/11/14','DD/MM/RR'),'P');

22

Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values


('6','105',to_date('20/01/14','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('7','107',to_date('19/03/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('8','108',to_date('19/03/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('9','109',to_date('20/03/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('10','110',to_date('12/03/15','DD/MM/RR'),'P');
Insert into EDER.ABONO (ID_ABONO,ID_VENTA,FECHA,ESTADOA) values
('2','102',to_date('18/03/15','DD/MM/RR'),'P');
REM INSERTING into EDER.CLIENTE
SET DEFINE OFF;
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('28542662','CC','ADRIANA MARIA GALINDO HERRERA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3164331089','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('52266270','CC','AMPARO ARISTIZABAL SUAZA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3122882773','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('38203593','CC','AMPARO DUCUARA YATE','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3205659547','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('28548500','CC','ANA DELIA BAUTISTA VARGAS','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3123263566','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('28540834','CC','ANA ELVIA OTALORA CALDERON','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3105887307','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65750304','CC','ANA MARIA OSPINA GUTIERREZ','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3167936599','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65766127','CC','ANA MILENA VARGAS RODRIGUEZ','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3175058757','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('1110482939','CC','ANDREA JOHANA LASSO CASAS','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3107537245','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('1005716577','CC','ANDREA KATHERINE BARAJAS ORTIZ','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3185508557','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65632335','CC','ANGELA GEOVANNA CRUZ VILLARREAL','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3107599964','SI');

23

Insert into EDER.CLIENTE


(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65785280','CC','NGELA LUCERO GUZMN VILA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','2645280','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('1110454894','CC','ANGELICA LOPEZ YAZO','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3112465478','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65745454','CC','ARGENIS NARANJO MAYORGA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3107564847','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('5853663','CC','ARNULFO MATOMA TOVAR','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3178499778','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65738252','CC','BALBINA CALDERN','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3123902136','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('57140150','CC','BEATRIZ ELENA MERCADO BUSTAMANTE','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3214211732','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65767685','CC','BENERANDA MORALES PATIO','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3102044319','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('2285283','CC','BENJAMIN TAPIERO POVEDA','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3156025917','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('14201118','CC','BENJAMIN URRUTIA GARCIA','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3108822100','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('13053032','CC','BERNARDINO GRUESO','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3185508557','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65744973','CC','BETTY BRICEO CABRERA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3107599964','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65779371','CC','BLANCA LUCIA BARRAGAN ARCE','F','COMUNA 7 BARRIO
SALADO','IBAGUE','2645280','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65760687','CC','BLANCA NUBIA RENGIFO SANABRIA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3112465478','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE

24

D) values ('1110508734','CC','BRILLIT GARDEL MARTINEZ CAMACHO','F','COMUNA 7 BARRIO


SALADO','IBAGUE','3107564847','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('93364814','CC','CARLOS IVAN ANACONA HERRERA','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3178499778','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('93390994','CC','CARLOS JULIO DIAZ ROZO','M','COMUNA 7 BARRIO
SALADO','IBAGUE','3123902136','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('38247509','CC','CARLOTA MARSIGLIA BARRETO','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3214211732','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('65742895','CC','CARMENZA GUZMAN SUAREZ','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3102044319','SI');
Insert into EDER.CLIENTE
(ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRE
D) values ('28555320','CC','CARMENZA PEREA IBARRA','F','COMUNA 7 BARRIO
SALADO','IBAGUE','3156025917','SI');
REM INSERTING into EDER.DETALLE_DE_ABONO
SET DEFINE OFF;
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('1','1','2','200000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('2','2','3','270000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('3','3','1','290000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('4','4','4','150000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('5','5','1','260000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('6','6','2','260000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('7','7','1','180000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('8','8','2','320000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values ('9','9','1','390000');
Insert into EDER.DETALLE_DE_ABONO
(ID_DET_ABONO,ID_ABONO,ID_MEDIO_DE_PAGO,VALOR_ABONO) values
('10','10','1','20000');
REM INSERTING into EDER.FORMA_DE_PAGO
SET DEFINE OFF;
Insert into EDER.FORMA_DE_PAGO (ID_MEDIO_DE_PAGO,MEDIO__PAGO) values
('1','EFECTIVO');
Insert into EDER.FORMA_DE_PAGO (ID_MEDIO_DE_PAGO,MEDIO__PAGO) values
('2','TARJETA D/C');
Insert into EDER.FORMA_DE_PAGO (ID_MEDIO_DE_PAGO,MEDIO__PAGO) values
('3','CHEQUE');

25

Insert into EDER.FORMA_DE_PAGO (ID_MEDIO_DE_PAGO,MEDIO__PAGO) values


('4','CONSIGNACION');
Insert into EDER.FORMA_DE_PAGO (ID_MEDIO_DE_PAGO,MEDIO__PAGO) values
('5','BONOS');
REM INSERTING into EDER.VENTA
SET DEFINE OFF;
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('100','28542662',to_date('30/11/14','DD/MM/RR'),'CREDITO','PP','450000','450000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('101','52266270',to_date('13/08/14','DD/MM/RR'),'CREDITO','PP','190000','190000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('102','38203593',to_date('31/12/14','DD/MM/RR'),'CREDITO','PP','270000','270000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('103','28548500',to_date('03/02/14','DD/MM/RR'),'CREDITO','PP','290000','290000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('104','28540834',to_date('02/11/14','DD/MM/RR'),'CREDITO','PP','430000','430000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('105','65750304',to_date('20/01/14','DD/MM/RR'),'CREDITO','PP','260000','260000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('106','65766127',to_date('02/03/15','DD/MM/RR'),'CREDITO','PP','470000','470000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('107','1110482939',to_date('15/10/14','DD/MM/RR'),'CREDITO','PP','180000','180000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('108','1005716577',to_date('20/01/14','DD/MM/RR'),'CREDITO','PP','320000','320000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('109','65632335',to_date('08/02/14','DD/MM/RR'),'CREDITO','PP','390000','390000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('110','65785280',to_date('03/05/14','DD/MM/RR'),'CREDITO','PP','310000','310000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('111','1110454894',to_date('06/07/14','DD/MM/RR'),'CREDITO','PP','430000','430000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('112','65745454',to_date('01/12/14','DD/MM/RR'),'CREDITO','PP','390000','390000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('113','5853663',to_date('06/04/14','DD/MM/RR'),'CREDITO','PP','160000','160000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('114','65738252',to_date('07/10/14','DD/MM/RR'),'CREDITO','PP','300000','300000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('115','57140150',to_date('12/11/14','DD/MM/RR'),'CREDITO','PP','330000','330000');

26

Insert into EDER.VENTA


(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('116','65767685',to_date('28/02/15','DD/MM/RR'),'CREDITO','PP','420000','420000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('117','2285283',to_date('19/03/14','DD/MM/RR'),'CREDITO','PP','190000','190000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('118','14201118',to_date('05/08/14','DD/MM/RR'),'CREDITO','PP','480000','480000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('119','13053032',to_date('11/04/14','DD/MM/RR'),'CREDITO','PP','130000','130000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('120','65744973',to_date('19/06/14','DD/MM/RR'),'CREDITO','PP','110000','110000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('121','65779371',to_date('12/09/14','DD/MM/RR'),'CREDITO','PP','390000','390000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('122','65760687',to_date('09/10/14','DD/MM/RR'),'CREDITO','PP','200000','200000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('123','1110508734',to_date('23/05/14','DD/MM/RR'),'CREDITO','PP','120000','120000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('124','93364814',to_date('08/03/15','DD/MM/RR'),'CREDITO','PP','340000','340000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('125','93390994',to_date('13/07/14','DD/MM/RR'),'CREDITO','PP','380000','380000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('126','38247509',to_date('23/07/14','DD/MM/RR'),'CREDITO','PP','190000','190000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('127','65742895',to_date('03/08/14','DD/MM/RR'),'CREDITO','PP','370000','370000');
Insert into EDER.VENTA
(ID_VENTA,ID_CLIENTE,FEVEN,TIPOVEN,ESTADOV,TOTALVEN,SALDO) values
('128','28555320',to_date('27/01/14','DD/MM/RR'),'CREDITO','PP','490000','490000');
--------------------------------------------------------- DDL for Index EFECTUAR_FK
-------------------------------------------------------CREATE INDEX "EDER"."EFECTUAR_FK" ON "EDER"."VENTA" ("ID_CLIENTE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PK_DETALLE_DE_ABONO
--------------------------------------------------------

27

CREATE UNIQUE INDEX "EDER"."PK_DETALLE_DE_ABONO" ON


"EDER"."DETALLE_DE_ABONO" ("ID_DET_ABONO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PK_ABONO
-------------------------------------------------------CREATE UNIQUE INDEX "EDER"."PK_ABONO" ON "EDER"."ABONO" ("ID_ABONO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index ESCOGE_FK
-------------------------------------------------------CREATE INDEX "EDER"."ESCOGE_FK" ON "EDER"."DETALLE_DE_ABONO"
("ID_MEDIO_DE_PAGO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PK_VENTA
-------------------------------------------------------CREATE UNIQUE INDEX "EDER"."PK_VENTA" ON "EDER"."VENTA" ("ID_VENTA")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index GENERA_FK
-------------------------------------------------------CREATE INDEX "EDER"."GENERA_FK" ON "EDER"."DETALLE_DE_ABONO" ("ID_ABONO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PK_FORMA_DE_PAGO
-------------------------------------------------------CREATE UNIQUE INDEX "EDER"."PK_FORMA_DE_PAGO" ON "EDER"."FORMA_DE_PAGO"
("ID_MEDIO_DE_PAGO")

28

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS


STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PK_CLIENTE
-------------------------------------------------------CREATE UNIQUE INDEX "EDER"."PK_CLIENTE" ON "EDER"."CLIENTE" ("ID_CLIENTE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- DDL for Index PUEDE_SER_CANCELADA_FK
-------------------------------------------------------CREATE INDEX "EDER"."PUEDE_SER_CANCELADA_FK" ON "EDER"."ABONO" ("ID_VENTA")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
--------------------------------------------------------- Constraints for Table ABONO
-------------------------------------------------------ALTER TABLE "EDER"."ABONO" MODIFY ("ID_ABONO" NOT NULL ENABLE);
ALTER TABLE "EDER"."ABONO" MODIFY ("ID_VENTA" NOT NULL ENABLE);
ALTER TABLE "EDER"."ABONO" MODIFY ("FECHA" NOT NULL ENABLE);
ALTER TABLE "EDER"."ABONO" ADD CONSTRAINT "PK_ABONO" PRIMARY KEY
("ID_ABONO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ENABLE;
--------------------------------------------------------- Constraints for Table DETALLE_DE_ABONO
-------------------------------------------------------ALTER TABLE "EDER"."DETALLE_DE_ABONO" MODIFY ("ID_DET_ABONO" NOT NULL
ENABLE);
ALTER TABLE "EDER"."DETALLE_DE_ABONO" MODIFY ("ID_MEDIO_DE_PAGO" NOT NULL
ENABLE);
ALTER TABLE "EDER"."DETALLE_DE_ABONO" MODIFY ("VALOR_ABONO" NOT NULL
ENABLE);
ALTER TABLE "EDER"."DETALLE_DE_ABONO" ADD CONSTRAINT
"PK_DETALLE_DE_ABONO" PRIMARY KEY ("ID_DET_ABONO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

29

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT


FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ENABLE;
--------------------------------------------------------- Constraints for Table FORMA_DE_PAGO
-------------------------------------------------------ALTER TABLE "EDER"."FORMA_DE_PAGO" MODIFY ("ID_MEDIO_DE_PAGO" NOT NULL
ENABLE);
ALTER TABLE "EDER"."FORMA_DE_PAGO" MODIFY ("MEDIO__PAGO" NOT NULL ENABLE);
ALTER TABLE "EDER"."FORMA_DE_PAGO" ADD CONSTRAINT "PK_FORMA_DE_PAGO"
PRIMARY KEY ("ID_MEDIO_DE_PAGO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ENABLE;
--------------------------------------------------------- Constraints for Table VENTA
-------------------------------------------------------ALTER TABLE "EDER"."VENTA" MODIFY ("ID_VENTA" NOT NULL ENABLE);
ALTER TABLE "EDER"."VENTA" MODIFY ("ID_CLIENTE" NOT NULL ENABLE);
ALTER TABLE "EDER"."VENTA" MODIFY ("FEVEN" NOT NULL ENABLE);
ALTER TABLE "EDER"."VENTA" MODIFY ("TIPOVEN" NOT NULL ENABLE);
ALTER TABLE "EDER"."VENTA" MODIFY ("TOTALVEN" NOT NULL ENABLE);
ALTER TABLE "EDER"."VENTA" ADD CONSTRAINT "PK_VENTA" PRIMARY KEY ("ID_VENTA")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ENABLE;
--------------------------------------------------------- Constraints for Table CLIENTE
-------------------------------------------------------ALTER TABLE "EDER"."CLIENTE" MODIFY ("ID_CLIENTE" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("TIPODOCU" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("NOMBRE" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("GENERO" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("DIRECCION" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("MUNICIPIO" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("TELEFONO" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" MODIFY ("APLICACRED" NOT NULL ENABLE);
ALTER TABLE "EDER"."CLIENTE" ADD CONSTRAINT "PK_CLIENTE" PRIMARY KEY
("ID_CLIENTE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ENABLE;
--------------------------------------------------------- Ref Constraints for Table ABONO
--------------------------------------------------------

30

ALTER TABLE "EDER"."ABONO" ADD CONSTRAINT "FK_ABONO_PUEDE_SER_VENTA"


FOREIGN KEY ("ID_VENTA")
REFERENCES "EDER"."VENTA" ("ID_VENTA") ENABLE;
--------------------------------------------------------- Ref Constraints for Table DETALLE_DE_ABONO
-------------------------------------------------------ALTER TABLE "EDER"."DETALLE_DE_ABONO" ADD CONSTRAINT
"FK_DETALLE__ESCOGE_FORMA_DE" FOREIGN KEY ("ID_MEDIO_DE_PAGO")
REFERENCES "EDER"."FORMA_DE_PAGO" ("ID_MEDIO_DE_PAGO") ENABLE;
ALTER TABLE "EDER"."DETALLE_DE_ABONO" ADD CONSTRAINT
"FK_DETALLE__GENERA_ABONO" FOREIGN KEY ("ID_ABONO")
REFERENCES "EDER"."ABONO" ("ID_ABONO") ENABLE;
--------------------------------------------------------- Ref Constraints for Table VENTA
-------------------------------------------------------ALTER TABLE "EDER"."VENTA" ADD CONSTRAINT "FK_VENTA_EFECTUAR_CLIENTE"
FOREIGN KEY ("ID_CLIENTE")
REFERENCES "EDER"."CLIENTE" ("ID_CLIENTE") ENABLE;
--------------------------------------------------------- DDL for Procedure APLICAESTADO
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."APLICAESTADO"
is
v_total float;
v_confilas number :=0;
Cursor selecabono is
select * from ABONO
where ESTADOA ='P';
begin
dbms_output.put_line('$$$$$$$$$$$$$$ ABONOS ACTUALIZADOS $$$$$$$$$$$$$$');
dbms_output.put_line(rpad('ABONO',6)||' ' ||rpad('VENTA',6)||rpad('ESTADO',10));
For v_regabo in selecabono
LOOP
SELECT SUM(VALOR_ABONO) INTO v_total
from DETALLE_DE_ABONO
WHERE ID_ABONO = v_regabo.ID_ABONO;
UPDATE VENTA v

31

SET v.SALDO = v.SALDO - v_total


WHERE v.ID_VENTA = v_regabo.ID_VENTA;
UPDATE VENTA
SET ESTADOV = 'PA'
WHERE ID_VENTA = v_regabo.ID_VENTA AND SALDO = 0;
UPDATE ABONO
SET ESTADOA = 'A'
WHERE ID_ABONO = v_regabo.ID_ABONO;
v_confilas := selecabono%rowcount;
dbms_output.put_line(rpad(v_regabo.ID_ABONO,8)||' '||rpad(v_regabo.ID_VENTA,8)||' '||
lpad(v_regabo.ESTADOA,10));
END LOOP;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' ' ||v_confilas);
end;
/
--------------------------------------------------------- DDL for Procedure CARTERACLIENTES
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."CARTERACLIENTES"
is
v_confilas number :=0;
Cursor saldcliente is
select c.NOMBRE, v.ID_VENTA, SUM(v.SALDO) AS SALDOTOTAL
from VENTA v, CLIENTE c
where c.ID_CLIENTE = v.ID_CLIENTE AND v.SALDO > 0
group by c.NOMBRE, v.ID_VENTA
order by c.NOMBRE;
begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO CARTERA AL DIA
*************************************');
dbms_output.put_line(rpad('Nombres y Apellidos Cliente',48)||' ' ||rpad('Venta',6)||rpad(' Saldo
',10));
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------------------------------');

32

For v_reg in saldcliente


LOOP
v_confilas := saldcliente%rowcount;
DBMS_OUTPUT.PUT_LINE (rpad(v_reg.NOMBRE,50) ||' '||rpad(v_reg.ID_VENTA,6)||' '||
rpad(v_reg.SALDOTOTAL,10));
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');
end loop;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' '||v_confilas);
end;
/
--------------------------------------------------------- DDL for Procedure CONSULTASALDO
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."CONSULTASALDO" (idabono in number,exis out
number)
is
begin
select VALOR_ABONO into exis
from DETALLE_DE_ABONO
where ID_ABONO = idabono;
end;
/
--------------------------------------------------------- DDL for Procedure INFORSALDOCLIENTE
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."INFORSALDOCLIENTE"
is
v_confilas number :=0;
Cursor saldcliente is
select c.NOMBRE, v.ID_VENTA, SUM(v.SALDO) AS SALDOTOTAL
from VENTA v, CLIENTE c
where c.ID_CLIENTE = v.ID_CLIENTE AND v.SALDO = 0
group by c.NOMBRE, v.ID_VENTA
order by c.NOMBRE;
begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO CARTERA SALDADA
*************************************');

33

dbms_output.put_line(rpad('Nombres y Apellidos Cliente',48)||' ' ||rpad('Venta',6)||rpad(' Saldo


',10));
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------------------------------');
For v_reg in saldcliente
LOOP
v_confilas := saldcliente%rowcount;
DBMS_OUTPUT.PUT_LINE (rpad(v_reg.NOMBRE,50) ||' '||rpad(v_reg.ID_VENTA,6)||' '||
rpad(v_reg.SALDOTOTAL,10));
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');
end loop;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' '||v_confilas);
end;
/
--------------------------------------------------------- DDL for Procedure INSERTARABONO
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."INSERTARABONO" (IA NUMBER,IV
NUMBER,FECH DATE, IDA NUMBER, IP NUMBER, VA FLOAT)
IS
BEGIN
INSERT INTO ABONO VALUES (IA,IV,FECH,'P');
INSERT INTO DETALLE_DE_ABONO VALUES (IDA, IA, IP, VA);
COMMIT;
END INSERTARABONO;
/
--------------------------------------------------------- DDL for Procedure INSERTARCLIENTE
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."INSERTARCLIENTE" (cc number,td CHAR,nom
VARCHAR2,gen CHAR, dir varchar2,mun VARCHAR2,tel number,ac VARCHAR2)
is
begin
insert into CLIENTE values(cc ,td, nom ,gen, dir,mun ,tel ,ac);
commit;

34

end;
/
--------------------------------------------------------- DDL for Procedure LISTARABONOS
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."LISTARABONOS" is
begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO ABONOS A LA FECHA
*************************************');
dbms_output.put_line(rpad('Id_Abono',10)||' ' ||rpad('Numero_Venta',10)||rpad(' Cliente ',38)||' ' ||
rpad('Fecha ',10)||' ' ||lpad('Estado Abono (A/P)',10));
DBMS_OUTPUT.PUT_LINE('********************************************************************************
********************');
For v_regabo in
(select a.ID_ABONO,a.ID_VENTA, c.NOMBRE, a.FECHA, a.ESTADOA from ABONO a
INNER JOIN VENTA v
ON (a.ID_VENTA= v.ID_VENTA)
INNER JOIN CLIENTE c
ON (c.ID_CLIENTE = v.ID_CLIENTE)
order by a.ID_VENTA )
LOOP
dbms_output.put_line(rpad( to_char(v_regabo.ID_ABONO),10) ||' ' ||
rpad( to_char(v_regabo.ID_VENTA),10) ||' ' ||rpad(v_regabo.NOMBRE,38)||' '||
rpad(v_regabo.FECHA,10)||' ' ||rpad( to_char(v_regabo.ESTADOA),10));
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');
END LOOP;
END;
/
--------------------------------------------------------- DDL for Procedure VALIDAABONO
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."VALIDAABONO" (IA NUMBER, res out boolean)
IS
v_abono ABONO%rowtype;
BEGIN
SELECT * INTO v_abono
FROM ABONO
WHERE ID_ABONO = IA;
res:= true;

35

exception
when No_data_found then
res:=FALSE;
END VALIDAABONO;
/
--------------------------------------------------------- DDL for Procedure VALIDACLIENTE
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."VALIDACLIENTE" (cc in number, res out
boolean)
is
v_cliente CLIENTE%rowtype;
begin
select * into v_cliente
from CLIENTE
where ID_CLIENTE = cc;
res:= TRUE;
exception
when No_data_found then
res:=FALSE;
end validacliente;
/
--------------------------------------------------------- DDL for Procedure VALIDARINSERCIONABONO
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."VALIDARINSERCIONABONO" (IA NUMBER,IV
NUMBER,FECH DATE, IDA NUMBER, IP NUMBER, VA FLOAT)
IS
res boolean;
yaexiste exception;
BEGIN
VALIDAABONO(IA,res);
if res = true then
raise yaexiste;
ELSE INSERTARABONO (IA, IV, FECH, IDA, IP, VA);
dbms_output.put_line(' Abono adicionado ');
end if;
exception
WHEN yaexiste THEN

36

dbms_output.put_line(' Abono ya existe ');


end;
/
--------------------------------------------------------- DDL for Procedure VALIDARINSERCIONCLIENTE
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."VALIDARINSERCIONCLIENTE" (cc number,td
CHAR,nom VARCHAR2,gen CHAR, dir varchar2,mun VARCHAR2,tel number,ac VARCHAR2)
is
res boolean;
yaexiste exception;
begin
VALIDACLIENTE(cc, res);
if res = true then
raise yaexiste;
else insertarcliente(cc ,td, nom ,gen, dir,mun ,tel ,ac);
dbms_output. put_line(' Cliente adicionado ');
end if;
exception
WHEN yaexiste THEN
dbms_output.put_line(' Cliente ya existe ');
end;
/
--------------------------------------------------------- DDL for Procedure VALIDAVENTA
-------------------------------------------------------set define off;
CREATE OR REPLACE PROCEDURE "EDER"."VALIDAVENTA" (IV NUMBER, res out boolean)
IS
v_venta VENTA%rowtype;
BEGIN
SELECT * INTO v_venta
FROM VENTA
WHERE ID_VENTA = IV;
res:= true;
exception
when No_data_found then
res:=FALSE;
END VALIDAventa;
/

37

5.2 CAPA LGICA


5.2.1 PROCEDIMIENTOS
5.2.1.1 PROCEDIMIENTOS DE EDICIN TABLAS BSICAS
INSERCIN DE DATOS TABLAS BSICAS
CLIENTE
INSERTAR
CLIENTE
En este procedimiento el usuario deber solicitar
los datos bsicos para el registro en la base de
datos, tales como, Numero de identificacin,
nombre, genero, direccin, telefono el sistema
verifica la existencia o no del cliente, si existe se
hace una validacin y se enva un mensaje
diciendo que ya existe, de lo contrario se procede
a Insertar el cliente en la tabla
Procediemientos que
1. Bloque Annimo que ejecuta el
Intervienen
procedimiento validarinsercioncliente,
2. Procedimiento Almacenado
validacliente
3. Procedimiento Almacenado
insertarcliente

Procedimiento Almacenado insertarcliente


create or replace procedure insertarcliente(cc number,td CHAR,nom
VARCHAR2,gen CHAR, dir varchar2,mun VARCHAR2,tel number,ac VARCHAR2)
is
begin
insert into CLIENTE values(cc ,td, nom ,gen, dir,mun ,tel ,ac);
commit;
end; /

38

Procedimiento Almacenado validacliente


create or replace procedure validacliente(cc in number, res out boolean)
is
v_cliente CLIENTE%rowtype;
begin
select * into v_cliente
from CLIENTE
where ID_CLIENTE = cc;
res:= TRUE;
exception
when No_data_found then
res:=FALSE;
Procedimiento Almacenado validarinsercioncliente
create or replace procedure validarinsercioncliente (cc number,td CHAR,nom
VARCHAR2,gen CHAR, dir varchar2,mun VARCHAR2,tel number,ac VARCHAR2)
is
res boolean;
yaexiste exception;
begin
VALIDACLIENTE(cc, res);
if res = true then
raise yaexiste;
else insertarcliente(cc ,td, nom ,gen, dir,mun ,tel ,ac);
dbms_output. put_line(' Cliente adicionado ');
end if;
exception
WHEN yaexiste THEN
dbms_output.put_line(' Cliente ya existe ');
end;

39

Bloque Annimo que ejecuta el procedimiento validarinsercioncliente


set serveroutput on;
set verify off;
Declare
v_CC number(38,0) := &Cdula_cliente;
v_TD (38,0) varchar2(2):= &Tipo_Doc
v_NOMB varchar2(50):= &Nombres;
v_GEN varchar2(2):=&Genero;
v_DIR varchar2(50) :=&Direccion;
v_MUNI number(38,0) :=&Municipio;
v_TEL number (38,0) :=&Telefono ;
v_APLCR varchar2(2) :=&Aplica_credito?;
begin
validarinsercioncliente
(v_ CC, v_ TD, v_ NOMB, v_ GEN, v_ DIR, v_ MUNI, v_ TEL, v_ APLCR);
end; end;
/

ABONO
INSERTAR
ABONO
En este procedimiento se registra el abono,
paralelamente con el detalle del abono como si
fuere una sola tabla, el usuario digitar el id de
venta el valor del abono la forma de pago y el
monto, si existe se hace una validacin y se enva
un mensaje diciendo que ya existe, de lo contrario
se procede a Insertar el cliente en la tabla
Procediemientos que
1. Bloque Annimo que ejecuta el
Intervienen
procedimiento validarinsercionabono,
2. Procedimiento Almacenado
validaabono
3. Procedimiento Almacenado
insertarabono

40

Procedimiento Almacenado insertarabono


create or replace PROCEDURE INSERTARABONO (IA NUMBER,IV
NUMBER,FECH DATE, IDA NUMBER, IP NUMBER, VA FLOAT)
IS
BEGIN
INSERT INTO ABONO VALUES (IA,IV,FECH,'P');
INSERT INTO DETALLE_DE_ABONO VALUES (IDA, IA, IP, VA);
COMMIT;
END INSERTARABONO;
Procedimiento Almacenado validaabono
create or replace PROCEDURE VALIDAABONO (IA NUMBER, res out boolean) IS
v_abono ABONO%rowtype;
BEGIN
SELECT * INTO v_abono
FROM ABONO
WHERE ID_ABONO = IA;
res:= true;
exception
when No_data_found then
res:=FALSE;
END VALIDAABONO;
Procedimiento Almacenado validarinsercionabono
create or replace procedure VALIDARINSERCIONABONO (IA NUMBER,IV
NUMBER,FECH DATE, IDA NUMBER, IP NUMBER, VA FLOAT)
IS
res boolean;
yaexiste exception;
BEGIN
VALIDAABONO(IA,res);
41

if res = true then


raise yaexiste;
ELSE INSERTARABONO (IA, IV, FECH, IDA, IP, VA);
dbms_output.put_line(' Abono adicionado ');
end if;
exception
WHEN yaexiste THEN
dbms_output.put_line(' Abono ya existe ');
end;
Procedimiento Que Evalua La Existencia De La Venta
create or replace PROCEDURE VALIDAventa (IV NUMBER, res out boolean) IS
v_venta VENTA%rowtype;
BEGIN
SELECT * INTO v_venta
FROM VENTA
WHERE ID_VENTA = IV;
res:= true;
exception
when No_data_found then
res:=FALSE;
END VALIDAventa;
Bloque Annimo que ejecuta el procedimiento validarinsercionabono
set serveroutput on;
set verify off;
Declare
v_IA number(38,0) := &Id_Abono;
v_IV number(38,0) := &Id_venta;
v_FECH date :='&Fecha';
v_IDA number(38,0) :=&Id_detalle_abono;
v_IP number (38,0) :=&Medio_pago;
v_VA float
:=&Valor_abono;
begin
validarinsercionabono(v_IA, v_IV, v_FECH ,v_IDA, v_IP, v_VA);
end;
42

5.2.1.2

CONSULTAS

Consultas a Tablas
Listado de Abonos
OPERARIO

LISTAR
Este informe lista los abonos realizados
a la fecha tan solo debemos escribir y
ejecutar en el prompt:
Execute listarabonos;.

create or replace procedure listarabonos is


begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO ABONOS
A LA FECHA *************************************');
dbms_output.put_line(rpad('Id_Abono',10)||' ' ||rpad('Numero_Venta',10)||rpad('
Cliente ',38)||' ' ||rpad('Fecha ',10)||' ' ||lpad('Estado Abono (A/P)',10));
DBMS_OUTPUT.PUT_LINE('*************************************************************
***************************************');
For v_regabo in
(select a.ID_ABONO,a.ID_VENTA, c.NOMBRE, a.FECHA, a.ESTADOA from
ABONO a
INNER JOIN VENTA v
ON (a.ID_VENTA= v.ID_VENTA)
INNER JOIN CLIENTE c
ON (c.ID_CLIENTE = v.ID_CLIENTE)
order by a.ID_VENTA )
LOOP
dbms_output.put_line(rpad( to_char(v_regabo.ID_ABONO),10) ||' ' ||
rpad( to_char(v_regabo.ID_VENTA),10) ||' ' ||rpad(v_regabo.NOMBRE,38)||' '||
rpad(v_regabo.FECHA,10)||' ' ||rpad( to_char(v_regabo.ESTADOA),10));
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');
END LOOP;
END;

43

Listado de Cartera Saldada


OPERARIO

REPORTE
Este informe lista los Clientes que estn
a paz y salvo en sus ventas (saldo =0),
a la fecha tan solo debemos escribir y
ejecutar en el prompt:
Execute inforsaldocliente;.

create or replace procedure inforsaldocliente


is
v_confilas number :=0;
Cursor saldcliente is
select c.NOMBRE, v.ID_VENTA, SUM(v.SALDO) AS SALDOTOTAL
from VENTA v, CLIENTE c
where c.ID_CLIENTE = v.ID_CLIENTE AND v.SALDO = 0
group by c.NOMBRE, v.ID_VENTA
order by c.NOMBRE;
begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO CARTERA
SALDADA *************************************');
dbms_output.put_line(rpad('Nombres y Apellidos Cliente',48)||' ' ||rpad('Venta',6)||
rpad(' Saldo ',10));
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------------------------------');
For v_reg in saldcliente
LOOP
v_confilas := saldcliente%rowcount;
DBMS_OUTPUT.PUT_LINE (rpad(v_reg.NOMBRE,50) ||' '||
rpad(v_reg.ID_VENTA,6)||' '||rpad(v_reg.SALDOTOTAL,10));
DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');

44

end loop;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' '||v_confilas);
end;
Listado de Cartera al dia
OPERARIO

LISTAR
Este informe lista los Clientes que estn
en cartera o mora (saldo >0), a la fecha
tan solo debemos escribir y ejecutar en
el prompt:
Execute carteraclientes;.

create or replace procedure carteraclientes


is
v_confilas number :=0;
Cursor saldcliente is
select c.NOMBRE, v.ID_VENTA, SUM(v.SALDO) AS SALDOTOTAL
from VENTA v, CLIENTE c
where c.ID_CLIENTE = v.ID_CLIENTE AND v.SALDO > 0
group by c.NOMBRE, v.ID_VENTA
order by c.NOMBRE;
begin
DBMS_OUTPUT.PUT_LINE('************************************ LISTADO CARTERA
AL DIA *************************************');
dbms_output.put_line(rpad('Nombres y Apellidos Cliente',48)||' ' ||rpad('Venta',6)||
rpad(' Saldo ',10));
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------------------------------------------');
For v_reg in saldcliente
LOOP
v_confilas := saldcliente%rowcount;
DBMS_OUTPUT.PUT_LINE (rpad(v_reg.NOMBRE,50) ||' '||
rpad(v_reg.ID_VENTA,6)||' '||rpad(v_reg.SALDOTOTAL,10));

45

DBMS_OUTPUT.PUT_LINE('--------------------------------------------------------------------------------------------------');
end loop;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' '||v_confilas);
end;
5.2.1.3

PROCESOS DE ACTUALIZACIN DE DATOS EN LOTE

Actualizar Campos de tablas ABONO Y VENTA


ACTUALIZAR
Este Procedimiento es un cursor que
lista los abonos realizados y aplica
estos abonos al saldo de la venta y me
cambia los estados de la tabla venta y
Abono. Solo debemos escribir y
ejecutar en el prompt:
Execute APLICAESTADO;.
create or replace procedure APLICAESTADO
OPERARIO

is
v_total float;
v_confilas number :=0;
Cursor selecabono is
select * from ABONO
where ESTADOA ='P';
begin
dbms_output.put_line('$$$$$$$$$$$$$$ ABONOS ACTUALIZADOS $$$$$$$$$
$$$$$');
dbms_output.put_line(rpad('ABONO',6)||' ' ||rpad('VENTA',6)||rpad('ESTADO',10));
For v_regabo in selecabono
LOOP
SELECT SUM(VALOR_ABONO) INTO v_total
from DETALLE_DE_ABONO
WHERE ID_ABONO = v_regabo.ID_ABONO;

46

UPDATE VENTA v
SET v.SALDO = v.SALDO - v_total
WHERE v.ID_VENTA = v_regabo.ID_VENTA;
UPDATE VENTA
SET ESTADOV = 'PA'
WHERE ID_VENTA = v_regabo.ID_VENTA AND SALDO = 0;
UPDATE ABONO
SET ESTADOA = 'A'
WHERE ID_ABONO = v_regabo.ID_ABONO;
v_confilas := selecabono%rowcount;
dbms_output.put_line(rpad(v_regabo.ID_ABONO,8)||' '||
rpad(v_regabo.ID_VENTA,8)||' '||lpad(v_regabo.ESTADOA,10));
END LOOP;
dbms_output.put_line('...NMERO REGISTROS AFECTADOS...'||' ' ||v_confilas);
end;

47

6. PRUEBAS
Prueba de Actualizacion de estados y saldo
Estado previo:
Select a.*, v.ESTADOV, v.SALDO
from ABONO a, VENTA v
WHERE a.ID_VENTA=v.ID_VENTA;
1
4
2
3
5
6
7
8
9
10

100
101
102
103
104
105
107
108
109
110

01/01/15
02/03/15
18/03/15
03/12/14
02/11/14
20/01/14
19/03/15
19/03/15
20/03/15
12/03/15

P
P
P
P
P
P
P
P
P
P

PP
PP
PP
PA
PP
PP
PP
PP
PP
PP

50000
40000
220000
50000
170000
10000
90000
80000
100000
310000

Ejecucin APLICAESTADO
Conectando a la base de datos Semi.
$$$$$$$$$$$$$$ ABONOS ACTUALIZADOS $$$$$$$$$$$$$$
ABONO VENTA ESTADO
1
100
P
3
103
P
4
101
P
5
104
P
6
105
P
7
107
P
8
108
P
9
109
P
10
110
P
2
102
P
...NMERO REGISTROS AFECTADOS... 10
El proceso ha terminado.
Desconectando de la base de datos Semi.

48

Corriendo de nuevo la consulta (Select a.*, v.ESTADOV, v.SALDO from ABONO a,


VENTA v WHERE a.ID_VENTA=v.ID_VENTA;), vemos que el estado de Abono
cambio a A y el estado de Venta cambia a PA cuando el saldo es = 0
1
4
2
3
5
6
7
8
9
10

100
101
102
103
104
105
107
108
109
110

01/01/15
02/03/15
18/03/15
03/12/14
02/11/14
20/01/14
19/03/15
19/03/15
20/03/15
12/03/15

A
A
A
A
A
A
A
A
A
A

PP
PP
PA
PA
PP
PP
PA
PA
PA
PP

50000
40000
0
0
170000
-210000
0
0
0
310000

Consulta para verificar cartera al dia


BEGIN
CARTERACLIENTES();
--rollback;
END;
Conectando a la base de datos Semi.
************************************ LISTADO CARTERA AL DIA
*************************************
Nombres y Apellidos Cliente
Venta Saldo
-------------------------------------------------------------------------------------------------ADRIANA MARIA GALINDO HERRERA
100 50000
--------------------------------------------------------------------------------------------------AMPARO ARISTIZABAL SUAZA
101 40000
--------------------------------------------------------------------------------------------------ANA ELVIA OTALORA CALDERON
104 170000
--------------------------------------------------------------------------------------------------ANA MILENA VARGAS RODRIGUEZ
106 470000
--------------------------------------------------------------------------------------------------NGELA LUCERO GUZMN VILA
110 310000
--------------------------------------------------------------------------------------------------ANGELICA LOPEZ YAZO
111 430000
--------------------------------------------------------------------------------------------------ARGENIS NARANJO MAYORGA
112 390000
--------------------------------------------------------------------------------------------------ARNULFO MATOMA TOVAR
113 160000
--------------------------------------------------------------------------------------------------BALBINA CALDERN
114 300000
--------------------------------------------------------------------------------------------------BEATRIZ ELENA MERCADO BUSTAMANTE
115 330000
---------------------------------------------------------------------------------------------------

49

BENERANDA MORALES PATIO


116 420000
--------------------------------------------------------------------------------------------------BENJAMIN TAPIERO POVEDA
117 190000
--------------------------------------------------------------------------------------------------BENJAMIN URRUTIA GARCIA
118 480000
--------------------------------------------------------------------------------------------------BERNARDINO GRUESO
119 130000
--------------------------------------------------------------------------------------------------BETTY BRICEO CABRERA
120 110000
--------------------------------------------------------------------------------------------------BLANCA LUCIA BARRAGAN ARCE
121 390000
--------------------------------------------------------------------------------------------------BLANCA NUBIA RENGIFO SANABRIA
122 200000
--------------------------------------------------------------------------------------------------BRILLIT GARDEL MARTINEZ CAMACHO
123 120000
--------------------------------------------------------------------------------------------------CARLOS IVAN ANACONA HERRERA
124 340000
--------------------------------------------------------------------------------------------------CARLOS JULIO DIAZ ROZO
125 380000
--------------------------------------------------------------------------------------------------CARLOTA MARSIGLIA BARRETO
126 190000
--------------------------------------------------------------------------------------------------CARMENZA GUZMAN SUAREZ
127 370000
--------------------------------------------------------------------------------------------------CARMENZA PEREA IBARRA
128 490000
--------------------------------------------------------------------------------------------------...NMERO REGISTROS AFECTADOS... 23
El proceso ha terminado.
Desconectando de la base de datos Semi.

Consulta Clientes en paz y salvo (saldo=0)


BEGIN
INFORSALDOCLIENTE();
--rollback;
END;
Conectando a la base de datos Semi.
************************************ LISTADO CARTERA SALDADA
*************************************
Nombres y Apellidos Cliente
Venta Saldo
-------------------------------------------------------------------------------------------------AMPARO DUCUARA YATE
102 0
--------------------------------------------------------------------------------------------------ANA DELIA BAUTISTA VARGAS
103 0
--------------------------------------------------------------------------------------------------ANDREA JOHANA LASSO CASAS
107 0
---------------------------------------------------------------------------------------------------

50

ANDREA KATHERINE BARAJAS ORTIZ 108 0


--------------------------------------------------------------------------------------------------ANGELA GEOVANNA CRUZ VILLARREAL 109 0
--------------------------------------------------------------------------------------------------...NMERO REGISTROS AFECTADOS... 5
El proceso ha terminado.
Desconectando de la base de datos Semi.

HAY DEFICIENCIA DE DETALLES EN LOS CASOS DE USO


FALTAN PRUEBAS DESDE SQLDEVELOPER
FALTA ANEXAR ARCHIVOS DE DIAGRAMAS Y CODIGO DE
PROCEDIMIENTOS PLSQL

51