CREATE OR REPLACE FUNCTION f_total_comprobante(idpedido number) return number IS total_pedido number; BEGIN select sum(p.precio_venta*dp.cantidad) into total_pedido from producto p inner join detalle_pedido dp on p.IDPRODUCTO=dp.PRODUCTO_IDPRODUCTO inner join pedido pe on pe.IDPEDIDO=dp.PEDIDO_IDPEDIDO where pe.idpedido=idpedido; return (total_pedido); END;
select f_total_comprobante(1) from dual ;
OBTENER EL IGV DEL TOTAL
CREATE OR REPLACE FUNCTION f_total_igv(idcomprobante number) return number IS total_igv number; BEGIN select (CP.total*0.18) INTO total_igv from COMPROBANTE_PAGO CP WHERE CP.IDCOMPROBANTE_PAGO=idcomprobante; return (total_igv); END;
select f_total_igv(1) from dual ;
OBTENER PRECIO DE VENTA
CREATE OR REPLACE FUNCTION f_precio_venta(idarticulo number) return number IS precio_venta number; tip_arti varchar2(20); BEGIN select ta.nombre into tip_arti from articulo ar inner join TIPO_ARTICULO ta on ar.TIPO_ARTICULO_IDTIPO_ARTICULO=ta.IDTIPO_ARTICULO WHERE ar.IDARTICULO=idarticulo; IF tip_arti='BEBIDA' THEN select (dea.precio_compra*1.50) into precio_venta from detalle_entrada_articulo dea where dea.articulo_idarticulo=idarticulo; ELSE precio_venta:=0.0; END IF; RETURN precio_venta; END;
select f_precio_venta(1) from dual ;
NUMERO DE VENTAS DE UN DIA ESPECIFICO
CREATE OR REPLACE FUNCTION f_ventas_de_un_dia(fecha date) return number IS numero_ventas number; BEGIN select count(idcomprobante_pago) into numero_ventas from comprobante_pago where (SELECT SYSDATE FROM DUAL)=fecha; RETURN numero_ventas; END;
select f_ventas_de_un_dia('12/12/12') FROM DUAL;
VISTAS
COMSUMOS MAYORES A 120 SOLES DEL TIPO COMENSAL FIDELIZADO create or replace view v_comsumos as select co.idcomensal AS IDCOMENSAL,co.nombres AS NOMBRES,tc.nombre AS TIPO_COMENSAL,cp.total AS TOTAL_COMPROBANTE from comensal co inner join comprobante_pago cp on co.IDCOMENSAL=cp.IDCOMENSAL inner join tipo_comensal tc on co.TIPO_COMENSAL_IDTIPO_COMENSAL=tc.idtipo_comensal where cp.total>120 and tc.nombre='FIDELIZADO';
select * from v_comsumos;
CONSUMOS DE LOS COMENSALES create or replace view v_comsumos_de_comensal as select co.idcomensal AS IDCOMENSAL,co.nombres AS NOMBRE,pr.nombre PRODUCTO from comensal co inner join pedido pe on co.idcomensal=pe.COMENSAL_IDCOMENSAL inner join detalle_pedido dp on pe.idpedido=dp.PEDIDO_IDPEDIDO inner join producto pr on dp.PRODUCTO_IDPRODUCTO=pr.IDPRODUCTO select * from v_comsumos_de_comensal;
PROVEEDORES POR CADA SEDE create or replace view v_provedores_por_sede as select se.nombre as sede, pro.nombre as proveedor, pro.razon_social from sede se inner join proveedor pro on se.idsede=pro.SEDE_IDSEDE;