Você está na página 1de 8

create or replace package body SISTEMA_VENTAS is

-- Author : KATTHERIN BONILLA


-- Created : 08/10/2013 10:45:17
-- Purpose : VENTAS
-------------------------------------------------------
PROCEDURE SUCURSAL_KB_INSERT (cod_s IN INTEGER, ruc_s in integer, descripcion_s
in varchar2,
direccion_s in varchar2,telefono_s in integer ,
responsable_s in varchar2,estado_s in character,
fecha_estado_s in date,obsevacion_estado_s in varchar2,
adicionado_por_s in varchar2,fecha_adicionado_s in date ,
ubicacion_adicion_s in varchar2,modificado_por_s in varchar
2,
fecha_modificacion_s in date,ubicacion_modificacion_s in va
rchar2,
pv_error out varchar2)AS

begin

if ruc_s is null then
pv_error := 'ingrese nombre';
return;
end if;
if descripcion_s is null then
pv_error := 'ingrese la descripcion';
return;
end if;
if direccion_s is null then
pv_error := 'error en direccion, vuelva a ingresar su direccion';
return;
end if;
if responsable_s is null then
pv_error := 'ingrese nombre del responsable ';
return;
end if;
if estado_s is null and estado_s != 'a' and estado_s != 'i' and estado_s != '
n' then
pv_error := 'estado incorrecto, ingrese [a , i , n]';
return;
end if;
if obsevacion_estado_s is null then
pv_error := 'xxxx';
return;
end if;
if adicionado_por_s is null then
pv_error := 'ingrese nombre ';
return;
end if;
--- if ubicacion_adicion_s is null then
--- pv_error := '';
--- return;
--- end if;
if modificado_por_s is null then
pv_error := 'ingrese nombre del que esta modificando';
return;
end if;
--if fecha_modificacion_s is null then
-- sysdate;
-- return;
--end if;
--if ubicacion_modificacion_s is null then
-- pv_error := '';
-- return;
-- end if;
insert into sucursal_kb(cod_s,ruc_s, descripcion_s,direccion_s,telefono_s,
responsable_s,estado_s,fecha_estado_s,obsevacion_estado_s,adicionado_por_s ,
fecha_adicionado_s,ubicacion_adicion_s,modificado_por_s,fecha_modificacion_s,
ubicacion_modificacion_s)
values (sucursalkb.nextval,ruc_s,descripcion_s ,direccion_s ,
telefono_s,responsable_s,estado_s,sysdate,obsevacion_estado_s,
adicionado_por_s,sysdate,ubicacion_adicion_s, modificado_por_s,
sysdate,ubicacion_modificacion_s);
commit;
exception
when dup_val_on_index then
pv_error := 'codigo ya existe';
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'SUCURSAL_KB_INSE
RT ';
end SUCURSAL_KB_INSERT;
---------------------------------------------------------
PROCEDURE SUCURSAL_KB_SELECT ( COD_SUCURSAL IN INTEGER, ruc_s out integer,
descripcion_s out varchar2,direccion_s out varchar2,
telefono_s out integer ,responsable_s out varchar2,
estado_s out char,fecha_estado_s out date,
obsevacion_estado_s out varchar2, adicionado_por_s out varc
har2,
fecha_adicionado_s out date ,ubicacion_adicion_s out varcha
r2,
modificado_por_s out varchar2, fecha_modificacion_s out dat
e,
ubicacion_modificacion_s out varchar2,pv_error out varchar2
)IS
cursor codigo(codigo sucursal_kb.cod_s%type) IS
select c.ruc_s,c.descripcion_s,c.direccion_s,c.telefono_s,c.responsable_s,
c.estado_s,c.fecha_estado_s,c.obsevacion_estado_s,c.adicionado_por_s,
c.fecha_adicionado_s,c.ubicacion_adicion_s,c.modificado_por_s,
c.fecha_modificacion_s,c.ubicacion_modificacion_s
into ruc_s,descripcion_s,direccion_s,telefono_s,
responsable_s,estado_s,fecha_estado_s,obsevacion_estado_s,
adicionado_por_s,fecha_adicionado_s,ubicacion_adicion_s,modificado_por_s,
fecha_modificacion_s,ubicacion_modificacion_s
from sucursal_kb c
where COD_SUCURSAL=codigo;
begin
open codigo(COD_SUCURSAL);
if codigo % notfound then
pv_error := 'error codigo no existe';
return;
end if;
fetch codigo
into ruc_s,descripcion_s,direccion_s,telefono_s,responsable_s,estado_s ,

