Sei sulla pagina 1di 27

Diseo de Base de Datos Relacionales

Trabajo Prctico
Despliegue DER Compra/Venta Moneda
Extranjera

Profesor
Jose Fernando Maubet Ferreira
Alumnos
Denis Omar Chaparro
Martin Victor Antonio Martinez Paredes
Luis Antonio Menchaca Ramirez
Maximiliano Gabriel Rodriguez Rodriguez
Indic
Diagrama de Entidad Relacionar (DER)
3
Polticas de la Base de Datos
4
Creacin de tablas, restricciones y disparadores
5
Scripts de Insercin de datos
30

Despliegue DER Compra/Venta Moneda Extranjera Pgina 2


Diagrama de Entidad Relacional
(DER)

Despliegue DER Compra/Venta Moneda Extranjera Pgina 3


Despliegue DER Compra/Venta Moneda Extranjera Pgina 4
Polticas de la Base de datos
Las boletas pueden tener cuatro posibles estados,
PENDIENTE, PROCESADO, PAGADO, CANCELADO.

Existen dos posibles transiciones de estados en la boleta:


- PENDIENTE -> PROCESADO -> PAGADO.
- PENDIENTE -> CANCELADO.

Una boleta sin registros de compra o venta no puede


procesarse.

Una misma persona no puede actuar como funcionario y


cliente en una misma boleta.

Solo se pueden cargar boletas con la fecha del dia.

En la compra o venta no pueden actualizarse la moneda


y la cantidad de boletas con estado PROCESADO,
PAGADO y CANCELADO.

En la compra o venta el precio unitario y el total se


calculan automticamente en base a la cotizacin de la
moneda.

Despliegue DER Compra/Venta Moneda Extranjera Pgina 5


Tablas, restricciones y
disparadores
-- Table: public.persona

-- DROP TABLE public.persona;

CREATE TABLE public.persona

cod_persona integer NOT NULL,

documento integer NOT NULL,

nombre_completo character varying NOT NULL,

direccion character varying NOT NULL,

telefono character varying NOT NULL,

CONSTRAINT persona_pkey PRIMARY KEY (cod_persona)

);

-- Table: public.funcionario

-- DROP TABLE public.funcionario;

CREATE TABLE public.funcionario

cod_funcionario integer NOT NULL,

cargo character varying NOT NULL,

CONSTRAINT funcionario_pkey PRIMARY KEY (cod_funcionario),

CONSTRAINT funcionario_cod_funcionario_fkey FOREIGN KEY (cod_funcionario)

REFERENCES public.persona (cod_persona) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT

Despliegue DER Compra/Venta Moneda Extranjera Pgina 6


);

-- Index: public.ifk_persona_funcionario

-- DROP INDEX public.ifk_persona_funcionario;

CREATE INDEX ifk_persona_funcionario

ON public.funcionario

USING btree

(cod_funcionario);

-- Table: public.pais

-- DROP TABLE public.pais;

CREATE TABLE public.pais

cod_pais integer NOT NULL,

nombre character varying NOT NULL,

CONSTRAINT pais_pkey PRIMARY KEY (cod_pais)

);

-- Table: public.sucursal

-- DROP TABLE public.sucursal;

CREATE TABLE public.sucursal

cod_sucursal integer NOT NULL,

Despliegue DER Compra/Venta Moneda Extranjera Pgina 7


descripcion character varying,

CONSTRAINT sucursal_pkey PRIMARY KEY (cod_sucursal)

);

-- Table: public.moneda

-- DROP TABLE public.moneda;

CREATE TABLE public.moneda

cod_moneda integer NOT NULL,

cod_pais integer NOT NULL,

nombre character varying NOT NULL,

compra numeric NOT NULL,

venta numeric NOT NULL,

fec_hora_actualizacion date NOT NULL,

stock numeric DEFAULT 100000,

CONSTRAINT modeda_pkey PRIMARY KEY (cod_moneda),

CONSTRAINT modeda_cod_pais_fkey FOREIGN KEY (cod_pais)

REFERENCES public.pais (cod_pais) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT

);

-- Index: public.ifk_pais_moneda

-- DROP INDEX public.ifk_pais_moneda;

CREATE INDEX ifk_pais_moneda

ON public.moneda

USING btree

Despliegue DER Compra/Venta Moneda Extranjera Pgina 8


(cod_pais);

-- Table: public.boleta

-- DROP TABLE public.boleta;

CREATE TABLE public.boleta

