View
10
Download
0
Category
Preview:
DESCRIPTION
Informe presentado en UT por Diego Doris y Eliana
Citation preview
SEMINARIO DE PROFUNDIZACIONSEMINARIO DE PROFUNDIZACIONPL/SQL CON ORACLE PL/SQL CON ORACLE
“BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE“BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE UNA TIENDA”UNA TIENDA”
EDER LARAEDER LARACRISTOBAL TAVERACRISTOBAL TAVERA
WOLFANG FRANK ESQUIVEL CORTESWOLFANG FRANK ESQUIVEL CORTES
UNIVERSIDAD DEL TOLIMAUNIVERSIDAD DEL TOLIMAIDEADIDEAD
INGENIERIA DE SISTEMASINGENIERIA DE SISTEMASIBAGUÉ - TOLIMAIBAGUÉ - TOLIMA
2015
1
2
SEMINARIO DE PROFUNDIZACIONSEMINARIO DE PROFUNDIZACION GESTIÓN DE BASES DE DATOSGESTIÓN DE BASES DE DATOS CON PLSQL Y SQL DEVELOPERCON PLSQL Y SQL DEVELOPER
“BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE“BASE DE DATOS PARA LA GESTION DE CUENTAS POR COBRAR DE UNA TIENDA”UNA TIENDA”
EDER LARAEDER LARACRSITOVAL TAVERACRSITOVAL TAVERA
WOLFANG FRANK ESQUIVEL CORTESWOLFANG FRANK ESQUIVEL CORTES
Trabajo presentado como requisito parcial para optar al título de Ingeniero deTrabajo presentado como requisito parcial para optar al título de Ingeniero de SistemasSistemas
JORGE PACHECO CASADIEGOJORGE PACHECO CASADIEGOIng. De SistemasIng. De Sistemas
UNIVERSIDAD DEL TOLIMAUNIVERSIDAD DEL TOLIMAIDEADIDEAD
INGENIERIA DE SISTEMASINGENIERIA DE SISTEMASIBAGUÉ - TOLIMAIBAGUÉ - TOLIMA
20152015
CONTENIDO
Pág.
INTRODUCCIÓN 41. OBJETIVOS 51.1 OBJETIVO GENERAL 51.2 OBJETIVOS ESPECÍFICOS 52. METODOLOGÍA 63. REQUISITOS 73.1 ALCANCE 73.2 MODELO DE CASOS DE USO 103.2.1 Diagramas Caso de Uso 113.2.2 Descripción Caso de Uso 113.3 MODELO LÓGICO DE DATOS 133.3.1 Diagrama Entidad relación E / R 133.3.2 Descripción de Entidades, Atributos y Relaciones 134. DISEÑO 144.1 MODELO FÍSICO DE DATOS 144.1.1 Diagrama Relacional 144.1.2 Descripción Tablas, Índices, secuenciadores, Vistas 154.2. ARQUITECTURA MODULAR 184.2.1 Diagrama Jerarquía de Módulos 184.2.2 Descripción de Módulos 185. CONSTRUCCIÓN 205.1 CAPA DE ALMACENAMIENTO 205.1.1 Script de la Base de Datos 205.2 CAPA LÓGICA 355.2.1 Procedimientos 355.2.1.1 Edición(Inserción, Actualización, Eliminación) 375.2.1.2 Consultas 405.2.1.3 Procesos De Actualización De Datos En Lote 436. PRUEBAS 45
3
INTRODUCCION
El desarrollo de este proyecto tiene como propósito evidenciar la apropiación de
los temas vistos en el seminario de PL/SQL con Oracle a través de la elaboración
de un sistema de información que permite la gestión de cuentas por cobrar de una
tienda actualizando el saldo anterior con el actual y consultar las deudas de los
clientes. También se pretende mostrar la aplicación de la metodología 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
lógica del mismo usando procedimientos de edición, aplicación transaccional,
consultas e informes que permiten la facilidad para gestionar los saldos de los
clientes y manejar la información como los datos de los clientes con sus
respectivos identificadores, codificación de departamentos y ciudades, entre otras
bondades del lenguaje pl/sql.
Además se logra por medio de este ejercicio pedagógico 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 generación de reportes.
4
1. OBJETIVOS
1.1 GENERAL
Diseñar e Implementar una aplicación con Base de Datos para la gestión de
una tiendan con el fin de llevar un registro de los clientes deudores utilizando
Oracle.
1.2 ESPECÍFICOS
Diseñar el modelo de datos del subsistema( entre ellos modelo conceptual,
físico y generación de script)
Elaborar los procesos de edición, consulta y aplicación de transacciones del
subsistema de cuentas por cobrar.
Dar a conocer la jerarquía de dos de los módulos 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 creación de Informes.
Utilizar el PL/SQL para insertar, modificar y actualizar registros de los
clientes pendientes por pagar.
5
2. METODOLOGÍA
En cada tutoria de trabajaron actividades utilizando el ejercicio tienda con las
herramientas CASE y Oracle developer para diseño de la base de datos, ejecución
de comandos básicos y creación de procedimientos y otras sentencias en el
lenguaje PL/SQL.
A continuación se describen de forma detallada las actividades realizadas
teniendo en cuenta el modelo clásico secuencial y un enfoque estructurado.
ACTIVIDAD TÉCNICA O PRÁCTICA
HERRAMIENTAS PRODUCTOS
Definición alcance Entrevistas a alto nivel
Formato de requisitos
Herramienta CASE
Catálogo de requisitos a alto nivel
Definición de requisitos
Entrevistas detalladas
Formato de requisitos
Herramienta CASE
Catálogo de requisitos a nivel de detalle
Elaboración Modelo de comportamiento
Modelo de Casos de Uso
Herramienta CASE
Diagrama Notación
detalladaElaboración del Modelo de datos
Modelo relacional
Herramienta CASE
Diagrama E/R Descripción del
modelo
6
3. REQUISITOS
3.1ALCANCE
Ante el volumen de transacciones diarias a procesar con el fin de actualizar el
inventario, el dueño de la tienda está interesado en modernizar su negocio con
cambios estructurales en su modelo de negocio y en la tecnología de soporte a
sus procesos críticos. A continuación se expone la estructura funcional y los
requerimientos de tecnología de la información definidos por el dueño:
Se implementará una oficina de atención al cliente que tendrá como
funciones principales el registrar y actualizar la información 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 catálogo de puntos y redención
de puntos. Esta sección será atendida por cuatro funcionarias encargadas
de afiliación de clientes, promociones, PQR y puntos, que contarán con
cuatro estaciones de trabajo conectadas al servidor principal de la tienda.
Para la aplicación de las transacciones diarias de inventario, el registro de
productos y la generación de los informes resúmenes de venta y saldos de
almacén, se dispondrá de una estación de trabajo operada por un
funcionario de la oficina de Bodega.
Se implementará una oficina de atención al proveedor que tendrá como
funciones principales el registrar y actualizar la información de los
proveedores; desarrollar la gestión de reposición de los artículos; registrar
las compras a los proveedores; registrar las devoluciones; registrar los
pagos a los proveedores y generar los listados resúmenes de compra. Esta
7
sección será atendida por tres funcionarios que contarán con tres
estaciones de trabajo conectadas al servidor principal de la tienda.
La Sección de Contabilidad deberá generar cada día la información 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 realizarán aperturas de
caja, entregas parciales de dinero y cierres de caja con participación del
supervisor de turno y el cajero responsable. Estos procesos se registrarán
en el terminal de venta.
CUENTAS POR COBRAR
Consulta de ventas adeudadas por un cliente
El sistema permitirá la consulta de la relación de ventas pendientes de pago
por el cliente. Con base en el número de identificación 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, realizarán sus abonos en los
terminales de punto de ventas o cajas. El abono lo registrará el cajero
indicándole al sistema el número de identificación 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 más de una de las ventas
pendientes de pago.
Como política 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 más ventas. El abono se puede detallar de acuerdo con la forma de pago
indicando el monto de pago por cada detalle, ej: abonó un millón de pesos y
los montos son quinientos mil en efectivo, cuatrocientos mil en tarjeta
crédito y cien mil en cheque.
8
El sistema generará un comprobante de abono indicando fecha, hora, caja
física, nombre cajero, número y valor de cada venta abonada, total del
abono y forma de pago detallada.
Aplicar abonos de los clientes
El sistema facilitará la aplicación de los abonos de forma que actualice el saldo
del cliente a través del descuento del valor del abono y actualice el estado del
abono cambiándolo 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
número del abono, el valor y la forma de pago. Al final deberá informar el
número de abonos y el total del monto abonado
El sistema generará un informe resumen indicando el valor de la cartera a la
fecha
9
3.2 MODELO DE CASOS DE USO
3.2.1 DIAGRAMAS CASO DE USO
CASO DE USO: CONSULTA ABONO A LA FECHA
DESCRIPCIONCASO DE USO: CONSULTAR ABONOS A LA FECHAACTOR (ES): AdministradorPROPOSITO: Realizar y consultar abonos de clientes
CASO DE ÉXITO:
PASO ACTIVIDAD1. El Administrador solicita informe de abonos2. El sistema genera el reporte a través del programa parametrizado4. El sistema verifica existencia de los abonos.5. El sistema genera un reporte de los abonos identificando el cliente y el
monto del abono
EXTENSIONES:
6.1 No existen abonos6.1.1 El sistema muestra mensaje indicando que no hay abonos a la fecha
10
CASO DE USO: REGISTRAR ABONO
DESCRIPCIONCASO DE USO: REGISTRAR ABONOACTOR (ES): FuncionarioPROPOSITO: Ingresar el abono del cliente.
CASO DE ÉXITO:
PASO ACTIVIDAD1. El Funcionario solicita el número de cédula del cliente.2. El funcionario ingresa el número de la cédula del cliente.3. El funcionario ingresa el valor del abono.4. El sistema almacena el registro del abono del cliente.5. El sistema indica con un mensaje que el abono se ha registrado
correctamente. EXTENSIONES:
3.1 No se ingresó la cédula del cliente.3.1.1 El sistema solicita el ingreso de la cedula.3.3 No se ingresó el valor del abono.3.3.1 Mensaje del Sistema solicitando el valor del abono.
11
CASO DE USO: GENERAR INFORMES
DESCRIPCIONCASO DE USO: GENERAR INFORME DIARIO DE ABONOSACTOR (ES): Usuario del sistemaPROPOSITO: Solicitar el conteo de los abonos diarios agrupándolos según el número del registro y mostrar el valor de cada abono.
CASO DE ÉXITO:
PASO ACTIVIDAD1. Seleccionar fecha actual.2. Conteo de abonos3. Asociar los abonos con la fecha a consultar4. 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 ACTIVIDAD1. Seleccionar saldos con valores mayores a 0.2. Conteo de saldos.3. Agrupar conteo de saldos por nombre del cliente.4. Mostrar Resultados.
13
3.2 MODELO LÓGICO DE DATOS
3.3.1 Diagrama Entidad relación E / R3.3.2 Descripción de Entidades, Atributos y Relaciones
4 DISEÑO4.1MODELO FÍSICO DE DATOS4.1.1 Diagrama Relacional
14
15
4.1.2 DESCRIPCIÓN TABLAS, ÍNDICES, SECUENCIADORES, VISTAS
TABLA CLIENTE
En esta tabla se almacenan los datos correspondientes al Cliente
CLIENTE
Atributo Descripción Tipo LongitudPermite Nulos
Llave Principal
Llave Forán
ea
Tabla Llave
Foránea
Observaciones
ID_CLIENTEDocumento de
identidadNumber 38 No X
TIPODOCU Tipo de Documento
Variable characters (2)
2 No
NOMBRE Nombre de Cliente
Variable characters (2)
50 No
GENERO Genero de Cliente (M / F)
Variable characters (2)
1 No
DIRECCIONDireccion de
localización de Cliente
Variable characters (2)
50 No
MUNICIPIOMunicipio de
localización de Cliente
Variable characters (2)
50 Si
TELEFONONumero
Telefonico de localización de
Cliente
Number 38 Si
APLICACRE Aplica Credito (S / N)
Variable characters (2)
2 No
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 Descripción Tipo LongitudPermite Nulos
Llave Principal
Llave Foránea
Tabla Llave
ForáneaObservaciones
ID_VENTA Codigo de venta
Number 38 No X
ID_CLIENTE Documento de identidad
Number 38 No X CLENTE
FEVENFecha de
efectuada la compra
Date No
TIPOVENForma de
venta (Credito / Contado)
Varchar2 2 No
16
ESTADOVEstado de
venta (Pendiente /
Pagada)
Varchar2 2 No
TOTALVEN Total de Venta
Float No
SALDO
Saldo después de
Aplicar Abonos
Float Si
TABLA ABONO
Aquí se almacenan los registros de los abonos relacionados a cada venta
ABONO
Atributo Descripción Tipo LongitudPermite Nulos
Llave Principal
Llave Foránea
Tabla Llave
ForáneaObservaciones
ID_ABONOCódigo del
AbonoNumber 38 No X
ID_VENTACodigo de
ventaNumber 38 No X VENTA
FECHAFecha de
Realización De Abono
Date No
ESTADOA
Indica si el abono se ah aplicado para
la actualización del saldo en
la venta
Number 38 No
Se actualiza al generar una
consulta (Procedimiento)
TABLA DETALLE DE ABONO
Aquí se almacenan los detalles del abono en si
DETALLE DE ABONO
Atributo Descripción TipoLongit
ud
Permite
Nulos
Llave Princip
al
Llave Foráne
a
Tabla Llave
Foránea
Observaciones
ID_DET_ABONOCódigo de detalle de
AbonoNumber 38 No X
ID_ABONOCódigo de
AbonoNumber 38 No X
ABONO
ID_MEDIO_DE_PAGO
Codigo Medio de
PagoNumber 38 No X
MEDIO DE
PAGO
VALOR_ABONOValor
AbonadoNo
17
TABLA FORMA DE PAGO
Tabla para almacenar los diferentes tipos de pago.
CONSULTORIOAtributo Descripción Tipo Longitu
dPermit
e Nulos
Llave Principa
l
Llave Foráne
a
Tabla Llave Forán
ea
Observaciones
ID_MEDIO_DE_PAGO
Codigo de Medio de
Pago
Number 38 No X
MEDIO__PAGO Descripcion de Forma De
Pago
Varchar2
30 No
18
4.1.3 ARQUITECTURA MODULAR
ARQUITECTURA DE INSERCION
ARQUITECTURA DE CONSULTA
19
ARQUITECTURA DE CONSULTA A UN ABONO PERSPECTIVA DE CAPAS
20
5 CONSTRUCCIÓN
5.1CAPA 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 físico de datos.Autores:
EDER LARA TRUJILLOCRISTOVAL TAVERA PARRAWOLFANG 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.ABONOSET 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.CLIENTESET DEFINE OFF;Insert into EDER.CLIENTE (ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) values ('65785280','CC','ÁNGELA LUCERO GUZMÁN ÁVILA','F','COMUNA 7 BARRIO SALADO','IBAGUE','2645280','SI');Insert into EDER.CLIENTE (ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) values ('65738252','CC','BALBINA CALDERÓN','F','COMUNA 7 BARRIO SALADO','IBAGUE','3123902136','SI');Insert into EDER.CLIENTE (ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRED) 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,APLICACRED) values ('65767685','CC','BENERANDA MORALES PATIÑO','F','COMUNA 7 BARRIO SALADO','IBAGUE','3102044319','SI');Insert into EDER.CLIENTE (ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) values ('65744973','CC','BETTY BRICEÑO CABRERA','F','COMUNA 7 BARRIO SALADO','IBAGUE','3107599964','SI');Insert into EDER.CLIENTE (ID_CLIENTE,TIPODOCU,NOMBRE,GENERO,DIRECCION,MUNICIPIO,TELEFONO,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) 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,APLICACRED) values ('28555320','CC','CARMENZA PEREA IBARRA','F','COMUNA 7 BARRIO SALADO','IBAGUE','3156025917','SI');REM INSERTING into EDER.DETALLE_DE_ABONOSET 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_PAGOSET 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.VENTASET 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;
31
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('...NÚMERO 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 LOOPv_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('...NÚMERO 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 LOOPv_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('...NÚMERO 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 )
LOOPdbms_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;
BEGINSELECT * INTO v_abonoFROM ABONO WHERE ID_ABONO = IA;res:= true;
exception
35
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 dbms_output.put_line(' Abono ya existe ');
36
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)isres 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;
BEGINSELECT * INTO v_ventaFROM VENTA WHERE ID_VENTA = IV;res:= true;
exception when No_data_found then res:=FALSE;
END VALIDAventa;
/
37
5.2 CAPA LÓGICA
5.2.1 PROCEDIMIENTOS5.2.1.1 PROCEDIMIENTOS DE EDICIÓN TABLAS BÁSICAS
INSERCIÓN DE DATOS TABLAS BÁSICAS
CLIENTE
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
INSERTARCLIENTE En este procedimiento el usuario deberá solicitar
los datos básicos para el registro en la base de datos, tales como, Numero de identificación, nombre, genero, dirección, telefono el sistema verifica la existencia o no del cliente, si existe se hace una validación y se envía un mensaje diciendo que ya existe, de lo contrario se procede a Insertar el cliente en la tabla
Procediemientos que Intervienen
1. Bloque Anónimo que ejecuta el procedimiento validarinsercioncliente,
2. Procedimiento Almacenado validacliente
3. Procedimiento Almacenado insertarcliente
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)isres 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 Anónimo que ejecuta el procedimiento validarinsercioncliente
set serveroutput on;set verify off;
Declare
v_CC number(38,0) := &Cédula_cliente;v_TD (38,0) varchar2(2):= &Tipo_Docv_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
40
INSERTARABONO 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 validación y se envía un mensaje diciendo que ya existe, de lo contrario se procede a Insertar el cliente en la tabla
Procediemientos que Intervienen
1. Bloque Anónimo que ejecuta el procedimiento validarinsercionabono,
2. Procedimiento Almacenado validaabono
3. Procedimiento Almacenado insertarabono
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_abonoFROM 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 thenraise 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;
BEGINSELECT * INTO v_ventaFROM VENTA WHERE ID_VENTA = IV;res:= true;
exception when No_data_found then res:=FALSE;
END VALIDAventa;
Bloque Anónimo que ejecuta el procedimiento validarinsercionabono
set serveroutput on;set verify off;Declarev_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
LISTAROPERARIO 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 )
LOOPdbms_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
REPORTEOPERARIO Este informe lista los Clientes que están
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 LOOPv_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('...NÚMERO REGISTROS AFECTADOS...'||' '||v_confilas); end;Listado de Cartera al dia
LISTAROPERARIO Este informe lista los Clientes que están
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 LOOPv_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('...NÚMERO REGISTROS AFECTADOS...'||' '||v_confilas); end;
5.2.1.3 PROCESOS DE ACTUALIZACIÓN DE DATOS EN LOTE
Actualizar Campos de tablas ABONO Y VENTA
ACTUALIZAROPERARIO 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
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('...NÚMERO REGISTROS AFECTADOS...'||' ' ||v_confilas);
end;
47
6. PRUEBAS
Prueba de Actualizacion de estados y saldo
Estado previo:
Select a.*, v.ESTADOV, v.SALDOfrom ABONO a, VENTA v WHERE a.ID_VENTA=v.ID_VENTA;
1 100 01/01/15 P PP 500004 101 02/03/15 P PP 400002 102 18/03/15 P PP 2200003 103 03/12/14 P PA 500005 104 02/11/14 P PP 1700006 105 20/01/14 P PP 100007 107 19/03/15 P PP 900008 108 19/03/15 P PP 800009 109 20/03/15 P PP 10000010 110 12/03/15 P PP 310000
Ejecución 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 ...NÚMERO REGISTROS AFECTADOS... 10El 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 100 01/01/15 A PP 500004 101 02/03/15 A PP 400002 102 18/03/15 A PA 03 103 03/12/14 A PA 05 104 02/11/14 A PP 1700006 105 20/01/14 A PP -2100007 107 19/03/15 A PA 08 108 19/03/15 A PA 09 109 20/03/15 A PA 010 110 12/03/15 A PP 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 GUZMÁN ÁVILA 110 310000 ---------------------------------------------------------------------------------------------------ANGELICA LOPEZ YAZO 111 430000 ---------------------------------------------------------------------------------------------------ARGENIS NARANJO MAYORGA 112 390000 ---------------------------------------------------------------------------------------------------ARNULFO MATOMA TOVAR 113 160000 ---------------------------------------------------------------------------------------------------BALBINA CALDERÓN 114 300000 ---------------------------------------------------------------------------------------------------BEATRIZ ELENA MERCADO BUSTAMANTE 115 330000 ---------------------------------------------------------------------------------------------------
49
BENERANDA MORALES PATIÑO 116 420000 ---------------------------------------------------------------------------------------------------BENJAMIN TAPIERO POVEDA 117 190000 ---------------------------------------------------------------------------------------------------BENJAMIN URRUTIA GARCIA 118 480000 ---------------------------------------------------------------------------------------------------BERNARDINO GRUESO 119 130000 ---------------------------------------------------------------------------------------------------BETTY BRICEÑO 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 ---------------------------------------------------------------------------------------------------...NÚMERO REGISTROS AFECTADOS... 23El 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 ---------------------------------------------------------------------------------------------------...NÚMERO REGISTROS AFECTADOS... 5El proceso ha terminado.Desconectando de la base de datos Semi.
HAY DEFICIENCIA DE DETALLES EN LOS CASOS DE USOFALTAN PRUEBAS DESDE SQLDEVELOPERFALTA ANEXAR ARCHIVOS DE DIAGRAMAS Y CODIGO DE PROCEDIMIENTOS PLSQL
51
Recommended