fecha_estado_s,obsevacion_estado_s,adicionado_por_s,fecha_adicionado_s
,
ubicacion_adicion_s,modificado_por_s,fecha_modificacion_s,ubicacion_mo
dificacion_s;
exception
when no_data_found then
pv_error := 'error de codigo';
when too_many_rows then
pv_error := 'codigo repetido';
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'SUCURSAL_KB_SELE
CT';
end SUCURSAL_KB_SELECT;
---------------------------------------------------------
PROCEDURE SUCURSAL_KB_UPDATE(COD_SUCURSAL IN INTEGER, ruc_s in integer,
descripcion_s in varchar2,direccion_s in varchar2,
telefono_s in integer ,responsable_s in varchar2,
estado_s in char,fecha_estado_s in date,
obsevacion_estado_s in varchar2,adicionado_por_s in varchar
2,
fecha_adicionado_s in date ,ubicacion_adicion_s in varchar2
,
modificado_por_s in varchar2,fecha_modificacion_s in date,
ubicacion_modificacion_s in varchar2,pv_error out varchar2)
AS
BEGIN
if nvl(COD_SUCURSAL,0)<=0 then
pv_error := 'codigo incorrecto';
return;
end if;
update sucursal_kb
set
ruc_s=nvl(ruc_s,ruc_s),
descripcion_s = nvl(descripcion_s, descripcion_s),
direccion_s = nvl(direccion_s, direccion_s) ,
telefono_s = nvl(telefono_s, telefono_s),
responsable_s = nvl(responsable_s,responsable_s),
estado_s = nvl(estado_s,estado_s) ,
fecha_estado_s = nvl(fecha_estado_s,fecha_estado_s),
obsevacion_estado_s = nvl(obsevacion_estado_s,obsevacion_estado_s),
adicionado_por_s = nvl(adicionado_por_s ,adicionado_por_s),
fecha_adicionado_s = nvl(fecha_adicionado_s,fecha_adicionado_s),
ubicacion_adicion_s = nvl(ubicacion_adicion_s,ubicacion_adicion_s),
modificado_por_s = nvl(modificado_por_s, modificado_por_s),
fecha_modificacion_s = nvl(fecha_modificacion_s,fecha_modificacion_s),
ubicacion_modificacion_s = nvl(ubicacion_modificacion_s,ubicacion_modificacion_
s)
where cod_s = COD_SUCURSAL;
if sql%notfound then
pv_error := 'estudiante no existe';
return;
end if;
commit;
exception
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'datos_updte';
end SUCURSAL_KB_UPDATE;
------------------------------------------------------------------------------

--declaracion de parametros de entrada
PROCEDURE BODEGA_KB_INSERT(cod_s in integer,descripcion_b in varchar2,
direccion_b in varchar2,telefono_b in integer ,
responsable_b in varchar2, estado_b in character,
fecha_estado_b in date, obsevacion_estado_b in varchar2,
adicionado_por_b in varchar2,fecha_adicionado_b in date ,
ubicacion_adicion_b in varchar2, modificado_por_b in varcha
r2,
fecha_modificacion_b in date,ubicacion_modificacion_b in va
rchar2,
pv_error out varchar2)AS
--validaciones de posibles casos

