create or replace package cajaopers is

   Function Abrecaja(pcia in char, pcaja in varchar2, pcajero in varchar2, ptipo in varchar2) return date;

end;
/

create or replace package body cajaopers is

   function Abrecaja(pcia in char, pcaja in varchar2, pcajero in varchar2, ptipo in varchar2) return date is
      vdia     date:=to_date(to_char(sysdate,'DDMMYYYY HH24:MI'),'DDMMYYYY HH24:MI');
      vperiodo number(6):=calcgen.obtenerperiodo(pcia, trunc(vdia));
      pragma autonomous_transaction;
   begin
      insert into operacioncaja 
         (CIA,CAJA,DIA,CAJERO,ANO_FISCAL,PER_PROCESO,
          TIPO,SALDOINICIO,BALANCECAJA,SOBRACOMPENSA,ESTADO)
      values (pcia,pcaja,vdia,pcajero,trunc(vperiodo/100), mod(vperiodo,100),
              ptipo,0,0,0,'A');
      commit;
      return vdia;
   End;

End;
/
