nexg-erp / Forms
Refused
fmb_gledger, green-waste

all forms

fmb_gledger: 4 programs convert in part

Shortest first. Left, the PL/SQL as the form holds it. Right, the clauses in the vocabulary’s spelling and, under them, each refused statement with the converter’s reason. 4 of them are program units, headed on unit: a unit’s refusals belong to the unit and are finished there once, and a caller that inlined one links to it rather than asking for the same work again.

1. fmb_gledgeron unit FN_FIND_PREV_PERIODgreen-waste
What you havePROGRAM-UNIT
FUNCTION fn_find_prev_period (p_period IN VARCHAR2)
     RETURN VARCHAR2 IS
     v_quarter       NUMBER;
     v_month         NUMBER;
     v_prev_period   VARCHAR2 (4) := '####';
BEGIN
     v_quarter := SUBSTR (p_period, 2, 1);
     v_month := SUBSTR (p_period, 4, 1);

     IF v_quarter = 1 THEN
          IF v_month BETWEEN 2 AND 3 THEN
               v_prev_period :=
                    'q' || TO_CHAR (v_quarter) || 'm'
                    || TO_CHAR (v_month - 1);
          END IF;
     ELSIF v_quarter BETWEEN 2 AND 4 THEN
          IF v_month = 1 THEN
               v_prev_period := 'q' || TO_CHAR (v_quarter - 1) || 'm3';
          ELSIF v_month BETWEEN 2 AND 3 THEN
               v_prev_period :=
                    'q' || TO_CHAR (v_quarter) || 'm'
                    || TO_CHAR (v_month - 1);
          ELSE
               show_message ('req_alert', 'wrong period entry');
          END IF;
     ELSE
          show_message ('req_alert', 'wrong period entry');
     END IF;

     RETURN (v_prev_period);
END;
What you getClause Rule Language
on unit FN_FIND_PREV_PERIOD(P_PERIOD):    warn "wrong period entry" when ((not (substr(ARG.P_PERIOD, 2, 1) = 1) and ((substr(ARG.P_PERIOD, 2, 1) >= 2) and (substr(ARG.P_PERIOD, 2, 1) <= 4))) and not (substr(ARG.P_PERIOD, 4, 1) = 1)) and not ((substr(ARG.P_PERIOD, 4, 1) >= 2) and (substr(ARG.P_PERIOD, 4, 1) <= 3))    warn "wrong period entry" when not (substr(ARG.P_PERIOD, 2, 1) = 1) and not ((substr(ARG.P_PERIOD, 2, 1) >= 2) and (substr(ARG.P_PERIOD, 2, 1) <= 4))
# 1 statement did not convert.#   line 30
#   RETURN (v_prev_period);
#   reason: this RETURN gives the local V_PREV_PERIOD, which 3 statements of one branch above it write, in no single chain of arms, so what it holds here depends on which path ran. What the function returns is therefore not stated

2 clauses converted, 1 statement refused