cod_boleta integer NOT NULL,

cod_persona integer NOT NULL,

cod_sucursal integer NOT NULL,

cod_funcionario integer NOT NULL,

fec_boleta date NOT NULL,

estado character varying NOT NULL,

tipo character varying NOT NULL,

CONSTRAINT boleta_pkey PRIMARY KEY (cod_boleta),

CONSTRAINT boleta_cod_funcionario_fkey FOREIGN KEY (cod_funcionario)

REFERENCES public.funcionario (cod_funcionario) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT,

CONSTRAINT boleta_cod_persona_fkey FOREIGN KEY (cod_persona)

REFERENCES public.persona (cod_persona) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT,

CONSTRAINT boleta_cod_sucursal_fkey FOREIGN KEY (cod_sucursal)

REFERENCES public.sucursal (cod_sucursal) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT,

CONSTRAINT check_boleta_estado CHECK (estado::text = 'PENDIENTE'::text OR estado::text =


'PROCESADO'::text OR estado::text = 'PAGADO'::text OR estado::text = 'CANCELADO'::text),

CONSTRAINT check_boleta_fec_boleta CHECK (fec_boleta = 'now'::text::date),

CONSTRAINT check_boleta_persona_funcionario CHECK (cod_funcionario <> cod_persona),

Despliegue DER Compra/Venta Moneda Extranjera Pgina 9


CONSTRAINT check_boleta_tipo CHECK (tipo::text = 'COMPRA'::text OR tipo::text =
'VENTA'::text)

);

-- Index: public.ifk_funcionario_boleta

-- DROP INDEX public.ifk_funcionario_boleta;

CREATE INDEX ifk_funcionario_boleta

ON public.boleta

USING btree

(cod_funcionario);

-- Index: public.ifk_persona_boleta

-- DROP INDEX public.ifk_persona_boleta;

CREATE INDEX ifk_persona_boleta

ON public.boleta

USING btree

(cod_persona);

-- Index: public.ifk_sucursal_boleta

-- DROP INDEX public.ifk_sucursal_boleta;

CREATE INDEX ifk_sucursal_boleta

ON public.boleta

USING btree

(cod_sucursal);

Despliegue DER Compra/Venta Moneda Extranjera Pgina 10


-- Table: public.compra

-- DROP TABLE public.compra;

CREATE TABLE public.compra

cod_boleta integer NOT NULL,

cod_moneda integer NOT NULL,

cantidad numeric NOT NULL,

cambio_unitario_compra numeric,

total numeric,

CONSTRAINT compra_pkey PRIMARY KEY (cod_boleta),

CONSTRAINT compra_cod_boleta_fkey FOREIGN KEY (cod_boleta)

REFERENCES public.boleta (cod_boleta) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT,

CONSTRAINT compra_cod_moneda_fkey FOREIGN KEY (cod_moneda)

REFERENCES public.moneda (cod_moneda) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT

);

-- Index: public.ifk_boleta_compra

-- DROP INDEX public.ifk_boleta_compra;

CREATE INDEX ifk_boleta_compra

ON public.compra

USING btree

(cod_boleta);

Despliegue DER Compra/Venta Moneda Extranjera Pgina 11


-- Index: public.ifk_moneda_compra

-- DROP INDEX public.ifk_moneda_compra;

CREATE INDEX ifk_moneda_compra

ON public.compra

USING btree

(cod_moneda);

-- Table: public.venta

-- DROP TABLE public.venta;

CREATE TABLE public.venta

cod_boleta integer NOT NULL,

cod_moneda integer NOT NULL,

cantidad integer NOT NULL,

cambio_unitario_venta integer,

total integer,

CONSTRAINT venta_pkey PRIMARY KEY (cod_boleta),

CONSTRAINT venta_cod_boleta_fkey FOREIGN KEY (cod_boleta)

REFERENCES public.boleta (cod_boleta) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT,

CONSTRAINT venta_cod_moneda_fkey FOREIGN KEY (cod_moneda)

REFERENCES public.moneda (cod_moneda) MATCH SIMPLE

ON UPDATE RESTRICT ON DELETE RESTRICT

);

-- Index: public.ifk_boleta_venta

Despliegue DER Compra/Venta Moneda Extranjera Pgina 12


-- DROP INDEX public.ifk_boleta_venta;

CREATE INDEX ifk_boleta_venta

ON public.venta

USING btree

(cod_boleta);

-- Index: public.ifk_moneda_venta

