Saturday, May 25, 2013

PROCEDURE

/* Formatted on 2012/05/26 11:14 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PROCEDURE modsalheadfromexcel (
   P_Payrollmonthid      Number
)
IS
   AdjAmount   NUMBER;
   OldEmpno   NUMBER:=0;  
   msaladjcode number;
  
BEGIN  

   FOR msaladj IN (Select PAYROLLMONTHID,empno,EARNDEDUCD,sum(arrears)ARREARS,sum(RECOVERIES)RECOVERIES From Monthly_Saladj_Det_Temp Where Payrollmonthid=P_Payrollmonthid group by PAYROLLMONTHID,empno,EARNDEDUCD order by empno,EARNDEDUCD)
     
      LOOP                              
            if(OldEmpno=0  or  OldEmpno !=Msaladj.Empno) Then
               msaladjcode:=get_nextcode('monthly_saladj','MSALADJCD','10');
      --            dbms_output.put_line('Msaladj.Empno: '||OldEmpno);             
               Insert into monthly_saladj(MSALADJCD,PAYROLLMONTHID,EMPNO) values(msaladjcode,msaladj.PAYROLLMONTHID,msaladj.EMPNO);
            End If;
            AdjAmount:=msaladj.ARREARS - msaladj.RECOVERIES;
            If (msaladj.ARREARS != 0 or msaladj.RECOVERIES != 0) Then
     --       dbms_output.put_line('Msaladj.Empno: '||Msaladj.Empno||' &&AdjAmount : ' ||AdjAmount);
            --Insert into Monthly_Saladj_Det(MSALADJCD,EARNDEDUCD,ADJAMT,ARREARS,RECOVERIES) values(msaladjcode,msaladj.EARNDEDUCD,AdjAmount,msaladj.ARREARS,msaladj.RECOVERIES);
            Insert into Monthly_Saladj_Det(MSALADJCD,EARNDEDUCD,ADJAMT,ARREARS,RECOVERIES) values(msaladjcode,msaladj.EARNDEDUCD,AdjAmount,msaladj.ARREARS,msaladj.RECOVERIES);
            End If;
            OldEmpno:=Msaladj.Empno;
            commit;           
      END LOOP;
         Delete from Monthly_Saladj_Det_Temp Where Payrollmonthid=P_Payrollmonthid;
         commit;  
END;
/

No comments:

Post a Comment