2. fmb_gledgeron unit LOAD_PAYVOUCHgreen-waste
What you havePROGRAM-UNIT
PROCEDURE Load_PayVouch IS
  Cursor Curpayslip Is Select Paysliph_Id,Paysliph_Emp_Code,Paysliph_Divn_Code,Paysliph_Dept_Code,Paysliph_Pay_Type,
  Payslipc_Main_Acnt_Code,Payslipd_Id,Payslipd_Curr_Code,Payslipd_Curr_Rate,Payslipd_Lc_Amt,Payslipd_Fc_Amt,Payslipd_Desc 
  From T_Payslip_Head,T_Payslip_Detail,M_Payslip_Company
  Where Payslipd_Paysliph_Id =Paysliph_Id 
  And   Payslipc_Payslip_Code = Payslipd_Payslip_Code
  And   Payslipc_Comp_Code  =:Global.Company
  And   Paysliph_Comp_Code =:Global.Company
  And   Paysliph_Ayr_Code =Fn_Get_Ayr_Code(:Global.Company, 'C')
  And   Paysliph_Barcode = :Barcode
  And   Payslipd_Td_Id is Null
  And   Nvl(Paysliph_Fin_Status,'N') ='N';

    V_Count  Number;
    V_Count1 Number;
    V_Cnt    Number;
    V_Divn_Code Varchar2(10);
    V_Dept_Code Varchar2(10);
    V_Anly_Code Varchar2(10);
    V_Txn_Flag Varchar2(10);
    V_Txn_Type Varchar2(10);
    V_Main_Account Varchar2(10);  
    
  BEGIN
       :Global.Load_Flag :='Y';
   Go_Block('T_Cur_Trans_Detail');
         First_Record;
        Loop
           If :System.Last_Record='TRUE' Then
            Exit;
           Else
             Next_Record;
           End If;
        End Loop;
        If :Td_Main_Acnt_Code is Not Null Then
            Next_Record;
        End If;
                  
        For Cur In Curpayslip Loop
                If Curpayslip%Notfound Then
                    Exit;
                Else
                        V_Divn_Code := Cur.Paysliph_Divn_Code;
                        V_Dept_Code := Cur.Paysliph_Dept_Code;
                        V_Anly_Code := Null;
                          
                                
                  :Td_Main_Acnt_Code     :=Cur.Payslipc_Main_Acnt_Code;
                  :Td_Anly_Code_1        :=V_Anly_Code;
                  :Td_Divn_Code          :=V_Divn_Code;
                  :Td_Dept_Code          :=V_Dept_Code;
                  :Td_Curr_Code          :=Cur.Payslipd_Curr_Code;
                  :Curr_Rate             :=Cur.Payslipd_Curr_Rate;
                  :Td_Fc_Amt             :=Cur.Payslipd_Fc_Amt;
                  :Td_Lc_Amt             :=Cur.Payslipd_Lc_Amt;
                  :Td_Seq_No             := To_Number( :System.Cursor_Record);
                  :Doc_Id                :=Cur.PayslipD_Id;
                If Cur.Paysliph_Pay_Type ='REC' Then
                    :Td_Doc_Drcr_Flag    :='C';
                Else
                    :Td_Doc_Drcr_Flag    :='D';
                End If;    
                  :Td_Desc           :=Cur.Payslipd_Desc;
                  :Hd_Doc_Id         :=Cur.Paysliph_Id;
                  Next_Record;
                    
                End If;
        End Loop;
        Previous_Record;
    --End If;  
     :Global.Load_Flag :='N';
END;
What you getClause Rule Language
on unit LOAD_PAYVOUCH:    set GLOBAL.LOAD_FLAG to 'Y'    go to T_CUR_TRANS_DETAIL    last record    next record when is_filled(TD_MAIN_ACNT_CODE)    previous record    set GLOBAL.LOAD_FLAG to 'N'
# 1 statement did not convert.#   line 39
#   For Cur In Curpayslip Loop
#                   If Curpayslip%Notfound Then
#                       Exit;
#                   Else
#                           V_Divn_Code := Cur.Paysliph_Divn_Code;
#                           V_Dept_Code := Cur.Paysliph_Dept_Code;
#                           V_Anly_Code := Null;
#                             
#                                   
#                     :Td_Main_Acnt_Code     :=Cur.Payslipc_Main_Acnt_Code;
#                     :Td_Anly_Code_1        :=V_Anly_Code;
#                     :Td_Divn_Code          :=V_Divn_Code;
#                     :Td_Dept_Code          :=V_Dept_Code;
#                     :Td_Curr_Code          :=Cur.Payslipd_Curr_Code;
#                     :Curr_Rate             :=Cur.Payslipd_Curr_Rate;
#                     :Td_Fc_Amt             :=Cur.Payslipd_Fc_Amt;
#                     :Td_Lc_Amt             :=Cur.Payslipd_Lc_Amt;
#                     :Td_Seq_No             := To_Number( :System.Cursor_Record);
#                     :Doc_Id                :=Cur.PayslipD_Id;
#                   If Cur.Paysliph_Pay_Type ='REC' Then
#                       :Td_Doc_Drcr_Flag    :='C';
#                   Else
#                       :Td_Doc_Drcr_Flag    :='D';
#                   End If;    
#                     :Td_Desc           :=Cur.Payslipd_Desc;
#                     :Hd_Doc_Id         :=Cur.Paysliph_Id;
#                     Next_Record;
#                       
#                   End If;
#           End Loop;
#   reason: it appends to T_CUR_TRANS_DETAIL and also writes T_CUR_TRANS_HEADER.HD_DOC_ID, and an append writes the record it appends and no other