-- DROP INDEX public.ifk_moneda_venta;

CREATE INDEX ifk_moneda_venta

ON public.venta

USING btree

(cod_moneda);

-- Function: public.tr_boleta_insert()

-- DROP FUNCTION public.tr_boleta_insert();

CREATE OR REPLACE FUNCTION public.tr_boleta_insert()

RETURNS trigger AS

$tr_boleta_insert$

DECLARE

BEGIN

IF NEW.estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'No se puede ingresar BOLETA con un estado distinto a PENDIENTE';

Despliegue DER Compra/Venta Moneda Extranjera Pgina 13


END IF;

RETURN NEW;

END;

$tr_boleta_insert$

LANGUAGE plpgsql;

-- Function: public.tr_boleta_update()

-- DROP FUNCTION public.tr_boleta_update();

CREATE OR REPLACE FUNCTION public.tr_boleta_update()

RETURNS trigger AS

$tr_boleta_update$

DECLARE

cantidad_sub_tipo integer;

cantidad_aux integer;

moneda_aux integer;

BEGIN

-- CONTROL DE TRANSICION DE ESTADO Y TIPO

IF NEW.estado = 'PENDIENTE' AND OLD.estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'No se puede REGRESAR al estado PENDIENTE';

END IF;

IF NEW.estado = 'CANCELADO' AND OLD.estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'Solo se puede ACTUALIZAR de PENDIENTE a CANCELADO';

Despliegue DER Compra/Venta Moneda Extranjera Pgina 14


END IF;

IF NEW.estado = 'PROCESADO' AND OLD.estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'Solo se puede ACTUALIZAR de PENDIENTE a PROCESADO, tipo no se


puede ACTUALIZAR en estado PROCESADO';

END IF;

IF NEW.estado = 'PAGADO' AND OLD.estado != 'PROCESADO' THEN

RAISE EXCEPTION 'Solo se puede ACTUALIZAR de PROCESADO a PAGADO, tipo no se


puede ACTUALIZAR en estado PAGADO';

END IF;

-- CONTROL SOBRE EL ESTADO PROCESADO --

IF NEW.estado = 'PROCESADO' OR NEW.estado = 'PAGADO' THEN

-- NO SE PUEDEN MODIFICAR LAS PK Y FK --

IF NEW.cod_boleta != OLD.cod_boleta THEN RAISE EXCEPTION 'No se puede


ACTUALIZAR la boleta en estado PROCESADO'; END IF;

IF NEW.cod_persona != OLD.cod_persona THEN RAISE EXCEPTION 'No se puede


ACTUALIZAR la persona en estado PROCESADO'; END IF;

IF NEW.cod_funcionario != OLD.cod_funcionario THEN RAISE EXCEPTION 'No se puede


ACTUALIZAR el funcionario en estado PROCESADO'; END IF;

IF NEW.cod_sucursal != OLD.cod_sucursal THEN RAISE EXCEPTION 'No se puede


ACTUALIZAR la sucursal en estado PROCESADO'; END IF;

IF NEW.tipo != OLD.tipo THEN RAISE EXCEPTION 'No se puede ACTUALIZAR el tipo en


estado PROCESADO'; END IF;

-- CONTROL DE SUBTIPO

if OLD.tipo = 'COMPRA' THEN

SELECT count(c.cod_boleta) INTO cantidad_sub_tipo FROM compra c WHERE


c.cod_boleta = OLD.cod_boleta;

if cantidad_sub_tipo = 0 THEN RAISE EXCEPTION 'No se puede ACTUALIZAR a


PROCESADO sin un SUBTIPO compra'; END IF;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 15


SELECT c.cantidad, c.cod_moneda INTO cantidad_aux, moneda_aux FROM
compra c WHERE c.cod_boleta = OLD.cod_boleta;

UPDATE moneda SET stock = stock + cantidad_aux WHERE cod_moneda =


moneda_aux;

END IF;

if OLD.tipo = 'VENTA' THEN

SELECT count(c.cod_boleta) INTO cantidad_sub_tipo FROM venta c WHERE


c.cod_boleta = OLD.cod_boleta;

if cantidad_sub_tipo = 0 THEN RAISE EXCEPTION 'No se puede ACTUALIZAR a


PROCESADO sin un SUBTIPO venta'; END IF;

SELECT c.cantidad, c.cod_moneda INTO cantidad_aux, moneda_aux FROM venta


c WHERE c.cod_boleta = OLD.cod_boleta;

