prompt Removiendo vistas obsoletas!
drop view v_pedido;
drop view v_DETPEDIDO;
drop view v_VENFACTURA


create or replace view venvdetpedido as
 select a.CIA,a.SUCURSAL,a.DOCUMENTO,a.BODEGA,a.ARTICULO,b.AGENTEVENTA,
 a.PORCDESCUENTO,a.MEDIDA,a.CANTIDAD,a.PRECIO,a.IMPUESTO,a.TOTALLINEA,
 a.facturado,a.reservado,b.fecha,b.cliente,b.nombre, b.consignatario,
 b.estado
 from vendetpedido a,venpedido b
 where a.cia       = b.cia
 and   a.sucursal  = b.sucursal
 and   a.documento = b.documento;

create or replace view venvdetfactura as
 select a.CIA,a.SUCURSAL,a.DOCUMENTO,a.BODEGA,a.ARTICULO,a.AGENTEVENTA,b.nombre,
 a.PORCDESCUENTO,a.MEDIDA,a.CANTIDAD,a.COSTO,a.PRECIO,a.IMPUESTO,a.TOTALLINEA,
 a.SUCURSALREF,a.PEDIDOREF,b.fecha,b.dia,b.caja,b.cajero,b.cliente,b.moneda, b.tipo, b.estado
 from vendetfactura a,venfactura b
 where a.cia       = b.cia
 and   a.sucursal  = b.sucursal
 and   a.documento = b.documento
 and   b.estado    = 'A';

create or replace view venvdifPedido  as
select a.cia,a.sucursal,a.documento,a.cliente,a.fecha,a.agenteventa,
   a.nombre,a.moneda,a.estado,
   sum(b.totallinea) totallinea,
   sum(b.facturado*b.totallinea/b.cantidad) facturado,
   sum(b.totallinea- (b.facturado*b.totallinea/b.cantidad)) diferencia
from venpedido a,vendetpedido b
where a.cia=b.cia
and   a.sucursal=b.sucursal
and   a.documento=b.documento
group by a.cia,a.sucursal,a.documento,a.cliente,a.fecha,a.agenteventa,
      a.nombre,a.moneda,a.estado;


-- v_detpedido
create or replace view venvdetPedidores as
select a.cia,a.sucursal,a.documento,b.secuencia,a.cliente,a.fecha,a.agenteventa,
   a.nombre,a.moneda,c.estado,b.articulo,c.fecha vencimiento,b.descripcion,
   c.partida,C.llegada,b.cantidad,b.totallinea,c.voucher,c.guia,c.chofer,c.movil1,c.movil2, c.hora
from venpedido a,vendetpedido b,vendetreserva c
where a.cia=b.cia
and   a.sucursal=b.sucursal
and   a.documento=b.documento
and   b.cia=c.cia
and   b.sucursal=c.sucursal
and   b.documento=c.documento
and   b.secuencia=c.secuencia;