6 clauses converted, 1 statement refused

3. fmb_gledgeron unit LOAD_PAYROLLgreen-waste
What you havePROGRAM-UNIT
PROCEDURE Load_Payroll IS
     Cursor CurPay Is    Select * from    ( 
         Select  Payh_Id,Payh_No, PayH_Dt,Emp_Anly_Code,Payd_Id,
         PayH_Divn_Code,PayH_Dept_Code,PayH_Emp_Code,Payd_Curr_Code,All_Main_Acnt,
         sum(Nvl(Payd_Actual_Amt,0)) Payd_Actual_Amt,PayH_Pay_Trans_Code,Allowance_Type
     From T_Emp_Pay_Head,t_Emp_Pay_Detail,M_Employee,(Select distinct Allowance_Type,Allowance_Code,  
         Nvl(Link_Main_Acnt_Code,Allowance_Main_Acnt_Code) All_Main_Acnt  
         From M_Allowance,(Select Link_Main_Acnt_Code,Link_Allow_Code From M_Emp_Exp_Link Where Link_Comp_Code =:Global.Company
       --  and Link_Divn_Code = :Ref_Divn
         and Nvl(Link_Main_Acnt_Code,'*') not in('*')) 
         Where Allowance_Code = Link_Allow_Code(+)
     ) 
     Where Payd_Payh_Id =Payh_Id
     and PayH_Emp_Code =Emp_Code
     and Payh_Comp_Code =:Global.Company
     --and Payh_divn_Code =:Ref_Divn
    -- and PayH_Pay_Trans_Code =:Ref_Txn
     and PayH_Barcode=:Barcode
     --and PayH_No = :Ref_No
     and Payd_Allowance_Code =Allowance_Code
     and Payd_Td_id is Null
     Group by Payh_Id,Payh_Dt, Payh_No,PayH_Divn_Code,PayH_Dept_Code,PayH_Emp_Code,Payd_Curr_Code,All_Main_Acnt,Emp_Anly_Code,Payd_Id,PayH_Pay_Trans_Code,Allowance_Type);

    
  v_Count  Number;
  v_Count1 Number;
  v_Cnt    Number;
  v_divn_code Varchar2(10);
  v_dept_code Varchar2(10);
  v_Anly_Code Varchar2(10);
  v_Txn_Flag Varchar2(10);
  v_Txn_Type Varchar2(10);
  v_Group   Varchar2(10);
  