UPDATE moneda SET stock = stock - cantidad_aux WHERE cod_moneda =


moneda_aux;

END IF;

END IF;

RETURN NEW;

END;

$tr_boleta_update$

LANGUAGE plpgsql;

-- Function: public.tr_compra_insert()

-- DROP FUNCTION public.tr_compra_insert();

CREATE OR REPLACE FUNCTION public.tr_compra_insert()

RETURNS trigger AS

$tr_compra_insert$

DECLARE

cod_boleta_aux integer;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 16


valor_unitario integer;

BEGIN

SELECT count(b.cod_boleta) INTO cod_boleta_aux FROM boleta b WHERE b.cod_boleta =


NEW.cod_boleta AND b.tipo = 'COMPRA';

if cod_boleta_aux = 0 THEN RAISE EXCEPTION 'No existe REGISTRO de boleta de compra';


END IF;

SELECT m.compra INTO valor_unitario FROM moneda m WHERE m.cod_moneda =


NEW.cod_moneda;

NEW.total = valor_unitario * NEW.cantidad;

NEW.cambio_unitario_compra = valor_unitario;

RETURN NEW;

END;

$tr_compra_insert$

LANGUAGE plpgsql;

-- Function: public.tr_compra_update()

-- DROP FUNCTION public.tr_compra_update();

CREATE OR REPLACE FUNCTION public.tr_compra_update()

RETURNS trigger AS

$tr_compra_update$

DECLARE

valor_unitario_compra integer;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 17


valor_estado varchar;

BEGIN

IF NEW.cod_boleta != OLD.cod_boleta THEN

RAISE EXCEPTION 'Solo se puede ACTUALIZAR el cod_boleta';

END IF;

IF NEW.cod_moneda != OLD.cod_moneda OR NEW.cantidad != OLD.cantidad THEN

SELECT b.estado INTO valor_estado FROM boleta b WHERE b.cod_boleta =


OLD.cod_boleta;

IF valor_estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'No se puede actualizar cantidad y moneda en boletas


procesadas/pagadas/canceladas';

END IF;

END IF;

SELECT c.compra INTO valor_unitario_compra FROM moneda c WHERE c.cod_moneda =


NEW.cod_moneda;

NEW.total = valor_unitario_compra * NEW.cantidad;

NEW.cambio_unitario_compra = valor_unitario_compra;

RETURN NEW;

END;

$tr_compra_update$

LANGUAGE plpgsql;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 18


-- Function: public.tr_delete()

-- DROP FUNCTION public.tr_delete();

CREATE OR REPLACE FUNCTION public.tr_delete()

RETURNS trigger AS

$tr_delete$

DECLARE

BEGIN

RAISE EXCEPTION 'No se pueden eliminar registros';

END;

$tr_delete$

LANGUAGE plpgsql;

-- Function: public.tr_moneda()

-- DROP FUNCTION public.tr_moneda();

CREATE OR REPLACE FUNCTION public.tr_moneda()

RETURNS trigger AS

$tr_moneda$

DECLARE

BEGIN

NEW.fec_hora_actualizacion = current_date;

RETURN NEW;

END;

$tr_moneda$

Despliegue DER Compra/Venta Moneda Extranjera Pgina 19


LANGUAGE plpgsql;

-- Function: public.tr_venta_insert()

-- DROP FUNCTION public.tr_venta_insert();

CREATE OR REPLACE FUNCTION public.tr_venta_insert()

RETURNS trigger AS

$tr_venta_insert$

DECLARE

cod_boleta_aux integer;

valor_unitario integer;

BEGIN

SELECT count(b.cod_boleta) INTO cod_boleta_aux FROM boleta b WHERE b.cod_boleta =


NEW.cod_boleta AND b.tipo = 'VENTA';

if cod_boleta_aux = 0 THEN RAISE EXCEPTION 'No existe REGISTRO de boleta de venta';


END IF;

SELECT m.venta INTO valor_unitario FROM moneda m WHERE m.cod_moneda =


NEW.cod_moneda;

NEW.total = valor_unitario * NEW.cantidad;

NEW.cambio_unitario_venta = valor_unitario;

RETURN NEW;

END;

$tr_venta_insert$

LANGUAGE plpgsql;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 20


-- Function: public.tr_venta_update()

-- DROP FUNCTION public.tr_venta_update();

CREATE OR REPLACE FUNCTION public.tr_venta_update()

RETURNS trigger AS

$tr_venta_update$

