You are on page 1of 13

“SCRIPTS”

Script para generar nuestra base de datos incluyendo el llenado de algunas tablas para
pruebas
CREATE TABLE boleta (
numero_bol int4 NOT NULL PRIMARY KEY,
id_fpag int4 NULL,
id_epag int4 NULL,
fecha_bol varchar(250) NULL
)
;
create table region(
id_reg int4 NOT NULL PRIMARY KEY,
nombre_reg varchar(250)
)
;
CREATE TABLE ciudad(
id_ciud varchar(4) NOT NULL PRIMARY KEY,
nombre_ciud varchar(250),
id_reg int
)
;
CREATE TABLE cliente (
id_clie int4 NOT NULL PRIMARY KEY,
rut_clie int4 NULL,
dv_clie varchar(1) NULL,
id_reg int4 NULL,
id_ciud int4 NULL,
id_giro int4 NULL,
nombre_clie varchar(250) NULL,
apellido_clie varchar(250) NULL,
direccion_clie varchar(250) NULL,
codigo_ciudad_clie int4 NULL,
telefono_clie int4 NULL,
celular_clie int4 NULL,
email_clie int4 NULL

)
;
CREATE TABLE cotizacion (
numero_cot int4 NOT NULL PRIMARY KEY,
id_venta int4 NULL,
id_clie int4 NULL,
fecha_cot varchar(250) NULL
)
;
CREATE TABLE detalle_fact_compra (
id_comp int4 NOT NULL PRIMARY KEY,
id_prov int4 NULL,
id_rep int4 NULL,
numero_comp int4 NULL,
fecha_comp varchar(250) NULL,
cantidad_comp int4 NULL,
costo_comp int4 NULL
)
;
CREATE TABLE detalle_venta (
id_venta int4 NOT NULL,
id_rep int4 NULL,
id_usuario int4 NULL,
pventa int4 NULL,
cantidad int4 NULL
)
;
CREATE TABLE estado_pago (
id_epag int4 NOT NULL PRIMARY KEY,
descrip_epag varchar(250) NULL
)
;
CREATE TABLE facturas_venta (
numero_fact int4 NOT NULL PRIMARY KEY,
id_venta int4 NULL,
id_clie int4 NULL,
id_fpag int4 NULL,
id_epag int4 NULL,
fecha_fact varchar(250) NULL,
hora_fact varchar(250) NULL
)
;
CREATE TABLE forma_pago (
id_fpag int4 NOT NULL PRIMARY KEY,
descrip_fpag varchar(250) NULL
)
;
CREATE TABLE giro (
id_giro int4 NOT NULL PRIMARY KEY,
nombre_giro varchar(250) NULL
)
;
CREATE TABLE grupos (
id_grupo int4 NOT NULL,
codigo_grupo int4 NULL,
nombre_grupo varchar(250) NULL,
factor_grupo int4 NULL
)
;
CREATE TABLE proveedores (
id_prov int4 NOT NULL,
nombre_prov varchar(250) NULL,
direccion_prov varchar(250) NULL,
telefono_prov int4 NULL,
fax_prov int4 NULL,
contacto_prov varchar(250) NULL,
email_prov varchar(250) NULL,
cuenta_prov varchar(250) NULL
)
;
CREATE TABLE repuestos (
id_rep int4 NOT NULL PRIMARY KEY,
linea_rep varchar(1) NULL,
id_grupo int4 NULL,
id_ubicacion int4 NULL,
id_prov int4 NULL,
codigo_rep varchar(6) NULL,
descripcion_rep text NULL,
aplicacion_rep varchar(250) NULL,
stock_rep int4 NULL
)
;
CREATE TABLE ubicacion (
id_ubicacion int4 NOT NULL,
estante int4 NULL,
lado varchar(1) NULL
)
;
CREATE TABLE usuarios (
id_us int4 NOT NULL PRIMARY KEY,
nombre_us varchar(250) NULL,
apellido_us varchar(250) NULL,
login_us varchar(250) NULL,
pass_us varchar(250) NULL,
email_us varchar(250) NULL,
codigo_us varchar(6) NULL,
nivel_us int4 NULL
)
;
------------------------------------------------------------------------
INSERT INTO usuarios( id_us, nombre_us, apellido_us, login_us, pass_us, email_us,
codigo_us, nivel_us) VALUES
(1,'CRISTHIAN','BENARDOS', 'ADMINISTRADOR', 'ADMINISTRADOR',
'CRISTHIAN.BENARDOS@GMAIL.COM', '001', 1),
(2,'FABIAN','TORRES', 'VENDEDOR', 'VENDEDOR', 'FTORRESBAEZA@GMAIL.COM', '002', 2),
(3,'CLAUDIO','OYARZUN', 'BODEGERO', 'BODEGERO', 'CEE_TIME@HOTMAIL.COM', '003', 3),
(4,'GUSTAVO','DONOSO', 'CAJERO', 'CAJERO', 'GDONOSO@UCT.CL', '004', 4);