Begin
  v_Count :=0;
 -- Select Count(*) Into v_Count from M_Pay_transaction
 -- Where Ptrans_code= :Ref_Txn;
 -- If v_Count >0 Then
 --   Select Ptrans_Group_Code Into v_Group from M_Pay_transaction
 --   Where Ptrans_code= :Ref_Txn;
 -- End If;  
   :Global.Load_Flag :='Y';
 -- If Nvl(v_Group,' ') In ('PAYSLIP','PAY-OTH') Then
    Go_Block('T_Cur_Trans_Detail');
    Clear_Block;
    First_Record;
  
    For Cur in CurPay loop
      If CurPay%NotFound Then
        Exit;
      Else
         v_divn_code := Cur.PayH_Divn_Code;
        v_dept_code := Cur.PayH_Dept_Code;
        v_Anly_Code := Cur.Emp_Anly_Code;

         Select Count(*) INTO v_Count From M_Analysis Where Anly_Code =Cur.Emp_Anly_Code;
        If Nvl(v_Count,0)= 0  Then
          Insert Into M_Analysis(Anly_Code,Anly_Name,Anly_Short_Name,Anly_Cr_User,Anly_Cr_Dt) 
          Select Emp_Anly_Code,Emp_Name,Substr(Emp_Short_Name,1,20),:Global.User,Sysdate From M_Employee
          Where Emp_Anly_Code =Cur.Emp_Anly_Code ;
          Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
          Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate);
        Else
          Select Count(*) INTO v_Cnt From M_Analysis_company Where Acomp_Anly_Code =Cur.Emp_Anly_Code
          and Acomp_Comp_Code =:Global.Company;
          If Nvl(v_Cnt,0) =0 Then
             Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
             Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate); 
          End If;    
        End If;         

        :Td_Main_Acnt_Code :=Cur.All_Main_Acnt;
        :Td_Anly_code_1     :=v_Anly_Code;
        :Td_Divn_Code      :=v_divn_code;
        :Td_Dept_Code       :=v_dept_code;
        :Td_Curr_Code      :=Cur.Payd_Curr_Code;
        :Td_Fc_Amt          :=Cur.Payd_Actual_Amt ;
        :Td_Lc_Amt          :=Cur.Payd_Actual_Amt ;
        :Td_Seq_No := to_number( :System.Cursor_Record);
        If Cur.Allowance_Type ='E' Then
           :Td_Doc_DrCr_Flag  :='D';
        Else
          :Td_Doc_DrCr_Flag  :='C';
          End If;
        :Td_Desc           :=Null;
        :Doc_Id            :=Cur.Payd_Id;
        :Ref_Doc_Txn       := Cur.PayH_Pay_Trans_Code;
        
         Next_Record;
        
      End If;
    End Loop;
--  End If;  
  :Global.Load_Flag :='N';
End;
What you getClause Rule Language
on unit LOAD_PAYROLL:    set GLOBAL.LOAD_FLAG to 'Y'    go to T_CUR_TRANS_DETAIL    clear T_CUR_TRANS_DETAIL    first record    set GLOBAL.LOAD_FLAG to 'N'
# 1 statement did not convert.#   line 49
#   For Cur in CurPay loop
#         If CurPay%NotFound Then
#           Exit;
#         Else
#            v_divn_code := Cur.PayH_Divn_Code;
#           v_dept_code := Cur.PayH_Dept_Code;
#           v_Anly_Code := Cur.Emp_Anly_Code;
#   
#            Select Count(*) INTO v_Count From M_Analysis Where Anly_Code =Cur.Emp_Anly_Code;
#           If Nvl(v_Count,0)= 0  Then
#             Insert Into M_Analysis(Anly_Code,Anly_Name,Anly_Short_Name,Anly_Cr_User,Anly_Cr_Dt) 
#             Select Emp_Anly_Code,Emp_Name,Substr(Emp_Short_Name,1,20),:Global.User,Sysdate From M_Employee
#             Where Emp_Anly_Code =Cur.Emp_Anly_Code ;
#             Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
#             Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate);
#           Else
#             Select Count(*) INTO v_Cnt From M_Analysis_company Where Acomp_Anly_Code =Cur.Emp_Anly_Code
#             and Acomp_Comp_Code =:Global.Company;
#             If Nvl(v_Cnt,0) =0 Then
#                Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
#                Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate); 
#             End If;    
#           End If;         
#   
#           :Td_Main_Acnt_Code :=Cur.All_Main_Acnt;
#           :Td_Anly_code_1     :=v_Anly_Code;
#           :Td_Divn_Code      :=v_divn_code;
#           :Td_Dept_Code       :=v_dept_code;
#           :Td_Curr_Code      :=Cur.Payd_Curr_Code;
#           :Td_Fc_Amt          :=Cur.Payd_Actual_Amt ;
#           :Td_Lc_Amt          :=Cur.Payd_Actual_Amt ;
#           :Td_Seq_No := to_number( :System.Cursor_Record);
#           If Cur.Allowance_Type ='E' Then
#              :Td_Doc_DrCr_Flag  :='D';
#           Else
#             :Td_Doc_DrCr_Flag  :='C';
#             End If;
#           :Td_Desc           :=Null;
#           :Doc_Id            :=Cur.Payd_Id;
#           :Ref_Doc_Txn       := Cur.PayH_Pay_Trans_Code;
#           
#            Next_Record;
#           
#         End If;
#       End Loop;
#   reason: it selects *, which a row cannot be read by a name