DECLARE

valor_unitario_venta integer;

valor_estado varchar;

BEGIN

IF NEW.cod_boleta != OLD.cod_boleta THEN

RAISE EXCEPTION 'Solo se puede ACTUALIZAR el cod_boleta';

END IF;

IF NEW.cod_moneda != OLD.cod_moneda OR NEW.cantidad != OLD.cantidad THEN

SELECT b.estado INTO valor_estado FROM boleta b WHERE b.cod_boleta =


OLD.cod_boleta;

IF valor_estado != 'PENDIENTE' THEN

RAISE EXCEPTION 'No se puede actualizar cantidad y moneda en boletas


procesadas/pagadas/canceladas';

END IF;

END IF;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 21


SELECT c.compra INTO valor_unitario_venta FROM moneda c WHERE c.cod_moneda =
NEW.cod_moneda;

NEW.total = valor_unitario_venta * NEW.cantidad;

NEW.cambio_unitario_venta = valor_unitario_venta;

RETURN NEW;

END;

$tr_venta_update$

LANGUAGE plpgsql;

-- Trigger: tr_venta_delete on public.venta

-- DROP TRIGGER tr_venta_delete ON public.venta;

CREATE TRIGGER tr_venta_delete

BEFORE DELETE

ON public.venta

FOR EACH ROW

EXECUTE PROCEDURE public.tr_delete();

-- Trigger: tr_venta_insert on public.venta

-- DROP TRIGGER tr_venta_insert ON public.venta;

CREATE TRIGGER tr_venta_insert

BEFORE INSERT

ON public.venta

FOR EACH ROW

Despliegue DER Compra/Venta Moneda Extranjera Pgina 22


EXECUTE PROCEDURE public.tr_venta_insert();

-- Trigger: tr_venta_update on public.venta

-- DROP TRIGGER tr_venta_update ON public.venta;

CREATE TRIGGER tr_venta_update

BEFORE UPDATE

ON public.venta

FOR EACH ROW

EXECUTE PROCEDURE public.tr_venta_update();

-- Trigger: tr_moneda on public.moneda

-- DROP TRIGGER tr_moneda ON public.moneda;

CREATE TRIGGER tr_moneda

BEFORE INSERT OR UPDATE

ON public.moneda

FOR EACH ROW

EXECUTE PROCEDURE public.tr_moneda();

-- Trigger: tr_compra_insert on public.compra

-- DROP TRIGGER tr_compra_insert ON public.compra;

CREATE TRIGGER tr_compra_insert

Despliegue DER Compra/Venta Moneda Extranjera Pgina 23


BEFORE INSERT

ON public.compra

FOR EACH ROW

EXECUTE PROCEDURE public.tr_compra_insert();

-- Trigger: tr_compra_update on public.compra

-- DROP TRIGGER tr_compra_update ON public.compra;

CREATE TRIGGER tr_compra_update

BEFORE UPDATE

ON public.compra

FOR EACH ROW

EXECUTE PROCEDURE public.tr_compra_update();

-- Trigger: tr_boleta_delete on public.boleta

-- DROP TRIGGER tr_boleta_delete ON public.boleta;

CREATE TRIGGER tr_boleta_delete

BEFORE DELETE

ON public.boleta

FOR EACH ROW

EXECUTE PROCEDURE public.tr_delete();

-- Trigger: tr_boleta_insert on public.boleta

-- DROP TRIGGER tr_boleta_insert ON public.boleta;

Despliegue DER Compra/Venta Moneda Extranjera Pgina 24


CREATE TRIGGER tr_boleta_insert

BEFORE INSERT

ON public.boleta

FOR EACH ROW

EXECUTE PROCEDURE public.tr_boleta_insert();

-- Trigger: tr_boleta_update on public.boleta

-- DROP TRIGGER tr_boleta_update ON public.boleta;

CREATE TRIGGER tr_boleta_update

BEFORE UPDATE

ON public.boleta

FOR EACH ROW

EXECUTE PROCEDURE public.tr_boleta_update();

Despliegue DER Compra/Venta Moneda Extranjera Pgina 25


Scripts de Insercin de datos
-- PAISES

INSERT INTO pais(cod_pais, nombre) VALUES (1, 'ARGENTINA');

INSERT INTO pais(cod_pais, nombre) VALUES (2, 'BRASIL');

INSERT INTO pais(cod_pais, nombre) VALUES (3, 'URUGUAY');

