-- Para verificar los totales en el articulo
select cod_bodega, cod_lote, can_existe, cos_total
from inv_lote_artic_bodega
where cod_articulo='110050';


-- Chequeo de totales acumulados (lo hizo marcosv)
drop table xx;
create table xx as 
select  a.cod_cia,a.sucursal,a.cod_bodega,a.cod_articulo,b.ano_fiscal,b.per_proceso,
c.clase_movto,sum(a.can_articulo) cantidad,sum(a.SUB_TOTAL) monto
from inv_detmovimiento a,inv_encabmovimiento b,inv_concepmovto c
where a.cod_cia   = b.cod_cia
and   a.sucursal  = b.sucursal
and   a.tip_movto = b.tip_movto
and   a.cod_movto = b.cod_movto
and   a.num_docto = b.num_docto
and   a.cod_cia   = c.cod_cia
and   a.tip_movto = c.tip_Movto
and   a.cod_movto = c.cod_movto
--and   trunc(b.fec_movto) between to_date('01/06/2004','dd/mm/yyyy')
--and   to_date('30/06/2004','dd/mm/yyyy')
--and   b.ano_fiscal=2004 
--and   b.per_proceso=9
and   b.estado    = 'D'
group by a.cod_cia,a.sucursal,a.cod_bodega,a.cod_articulo,
b.ano_fiscal,b.per_proceso,c.clase_movto;


select a.clase_movto, a.cod_articulo,a.cantidad,a.monto,b.cantidad canxx,b.monto monxx
from inv_acum_periodo a,xX b
where a.cod_cia=b.cod_cia
and   a.sucursal=b.sucursal
and   a.cod_bodega=b.cod_Bodega
and   a.clase_movto=b.clase_movto
and   a.cod_articulo=b.cod_articulo
and   a.ano_fiscal=b.ano_fiscal
and   a.per_proceso=b.per_proceso
--and   a.ano_fiscal=2006
--and   a.per_proceso=5
and   b.monto-a.monto!=0;

declare 
   cursor difs is 
   select a.cod_cia, a.sucursal, a.cod_bodega, a.clase_movto, a.cod_articulo,
          a.ano_fiscal, a.per_proceso, b.cantidad,b.monto
   from inv_acum_periodo a,xX b
   where a.cod_cia=b.cod_cia
   and   a.sucursal=b.sucursal
   and   a.cod_bodega=b.cod_Bodega
   and   a.clase_movto=b.clase_movto
   and   a.cod_articulo=b.cod_articulo
   and   a.ano_fiscal=b.ano_fiscal
   and   a.per_proceso=b.per_proceso
   and   a.ano_fiscal=2006 
   and   a.per_proceso=4
   and   b.monto-a.monto!=0;
begin
   for d in difs
   loop
      update inv_acum_periodo
         set cantidad=d.cantidad, monto=d.monto
      where cod_cia=d.cod_cia
        and sucursal=d.sucursal
        and cod_bodega=d.cod_bodega
        and clase_movto=d.clase_movto
        and cod_articulo=d.cod_articulo
        and ano_fiscal=d.ano_fiscal
        and per_proceso=d.per_proceso;
   end loop;
   commit;
end;
/

drop table xy;
create table xy  as
select  b.cia cod_cia,b.sucursal,b.bodega cod_bodega,b.articulo cod_articulo,
2004 ano_fiscal,4 per_proceso,'SV' clase_movto,
sum(b.cantidad) cantidad,sum(b.costo*b.cantidad) monto
from venfactura a,vendetfactura b
where a.cia=b.cia
and   a.sucursal=b.sucursal
and   a.documento=b.documento
and   trunc(a.fecha) between to_date('01/01/2004','dd/mm/yyyy')
and   to_date('31/01/2004','dd/mm/yyyy')
and   a.estado='A'
group by b.cia,b.sucursal,b.bodega,b.articulo,2004,4,'SV';


select a.cod_articulo,a.cantidad,a.monto,b.cantidad canxx,b.monto monxx
from inv_acum_periodo a,xy b
where a.cod_cia=b.cod_cia
and   a.sucursal=b.sucursal
and   a.cod_bodega=b.cod_Bodega
and   a.clase_movto=b.clase_movto
and   a.cod_articulo=b.cod_articulo
and   a.ano_fiscal=2004
and   a.per_proceso=4
and   b.monto-a.monto>10;




-- Cambia el costo de las ventas en dolares.
declare cursor xx is 
   select a.documento,a.moneda,a.tipocambio,a.cambiobase
   from venfactura a
   where a.cia='001'
   and   a.sucursal='001'
   and   trunc(a.fecha)>=to_date('01/11/2003','dd/mm/yyyy')
   and   a.moneda<>'CL'
   order by a.fecha;
begin
  for a in xx loop
    update vendetfactura
    set costo=costo/a.cambiobase
    where cia='001'
    and   sucursal='001'
    and   documento=a.documento
    and   costo>precio;
  end loop;
end;



select a.cod_articulo,a.clase_movto,a.monto,b.monto monxx,a.monto-b.monto dife
from inv_acum_periodo a,xx b
where a.cod_cia=b.cod_cia
and   a.sucursal=b.sucursal
and   a.clase_movto=b.clase_movto
and   a.cod_articulo=b.cod_articulo
and   a.cod_bodega=b.cod_bodega
and   a.ano_fiscal=2004
and   a.per_proceso=9
and   b.ano_fiscal=2004
and   b.per_proceso=9
and   a.monto<>b.monto
and   a.cod_bodega='004';


select cod_lote, can_apartado, can_existe 
from inv_lote_artic_bodega
where cod_bodega='700' and cod_articulo='7441117240508'
and cod_lote='B';


-- Costos inconsistentes
select cod_bodega, cod_articulo, cod_lote, can_existe, cos_total
from inv_lote_artic_bodega
where (cos_total<0) or (cos_total>0 and can_existe=0) or (can_existe>0 and cos_total=0);

select tip_movto, can_articulo, sub_total
from inv_detmovimiento
where cod_articulo='105050' and cod_lote='V01/07' and cod_bodega='001'
order by tip_movto;

update inv_detmovimiento set sub_total=4500
where cod_articulo='105050' and cod_lote='V01/07'  and cod_bodega='001' and sub_total like '7935%';