5 clauses converted, 1 statement refused

4. fmb_gledgeron unit LOAD_EXPENSEgreen-waste
What you havePROGRAM-UNIT
PROCEDURE Load_Expense IS
    Cursor C1 Is Select Expd_Id,Expd_Emp_Code,Emp_Name,Exph_Comp_Code,Exph_Divn_Code,Exph_Dept_Code,Expd_Comp_Code,
    Expd_Divn_Code,Expd_Dept_Code,Expd_Main_Acnt_Code,Expd_Curr_Code,Expd_Lc_Amt,Emp_Anly_Code,Expd_Exp_Dt,Expd_Iss_Dt,
    Expd_Doc_No,Expd_Doc_Type_Code,Expd_Allowance_Code,Allowance_Name 
    From T_Emp_Exp_Head,T_Emp_Exp_Detail,M_Employee, M_Allowance 
    Where Expd_Exph_Id =Exph_Id
    And Expd_Emp_Code =Emp_Code
    And Allowance_Code=Expd_Allowance_Code
    And Exph_Comp_Code =:Global.Company
    And Exph_Ayr_Code =Fn_Get_Ayr_Code(:Global.Company, 'C')
    And Exph_Barcode=:Barcode
    And Expd_Pay_Mode ='V'
    And Nvl(Expd_Fin_Status,'N') ='N';

    V_Count  Number;
    V_Count1 Number;
    V_Cnt    Number;
    V_Divn_Code Varchar2(10);
    V_Dept_Code Varchar2(10);
    V_Anly_Code Varchar2(10);
    V_Txn_Flag Varchar2(10);
    V_Txn_Type Varchar2(10);
    V_Main_Account Varchar2(10); 
    