create or replace view venresfactura as
    select cia, sucursal, documento, caja, cajero, consignatario, tipo, fecha, dia,
           moneda, tipocambio, cambiobase, cliente, persona, linea, nombre,
           pago, agenteventa, estado, otroscargos,
           --CalcVen.TotalFac(cia, sucursal, documento) monto
           (select sum(costo) from vendetfactura d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) costo,
           (select sum(Dsc.Redondeo(Precio*porcDescuento/100, cantidad)) from vendetfactura d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) descuento,
           (select sum(impconsumo) from vendetfactura d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impconsumo,
           (select sum(impuesto) from vendetfactura d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impuesto,
           (select sum(totallinea) from vendetfactura d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) monto
from venfactura f;

create or replace view venresdevolucion as
    select cia, sucursal, documento, caja, cajero, tipo, fecha, dia,
           moneda, tipocambio, cambiobase, cliente, linea, nombre,
           factura, vale, agenteventa, estado, otroscargos,
           --CalcVen.TotalDev(cia, sucursal, documento) monto
           (select sum(impconsumo) from vendetdevolucion d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impconsumo,
           (select sum(impuesto) from vendetdevolucion d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impuesto,
           (select sum(totallinea) from vendetdevolucion d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) monto
from vendevolucion f;

create or replace view venresnota as
    select cia, sucursal, documento, tipo, caja, cajero, fecha, dia,
           moneda, tipocambio, cambiobase, cliente, linea, nombre,
           factura, vale, pago, agenteventa, estado, efecto, otroscargos,
           --CalcVen.TotalDev(cia, sucursal, documento) monto
           (select sum(impconsumo) from vendetnota d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impconsumo,
           (select sum(impuesto) from vendetnota d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impuesto,
           (select sum(totallinea) from vendetnota d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) monto
from vennota f;

create or replace view venrespedido as
    select cia, sucursal, documento, consignatario, tipo,clase, fecha, vencimiento,
           moneda, tipocambio, cambiobase, cliente, linea, nombre,
           agenteventa, estado, otroscargos,porcdescuento,
           --CalcVen.TotalPed(cia, sucursal, documento) monto
           (select sum(Dsc.Redondeo(Precio*porcDescuento/100, cantidad)) from vendetpedido d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) descuento,
           (select sum(impuesto) from vendetpedido d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) impuesto,
           (select sum(totallinea) from vendetpedido d
            where d.cia=f.cia and d.sucursal=f.sucursal and d.documento=f.documento) monto
from venpedido f;

create or replace view vendetfacturacargos as
select f.cia, f.sucursal, f.documento, f.caja, f.cajero, f.consignatario,
       f.moneda, f.tipocambio, f.cambiobase, f.cliente, f.persona, f.tipo, f.fecha, f.dia, f.estado,
       d.bodega, d.articulo, d.medida, d.cantidad, d.precio, d.agenteventa, 
       d.costo, d.impuesto, d.impconsumo, d.porcdescuento, d.totallinea,
       decode(f.otroscargos, 0, 0, f.otroscargos*d.totallinea/f.monto) cargos
from venresfactura f, vendetfactura d
where f.cia=d.cia
  and f.sucursal=d.sucursal
  and f.documento=d.documento
  and f.estado='A';

create or replace view vendetdevolucioncargos as
select f.cia, f.sucursal, f.documento, f.caja, f.cajero, f.factura, f.vale,
       f.moneda, f.tipocambio, f.cambiobase, f.cliente, f.tipo, f.fecha, f.dia, f.estado,
       d.bodega, d.articulo, d.medida, d.cantidad, d.agenteventa, 
       d.costo, d.impuesto, d.impconsumo, d.totallinea,
       decode(f.otroscargos, 0, 0, f.otroscargos*d.totallinea/f.monto) cargos
from venresdevolucion f, vendetdevolucion d
where f.cia=d.cia
  and f.sucursal=d.sucursal
  and f.documento=d.documento
  and f.estado='A';

create or replace view vendetnotacargos as
select f.cia, f.sucursal, f.documento, f.caja, f.cajero, f.factura, f.vale,
       f.moneda, f.tipocambio, f.cambiobase, f.cliente, f.tipo, f.fecha, f.dia,f.efecto, f.estado,
       d.bodega, d.articulo, d.agenteventa, 
       d.impuesto, d.impconsumo, d.totallinea,
       decode(f.otroscargos, 0, 0, f.otroscargos*d.totallinea/f.monto) cargos
from venresnota f, vendetnota d
where f.cia=d.cia
  and f.sucursal=d.sucursal
  and f.documento=d.documento
  and f.estado='A';

create or replace view venvpagovalores as
 select a.CIA,a.SUCURSAL,a.DOCUMENTO, b.cliente, b.agente, b.caja, b.cajero, b.dia,
    b.moneda, a.CONCEPTO, a.REFERENCIA, a.CUENTA, a.FECHA,a.DESCRIPCION,a.MONTO,b.estado
 from venpagovalores a, venpago b
 where a.cia       = b.cia
 and   a.sucursal  = b.sucursal
 and   a.documento = b.documento;

create or replace view venrescontpend as
	select cia, sucursal, documento, caja, cajero, tipo, fecha, 
	       dia, moneda, tipocambio, cambiobase, cliente, linea, nombre, pago, agenteventa, 'F' origen,
	       otroscargos, descuento, impconsumo, impuesto, monto
	from venresfactura
	where estado='A'
	and pago is null
	and linea is null
	UNION
	select cia, sucursal, documento, caja, cajero, tipo, fecha,
	       dia, moneda, tipocambio, cambiobase, cliente, linea, nombre, pago, agenteventa, 'N' origen,	
	       otroscargos, 0,impconsumo, impuesto, monto
	from venresnota n
	where estado='A'
	and efecto='D'
	and pago is null
	and linea is null;

create or replace view venvdetnota as
 select b.CIA,b.SUCURSAL,b.DOCUMENTO,b.tipo,b.caja,b.cajero,b.factura,b.fecha,
 	b.cliente, b.estado,
	a.secuencia,a.BODEGA,a.ARTICULO,a.AGENTEVENTA,
	a.IMPUESTO,a.ajuste,a.TOTALLINEA
 from vendetnota a,vennota b
 where a.cia       = b.cia
 and   a.sucursal  = b.sucursal
 and   a.documento = b.documento
 and   b.estado    = 'A'
 and   b.efecto	   = 'D';

Create or Replace View VenFactNot as
	select f.cia, f.sucursal, f.documento, f.tipo, f.caja, f.cajero,
	       f.dia, f.linea, f.fecha, f.cliente, f.persona,
	       f.moneda, f.tipocambio, f.cambiobase, f.nombre, f.estado, f.consignatario, d.bodega, d.articulo, 
	       d.agenteventa,d.porcdescuento,d.cantidad, d.costo, d.precio, 
	       d.impuesto, d.impconsumo, d.totallinea, f.descripcion, 'F' origen
	From   VenFactura f, VenDetFactura d
	Where  f.Cia	  = d.Cia
	And    f.Sucursal = d.Sucursal
	And    f.Documento= d.Documento
	Union All
	select n.cia, n.sucursal, n.documento, n.tipo, n.caja, n.cajero,
               n.dia,n.linea, n.fecha, n.cliente, Null persona,
	       n.moneda, n.tipocambio, n.cambiobase, n.nombre, n.estado, Null Consignatario, dn.bodega, dn.articulo,
               dn.agenteventa, 0, 0, 0, 0, dn.impuesto, dn.impconsumo, dn.totallinea, n.descripcion, 'ND' origen
	From   VenNota n, VenDetNota dn
	Where  n.Cia	  = dn.Cia
	And    n.Sucursal = dn.Sucursal
	And    n.Documento= dn.Documento
	And    n.efecto   = 'D';

-- insana
Create or Replace View VenResFactNot as
	select f.cia, f.sucursal, f.documento, f.tipo, f.caja, f.cajero,
	       f.dia, f.fecha, f.cliente, f.persona, f.estado, 
	       f.moneda, f.cargos otroscargos, f.consignatario, f.bodega, f.articulo, 
	       f.agenteventa,f.porcdescuento,f.cantidad, f.costo, f.precio,
	       f.impuesto, f.totallinea, 'F' origen
	From   VenDetFacturaCargos f
	Union All
	select dn.cia, dn.sucursal, dn.documento, dn.tipo, dn.caja, dn.cajero,
               dn.dia, dn.fecha, dn.cliente, Null persona, dn.estado,
	       dn.moneda, dn.cargos otroscargos, Null Consignatario, dn.bodega, dn.articulo,
               dn.agenteventa, 0,0,0,0,dn.impuesto, dn.totallinea, 'ND' origen
	From   VenDetNotaCargos dn
	Where    dn.efecto   = 'D';

Create or Replace View VenDevNot as
	select f.cia, f.sucursal, f.documento, f.tipo, f.caja, f.cajero,
	       f.dia,f.linea,f.factura, f.fecha, f.cliente, 
	       f.moneda, f.tipocambio, f.cambiobase, f.estado, d.bodega, d.articulo, 
	       d.agenteventa,d.cantidad, d.costo, d.impuesto, d.impconsumo, d.totallinea, 
               f.descripcion, 'D' origen
	From   VenDevolucion f, VenDetDevolucion d
	Where  f.Cia	  = d.Cia
	And    f.Sucursal = d.Sucursal
	And    f.Documento= d.Documento
	Union All
	select n.cia, n.sucursal, n.documento, n.tipo, n.caja, n.cajero,
               n.dia,n.linea, n.factura, n.fecha, n.cliente, 
	       n.moneda, n.tipocambio, n.cambiobase, n.estado, dn.bodega, dn.articulo,
               dn.agenteventa, 0, 0, dn.impuesto, dn.impconsumo,dn.totallinea, 
               n.descripcion, 'NC' origen
	From   VenNota n, VenDetNota dn
	Where  n.Cia	  = dn.Cia
	And    n.Sucursal = dn.Sucursal
	And    n.Documento= dn.Documento
	And    n.efecto   = 'C';

-- insana
Create or Replace View VenResDevNot as
	select f.cia, f.sucursal, f.documento, f.tipo, f.caja, f.cajero,
	       f.dia, f.factura, f.fecha, f.cliente, f.estado,
	       f.moneda, f.cargos otroscargos, f.bodega, f.articulo, 
	       f.agenteventa,f.cantidad, f.costo, f.impuesto, f.totallinea, 'D' origen
	From   VenDetDevolucionCargos f
	Union All
	select dn.cia, dn.sucursal, dn.documento, dn.tipo, dn.caja, dn.cajero,
               dn.dia, dn.factura, dn.fecha, dn.cliente, dn.estado,
	       dn.moneda, dn.cargos otroscargos, dn.bodega, dn.articulo,
               dn.agenteventa, 0, 0, dn.impuesto, dn.totallinea, 'NC' origen
	From   VenDetNotaCargos dn
	Where  dn.efecto   = 'C';

create or replace view venvresventa as
SELECT f.CIA, f.sucursal, f.CLIENTE, d.ARTICULO,
       estadisticas.periodo(f.cia, 'N', f.dia) AnoMes,
       a.cod_linea, a.DES_ARTICULO,
       d.MEDIDA, d.CANTIDAD, d.impuesto, d.TOTALLINEA
FROM venfactura f, vendetfactura d, inv_articulo a
where f.cia=d.cia
  and f.sucursal=d.sucursal
  and f.documento=d.documento
  and d.cia=a.cod_cia
  and d.articulo=a.cod_articulo;

---
--- agregadas 13/12/2007
--- CR

CREATE OR REPLACE FORCE VIEW VENTASXDEPTO
(CIA, DIA, DEPARTAMENTO, CONCEPTO, MONTO, 
 IMPUESTO)
AS 
select m.cia, m.dia, m.departamento, m.concepto, sum(monto) monto, sum (impuesto) impuesto
from MovimientoVenta m
group by m.cia, m.dia, m.departamento, m.concepto;