INSERT INTO grupos(id_grupo, codigo_grupo, nombre_grupo, factor_grupo) VALUES


(1, 1100, 'BUJIAS', 30),
(2, 1200, 'CARBURADORES', 25),
(3, 1300, 'AMORTIGUADORES', 32),
(4, 1400, 'VALATAS', 41);

INSERT INTO proveedores values(1,'FUENTES REPUESTOS', 'ESMERALDA 245', 324563,


324523, 'JOSE AGUILERA', 'JAGUILERA@FUENTESREPUESTOS.CL', '21321321'),
(2,'BICIMOTO', 'CAMILO HENRIQUEZ 2675', 243242, 213944, 'CARLOS BENAVENTE',
'CBENAVENTE@BICIMOTO.CL', '7552435');

INSERT INTO ubicacion values(1, 1, '1'),


(2, 1, '2'),
(3, 2, '1'),
(3, 2, '2');
Procedimientos Almacenados

Agregar Repuesto

CREATE OR REPLACE FUNCTION "public"."agregar_repuesto" (in int4, in varchar, in


int4, in int4, in int4, in varchar, in varchar, in varchar, in int4) RETURNS bool
AS
$BODY$
DECLARE

id_rep alias for $1;


linea_rep alias for $2;
id_grupo alias for $3;
id_ubicacion alias for $4;
id_prov alias for $5;
codigo_rep alias for $6;
descripcion_rep alias for $7;
aplicacion_rep alias for $8;
stock_rep alias for $9;

BEGIN

insert into repuestos values


(id_rep,linea_rep,id_grupo,id_ubicacion,id_prov,codigo_rep,descripcion_rep,aplicaci
on_rep,stock_rep);

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Agregar Proveedor

CREATE OR REPLACE FUNCTION "public"."agregar_proveedor" (in int4, in varchar, in


varchar, in int4, in int4, in varchar, in varchar, in varchar) RETURNS bool AS
$BODY$
DECLARE

id_prov alias for $1;


nombre_prov alias for $2;
direccion_prov alias for $3;
telefono_prov alias for $4;
fax_prov alias for $5;
contacto_prov alias for $6;
email_prov alias for $7;
cuenta_prov alias for $8;

BEGIN

insert into proveedores values


(id_prov,nombre_prov,direccion_prov,telefono_prov,fax_prov,contacto_prov,email_prov
,cuenta_prov);

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;
Agregar Grupo

CREATE OR REPLACE FUNCTION "public"."agregar_grupo" (in int4, in int4, in varchar,


in int4) RETURNS bool AS
$BODY$
DECLARE

id alias for $1;


codigo alias for $2;
nombre alias for $3;
factor alias for $4;

BEGIN

insert into grupos values (id,codigo,nombre,factor);

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Agregar Ubicación

CREATE OR REPLACE FUNCTION "public"."agregar_ubicacion" (in int4, in int4, in


varchar) RETURNS bool AS
$BODY$
DECLARE

id_ubicacion alias for $1;


estante alias for $2;
lado alias for $3;

BEGIN

insert into ubicacion values (id_ubicacion, estante, lado);

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Agregar Giro Cliente


Agregar Cliente

Modificar Repuesto