BEGIN
     :Global.Load_Flag :='Y';
        Go_Block('T_Cur_Trans_Detail');
       Clear_Block;
       First_Record;
       
        For Cur In C1 Loop
            If C1%Notfound Then
                Exit;
            Else
                 If Cur.Expd_Iss_Dt Is Not Null And Cur.Expd_Exp_Dt Is Null Then
                  Show_Message('Alert1', 'Error,Document expiry not updated');
                Raise Form_Trigger_Failure;
                End If;
                
          Select Count(*) Into V_Count1 
          From M_Emp_Documents
          Where  Doc_No = Cur.Expd_Doc_No
          And Doc_Emp_Code =Cur.Expd_Emp_Code
          And Doc_Type_Code=Cur.Expd_Doc_Type_Code
          And Doc_Exp_Dt =Cur.Expd_Exp_Dt;
          
          If V_Count1 > 0 Then
                Show_Message('Alert1', 'Error,Document expiry already updated');
                  Raise Form_Trigger_Failure;
          End If;
                    V_Divn_Code := Cur.Exph_Divn_Code;
                    V_Dept_Code := Cur.Exph_Dept_Code;
                    V_Anly_Code := Cur.Emp_Anly_Code;      
                
                /*Added by Janisha on 14-04-2013 to get the value in :mand_anal_code*/
                  Select Count(*) Into V_Count From M_Analysis Where Anly_Code =Cur.Emp_Anly_Code;
                 If Nvl(V_Count,0)= 0  Then
                    Insert Into M_Analysis(Anly_Code,Anly_Name,Anly_Short_Name,Anly_Cr_User,Anly_Cr_Dt) 
                    Select Emp_Anly_Code,Substr(Emp_Name,1,40),Substr(Emp_Short_Name,1,20),:Global.User,Sysdate From M_Employee
                    Where Emp_Anly_Code =Cur.Emp_Anly_Code ;
                    Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
                    Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate);
                Else
                    Select Count(*) Into V_Cnt From M_Analysis_Company Where Acomp_Anly_Code =Cur.Emp_Anly_Code
                    And Acomp_Comp_Code =:Global.Company;
                    If Nvl(V_Cnt,0) =0 Then
                       Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
                     Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate); 
                    End If;        
                End If;    

                 If Cur.Expd_Comp_Code = :Global.Company Then
                      :Td_Main_Acnt_Code :=Cur.Expd_Main_Acnt_Code;
                 Else 
                       v_Cnt :=0;
                       Select count(*) into v_Cnt From   
                         M_Emp_Exp_Link, M_Allowance
                        Where Link_Allow_Code = Cur.Expd_Allowance_Code 
                        And Allowance_Code = Cur.Expd_Allowance_Code 
                        And Link_Comp_Code = Cur.Expd_Comp_Code
                        And Link_Divn_Code = Cur.Expd_Divn_Code; 
 
                      If v_Cnt>0 Then     
                        Select Distinct Link_Main_Acnt_Code Into V_Main_Account From M_Emp_Exp_Link, M_Allowance
                        Where Link_Allow_Code = Cur.Expd_Allowance_Code 
                        And Allowance_Code = Cur.Expd_Allowance_Code 
                        And Link_Comp_Code = Cur.Expd_Comp_Code
                        And Link_Divn_Code = Cur.Expd_Divn_Code; 
                      Else
                         Show_Message('Alert1', 'Main account-Expense link not defined for this company');
                         Raise Form_Trigger_Failure;                   
                      End If;                      
                      :Td_Main_Acnt_Code :=V_Main_Account;    
                 End If;           

          --    :Td_Main_Acnt_Code :=Cur.Expd_Main_Acnt_Code;
                :Td_Anly_Code_1         :=V_Anly_Code;
                If Cur.Expd_Comp_Code = :Global.Company Then
                   :Td_Divn_Code           :=Cur.Expd_Divn_Code;
                   :Td_Dept_Code           :=Cur.Expd_Dept_Code;
                Else
                   :Td_Divn_Code           :=Cur.ExpH_Divn_Code;
                   :Td_Dept_Code           :=Cur.ExpH_Dept_Code;
                End If;
                
                :Td_Curr_Code           :=Cur.Expd_Curr_Code;
                :Td_Fc_Amt              :=Cur.Expd_Lc_Amt;
                :Td_Lc_Amt              :=Cur.Expd_Lc_Amt;
                :Td_Seq_No := To_Number( :System.Cursor_Record);
                :Td_Doc_Drcr_Flag       :='D';
                :Td_Desc                :=Cur.Allowance_Name;
                :Doc_Id                 :=Cur.Expd_Id;
                 Next_Record;                
           End If;
        End Loop;
         Previous_Record;
   :Global.Load_Flag :='N';
