/* Es importante eliminar y crear las tablas historicas y temporales de 
operacioncaja,movimientocaja,movimientoventa */



alter table caja
add cajero varchar2(10);

update caja
set cajero='001';

alter table caja
modify cajero varchar2(10) not null;

alter table operacioncaja
drop constraint SYS_C007634;

alter table cajero
drop column caja;

create table operacioncajares
as select * from operacioncaja;

update operacioncajares
set dia=dia+cajero/86400;

create table movimientocajares
as select * from movimientocaja;

create table movimientoventares
as select * from movimientoventa;

update movimientocajares
set dia=dia+cajero/86400
where ano_fiscal<=2001;

update movimientocajares
set dia=dia+cajero/86400
where ano_fiscal>2001;

update movimientoventares
set dia=dia+cajero/86400;

update movimientocajares
set cambiobase=1
where cambiobase<=0;

commit;

drop table operacioncaja cascade constraints;
drop table movimientocaja cascade constraints;
drop table movimientoventa cascade constraints;

insert into operacioncaja
(cia,caja,cajero,dia,ano_fiscal,per_proceso,tipo,saldoinicio,balancecaja,
sobracompensa,estado)
select cia,caja,cajero,dia,ano_fiscal,per_proceso,tipo,saldoinicio,balancecaja,
sobracompensa,estado from operacioncajares;

declare cursor xx is 
   select * from movimientocajares
   where ano_fiscal>1999;
   x number(8):=0;
begin
  for a in xx
  loop
     x:=x+1;
     if mod(x,10000)=0 then
        commit;
     end if;
     insert into movimientocaja
     (cia,caja,dia,concepto,referencia,ano_fiscal,per_proceso,
     observacion,monto,num_asiento,tipocambio,cambiobase,documento)
     values
     (a.cia,a.caja,a.dia,a.concepto,a.referencia,a.ano_fiscal,a.per_proceso,
     a.observacion,a.monto,a.num_asiento,a.tipocambio,a.cambiobase,a.documento);
  end loop;
  commit;
end;
/

declare cursor xx is 
  select * from movimientoventares;
   x number(8):=0;
begin
  for a in xx
  loop
     x:=x+1;
     if mod(x,1000)=0 then
        commit;
     end if;
     insert into movimientoventa
     (cia,caja,dia,departamento,concepto,ano_fiscal,
     per_proceso,monto,impuesto,num_asiento)
     values(a.cia,a.caja,a.dia,a.departamento,a.concepto,a.ano_fiscal,
     a.per_proceso,a.monto,a.impuesto,a.num_asiento);
  end loop;
  commit;
end;
/


insert into movimientocaja
(cia,caja,dia,concepto,referencia,ano_fiscal,per_proceso,
observacion,monto,num_asiento,tipocambio,cambiobase,documento)
select cia,caja,dia,concepto,referencia,ano_fiscal,per_proceso,
observacion,monto,num_asiento,tipocambio,cambiobase,documento 
from movimientocajares
where cia='001'
and ano_fiscal=2000;

update movimientoventares
set monto=monto*-1
where monto<0;

insert into movimientoventa
(cia,caja,dia,departamento,concepto,ano_fiscal,
per_proceso,monto,impuesto,num_asiento)
select cia,caja,dia,departamento,concepto,ano_fiscal,
per_proceso,monto,impuesto,num_asiento from movimientoventares;



commit;