begin
if cod_s is null then
pv_error := 'ingrese codigo';
return;
end if;
if descripcion_b is null then
pv_error := 'ingrese la descripcion';
return;
end if;
if direccion_b is null then
pv_error := 'error en direccion, vuelva a ingresar su direccion';
return;
end if;
if responsable_b is null then
pv_error := 'ingrese nombre del responsable ';
return;
end if;
if estado_b is null and estado_b != 'a' and estado_b != 'i' and estado_b != '
n' then
pv_error := 'estado incorrecto, ingrese [a , i , n]';
return;
end if;
if obsevacion_estado_b is null then
pv_error := 'xxxx';
return;
end if;
if adicionado_por_b is null then
pv_error := 'ingrese nombre ';
return;
end if;
--- if ubicacion_adicion_b is null then
--- pv_error := '';
--- return;
--- end if;
if modificado_por_b is null then
pv_error := 'ingrese nombre del que esta modificando';
return;
end if;
--if fecha_modificacion_b is null then
-- pv_error := '';
-- return;
--end if;
--if ubicacion_modificacion_b is null then
-- pv_error := '';
-- return;
-- end if;
--
insert into bodega_kb(cod_b,cod_s,descripcion_b,direccion_b,
telefono_b,responsable_b,estado_b,fecha_estado_b,
obsevacion_Estado_b,adicionado_Por_b,
fecha_Adicionado_b, ubicacion_Adicion_b,
modificado_por_b,fecha_modificacion_b,
ubicacion_modificacion_b)
values (bodegakb.nextval, cod_s,descripcion_b,direccion_b,telefono_b ,
responsable_b,estado_b,fecha_estado_b,obsevacion_estado_b,
adicionado_por_b,fecha_adicionado_b,ubicacion_adicion_b,
modificado_por_b,fecha_modificacion_b,ubicacion_modificacio
n_b);
exception
when dup_val_on_index then
pv_error := 'codigo ya existe';
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'BODEGA_KB_INSERT
';
end BODEGA_KB_INSERT;
------------------------------------------------------------------------------
PROCEDURE BODEGA_KB_SELECT(codigobodega in integer,descripcion_b out varchar2,
direccion_b out varchar2,telefono_b out integer,
responsable_b out varchar2,estado_b out char,
fecha_estado_b out date,obsevacion_estado_b out varchar2,
adicionado_por_b out varchar2,fecha_adicionado_b out date ,
ubicacion_adicion_b out varchar2,modificado_por_b out varch
ar2,
fecha_modificacion_b out date,ubicacion_modificacion_b out
varchar2,pv_error out varchar2)IS
cursor codigobo(codigo bodega_kb.cod_b%type) is
select b.descripcion_b, b.direccion_b, b.telefono_b, b.responsable_b, b.estad
o_b,
b.fecha_estado_b, b.obsevacion_estado_b, b.adicionado_por_b, b.fecha_adiciona
do_b,
b.ubicacion_adicion_b, b.modificado_por_b, b.fecha_modificacion_b,b.ubicacion
_modificacion_b
into descripcion_b,direccion_b,telefono_b,responsable_b,estado_b,fecha_estado_
b,
obsevacion_estado_b,adicionado_por_b,fecha_adicionado_b,ubicacion_adicion
_b,
modificado_por_b,fecha_modificacion_b,ubicacion_modificacion_b
from bodega_kb b
where cod_b=codigo;
begin
open codigobo(codigobodega);
if codigobo%notfound then
pv_error := 'error codigo no existe';
close codigobo;
return;
end if;
fetch codigobo
into descripcion_b,direccion_b ,telefono_b ,responsable_b,estado_b,fecha_e
stado_b,
obsevacion_estado_b,adicionado_por_b,fecha_estado_b,ubicacion_adicion_
b,
modificado_por_b,fecha_modificacion_b ,ubicacion_modificacion_b;
exception
when no_data_found then
pv_error := 'error de codigo';
when too_many_rows then
Pv_error := 'codigo repetido';
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'BODEGA_KB_SELECT
';
end BODEGA_KB_SELECT;
------------------------------------------------------------------------------