INSERT INTO pais(cod_pais, nombre) VALUES (4, 'ESTADOS UNIDOS');

INSERT INTO pais(cod_pais, nombre) VALUES (5, 'UNION EUROPEA');

-- MONEDA

INSERT INTO moneda(cod_moneda, cod_pais, nombre, compra, venta, fec_hora_actualizacion,


stock) VALUES (1, 1, 'PESO ARGENTINO', 300, 350, current_date, 100000);

INSERT INTO moneda(cod_moneda, cod_pais, nombre, compra, venta, fec_hora_actualizacion,


stock) VALUES (2, 2, 'REAL', 1640, 1710, current_date, 100000);

INSERT INTO moneda(cod_moneda, cod_pais, nombre, compra, venta, fec_hora_actualizacion,


stock) VALUES (3, 3, 'PESO URUGUAYO', 200, 250, current_date, 100000);

INSERT INTO moneda(cod_moneda, cod_pais, nombre, compra, venta, fec_hora_actualizacion,


stock) VALUES (4, 4, 'DOLAR AMERICANO', 5740, 5810, current_date, 100000);

INSERT INTO moneda(cod_moneda, cod_pais, nombre, compra, venta, fec_hora_actualizacion,


stock) VALUES (5, 5, 'EURO', 5800, 6200, current_date, 100000);

--PERSONA

INSERT INTO persona(cod_persona, documento, nombre_completo, direccion, telefono) VALUES


(1, 29181645, 'CHAPARRO, DENIS OMAR', 'CALLE FALSA 123', 971123123);

INSERT INTO persona(cod_persona, documento, nombre_completo, direccion, telefono) VALUES


(2, 3989236, 'MARTINEZ PAREDES, MARTIN VICTOR ANTONIO', 'CALLE FALSA 123', 971123123);

INSERT INTO persona(cod_persona, documento, nombre_completo, direccion, telefono) VALUES


(3, 1654786, 'MENCHACA RAMIREZ, LUIS ANTONIO', 'CALLE FALSA 123', 971123123);

INSERT INTO persona(cod_persona, documento, nombre_completo, direccion, telefono) VALUES


(4, 7354109, 'RODRIGUEZ RODRIGUEZ, MAXIMILIANO GABRIEL', 'CALLE FALSA 123',
971123123);

--FUNCIONARIO

INSERT INTO funcionario(cod_funcionario, cargo) VALUES (1, 'CAJERO');

--SUCURSAL

INSERT INTO sucursal(cod_sucursal, descripcion) VALUES (1, 'CASA CENTRAL');

INSERT INTO sucursal(cod_sucursal, descripcion) VALUES (2, 'VILLA MORRA');

Despliegue DER Compra/Venta Moneda Extranjera Pgina 26


INSERT INTO sucursal(cod_sucursal, descripcion) VALUES (3, 'SHOPPING PASEO LA GALERIA');

INSERT INTO sucursal(cod_sucursal, descripcion) VALUES (4, 'SHOPPING PINEDO');

--BOLETA

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (1, 2, 1, 1, current_date, 'PENDIENTE', 'COMPRA');

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (2, 3, 2, 1, current_date, 'PENDIENTE', 'VENTA');

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (3, 4, 4, 1, current_date, 'PENDIENTE', 'COMPRA');

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (4, 2, 3, 1, current_date, 'PENDIENTE', 'VENTA');

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (5, 3, 4, 1, current_date, 'PENDIENTE', 'VENTA');

INSERT INTO boleta(cod_boleta, cod_persona, cod_sucursal, cod_funcionario, fec_boleta, estado,


tipo) VALUES (6, 4, 1, 1, current_date, 'PENDIENTE', 'COMPRA');

--COMPRA

INSERT INTO compra(cod_boleta, cod_moneda, cantidad) VALUES (1, 2, 1500);

INSERT INTO compra(cod_boleta, cod_moneda, cantidad) VALUES (3, 5, 5000);

INSERT INTO compra(cod_boleta, cod_moneda, cantidad) VALUES (6, 4, 10000);

--VENTA

INSERT INTO venta (cod_boleta, cod_moneda, cantidad) VALUES (2, 5, 5000);

INSERT INTO venta (cod_boleta, cod_moneda, cantidad) VALUES (4, 3, 2000);

INSERT INTO venta (cod_boleta, cod_moneda, cantidad) VALUES (5, 2, 1000);

Despliegue DER Compra/Venta Moneda Extranjera Pgina 27

Potrebbero piacerti anche