CREATE OR REPLACE FUNCTION "public"."modificar_repuesto" (in int4, in int4, in


int4, in int4, in int4, in varchar, in varchar, in varchar, in int4) RETURNS bool
AS
$BODY$
DECLARE

id_rep1 alias for $1;


linea_rep1 alias for $2;
id_grup1 alias for $3;
id_ubi1 alias for $4;
id_pro1 alias for $5;
codigo_rep1 alias for $6;
descripcion_rep1 alias for $7;
aplicacion_rep1 alias for $8;
stock_rep1 alias for $9;

BEGIN

update repuestos set linea_rep=linea_rep1, id_grupo=id_grup1,


id_ubicacion=id_ubi1, id_prov=id_pro1, codigo_rep=codigo_rep1
,descripcion_rep=descripcion_rep1, aplicacion_rep=aplicacion_rep1,
stock_rep=stock_rep1 where id_rep=id_rep1;

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;
Modificar Proveedor

CREATE OR REPLACE FUNCTION "public"."modificar_proveedor" (in int4, in varchar, in


varchar, in int4, in int4, in varchar, in varchar, in varchar) RETURNS bool AS
$BODY$
DECLARE

id_prov1 alias for $1;


nombre_prov1 alias for $2;
direccion_prov1 alias for $3;
telefono_prov1 alias for $4;
fax_prov1 alias for $5;
contacto_prov1 alias for $6;
email_prov1 alias for $7;
cuenta_prov1 alias for $8;

BEGIN

update proveedores set nombre_prov=nombre_prov1, direccion_prov=direccion_prov1,


telefono_prov=telefono_prov1, fax_prov=fax_prov, contacto_prov=contacto_prov1,
email_prov=email_prov1, cuenta_prov=cuenta_prov1 where id_prov=id_prov1;

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Modificar Grupo

CREATE OR REPLACE FUNCTION "public"."modificar_grupo" (in int4, in int4, in


varchar, in int4) RETURNS bool AS
$BODY$
DECLARE

id_grupo1 alias for $1;


codigo_grupo1 alias for $2;
nombre_grupo1 alias for $3;
factor_grupo1 alias for $4;

BEGIN

update grupos set codigo_grupo=codigo_grupo1, nombre_grupo=nombre_grupo1,


factor_grupo=factor_grupo1 where id_grupo=id_grupo1;
RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;
Modificar Ubicación
CREATE OR REPLACE FUNCTION "public"."modificar_ubicacion" (in int4, in int4, in
varchar) RETURNS bool AS
$BODY$
DECLARE

id_ubicacion1 alias for $1;


estante1 alias for $2;
lado1 alias for $3;

BEGIN

update ubicacion set estante=estante1, lado=lado1 where


id_ubicacion=id_ubicacion1;

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'

Modificar Giro Cliente


Modificar Cliente

Eliminar Repuesto

CREATE OR REPLACE FUNCTION "public"."eliminar_repuesto" (in int4) RETURNS bool AS


$BODY$
DECLARE

id_rep1 alias for $1;

BEGIN

delete from repuestos where id_rep=id_rep1;


RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'

Eliminar Proveedor

CREATE OR REPLACE FUNCTION "public"."eliminar_proveedor" (in int4) RETURNS bool AS


$BODY$
DECLARE

id_prov1 alias for $1;

BEGIN

delete from proveedores where id_prov=id_prov1;


RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;
Eliminar Grupo
CREATE OR REPLACE FUNCTION "public"."eliminar_grupo" (in int4) RETURNS bool AS
$BODY$
DECLARE

id_grupo1 alias for $1;

BEGIN

delete from grupos where id_grupo=id_grupo1;


RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Eliminar Ubicación

CREATE OR REPLACE FUNCTION "public"."eliminar_ubicacion" (in int4) RETURNS bool AS


$BODY$
DECLARE

id_ubicacion1 alias for $1;

BEGIN

delete from ubicacion where id_ubicacion=id_ubicacion1;


RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Eliminar Giro Cliente


Eliminar Cliente