END;
What you getClause Rule Language
on unit LOAD_EXPENSE:    set GLOBAL.LOAD_FLAG to 'Y'    go to T_CUR_TRANS_DETAIL    clear T_CUR_TRANS_DETAIL    first record    previous record    set GLOBAL.LOAD_FLAG to 'N'
# 1 statement did not convert.#   line 31
#   For Cur In C1 Loop
#               If C1%Notfound Then
#                   Exit;
#               Else
#                    If Cur.Expd_Iss_Dt Is Not Null And Cur.Expd_Exp_Dt Is Null Then
#                     Show_Message('Alert1', 'Error,Document expiry not updated');
#                   Raise Form_Trigger_Failure;
#                   End If;
#                   
#             Select Count(*) Into V_Count1 
#             From M_Emp_Documents
#             Where  Doc_No = Cur.Expd_Doc_No
#             And Doc_Emp_Code =Cur.Expd_Emp_Code
#             And Doc_Type_Code=Cur.Expd_Doc_Type_Code
#             And Doc_Exp_Dt =Cur.Expd_Exp_Dt;
#             
#             If V_Count1 > 0 Then
#                   Show_Message('Alert1', 'Error,Document expiry already updated');
#                     Raise Form_Trigger_Failure;
#             End If;
#                       V_Divn_Code := Cur.Exph_Divn_Code;
#                       V_Dept_Code := Cur.Exph_Dept_Code;
#                       V_Anly_Code := Cur.Emp_Anly_Code;      
#                   
#                    
#                     Select Count(*) Into V_Count From M_Analysis Where Anly_Code =Cur.Emp_Anly_Code;
#                    If Nvl(V_Count,0)= 0  Then
#                       Insert Into M_Analysis(Anly_Code,Anly_Name,Anly_Short_Name,Anly_Cr_User,Anly_Cr_Dt) 
#                       Select Emp_Anly_Code,Substr(Emp_Name,1,40),Substr(Emp_Short_Name,1,20),:Global.User,Sysdate From M_Employee
#                       Where Emp_Anly_Code =Cur.Emp_Anly_Code ;
#                       Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
#                       Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate);
#                   Else
#                       Select Count(*) Into V_Cnt From M_Analysis_Company Where Acomp_Anly_Code =Cur.Emp_Anly_Code
#                       And Acomp_Comp_Code =:Global.Company;
#                       If Nvl(V_Cnt,0) =0 Then
#                          Insert Into M_Analysis_Company(Acomp_Comp_Code,Acomp_Anly_Code,Acomp_Cr_User,Acomp_Cr_Dt) 
#                        Values (:Global.Company,Cur.Emp_Anly_Code,:Global.User,Sysdate); 
#                       End If;        
#                   End If;    
#   
#                    If Cur.Expd_Comp_Code = :Global.Company Then
#                         :Td_Main_Acnt_Code :=Cur.Expd_Main_Acnt_Code;
#                    Else 
#                          v_Cnt :=0;
#                          Select count(*) into v_Cnt From   
#                            M_Emp_Exp_Link, M_Allowance
#                           Where Link_Allow_Code = Cur.Expd_Allowance_Code 
#                           And Allowance_Code = Cur.Expd_Allowance_Code 
#                           And Link_Comp_Code = Cur.Expd_Comp_Code
#                           And Link_Divn_Code = Cur.Expd_Divn_Code; 
#    
#                         If v_Cnt>0 Then     
#                           Select Distinct Link_Main_Acnt_Code Into V_Main_Account From M_Emp_Exp_Link, M_Allowance
#                           Where Link_Allow_Code = Cur.Expd_Allowance_Code 
#                           And Allowance_Code = Cur.Expd_Allowance_Code 
#                           And Link_Comp_Code = Cur.Expd_Comp_Code
#                           And Link_Divn_Code = Cur.Expd_Divn_Code; 
#                         Else
#                            Show_Message('Alert1', 'Main account-Expense link not defined for this company');
#                            Raise Form_Trigger_Failure;                   
#                         End If;                      
#                         :Td_Main_Acnt_Code :=V_Main_Account;    
#                    End If;           
#   
#              
#                   :Td_Anly_Code_1         :=V_Anly_Code;
#                   If Cur.Expd_Comp_Code = :Global.Company Then
#                      :Td_Divn_Code           :=Cur.Expd_Divn_Code;
#                      :Td_Dept_Code           :=Cur.Expd_Dept_Code;
#                   Else
#                      :Td_Divn_Code           :=Cur.ExpH_Divn_Code;
#                      :Td_Dept_Code           :=Cur.ExpH_Dept_Code;
#                   End If;
#                   
#                   :Td_Curr_Code           :=Cur.Expd_Curr_Code;
#                   :Td_Fc_Amt              :=Cur.Expd_Lc_Amt;
#                   :Td_Lc_Amt              :=Cur.Expd_Lc_Amt;
#                   :Td_Seq_No := To_Number( :System.Cursor_Record);
#                   :Td_Doc_Drcr_Flag       :='D';
#                   :Td_Desc                :=Cur.Allowance_Name;
#                   :Doc_Id                 :=Cur.Expd_Id;
#                    Next_Record;                
#              End If;
#           End Loop;
#   reason: it reads a row per iteration, and a per-row check source belongs to the for each: the clause carries a lookup this converter does not yet build (crl-loops.md operation 1)

6 clauses converted, 1 statement refused