PROCEDURE BODEGA_KB_UPDATE(COD_SUCURSAL IN INTEGER,
descripcion_b in varchar2,direccion_b in varchar2,
telefono_b in integer ,responsable_b in varchar2,
estado_b in char,fecha_estado_b in date,
obsevacion_estado_b in varchar2,adicionado_por_b in varchar
2,
fecha_adicionado_b in date ,ubicacion_adicion_b in varchar2
,
modificado_por_b in varchar2,fecha_modificacion_b in date,
ubicacion_modificacion_b in varchar2, pv_error out varchar2
) AS
BEGIN
if nvl(COD_SUCURSAL,0)<=0 then
pv_error := 'codigo incorrecto';
return;
end if;
update bodega_kb
set
descripcion_b = nvl(descripcion_b,descripcion_b),
direccion_b= nvl(direccion_b, direccion_b) ,
telefono_b = nvl(telefono_b,telefono_b),
responsable_b = nvl(responsable_b,responsable_b),
estado_b = nvl(estado_b,estado_b),
fecha_estado_b = nvl(fecha_estado_b,fecha_estado_b),
obsevacion_estado_b = nvl(obsevacion_estado_b,obsevacion_estado_b),
adicionado_por_b = nvl(adicionado_por_b,adicionado_por_b),
fecha_adicionado_b = nvl(fecha_adicionado_b,fecha_adicionado_b),
ubicacion_adicion_b = nvl(ubicacion_adicion_b,ubicacion_adicion_b),
modificado_por_b = nvl(modificado_por_b, modificado_por_b),
fecha_modificacion_b = nvl(fecha_modificacion_b,fecha_modificacion_b),
ubicacion_modificacion_b = nvl(ubicacion_modificacion_b,ubicacion_modificacion_
b)
where cod_b=cod_b;
if sql%notfound then
pv_error := ' no existe';
return;
end if;
commit;
exception
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'bodega_updte';
end BODEGA_KB_UPDATE;
------------------------------------------------------------------------------
PROCEDURE INGRESO_INVENTARIO_KB (BODEGA_PRODUCTO IN INTEGER,
CODIGO_PRODUCTO IN INTEGER,
CODIGO_SUCURSAL IN INTEGER,
CODIGO_BODEGA IN INTEGER,
CANTIDAD_PRODUCTO IN INTEGER,
pi_estado_bodega IN VARCHAR2,
pi_estado_producto IN VARCHAR2,
pi_observacion_estado IN VARCHAR2,
pi_modificado_por IN VARCHAR2,
pi_ubicacion_modificacion IN VARCHAR2,
pv_error out varchar2)AS
COD_BODEGA INTEGER;
COD_PRODUCTO INTEGER;
DESCRIPCION_BODEGA VARCHAR2(30);
DESCRIPCION_PRODUCTO VARCHAR2(30);
CANTIDAD INTEGER;
STOCK INTEGER;
CURSOR PRODUCTO IS
SELECT BP.COD_BODEGA, BP.COD_PRODUCTO, BP.DESCRIPCION_BODEGA,
BP.DESCRIPCION_PRODUCTO, BP.CANTIDAD
INTO COD_BODEGA, COD_PRODUCTO, DESCRIPCION_BODEGA, DESCRIPCION_PRODUCTO, CANTIDA
D
FROM BODEGA_PRODUCTO_ML BP
WHERE BP.COD_BODEGA_PRODUCTO = BODEGA_PRODUCTO
AND BP.ESTADO_BODEGA = 'A'
and BP.ESTADO_PRODUCTO = 'A';
BEGIN
ML_SISTEMA_VENTAS_VALIDACIONES.producto(CODIGO_PRODUCTO,pv_error);
ML_SISTEMA_VENTAS_VALIDACIONES.bodega(CODIGO_BODEGA,pv_error);
ML_SISTEMA_VENTAS_VALIDACIONES.sucursal(CODIGO_SUCURSAL,pv_error);
OPEN PRODUCTO;
if PRODUCTO % notfound then
pv_error := 'error codigo no existe';
CLOSE PRODUCTO;
return;
end if;

STOCK :=CANTIDAD + CANTIDAD_PRODUCTO;

UPDATE BODEGA_PRODUCTO_ML
set COD_BODEGA = nvl(COD_BODEGA,COD_BODEGA),
COD_PRODUCTO = nvl(COD_PRODUCTO, COD_PRODUCTO),
descripcion_bodega = nvl(DESCRIPCION_BODEGA, descripcion_bodega),
descripcion_producto = nvl(DESCRIPCION_PRODUCTO, descripcion_producto)
,
cantidad = nvl(STOCK, cantidad),
estado_bodega = nvl(pi_estado_bodega, estado_bodega),
estado_producto = nvl(pi_estado_producto, estado_producto),
observacion_estado = nvl(pi_observacion_estado, observacion_estado
),
modificado_por = nvl(pi_modificado_por, modificado_por),
fecha_modificacion = SYSDATE,
ubicacion_modificacion = nvl(pi_ubicacion_modificacion, ubicacion_modifica
cion)
where cod_bodega_producto = BODEGA_PRODUCTO;

exception
when no_data_found then
pv_error := 'error de codigo';
when too_many_rows then
Pv_error := 'codigo repetido';
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'INGRESO_INVENTAR
IO_KB';

END INGRESO_INVENTARIO_KB;
-------------------------------------------------------------------------------
PROCEDURE REGISTRA_CABECERA_VENTA (cod_venta IN INTEGER,
cod_factura OUT INTEGER,
cod_s OUT INTEGER,
fecha OUT DATE,
pv_error OUT VARCHAR2 ) IS
BEGIN

pk_venta_mm.p_select_cab_venta(cod_venta,cod_factura,cod_s,fecha,pv_error);
EXCEPTION
when others then
pv_error := 'error tecnico, llamar a sistemas'||sqlerrm||'REGISTRA_CABECER
A_VENTA';

END REGISTRA_CABECERA_VENTA;
--------------------------------------------------------------------------------

end SISTEMA_VENTAS;

Você também pode gostar