Detalle Venta
CREATE OR REPLACE FUNCTION "public"."detalle_venta" (in int4, in int4, in int4, in
int4, in int4) RETURNS bool AS
$BODY$
DECLARE
id_venta alias for $1;
id_rep alias for $2;
id_usuario alias for $3;
pventa alias for $4;
cantidad alias for $5;

BEGIN
insert into detalle_venta
values(id_venta,id_rep,id_usuario,pventa,cantidad);

RETURN TRUE;

END
$BODY$
LANGUAGE 'plpgsql'
;

Comienzo Busqueda Avanzada Ya Que Este Procedimiento esta formado por casi 1000
linea de codigo.

CREATE OR REPLACE FUNCTION "public"."busqueda_avanzada" (in int4, in int4, in


varchar, in varchar, in varchar) RETURNS text AS
$BODY$
DECLARE

registro repuestos%ROWTYPE;
registro1 grupos%ROWTYPE;
registro2 ubicacion%ROWTYPE;
tabla text;
linea_rep alias for $1;
id_grupo alias for $2;
codigo_rep alias for $3;
descripcion_rep alias for $4;
aplicacion_rep alias for $5;
BEGIN

if (id_grupo =0 and codigo_rep=0 and descripcion_rep='' and aplicacion_rep='')


then
tabla:='<table border="1"><tr><th>Linea</th><th>Nombre
Grupo</th><th>Estante</th><th>Lado (1=A, 2=B)</th><th>Codigo
Repuesto</th><th>Descripcion</th><th>Aplicacion</th><th>Stock</th><th></th><th></th
></tr>';
FOR registro IN SELECT * FROM repuestos LOOP
if(registro.linea_rep = linea_rep) then
tabla:=tabla||'<tr>';
tabla:=tabla||'<td>'||registro.linea_rep||'</td>';
for registro1 IN SELECT * FROM grupos where
id_grupo=registro.id_grupo LOOP
tabla:=tabla||'<td>'||registro1.nombre_grupo||'</td>';
end LOOP;
for registro2 IN SELECT * FROM ubicacion where
id_ubicacion=registro.id_ubicacion LOOP
tabla:=tabla||'<td>'||registro2.estante||'</td>';
tabla:=tabla||'<td>'||registro2.lado||'</td>';
end LOOP;
tabla:=tabla||'<td>'||registro.codigo_rep||'</td>';
tabla:=tabla||'<td>'||registro.descripcion_rep||'</td>';
tabla:=tabla||'<td>'||registro.aplicacion_rep||'</td>';
tabla:=tabla||'<td>'||registro.stock_rep||'</td>';
tabla:=tabla||'<td align="center"><a
href="modificar_prod.jsp?id_rep='||registro.id_rep||'&linea_rep='||registro.linea_r
ep|'&id_grupo='||registro.id_grupo||'&codigo_rep='||registro.id_grupo||'&descripcio
n_rep='||registro.descripcion_rep||'&aplicacion_rep='||registro.aplicacion_rep||'&i
d_ubicacion='||registro.id_ubicacion||'&stock_rep='||registro.stock_rep||'"><img
src="../imagenes/lapiz.png" border="0"></a></td>';
tabla:=tabla||'<td align="center"><a
href="agregarStock.jsp?id_rep='||registro.id_rep||'&linea_rep='||registro.linea_rep
|'&id_grupo='||registro.id_grupo||'&codigo_rep='||registro.id_grupo||'&descripcion_
rep='||registro.descripcion_rep||'&aplicacion_rep='||registro.aplicacion_rep||'&id_
ubicacion='||registro.id_ubicacion||'&stock_rep='||registro.stock_rep||'"><img
src="../imagenes/carrito.png" border="0"></a></td>';
tabla:=tabla||'</tr>';
end if;
END LOOP;

tabla:=tabla||'</table>';

RETURN tabla;
else tabla:='<table border="1"><tr><th>Linea</th><th>Nombre
Grupo</th><th>Estante</th><th>Lado (1=A, 2=B)</th><th>Codigo
Repuesto</th><th>Descripcion</th><th>Aplicacion</th><th>Stock</th><th></th><th></th
></tr>';
RETURN tabla;
end if;
.
.
.
.

END; $BODY$
LANGUAGE 'plpgsql'
;

You might also like