-- Creacion de snapshots del pos por agente

define prefijo='NUEVO.'
define nombrets='DATOS'
define sufijo='@lanco'
define cia='''001'''
define sucursal='''001'''
define caja='''002'''
define agente='''02'''
set verify off

#SNAPSHOTS POR AGENTE
create snapshot GEN_CLIENTE
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.GEN_CLIENTE&sufijo c
      Where c.cod_cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cod_cliente);
create snapshot GEN_CLIE_AGENTE
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.GEN_CLIE_AGENTE&sufijo
      where cod_cia=&cia
        and sucursal=&sucursal
        and cod_agente=&agente;
create snapshot GEN_SOBREG_CLIENTE
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.GEN_SOBREG_CLIENTE&sufijo c
      Where c.cod_cia=&cia
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cod_cliente);

create snapshot CXC_ENC_PAGO_NOTA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_ENC_PAGO_NOTA&sufijo c
      Where c.cod_cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cod_cliente);

create snapshot CXC_DET_PAGO_NOTA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_DET_PAGO_NOTA&sufijo m
      where m.cod_cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.cxc_enc_pago_nota&sufijo c
                    Where c.cod_cia=&cia
                      and c.sucursal=&sucursal
                      and c.tip_doc=m.tip_doc
                      and c.num_doc=m.num_doc
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                 where a.cod_cia=&cia
                                   and a.sucursal=&sucursal
                                   and a.cod_agente=&agente
                                   and a.tipo_agente='VN'
                                   and a.cod_cliente=c.cod_cliente));

create snapshot CXC_CHEQUES
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_CHEQUES&sufijo m
      where m.cod_cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.cxc_enc_pago_nota&sufijo c
                    Where c.cod_cia=&cia
                      and c.sucursal=&sucursal
                      and c.tip_doc=m.tip_doc
                      and c.num_doc=m.num_doc
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                 where a.cod_cia=&cia
                                   and a.sucursal=&sucursal
                                   and a.cod_agente=&agente
                                   and a.tipo_agente='VN'
                                   and a.cod_cliente=c.cod_cliente));

create snapshot CXC_ENC_MOVIMIENTO
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_ENC_MOVIMIENTO&sufijo c
      Where c.cod_cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cod_cliente);

create snapshot CXC_OBLIGACION
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_OBLIGACION&sufijo m
      where m.cod_cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.cxc_enc_movimiento&sufijo c
                    Where c.cod_cia=&cia
                      and c.sucursal=&sucursal
                      and c.tip_doc=m.tip_doc
                      and c.num_doc=m.num_doc
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                 where a.cod_cia=&cia
                                   and a.sucursal=&sucursal
                                   and a.cod_agente=&agente
                                   and a.tipo_agente='VN'
                                   and a.cod_cliente=c.cod_cliente));

create snapshot CXC_CREDITO
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.CXC_CREDITO&sufijo c
      Where c.cod_cia=&cia
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cod_cliente);

-- Transacciones del POS
-- Versiones originales de venpedido y vendetpedido provocan columnas no deseadas
--create snapshot VENPEDIDO
--   tablespace  &nombrets
--   storage (initial 10K next 10K)
--   refresh fast
--   with primary key
--   for update 
--   as select * from &prefijo.VENPEDIDO&sufijo c
--      Where c.cia=&cia
--        and c.sucursal=&sucursal
--        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
--                    where a.cod_cia=&cia
--                      and a.sucursal=&sucursal
--                      and a.cod_agente=&agente
--                      and a.tipo_agente='VN'
--                      and a.cod_cliente=c.cliente);
--create snapshot VENDETPEDIDO
--   tablespace  &nombrets
--   storage (initial 10K next 10K)
--   refresh fast
--   with primary key
--   for update 
--   as select * from &prefijo.VENDETPEDIDO&sufijo m
--      Where m.cia=&cia
--        and m.sucursal=&sucursal
--        and exists (select 'x' from &prefijo.VENPEDIDO&sufijo c
--                    Where c.cia=&cia
--                      and c.sucursal=&sucursal
--                      and c.documento=m.documento
--                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
--                                  where a.cod_cia=&cia
--                                  and a.sucursal=&sucursal
--                                  and a.cod_agente=&agente
--                                  and a.tipo_agente='VN'
--                                  and a.cod_cliente=c.cliente));

-- Version corregida solo toma en cuenta los pedidos del agente
create snapshot VENPEDIDO
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update
   as select c.* from &prefijo.VENPEDIDO&sufijo c
      Where c.cia=&cia
        and c.sucursal=&sucursal
        and c.agenteventa=&agente;

create snapshot VENDETPEDIDO
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENDETPEDIDO&sufijo m
      Where m.cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.VENPEDIDO&sufijo c
                    Where c.cia=m.cia
                      and c.sucursal=m.sucursal
                      and c.documento=m.documento
                      and c.agenteventa=&agente);

create snapshot VENFACTURA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENFACTURA&sufijo c
      Where c.cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cliente);

create snapshot VENDETFACTURA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENDETFACTURA&sufijo m
      Where m.cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.VENFACTURA&sufijo c
                    Where c.cia=&cia
                      and c.sucursal=&sucursal
                      and c.documento=m.documento
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=c.cliente));

create snapshot VENDEVOLUCION
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENDEVOLUCION&sufijo c
      Where c.cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cliente);

create snapshot VENDETDEVOLUCION
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENDETDEVOLUCION&sufijo m
      Where m.cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.VENDEVOLUCION&sufijo c
                    Where c.cia=&cia
                      and c.sucursal=&sucursal
                      and c.documento=m.documento
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=c.cliente));

create snapshot VENNOTA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENNOTA&sufijo c
      Where c.cia=&cia
        and c.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                    where a.cod_cia=&cia
                      and a.sucursal=&sucursal
                      and a.cod_agente=&agente
                      and a.tipo_agente='VN'
                      and a.cod_cliente=c.cliente);

create snapshot VENDETNOTA
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENDETNOTA&sufijo m
      Where m.cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.VENNOTA&sufijo c
                    Where c.cia=&cia
                      and c.sucursal=&sucursal
                      and c.documento=m.documento
                      and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=c.cliente));


create snapshot  VENPARAMPRESUP
    tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.VENPARAMPRESUP&sufijo m
      Where m.cia=&cia;

create snapshot  VENPRESUPUESTO
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.VENPRESUPUESTO&sufijo m
      Where m.cia=&cia;

create snapshot  gen_mas_comision
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.gen_mas_comision&sufijo m
      Where m.cod_cia=&cia;

create snapshot  cxc_det_comision
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   as select * from &prefijo.cxc_det_comision&sufijo m
      Where m.cod_cia=&cia;

create snapshot  VENPRESCLIENTE
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.VENPRESCLIENTE&sufijo m
      Where m.cia=&cia
        and m.sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=m.cliente));

create snapshot  cxc_clicomision
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.cxc_clicomision&sufijo m
      Where m.cod_cia=&cia
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=m.cod_cliente));

create snapshot  vendetpresupuesto
   tablespace  &nombrets
   storage (initial 10K next 10K)
   refresh fast
   with primary key
   for update 
   as select * from &prefijo.vendetpresupuesto&sufijo m
      Where m.cia=&cia
        AND sucursal=&sucursal
        and exists (select 'x' from &prefijo.gen_clie_agente&sufijo a
                                  where a.cod_cia=&cia
                                  and a.sucursal=&sucursal
                                  and a.cod_agente=&agente
                                  and a.tipo_agente='VN'
                                  and a.cod_cliente=m.valor2));
