fmb_invoice: 55 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. 30 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.
hide_window('INVH_DOC_SELECTION');
next_item;on press of DOC_SELECTION_CANCEL: next item # 1 statement did not convert.# line 1 # hide_window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
1 clause converted, 1 statement refused
Declare
V_Window_Name Varchar(20);
Begin
Select Menu_Name Into V_Window_Name
From M_Menu
Where Menu_Code = :Parameter.Menu_Code;
Set_Window_Property('INVH_WIN',Title,V_Window_Name);
:Global.Msg_Flag := 0;
Init_Form;
:System.Message_Level := :Global.Message_Level;
End;on open: set GLOBAL.MSG_FLAG to 0 # 2 statements did not convert.# line 8 # Set_Window_Property('INVH_WIN',Title,V_Window_Name); # reason: a screen's title is the document's and the platform draws it, and every corpus site reads this one from a local the trigger does not state, so the window property is refused rather than folded into a verb# Select Menu_Name Into V_Window_Name # From M_Menu # Where Menu_Code = :Parameter.Menu_Code # reason: its query binds Parameter.Menu_Code, which this form has no field for
1 clause converted, 2 statements refused
If :InvH_Sman_Code Is Null Then
List_Values;
End If;
If Nvl(:Frm_En_Doc_Selection,'N') ='N' Then
:RADIO_DOC_SELECTION := Nvl(:Frm_Inv_Def_Refdoc_Txn_Type,'SO');
Go_Item('RADIO_DOC_SELECTION');
Else
Hide_Window('INVH_DOC_SELECTION');
GO_BLOCK('T_INV_ITEM');
End If;
on change of INVH_SMAN_CODE: open value help of INVH_SMAN_CODE when is_blank(INVH_SMAN_CODE) set RADIO_DOC_SELECTION to nvl(FRM_INV_DEF_REFDOC_TXN_TYPE, 'SO') when nvl(FRM_EN_DOC_SELECTION, 'N') = 'N' go to RADIO_DOC_SELECTION when nvl(FRM_EN_DOC_SELECTION, 'N') = 'N' go to T_INV_ITEM when not (nvl(FRM_EN_DOC_SELECTION, 'N') = 'N') # 1 statement did not convert.# line 9 # Hide_Window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
4 clauses converted, 1 statement refused
Declare
Rep_Url Varchar2(2000);
Host Varchar2(2000);
V_Count Number;
V_Count1 Number;
V_Id Number;
V_Type Varchar2(2);
v_url Varchar2(200);
Begin
v_url := :Frm_IMAGE_URL;
Insert Into T_Image_Load (Imgl_Id,Imgl_Doc_Code,Imgl_Doc_Name,Imgl_Load_Type,Imgl_Cr_User,Imgl_Cr_Date)
Values (Fn_Get_Next_Id('Emp_Image_Load'),:InvH_Loc_Code ||:InvH_Txn_Code||:InvH_No,:InvH_Cust_NAME,'N',:Global.User, Sysdate);
Standard.Commit;
Rep_Url :='http://'|| v_url ||'/Filescan.aspx?Code='||Fn_Get_Image_Id(:InvH_Loc_Code ||:InvH_Txn_Code||:InvH_No);
Web.Show_Document(Rep_Url,'_Blank');
message(Rep_Url);
End;on press of SCAN: call WRITE_T_IMAGE_LOAD_DD6C6309(INVH_LOC_CODE, INVH_TXN_CODE, INVH_NO, INVH_CUST_NAME, GLOBAL.USER) warn (('http://' || FRM_IMAGE_URL) || '/Filescan.aspx?Code=') || FN_GET_IMAGE_ID((INVH_LOC_CODE || INVH_TXN_CODE) || INVH_NO) # 2 statements did not convert.# line 13 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted# line 15 # Web.Show_Document(Rep_Url,'_Blank'); # reason: Web.Show_Document opens a URL and runs no report; the corpus sites that are not the delivery of a claimed run open a scanned image, which has no web equivalent
2 clauses converted, 2 statements refused
Declare
Rep_Url Varchar2(2000);
Host Varchar2(2000);
V_Count Number;
V_Count1 Number;
V_Id Number;
V_Type Varchar2(2);
v_url Varchar2(200);
Begin
v_url := :Frm_IMAGE_URL;
Insert Into T_Image_Load (Imgl_Id,Imgl_Doc_Code,Imgl_Doc_Name,Imgl_Load_Type,Imgl_Cr_User,Imgl_Cr_Date)
Values (Fn_Get_Next_Id('Emp_Image_Load'),:InvH_Loc_Code ||:InvH_Txn_Code||:InvH_No,:InvH_Cust_NAME,'P',:Global.User, Sysdate);
Standard.Commit;
Rep_Url :='http://'|| v_url ||'/Filescan.aspx?Code='||Fn_Get_Image_Id(:InvH_Loc_Code ||:InvH_Txn_Code||:InvH_No);
Web.Show_Document(Rep_Url,'_Blank');
message(Rep_Url);
End;on press of PREVIEW: call WRITE_T_IMAGE_LOAD_C7A2DA85(INVH_LOC_CODE, INVH_TXN_CODE, INVH_NO, INVH_CUST_NAME, GLOBAL.USER) warn (('http://' || FRM_IMAGE_URL) || '/Filescan.aspx?Code=') || FN_GET_IMAGE_ID((INVH_LOC_CODE || INVH_TXN_CODE) || INVH_NO) # 2 statements did not convert.# line 13 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted# line 15 # Web.Show_Document(Rep_Url,'_Blank'); # reason: Web.Show_Document opens a URL and runs no report; the corpus sites that are not the delivery of a claimed run open a scanned image, which has no web equivalent
2 clauses converted, 2 statements refused
FUNCTION FN_GET_INV_AMT(SUB_AMT IN NUMBER) RETURN Number IS v_Nett Number; BEGIN /* Select Sub_Amt + Decode(Nvl(:InvI_Vat_Incl_Price,'N'),'N',:Vat_Amt,0) + Decode(Nvl(:InvI_Gst_Incl_Price,'N'),'N',:Gst_Amt,0) + Decode(Nvl(:InvI_Cst_Incl_Price,'N'),'N',:Cst_Amt,0) + Decode(Nvl(:InvI_Serv_Tax_Incl_Price,'N'),'N',:ST_Amt,0) Into v_Nett From Dual; */ Select Sub_Amt + ((Decode(Nvl(:InvI_Vat_Incl_Price,'N'),'N',:Vat_Amt,0) + Decode(Nvl(:InvI_ED_Incl_Price,'N'),'N',:ED_Amt,0))/:InvH_Curr_Rate) Into v_Nett From Dual; Return Nvl(v_Nett,0); Return Nvl(v_Nett,0); END;
on unit FN_GET_INV_AMT(SUB_AMT): # 1 statement did not convert.# line 16 # FUNCTION FN_GET_INV_AMT(SUB_AMT IN NUMBER) RETURN Number IS # v_Nett Number; # # BEGIN # /* # Select Sub_Amt + Decode(Nvl(:InvI_Vat_Incl_Price,'N'),'N',:Vat_Amt,0) + # Decode(Nvl(:InvI_Gst_Incl_Price,'N'),'N',:Gst_Amt,0) + # Decode(Nvl(:InvI_Cst_Incl_Price,'N'),'N',:Cst_Amt,0) + # Decode(Nvl(:InvI_Serv_Tax_Incl_Price,'N'),'N',:ST_Amt,0) # Into v_Nett From Dual; # */ # # Select Sub_Amt + ((Decode(Nvl(:InvI_Vat_Incl_Price,'N'),'N',:Vat_Amt,0) + # Decode(Nvl(:InvI_ED_Incl_Price,'N'),'N',:ED_Amt,0))/:InvH_Curr_Rate) # Into v_Nett From Dual; # Return Nvl(v_Nett,0); # Return Nvl(v_Nett,0); # END; # reason: a statement after a RETURN at the same level cannot run, because the function has already given its value, so this body says two things about what it returns and a return clause can carry only what its own path says
0 clauses converted, 1 statement refused
Function Validate_Reference_Flag Return Number IS
v_Count Number:=0;
BEGIN
If Nvl(:Frm_En_Multi_So, 'Y') = 'N' Then --Not allow multiple SO
Go_Block('T_Inv_Ref_Doc');
First_Record;
Loop
If Nvl(:Flag, 'N') = 'Y' Then
v_Count := v_Count + 1;
End If;
If :System.Last_Record = 'TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
Return v_Count;
Else
Return 0;
End If;
END;on unit VALIDATE_REFERENCE_FLAG: go to T_INV_REF_DOC when FRM_EN_MULTI_SO = 'N' return 0 when not (FRM_EN_MULTI_SO = 'N') # 2 statements did not convert.# line 7 # Loop # If Nvl(:Flag, 'N') = 'Y' Then # v_Count := v_Count + 1; # End If; # If :System.Last_Record = 'TRUE' Then # Exit; # End If; # Next_Record; # End Loop; # reason: nothing in it converts to a clause, so what it did per row is not recorded# line 16 # Return v_Count; # reason: this RETURN gives the local V_COUNT, which a loop body above it counts with: `V_COUNT := V_COUNT + 1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it. What the function returns is therefore not stated
2 clauses converted, 2 statements refused
Function fn_calc_cess(Tax_On In Varchar2) Return Number IS
v_Amt Number(14,3);
BEGIN
If Nvl(:InvC_Tax_Perc,0) > 0 Then
If Tax_On ='VAT' Then
v_Amt := (:vat_Total * :Invc_Tax_Perc/100);
Elsif Tax_On ='GST' Then
v_Amt := (:Gst_Total * :Invc_Tax_Perc/100);
Elsif Tax_On ='CST' Then
v_Amt := (:Cst_Total * :Invc_Tax_Perc/100);
Elsif Tax_On ='ST' Then
v_Amt := (:St_Total * :Invc_Tax_Perc/100);
Elsif Tax_On is Null Then
v_Amt := (:Total_Aft_Discount * :Invc_Tax_Perc/100);
End If;
End If;
Return v_Amt;
END;on unit FN_CALC_CESS(TAX_ON): # 1 statement did not convert.# line 18 # Return v_Amt; # reason: this RETURN gives the local V_AMT, which 5 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
0 clauses converted, 1 statement refused
If :InvH_Cust_Code Is Null Then
List_Values;
Else --<< Added on 29/Jun/2019, Shebin
Declare
n_alert_button Number;
Begin
If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then
Set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the customer? ');
n_alert_button := Show_Alert('Caution');
If n_alert_button = ALERT_BUTTON1 THEN
Go_Block('T_INV_ITEM');
Clear_Block(No_Commit);
Else
:T_Inv_Head.Invh_Cust_Code := :Parameter.Prv_Cust;
End If;
Else
Next_item;
End If;
End;-- >>
Next_item;
End If;on change of INVH_CUST_CODE: open value help of INVH_CUST_CODE when is_blank(INVH_CUST_CODE) # 1 statement did not convert.# line 7 # If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then # Set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the customer? '); # n_alert_button := Show_Alert('Caution'); # If n_alert_button = ALERT_BUTTON1 Then # Go_Block('T_INV_ITEM'); # Clear_Block(No_Commit); # Else # :T_Inv_Head.Invh_Cust_Code := :Parameter.Prv_Cust; # End If; # Else # Next_item; # End If; # reason: the guard reads CURRENT_RECORD of a block, and the one property read the language has a value for is a field's own state: a block, a record, a window, a view and a canvas each carry properties CRL has no expression for
1 clause converted, 1 statement refused
Declare
v_Sl_To Number;
v_Num_Rec Number;
Begin
If :System.Form_Status = 'CHANGED' Then
v_Sl_To := Nvl(:InvI_Qty * :Max_Loose, 0) + Nvl(:InvI_Loose, 0) + Nvl(:InvI_Foc_Qty * :Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0);
Go_Block('T_Inv_Serial');
Last_Record;
v_Num_Rec := Get_Block_Property('T_Inv_Serial', Current_Record);
If v_Sl_To > 0 And :En_Sl IN ('M','Manual') And v_Sl_To <> v_Num_Rec Then
Show_Message('Inv_Alert', 'Serial number records insufficient!');
Raise Form_Trigger_Failure;
End If;
Post;
:Old_Item_Code := :InvI_Item_Code;
:Old_Uom_Code := :InvI_UOM_Code;
:Old_Qty := :InvI_Qty;
:Old_Loose := :InvI_Loose;
:Old_Foc_Qty := :InvI_Foc_Qty;
:Old_Foc_Loose := :InvI_Foc_Loose;
End If;
Go_Block('T_Inv_Item');
End;on press of PB_LOAD_SL: go to T_INV_SERIAL when SYSTEM.FORM_STATUS = 'CHANGED' last record of T_INV_SERIAL when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_ITEM_CODE to INVI_ITEM_CODE when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_UOM_CODE to INVI_UOM_CODE when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_QTY to INVI_QTY when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_LOOSE to INVI_LOOSE when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_FOC_QTY to INVI_FOC_QTY when SYSTEM.FORM_STATUS = 'CHANGED' set OLD_FOC_LOOSE to INVI_FOC_LOOSE when SYSTEM.FORM_STATUS = 'CHANGED' go to T_INV_ITEM # 2 statements did not convert.# line 10 # If v_Sl_To > 0 And :En_Sl IN ('M','Manual') And v_Sl_To <> v_Num_Rec Then # Show_Message('Inv_Alert', 'Serial number records insufficient!'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_NUM_REC, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 14 # Post; # reason: POST is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
9 clauses converted, 2 statements refused
PROCEDURE ENABLE_TEXT
(Text_Name IN VarChar2,
Flag IN VarChar2)
IS
BEGIN
If Flag = 'F' Then
Set_Item_Property(Text_Name, Enabled, Property_False);
If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then ---commented on 15/2/2021, #59957
Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
ElsIf Flag = 'N' Then
Set_Item_Property(Text_Name, Enabled, Property_True);
Set_Item_Property(Text_Name, Navigable, Property_False);
If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then ---commented on 15/2/2021, #59957
Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'GENERAL_VA');
End If;
Else
Set_Item_Property(Text_Name, Enabled, Property_True);
Set_Item_Property(Text_Name, Navigable, Property_True);
If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then ---commented on 15/2/2021, #59957
Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'GENERAL_VA');
End If;
End If;
END;on unit ENABLE_TEXT(TEXT_NAME, FLAG): state disable ARG.TEXT_NAME when ARG.FLAG = 'F' state enable ARG.TEXT_NAME when not (ARG.FLAG = 'F') and (ARG.FLAG = 'N') state skip ARG.TEXT_NAME when not (ARG.FLAG = 'F') and (ARG.FLAG = 'N') state enable ARG.TEXT_NAME when not (ARG.FLAG = 'F') and not (ARG.FLAG = 'N') state unskip ARG.TEXT_NAME when not (ARG.FLAG = 'F') and not (ARG.FLAG = 'N') # 3 statements did not convert.# line 8 # If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then # Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'DISABLE_VA'); # End If; # reason: the guard reads ITEM_TYPE of a field, and a field's state is enabled, visible, required and its label: ITEM_TYPE is none of the four, so there is no value here to read# line 14 # If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then # Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'GENERAL_VA'); # End If; # reason: the guard reads ITEM_TYPE of a field, and a field's state is enabled, visible, required and its label: ITEM_TYPE is none of the four, so there is no value here to read# line 20 # If Get_Item_Property(Text_Name,ITEM_TYPE) <> 'BUTTON' And Text_Name Not In ('INVI_FOC_QTY','INVI_FOC_LOOSE') Then # Set_Item_Property(Text_Name,VISUAL_ATTRIBUTE ,'GENERAL_VA'); # End If; # reason: the guard reads ITEM_TYPE of a field, and a field's state is enabled, visible, required and its label: ITEM_TYPE is none of the four, so there is no value here to read
5 clauses converted, 3 statements refused
Declare
v_Flag Char(1);
Begin
Go_Block('T_INV_REF_DOC');
First_Record;
If Get_Item_Property('Pb_All_Select', LABEL) = 'All' Then
v_Flag := 'Y';
Else
v_Flag := 'N';
End If;
loop
:Flag := v_Flag;
If :System.Last_Record='TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
If v_Flag = 'Y' Then
Set_Item_Property('Pb_All_Select', LABEL, 'None');
Else
Set_Item_Property('Pb_All_Select', LABEL, 'All');
End If;
First_Record;
End;on press of PB_ALL_SELECT: go to T_INV_REF_DOC first record of T_INV_REF_DOC # 2 statements did not convert.# line 11 # loop # :Flag := v_Flag; # If :System.Last_Record='TRUE' Then # Exit; # End If; # Next_Record; # End Loop; # reason: its body holds a statement no recognizer claims, and a for each with one dropped runs the rest against every row: :Flag := v_Flag# line 19 # If v_Flag = 'Y' Then # Set_Item_Property('Pb_All_Select', LABEL, 'None'); # Else # Set_Item_Property('Pb_All_Select', LABEL, 'All'); # End If; # reason: the guard reads the local V_FLAG, which 2 arms of one branch above it write, the last of them an Else, and the guards are not all an equality or an IN list on one name, so no decode says which arm ran: `GET_ITEM_PROPERTY('Pb_All_Select', LABEL) = 'All'` asks a question a value pair cannot
2 clauses converted, 2 statements refused
/*Go_Item('INVH_LOC_CODE');
List_Values; */
Declare
n_alert_button Number;
Begin
If :INVH_LOC_CODE is not null then
If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then
set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the Location? ');
n_alert_button := Show_Alert('Caution');
If n_alert_button = ALERT_BUTTON1 THEN
Go_Block('T_INV_ITEM');
Clear_Block(No_Commit);
Go_Item('INVH_LOC_CODE');
List_Values;
Else
Go_Block('T_INV_ITEM');
Raise Form_Trigger_Failure;
End If;
Else
Go_Item('INVH_LOC_CODE');
List_Values;
End If;
Else
Go_Item('INVH_LOC_CODE');
List_Values;
End If;
End;
on press of LOV_INVH_LOC_CODE: go to INVH_LOC_CODE when not is_filled(INVH_LOC_CODE) open value help of INVH_LOC_CODE when not is_filled(INVH_LOC_CODE) # 1 statement did not convert.# line 7 # If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then # set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the Location? '); # n_alert_button := Show_Alert('Caution'); # If n_alert_button = ALERT_BUTTON1 Then # Go_Block('T_INV_ITEM'); # Clear_Block(No_Commit); # Go_Item('INVH_LOC_CODE'); # List_Values; # Else # Go_Block('T_INV_ITEM'); # Raise Form_Trigger_Failure; # End If; # Else # Go_Item('INVH_LOC_CODE'); # List_Values; # End If; # reason: the guard reads CURRENT_RECORD of a block, and the one property read the language has a value for is a field's own state: a block, a record, a window, a view and a canvas each carry properties CRL has no expression for
2 clauses converted, 1 statement refused
/*Go_Item('INVH_TXN_CODE');
List_Values; */
Declare
n_alert_button Number;
Begin
If :INVH_TXN_CODE is not null then
If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then
set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the Trans Type? ');
n_alert_button := Show_Alert('Caution');
If n_alert_button = ALERT_BUTTON1 THEN
Go_Block('T_INV_ITEM');
Clear_Block(No_Commit);
Go_Item('INVH_TXN_CODE');
List_Values;
Else
Go_Block('T_INV_ITEM');
Raise Form_Trigger_Failure;
End If;
Else
Go_Item('INVH_TXN_CODE');
List_Values;
End If;
Else
Go_Item('INVH_TXN_CODE');
List_Values;
End If;
End;
on press of LOV_INVH_TXN_CODE: go to INVH_TXN_CODE when not is_filled(INVH_TXN_CODE) open value help of INVH_TXN_CODE when not is_filled(INVH_TXN_CODE) # 1 statement did not convert.# line 7 # If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then # set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the Trans Type? '); # n_alert_button := Show_Alert('Caution'); # If n_alert_button = ALERT_BUTTON1 Then # Go_Block('T_INV_ITEM'); # Clear_Block(No_Commit); # Go_Item('INVH_TXN_CODE'); # List_Values; # Else # Go_Block('T_INV_ITEM'); # Raise Form_Trigger_Failure; # End If; # Else # Go_Item('INVH_TXN_CODE'); # List_Values; # End If; # reason: the guard reads CURRENT_RECORD of a block, and the one property read the language has a value for is a field's own state: a block, a record, a window, a view and a canvas each carry properties CRL has no expression for
2 clauses converted, 1 statement refused
/* Go_Item('INVH_CUST_CODE');
List_Values; */
Declare
n_alert_button Number;
Begin
If :INVH_CUST_CODE is not null then
If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then
set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the customer? ');
n_alert_button := Show_Alert('Caution');
If n_alert_button = ALERT_BUTTON1 THEN
Go_Block('T_INV_ITEM');
Clear_Block(No_Commit);
Go_Item('INVH_CUST_CODE');
List_Values;
Else
Go_Block('T_INV_ITEM');
Raise Form_Trigger_Failure;
End If;
Else
Go_Item('INVH_CUST_CODE');
List_Values;
End If;
Else
Go_Item('INVH_CUST_CODE');
List_Values;
End If;
End;
on press of LOV_INVH_CUST_CODE: go to INVH_CUST_CODE when not is_filled(INVH_CUST_CODE) open value help of INVH_CUST_CODE when not is_filled(INVH_CUST_CODE) # 1 statement did not convert.# line 7 # If :System.Block_Status = 'CHANGED' And Get_Block_Property('T_INV_ITEM', Current_Record)> 0 And :InvI_Item_Code Is Not Null Then # set_alert_property('Caution', alert_message_text,'Item details will be cleared! Do you really want to change the customer? '); # n_alert_button := Show_Alert('Caution'); # If n_alert_button = ALERT_BUTTON1 Then # Go_Block('T_INV_ITEM'); # Clear_Block(No_Commit); # Go_Item('INVH_CUST_CODE'); # List_Values; # Else # Go_Block('T_INV_ITEM'); # Raise Form_Trigger_Failure; # End If; # Else # Go_Item('INVH_CUST_CODE'); # List_Values; # End If; # reason: the guard reads CURRENT_RECORD of a block, and the one property read the language has a value for is a field's own state: a block, a record, a window, a view and a canvas each carry properties CRL has no expression for
2 clauses converted, 1 statement refused
Procedure Proc_Set_Va(Pi_Formname In Varchar2) Is
--This procedure Iterates through the blocks to see the items with property 'required = 'YES' and sets mandatory_VA.
--Pre-requisite - Item's Required property should be Yes. After setting the VA, Set required = No for proper navigation
--Added on 29/Jun/2019, Shebin
Form_Name Varchar2(40);
Form_Id Formmodule;
Block_Name Varchar2(40);
Block_Id Block;
Item_Name Varchar2(40);
Item_Id Item;
Item_Typ Varchar2(40);
Begin
Form_Name := Pi_Formname;
Form_Id := Find_Form(Form_Name);
Block_Name := Get_Form_Property(Form_Id,First_Block);
Block_Id := Find_Block(Block_Name);
While Block_Id.Id != 0 Loop
Item_Name := Get_Block_Property(Block_Id,First_Item);
Item_Id := Find_Item(Item_Name);
While Item_Id.Id != 0 Loop
Item_Typ := Get_Item_Property(Item_Id,Item_Type);
If Item_Typ = 'TEXT ITEM' And Get_Item_Property(Item_Id,Item_Canvas) Is Not Null Then
If Get_Item_Property(Item_Id, Required) = 'TRUE' Then
Set_Item_Property(Item_Id,Visual_Attribute ,'Mandatory_Va');
-- If Get_Item_Property(Item_Id,LOV_NAME) is not null then
Set_Item_Property(Item_Id,Required ,property_false); --- To proper lov population
--End If;
End If;
End If;
Item_Name := Get_Item_Property(Item_Name,Nextitem);
Item_Id := Find_Item(Item_Name);
End Loop;
Block_Name := Get_Block_Property(Block_Name,Nextblock);
Block_Id := Find_Block(Block_Name);
End Loop;
End Proc_Set_Va;on unit PROC_SET_VA(PI_FORMNAME): # 1 statement did not convert.# line 17 # While Block_Id.Id != 0 Loop # Item_Name := Get_Block_Property(Block_Id,First_Item); # Item_Id := Find_Item(Item_Name); # While Item_Id.Id != 0 Loop # Item_Typ := Get_Item_Property(Item_Id,Item_Type); # If Item_Typ = 'TEXT ITEM' And Get_Item_Property(Item_Id,Item_Canvas) Is Not Null Then # If Get_Item_Property(Item_Id, Required) = 'TRUE' Then # Set_Item_Property(Item_Id,Visual_Attribute ,'Mandatory_Va'); # # Set_Item_Property(Item_Id,Required ,property_false); # # End If; # End If; # Item_Name := Get_Item_Property(Item_Name,Nextitem); # Item_Id := Find_Item(Item_Name); # End Loop; # Block_Name := Get_Block_Property(Block_Name,Nextblock); # Block_Id := Find_Block(Block_Name); # End Loop; # reason: it repeats while Block_Id.Id != 0 holds, and a condition is not a collection: crl-loops.md's six operations each read a finite collection whose rows are known before the first pass, and a while loop states only when it stops
0 clauses converted, 1 statement refused
PROCEDURE Proc_Upd_Avg_Rate IS
v_Rate Number;
v_Amount Number;
v_Count Number := 0;
v_Qty_BU Number(12,2);
v_Oth_Perc Number(6,4);
v_Date Date;
Pl_Id ParamList;
v_Alert Number;
v_Status VarChar2(20);
v_Log_Id Number;
v_Dt Date;
v_Auto_Transfer Char;
Begin
--Calculate Average Rate
v_Amount := Nvl(:Sub_Total * :InvH_Curr_Rate, 0);
If v_Amount = 0 Then
v_Oth_Perc := 0;
Else
If Nvl(:Disc_Tot * :InvH_Curr_Rate, 0) > 0 Then
v_Oth_Perc := (Nvl(:Disc_Tot * :InvH_Curr_Rate, 0)) * 100 / v_Amount;
End If;
End If;
Go_Block('T_Inv_Item');
First_Record;
Loop
v_Rate := (:InvI_Rate - Nvl(:InvI_Rate * :InvI_Disc_Perc / 100, 0) - Nvl(:InvI_Disc_Amt, 0)) * Nvl(:InvH_Curr_Rate,1);
:InvI_Avg_Rate := Round(v_Rate - Nvl(v_Rate * v_Oth_Perc / 100, 0),3);
If :System.Last_Record = 'TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
End;on unit PROC_UPD_AVG_RATE: go to T_INV_ITEM # 1 statement did not convert.# line 28 # Loop # v_Rate := (:InvI_Rate - Nvl(:InvI_Rate * :InvI_Disc_Perc / 100, 0) - Nvl(:InvI_Disc_Amt, 0)) * Nvl(:InvH_Curr_Rate,1); # :InvI_Avg_Rate := Round(v_Rate - Nvl(v_Rate * v_Oth_Perc / 100, 0),3); # If :System.Last_Record = 'TRUE' Then # Exit; # End If; # Next_Record; # End Loop; # reason: it names T_INV_ITEM and T_INV_HEAD, so it walks no one collection
1 clause converted, 1 statement refused
PROCEDURE Select_Promotion IS
v_Count Number;
v_Lov Boolean;
BEGIN
If Nvl(:Frm_En_Sales_Promo, 'Y') = 'Y' Then
Select Count(*) Into v_Count
FROM T_Prom_Head, T_Prom_Item, T_Prom_Customer
WHERE PromH_Id = PromI_PromH_Id AND PromH_Id = PromC_PromH_Id(+)
AND PromH_Comp_Code = :Global.Company And Nvl(PromH_Status, 'F') = 'F'
AND ((PromH_Cust_Alloc = 'Y' AND PromC_Cust_Code = :InvH_Cust_Code) OR PromH_Cust_Alloc = 'N')
AND NVL(PromH_Approval_Status, 'N') = 'F' AND PromI_Item_Code = :InvI_Item_Code AND PromI_Uom_Code = :InvI_Uom_Code
AND ((PromH_Option = 'Q' AND NVL(PromH_Qty_Limit_Bu, 0) > NVL(PromH_Inv_Qty_Bu, 0))
OR (PromH_Option = 'P' AND :InvH_Dt BETWEEN PromH_Dt_Fm and Nvl(PromH_Ext_Upto, PromH_Dt_To))
OR (PromH_Option = 'B' AND NVL(PromH_Qty_Limit_Bu, 0) > NVL(PromH_Inv_Qty_Bu, 0)
AND :InvH_Dt BETWEEN PromH_Dt_Fm and Nvl(PromH_Ext_Upto, PromH_Dt_To)));
Set_Item_Instance_Property('Prom_Enabled', Current_Record, Insert_Allowed, Property_False);
Set_Item_Instance_Property('Prom_Enabled', Current_Record, Update_Allowed, Property_False);
If Nvl(:Prom_Enabled, 'Y') = 'Y' Then
If v_Count = 1 Then
Select PromH_Id, PromH_No, PromI_Id,Promi_Exp_Dt Into :PromH_Id, :PromH_No, :InvI_Prom_Item_Id,:Prom_Exp_Dt
FROM T_Prom_Head, T_Prom_Item, T_Prom_Customer
WHERE PromH_Id = PromI_PromH_Id AND PromH_Id = PromC_PromH_Id(+)
AND PromH_Comp_Code = :Global.Company And Nvl(PromH_Status, 'F') = 'F'
AND ((PromH_Cust_Alloc = 'Y' AND PromC_Cust_Code = :InvH_Cust_Code) OR PromH_Cust_Alloc = 'N')
AND NVL(PromH_Approval_Status, 'N') = 'F' AND PromI_Item_Code = :InvI_Item_Code AND PromI_Uom_Code = :InvI_Uom_Code
AND ((PromH_Option = 'Q' AND NVL(PromH_Qty_Limit_Bu, 0) > NVL(PromH_Inv_Qty_Bu, 0))
OR (PromH_Option = 'P' AND :InvH_Dt BETWEEN PromH_Dt_Fm and Nvl(PromH_Ext_Upto, PromH_Dt_To))
OR (PromH_Option = 'B' AND NVL(PromH_Qty_Limit_Bu, 0) > NVL(PromH_Inv_Qty_Bu, 0)
AND :InvH_Dt BETWEEN PromH_Dt_Fm and Nvl(PromH_Ext_Upto, PromH_Dt_To)));
ElsIf v_Count > 1 Then
v_Lov := Show_Lov('Lov_Promo');
If Not v_Lov Then
Show_Message('Inv_Alert', 'Select atleast one promotion!');
Raise Form_Trigger_Failure;
End If;
End If;
End If;
End If;
END;on unit SELECT_PROMOTION: from PROM_HEAD_COUNT(INVH_CUST_CODE, INVH_DT, INVI_ITEM_CODE, INVI_UOM_CODE) when nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y' # load-fmb-invoice-select-promotion-unit-0 from PROM_HEAD(INVH_CUST_CODE, INVH_DT, INVI_ITEM_CODE, INVI_UOM_CODE) when ((nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') and (nvl(PROM_ENABLED, 'Y') = 'Y')) and (PROM_HEAD_COUNT.COUNT = 1) # load-fmb-invoice-select-promotion-unit-1 set PROMH_ID to PROM_HEAD.PROMH_ID when ((nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') and (nvl(PROM_ENABLED, 'Y') = 'Y')) and (PROM_HEAD_COUNT.COUNT = 1) set PROMH_NO to PROM_HEAD.PROMH_NO when ((nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') and (nvl(PROM_ENABLED, 'Y') = 'Y')) and (PROM_HEAD_COUNT.COUNT = 1) set INVI_PROM_ITEM_ID to PROM_HEAD.PROMI_ID when ((nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') and (nvl(PROM_ENABLED, 'Y') = 'Y')) and (PROM_HEAD_COUNT.COUNT = 1) set PROM_EXP_DT to PROM_HEAD.PROMI_EXP_DT when ((nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') and (nvl(PROM_ENABLED, 'Y') = 'Y')) and (PROM_HEAD_COUNT.COUNT = 1) # 4 statements did not convert.# line 17 # Set_Item_Instance_Property('Prom_Enabled', Current_Record, Insert_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 18 # Set_Item_Instance_Property('Prom_Enabled', Current_Record, Update_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 33 # v_Lov := Show_Lov('Lov_Promo'); # reason: open value help names the field whose list opens and no single field of this form carries Lov_Promo, so there is no field to open it on: the list is either declared on none, which is the dangling name fmb_gledger already writes, or on several# line 34 # If Not v_Lov Then # Show_Message('Inv_Alert', 'Select atleast one promotion!'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_LOV, which is written from SHOW_LOV, and SHOW_LOV is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
4 clauses converted, 4 statements refused
PROCEDURE Load_Ref_Tndr IS
Cursor CurTndr Is Select Distinct TndrH_Id, TndrH_Loc_Code, TndrH_Txn_Code, TndrH_No
From M_Uom, M_Item, T_Tndr_Item, T_Tndr_Cust_Item, T_Tndr_Head
Where TndrC_TndrH_Id = TndrH_Id And TndrI_TndrC_Id = TndrC_Id
And Item_Code = TndrI_Item_Code And Uom_Code = TndrI_Uom_Code
And Nvl(TndrC_Inv_Qty_Bu, 0) < Nvl(TndrC_qty * Uom_Max_Loose, 0) + Nvl(TndrC_Loose, 0)
And TndrH_Comp_Code = :Global.Company And TndrH_Cust_Code = :InvH_Cust_Code
And TndrH_Loc_Code =:InvH_Loc_Code
And Nvl(TndrH_Status,'N') <> 'C' --Modified by Dipu on 19/07/14
And Nvl(Tndrh_Approval_Status,'P')='F' --Added by Dipu on 19/07/14
And Nvl(TndrH_Extended_Upto, TndrH_Valid_To) >= :InvH_Dt
And TndrH_Valid_Fm <= :InvH_Dt Order By TndrH_No Desc;
v_Count Number;
BEGIN
Hide_Window('INVH_DOC_SELECTION');
Select Count(*) Into v_Count
From M_Uom, M_Item, T_Tndr_Item, T_Tndr_Cust_Item, T_Tndr_Head
Where TndrC_TndrH_Id = TndrH_Id And TndrI_TndrC_Id = TndrC_Id
And Item_Code = TndrI_Item_Code And Uom_Code = TndrI_Uom_Code
And Nvl(TndrC_Inv_Qty_Bu, 0) < Nvl(TndrC_qty * Uom_Max_Loose, 0) + Nvl(TndrC_Loose, 0)
And TndrH_Comp_Code = :Global.Company And TndrH_Cust_Code = :InvH_Cust_Code
And TndrH_Loc_Code = :InvH_Loc_Code
And Nvl(TndrH_Status,'N') <> 'C' --Modified by Dipu on 19/07/14
And Nvl(Tndrh_Approval_Status,'P')='F' --Added by Dipu on 19/07/14
And Nvl(TndrH_Extended_Upto, TndrH_Valid_To) >= :InvH_Dt
And TndrH_Valid_Fm <= :InvH_Dt;
If Nvl(v_Count,0) > 0 Then
Go_Block('T_Inv_Ref_Doc');
Go_Item('Ref_Loc_Code');
Open CurTndr;
Loop
Fetch CurTndr INTO :InvRD_Tndr_Id, :Ref_Loc_Code, :InvH_Ref_Txn_Code, :Ref_No;
EXIT WHEN CurTndr%NotFound;
Next_Record;
End Loop;
Close CurTndr;
First_Record;
Else
Show_Message('INV_ALERT','There is no tender documents to load');
End If;
END;on unit LOAD_REF_TNDR: from load-fmb-invoice-load-ref-tndr-0(INVH_CUST_CODE, INVH_DT, INVH_LOC_CODE) go to T_INV_REF_DOC when nvl(COUNT, 0) > 0 go to REF_LOC_CODE when nvl(COUNT, 0) > 0 append rows to T_INV_REF_DOC in loop-fmb-invoice-program-unit-0 when nvl(COUNT, 0) > 0 first record when nvl(COUNT, 0) > 0 warn "There is no tender documents to load" when not (nvl(COUNT, 0) > 0) # 1 statement did not convert.# line 16 # Hide_Window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
5 clauses converted, 1 statement refused
FUNCTION FN_GET_CALC_TAX(STYPE IN VARCHAR2) RETURN NUMBER IS
v_Tax Number(14,3);
v_Amt Number;
BEGIN
/*
If Stype ='VAT' Then
Select Round(Decode(Nvl(:InvI_Vat_Incl_Price,'N'),'N',(:Inv_Amt * Nvl(:Invi_Vat_Perc,0)/100),:Inv_Amt -((100-:Invi_Vat_Perc) * :Inv_Amt/100),0),Nvl(:Frm_Decimal,2))
Into v_Tax From Dual;
ElsIf Stype ='GST' Then
Select Round(Decode(Nvl(:InvI_Gst_Incl_Price,'N'),'N',(:Inv_Amt * Nvl(:Invi_Gst,0)/100),:Inv_Amt -((100-:Invi_Gst) * :Inv_Amt/100),0),Nvl(:Frm_Decimal,2))
Into v_Tax From Dual;
ElsIf Stype ='CST' Then
Select Round(Decode(Nvl(:InvI_Cst_Incl_Price,'N'),'N',(:Inv_Amt * Nvl(:Invi_Cst,0)/100),:Inv_Amt -((100-:Invi_Cst) * :Inv_Amt/100),0),Nvl(:Frm_Decimal,2))
Into v_Tax From Dual;
ElsIf Stype ='ST' Then
Select Round(Decode(Nvl(:InvI_Serv_Tax_Incl_Price,'N'),'N',(:Inv_Amt * Nvl(:Invi_Serv_Tax,0)/100),:Inv_Amt -((100-:Invi_Serv_Tax) * :Inv_Amt/100),0),Nvl(:Frm_Decimal,2))
Into v_Tax From Dual;
End If;
*/
If SType ='VAT' Then
If Nvl(:Invi_Inc_Foc_Vat,'Y') ='Y' Then
v_Tax := Fn_Calc_Tax(SType,Nvl(:InvI_Qty,0)+ Nvl(:InvI_Foc_Qty,0),Nvl(:InvI_Loose,0) + Nvl(:InvI_Foc_Loose,0),Nvl(:InvH_Curr_Code, :Global.Basecurrency),
:InvH_Curr_Rate,Nvl(:Max_Loose, 1),:InvI_Rate,:InvI_Base_Rate,:InvI_Vat,:InvI_Vat_Amt,:InvI_Vat_Incl_Price,Nvl(:Frm_Decimal,2));
Else
v_Tax := Fn_Calc_Tax(SType,Nvl(:InvI_Qty,0),Nvl(:InvI_Loose,0) ,Nvl(:InvH_Curr_Code, :Global.Basecurrency),
:InvH_Curr_Rate,Nvl(:Max_Loose, 1),:InvI_Rate,:InvI_Base_Rate,:InvI_Vat,:InvI_Vat_Amt,:InvI_Vat_Incl_Price,Nvl(:Frm_Decimal,2));
End If;
Elsif SType ='ED' Then
If Nvl(:Invi_Inc_Foc_Ed,'Y') ='Y' Then
v_Tax := Fn_Calc_Tax(SType,Nvl(:InvI_Qty,0)+ Nvl(:InvI_Foc_Qty,0),Nvl(:InvI_Loose,0) + Nvl(:InvI_Foc_Loose,0),Nvl(:InvH_Curr_Code, :Global.Basecurrency),
:InvH_Curr_Rate,Nvl(:Max_Loose, 1),:InvI_Rate,:InvI_Base_Rate,:InvI_eD,:InvI_Ed_Amt,:InvI_Ed_Incl_Price,Nvl(:Frm_Decimal,2));
Else
v_Tax := Fn_Calc_Tax(SType,Nvl(:InvI_Qty,0),Nvl(:InvI_Loose,0) ,Nvl(:InvH_Curr_Code, :Global.Basecurrency),
:InvH_Curr_Rate,Nvl(:Max_Loose, 1),:InvI_Rate,:InvI_Base_Rate,:InvI_eD,:InvI_Ed_Amt,:InvI_Ed_Incl_Price,Nvl(:Frm_Decimal,2));
End If;
End If;
Return v_Tax;
END;on unit FN_GET_CALC_TAX(STYPE): # 1 statement did not convert.# line 42 # Return v_Tax; # reason: this RETURN gives the local V_TAX, which 4 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
0 clauses converted, 1 statement refused
PROCEDURE proc_load_cess IS
Cursor CurCess is Select Stax_Id,Stax_Code,Stax_Name,Stax_Type,Stax_Main_Acnt_Code,
Stax_level,Stax_Tax_On,Stax_Tax_Perc
From M_State_Tax,M_Tax_Location
Where Stax_id =TaxL_Stax_Id
and Stax_Comp_Code =:Global.Company
and TaxL_Loc_Code=:Invh_Loc_Code
and Nvl(TaxL_Tax_En_YN,'N') ='Y';
v_Count Number;
BEGIN
Select Count(*) into v_Count
From M_State_Tax,M_Tax_Location
Where Stax_id =TaxL_Stax_Id
and Stax_Comp_Code =:Global.Company
and TaxL_Loc_Code=:Invh_Loc_Code
and Nvl(TaxL_Tax_En_YN,'N') ='Y';
If Nvl(v_count,0) > 0 Then
Go_Block('T_Inv_Cess');
First_Record;
For Cur in CurCess Loop
If CurCess%NotFound Then
Exit;
End If;
:InvC_Stax_Id := Cur.Stax_Id;
:Invc_Tax_Perc := Cur.STax_Tax_Perc;
:Cess_Desc := Cur.Stax_Name;
:InvC_Tax_type := Cur.Stax_Type;
--:InvC_Main_Acnt_Code :=Cur.Stax_Main_Acnt_Code;
:InvC_Level := Cur.Stax_level;
:InvC_Tax_On := Cur.Stax_Tax_on;
:InvC_Tax_Code := Cur.Stax_Code;
If :Invc_Tax_On is Not Null and :Invc_Tax_Perc >0 Then
Select Stax_Type into :Invc_Tax_On_Type From M_State_Tax Where Stax_Id =:InvC_Tax_On;
End If;
Next_Record;
End Loop;
End If;
Go_Block('T_Inv_Head');
End;
on unit PROC_LOAD_CESS: from load-fmb-invoice-proc-load-cess-0(INVH_LOC_CODE) go to T_INV_CESS when nvl(COUNT, 0) > 0 go to T_INV_HEAD # 1 statement did not convert.# line 23 # For Cur in CurCess Loop # If CurCess%NotFound Then # Exit; # End If; # :InvC_Stax_Id := Cur.Stax_Id; # :Invc_Tax_Perc := Cur.STax_Tax_Perc; # :Cess_Desc := Cur.Stax_Name; # :InvC_Tax_type := Cur.Stax_Type; # # :InvC_Level := Cur.Stax_level; # :InvC_Tax_On := Cur.Stax_Tax_on; # :InvC_Tax_Code := Cur.Stax_Code; # If :Invc_Tax_On is Not Null and :Invc_Tax_Perc >0 Then # Select Stax_Type into :Invc_Tax_On_Type From M_State_Tax Where Stax_Id =:InvC_Tax_On; # End If; # Next_Record; # 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)
2 clauses converted, 1 statement refused
PROCEDURE VALIDATE_DATE (Entry_Date IN OUT Date, AYr_Code IN VarChar2, Accept_Future_Dt IN Char, Alert_Name IN VarChar2)IS
CURSOR CurAYr IS
SELECT AYr_Code, AYr_Status FROM M_AYear
WHERE Entry_Date BETWEEN AYr_From_Dt AND AYr_To_Dt
AND AYr_Comp_Code = :Global.Company;
v_AYr_Code VarChar2(10);
v_Status Char(1);
v_Alert Number;
BEGIN
If Length(Entry_Date) < Length(:Global.DateFormat) Then
If :Global.DateFormat = 'DD-MM-YY' AND Length(Entry_Date) = 6 Then
Entry_Date := SubStr(Entry_Date, 1, 2) || '-' || SubStr(Entry_Date, 3, 2) || '-' || SubStr(Entry_Date, 5, 2);
End If;
End If;
OPEN CurAYr;
FETCH CurAYr INTO v_AYr_Code, v_Status;
If CurAYr%NotFound Then
Set_Alert_Property(Alert_Name, Alert_Message_Text, 'A/c Year not Defined!');
v_Alert := Show_Alert(Alert_Name);
Raise Form_Trigger_Failure;
ElsIf Nvl(AYr_Code, v_AYr_Code) <> v_AYr_Code Then
Set_Alert_Property(Alert_Name, Alert_Message_Text, 'Date not in the same A/c Year!');
v_Alert := Show_Alert(Alert_Name);
Raise Form_Trigger_Failure;
End If;
If Nvl(v_Status, ' ') = 'L' Then
Set_Alert_Property(Alert_Name, Alert_Message_Text, 'A/c Year Locked!');
v_Alert := Show_Alert(Alert_Name);
Raise Form_Trigger_Failure;
End If;
If Accept_Future_Dt = 'N' AND Entry_Date > Trunc(Fn_Get_Zone_Date(:Global.Company)) Then
Set_Alert_Property(Alert_Name, Alert_Message_Text, 'Date Should not be greater than System Date!');
v_Alert := Show_Alert(Alert_Name);
Raise Form_Trigger_Failure;
End If;
If Accept_Future_Dt = 'Y' AND Entry_Date < Trunc(Fn_Get_Zone_Date(:Global.Company)) Then
Set_Alert_Property(Alert_Name, Alert_Message_Text, 'Date Should not be less than System Date!');
v_Alert := Show_Alert(Alert_Name);
Raise Form_Trigger_Failure;
End If;
END;on unit VALIDATE_DATE(ENTRY_DATE, AYR_CODE, ACCEPT_FUTURE_DT, ALERT_NAME): from load-fmb-invoice-validate-date-0 deny when AYR_STATUS = 'L' silent deny when (ARG.ACCEPT_FUTURE_DT = 'N') and (ARG.ENTRY_DATE > trunc(sysdate())) silent deny when (ARG.ACCEPT_FUTURE_DT = 'Y') and (ARG.ENTRY_DATE < trunc(sysdate())) silent # 5 statements did not convert.# line 13 # Entry_Date := SubStr(Entry_Date, 1, 2) || '-' || SubStr(Entry_Date, 3, 2) || '-' || SubStr(Entry_Date, 5, 2); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 19 # If CurAYr%NotFound Then # Set_Alert_Property(Alert_Name, Alert_Message_Text, 'A/c Year not Defined!'); # v_Alert := Show_Alert(Alert_Name); # Raise Form_Trigger_Failure; # Else # If Nvl(AYr_Code, v_AYr_Code) <> v_AYr_Code Then # Set_Alert_Property(Alert_Name, Alert_Message_Text, 'Date not in the same A/c Year!'); # v_Alert := Show_Alert(Alert_Name); # Raise Form_Trigger_Failure; # End If; # End If; # reason: the guard reads CURAYR, which nothing in this body declares and nothing in it writes: a program unit's parameter, or a name declared somewhere this converter cannot see# line 31 # v_Alert := Show_Alert(Alert_Name); # reason: show alert names the alert the form declares and Alert_Name is not a name this body resolves: nothing above it writes it from a Find_Alert with a literal, so which alert opens is not known until the form runs# line 37 # v_Alert := Show_Alert(Alert_Name); # reason: show alert names the alert the form declares and Alert_Name is not a name this body resolves: nothing above it writes it from a Find_Alert with a literal, so which alert opens is not known until the form runs# line 43 # v_Alert := Show_Alert(Alert_Name); # reason: show alert names the alert the form declares and Alert_Name is not a name this body resolves: nothing above it writes it from a Find_Alert with a literal, so which alert opens is not known until the form runs
3 clauses converted, 5 statements refused
Declare
V_Srth_Id Number;
V_Skip_Cost Varchar2(10);
V_Btrn_Flag Varchar2(10);
V_Alert Number;
V_Count Number;
v_Cust_Validate Number;
Begin
If :Invh_Rev_Txn Is Null Then
Show_Message ('Inv_Alert', 'Reverse Txn Not Found!');
Raise Form_Trigger_Failure;
End If;
Set_Alert_Property('Conf_Alert', Alert_Message_Text, 'Do you want to REVERSE the transaction ?');
V_Alert := Show_Alert('Conf_Alert');
If V_Alert = Alert_Button1 Then
-- Select Count (*) Into V_Count
-- From M_Customer_Txn
-- Where Custtxn_Cust_Code = :Invh_Cust_Code
-- And Custtxn_Txn_Code = :Invh_Rev_Txn;
v_Cust_Validate := fn_validate_cust_txn(:Global.Company,:Invh_Cust_Code,:Invh_Rev_Txn);
If v_Cust_Validate = 0 Then
Show_Message ('INV_ALERT', :Invh_Cust_Code||' / '||:Invh_Rev_Txn||' Combination Not Valid!');
Raise Form_Trigger_Failure;
End If;
V_Btrn_Flag := Fn_Get_Stk_Txn_Param(:Invh_Rev_Txn, :Global.Company, 'SRET_BTRN_FLAG');
Proc_Insert_Reverse_Txn(:Global.Company, :Invh_Divn_Code, :Invh_Loc_Code, :Invh_Txn_Code,
:Invh_Id, :Invh_Rev_Txn, Null, :Invh_Cust_Code, :Invh_Sman_Code,
V_Btrn_Flag, :Global.User, Null, :Frm_Rev_Doc_Id, V_Srth_Id);
Standard.Commit;
Proc_Update_Fin_Status(:Global.Company, :Invh_Rev_Txn, V_Srth_Id);
Standard.Commit;
Select Sreth_No Into :Invh_Rev_No
From T_Sret_Head
Where Sreth_Id = V_Srth_Id;
Show_Message('INV_ALERT', 'Reverse Transaction Completed. Doc No : '||:Invh_Rev_Loc_Code||'/'||:Invh_Rev_Txn||'/'||:Invh_Rev_No);
Go_Item('Invh_Loc_Code');
Set_Item_Property('PB_REVERSE', Enabled, Property_False);
End If;
End;on press of PB_REVERSE: require INVH_REV_TXN else "Reverse Txn Not Found!" show alert CONF_ALERT with 'Do you want to REVERSE the transaction ?' deny when (ANSWER.BUTTON = '1') and (FN_VALIDATE_CUST_TXN(GLOBAL.COMPANY, INVH_CUST_CODE, INVH_REV_TXN) = 0) else ((INVH_CUST_CODE || ' / ') || INVH_REV_TXN) || ' Combination Not Valid!' call PROC_INSERT_REVERSE_TXN(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_LOC_CODE, INVH_TXN_CODE, INVH_ID, INVH_REV_TXN, null, INVH_CUST_CODE, INVH_SMAN_CODE, FN_GET_STK_TXN_PARAM(INVH_REV_TXN, GLOBAL.COMPANY, 'SRET_BTRN_FLAG'), GLOBAL.USER, null, FRM_REV_DOC_ID, null) when ANSWER.BUTTON = '1' call PROC_UPDATE_FIN_STATUS(GLOBAL.COMPANY, INVH_REV_TXN, OUT.PROC_INSERT_REVERSE_TXN.14) when ANSWER.BUTTON = '1' go to INVH_LOC_CODE when ANSWER.BUTTON = '1' state disable PB_REVERSE when ANSWER.BUTTON = '1' # 4 statements did not convert.# line 35 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted# line 39 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted# Select Sreth_No Into :Invh_Rev_No # From T_Sret_Head # Where Sreth_Id = V_Srth_Id # reason: its query narrows on V_SRTH_ID, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Select Sreth_No Into :Invh_Rev_No # From T_Sret_Head # Where Sreth_Id = V_Srth_Id; # Select Sreth_No Into :Invh_Rev_No # From T_Sret_Head # Where Sreth_Id = V_Srth_Id; # Show_Message('INV_ALERT', 'Reverse Transaction Completed. Doc No : '||:Invh_Rev_Loc_Code||'/'||:Invh_Rev_Txn||'/'||:Invh_Rev_No); # reason: they are dropped with it: its query narrows on V_SRTH_ID, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither
7 clauses converted, 4 statements refused
PROCEDURE GET_PRATE IS
v_Count Number;
v_Rate_BU Number;
v_Qty_BU Number;
v_FOC_BU Number;
v_Net_Rate_BU Number;
v_Max_Loose Number;
v_Cost_Method Varchar2(10);
v_Cost Number(15,6);
BEGIN
--Commented By Shibu.
/*
-- SELECT GRI_Avg_Rate/UOM_Max_Loose INTO v_Rate_BU
SELECT (GRI_Rate-Nvl(GRI_Rate*GRI_Disc_Perc/100,0)-Nvl(GRI_Disc_Amt,0))/UOM_Max_Loose, Nvl(GRI_Qty*UOM_Max_Loose,0)+Nvl(GRI_Loose,0), Nvl(GRI_FOC_Qty*UOM_Max_Loose,0)+Nvl(GRI_FOC_Loose,0)
INTO v_Rate_BU, v_Qty_BU, v_FOC_BU
FROM M_UOM, T_GR_Item, M_Stock_Company
WHERE UOM_Code (+) = GRI_UOM_Code
AND GRI_Id (+) = StkC_GRI_Id
AND StkC_Comp_Code = :Global.Company
AND StkC_Item_Code=:InvI_Item_Code;
If v_Rate_BU > 0 AND Nvl(v_Qty_BU,0)+Nvl(v_FOC_BU,0) > 0 Then
v_Net_Rate_BU := (v_Rate_BU*v_Qty_BU)/(Nvl(v_Qty_BU,0)+Nvl(v_FOC_BU,0));
:InvI_Rate := v_Net_Rate_BU*:Max_Loose;
Else
SELECT Avg(ItemPRate_PRate/UOM_Max_Loose) INTO v_Rate_BU
FROM M_UOM, M_Item_PRate
WHERE UOM_Code = ItemPRate_UOM_Code
AND ItemPRate_Item_Code=:InvI_Item_Code;
:InvI_Rate := v_Rate_BU * :Max_Loose;
End If;
*/
V_Cost_Method := Fn_Get_Company_Param(:Global.Company, 'COM_COST_VALUATION_METHOD');
v_Qty_bu := Nvl(:InvI_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Loose, 0) + Nvl(:InvI_Foc_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Foc_Loose, 0);
If Nvl(v_Qty_Bu,0) =0 Then
v_Qty_Bu :=1;
End If;
Proc_get_fifo_cost(:InvI_Item_Code, :Global.Company,:InvH_Divn_Code,'INV-COST',
:InvH_Dt, Nvl(:Div_Stock_Bu, 1),v_Qty_bu,Null,0,v_Cost);
If Nvl(v_Cost,0) = 0 Then
v_Cost := Fn_Get_Cost_V1(:InvI_Item_Code, :Global.Company,:InvH_Divn_Code, :InvH_Dt, Nvl(:Frm_Cost_Method, V_Cost_Method), Nvl(:Div_Stock_Bu, 1));
End If;
If Nvl(v_Cost,0) >0 Then
:InvI_Rate := Round(v_Cost * :Max_loose,Nvl(:Frm_Decimal,2));
Else
:Invi_Rate :=0;
End If;
Exception
When Others Then :InvI_Rate := 0;
End;
on unit GET_PRATE: # 1 statement did not convert.# PROCEDURE GET_PRATE IS # v_Count Number; # v_Rate_BU Number; # v_Qty_BU Number; # v_FOC_BU Number; # v_Net_Rate_BU Number; # v_Max_Loose Number; # v_Cost_Method Varchar2(10); # v_Cost Number(15,6); # # BEGIN # --Commented By Shibu. # /* # -- SELECT GRI_Avg_Rate/UOM_Max_Loose INTO v_Rate_BU # SELECT (GRI_Rate-Nvl(GRI_Rate*GRI_Disc_Perc/100,0)-Nvl(GRI_Disc_Amt,0))/UOM_Max_Loose, Nvl(GRI_Qty*UOM_Max_Loose,0)+Nvl(GRI_Loose,0), Nvl(GRI_FOC_Qty*UOM_Max_Loose,0)+Nvl(GRI_FOC_Loose,0) # INTO v_Rate_BU, v_Qty_BU, v_FOC_BU # FROM M_UOM, T_GR_Item, M_Stock_Company # WHERE UOM_Code (+) = GRI_UOM_Code # AND GRI_Id (+) = StkC_GRI_Id # AND StkC_Comp_Code = :Global.Company # AND StkC_Item_Code=:InvI_Item_Code; # # If v_Rate_BU > 0 AND Nvl(v_Qty_BU,0)+Nvl(v_FOC_BU,0) > 0 Then # v_Net_Rate_BU := (v_Rate_BU*v_Qty_BU)/(Nvl(v_Qty_BU,0)+Nvl(v_FOC_BU,0)); # :InvI_Rate := v_Net_Rate_BU*:Max_Loose; # Else # SELECT Avg(ItemPRate_PRate/UOM_Max_Loose) INTO v_Rate_BU # FROM M_UOM, M_Item_PRate # WHERE UOM_Code = ItemPRate_UOM_Code # AND ItemPRate_Item_Code=:InvI_Item_Code; # :InvI_Rate := v_Rate_BU * :Max_Loose; # End If; # # */ # V_Cost_Method := Fn_Get_Company_Param(:Global.Company, 'COM_COST_VALUATION_METHOD'); # v_Qty_bu := Nvl(:InvI_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Loose, 0) + Nvl(:InvI_Foc_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Foc_Loose, 0); # If Nvl(v_Qty_Bu,0) =0 Then # v_Qty_Bu :=1; # End If; # Proc_get_fifo_cost(:InvI_Item_Code, :Global.Company,:InvH_Divn_Code,'INV-COST', # :InvH_Dt, Nvl(:Div_Stock_Bu, 1),v_Qty_bu,Null,0,v_Cost); # # If Nvl(v_Cost,0) = 0 Then # v_Cost := Fn_Get_Cost_V1(:InvI_Item_Code, :Global.Company,:InvH_Divn_Code, :InvH_Dt, Nvl(:Frm_Cost_Method, V_Cost_Method), Nvl(:Div_Stock_Bu, 1)); # End If; # # If Nvl(v_Cost,0) >0 Then # :InvI_Rate := Round(v_Cost * :Max_loose,Nvl(:Frm_Decimal,2)); # Else # :Invi_Rate :=0; # End If; # # Exception # When Others Then :InvI_Rate := 0; # End; # reason: it handles OTHERS and recovers, writing a value or showing a message on the error path, so the statements above it do not mean what they would mean without it: CRL has no clause that runs when a statement fails
0 clauses converted, 1 statement refused
PROCEDURE disable_details IS
BEGIN
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
If Get_Item_Property('InvI_Item_Code', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Item_Code', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Item_Code', Update_Allowed, Property_False);
Set_Item_Property('InvI_Item_Code',VISUAL_ATTRIBUTE ,'DISABLE_VA'); --Added on 20/6/2019,DISABLE_VA in all places, Shebin
End If;
If Get_Item_Property('InvI_Uom_Code', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Uom_Code', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Uom_Code', Update_Allowed, Property_False);
Set_Item_Property('InvI_Uom_Code',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Qty', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Qty', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Qty', Update_Allowed, Property_False);
Set_Item_Property('InvI_Qty',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Loose', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Loose', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Loose', Update_Allowed, Property_False);
Set_Item_Property('InvI_Loose',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Rate', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Rate', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Rate', Update_Allowed, Property_False);
Set_Item_Property('InvI_Loose',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Disc_Perc', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Disc_Perc', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Perc', Update_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Perc',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Disc_Amt', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Disc_Amt', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Amt', Update_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Amt',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Foc_Qty', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Foc_Qty', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Foc_Qty', Update_Allowed, Property_False);
-- Set_Item_Property('InvI_Foc_Qty',VISUAL_ATTRIBUTE ,'DISABLE_VA'); ---commented on 15/2/2021, #59957
End If;
If Get_Item_Property('InvI_Foc_Loose', Enabled) = 'TRUE' Then
Set_Item_Property('InvI_Foc_Loose', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Foc_Loose', Update_Allowed, Property_False);
--- Set_Item_Property('InvI_Foc_Loose',VISUAL_ATTRIBUTE ,'DISABLE_VA');---commented on 15/2/2021, #59957
End If;
END;on unit DISABLE_DETAILS: state lock T_INV_ITEM on delete state lock INVI_ITEM_CODE on insert, update when enabled of INVI_ITEM_CODE state lock INVI_UOM_CODE on insert, update when enabled of INVI_UOM_CODE state lock INVI_QTY on insert, update when enabled of INVI_QTY state lock INVI_LOOSE on insert, update when enabled of INVI_LOOSE state lock INVI_RATE on insert, update when enabled of INVI_RATE state lock INVI_DISC_PERC on insert, update when enabled of INVI_DISC_PERC state lock INVI_DISC_AMT on insert, update when enabled of INVI_DISC_AMT state lock INVI_FOC_QTY on insert, update when enabled of INVI_FOC_QTY state lock INVI_FOC_LOOSE on insert, update when enabled of INVI_FOC_LOOSE # 1 statement did not convert.# line 32 # Set_Item_Property('InvI_Loose',VISUAL_ATTRIBUTE ,'DISABLE_VA'); # reason: the state effect is nine properties over twelve verbs, and VISUAL_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean
10 clauses converted, 1 statement refused
Declare
v_Flag Number;
v_Rate Number := (:Invi_Rate - Nvl(:Invi_Rate * Nvl(:Invi_Disc_Perc,0) / 100, 0) - Nvl(:Invi_Disc_Amt, 0))*Nvl(:InvH_Curr_Rate, 1);
v_Ref VarChar2(4);
v_Qty_bu Number;
Begin
v_Qty_bu := Nvl(:InvI_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Loose, 0) + Nvl(:InvI_Foc_Qty * Nvl(:Max_Loose, 0), 0) + Nvl(:InvI_Foc_Loose, 0);
If Nvl(v_Qty_Bu,0) =0 Then
v_Qty_Bu :=1;
End If;
If :Item_Type <> 'SRV' Then
If Nvl(:Frm_Cost_Price_Billing, 'N') = 'Y' AND (:InvI_PLU_Code NOT LIKE :Frm_Weigh_Bcode_Prefix||'%' and :Frm_Weigh_Bcode_Prefix is Not Null) Then
Get_Prate;
ElsIf (:InvI_PLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%' and :Frm_Weigh_Bcode_Prefix is Not Null)
And NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
and :Frm_Weigh_Item_Prefix IS NOT Null Then
v_Ref := SubStr(:InvI_PLU_Code, 3, 4);
v_Rate := SubStr(:InvI_PLU_Code, 7, 6)/100;
Else
--By
If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then
Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc);
End If;
If :Inv_Additional_Disc > 0 Then
:Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2));
End If;
Proc_Validate_Srate1(:Global.Company, :Invh_Divn_Code,:Invi_Item_Code, :Invi_Uom_Code, v_Rate, :InvH_Dt,v_Qty_Bu, v_Flag);
End If;
Proc_Validate_Srate1(:Global.Company, :Invh_Divn_Code,:Invi_Item_Code, :Invi_Uom_Code, v_Rate, :InvH_Dt,v_Qty_Bu, v_Flag);
If Nvl(:Item_Group,'N') = 'N' And Nvl(:InvI_Prom_Item_Id, 0) = 0 Then
If v_Flag = 0 Then
If Nvl(:Frm_Loc_Validate_Cost,'N') = 'Y' Then
Show_Message('Inv_Alert', 'Rate below Cost!');
Raise Form_Trigger_Failure;
Elsif Nvl(:Frm_Loc_Validate_Cost,'N') = 'N' Then
Show_Message('Inv_Alert', 'Rate below Cost!');
--End If;
ElsIf v_Flag =1 Then
Show_Message('Inv_Alert', 'Cost details not available for this item!');
End If;
End If;
End If;
If :InvI_Rate < 0 Then
Show_Message('Inv_Alert', 'Rate cannot be negative!');
Raise Form_Trigger_Failure;
ElsIf :InvI_Rate = 0 Then
Show_Message('Inv_Alert', 'Rate cannot be zero!');
Raise Form_Trigger_Failure;
End If;
End If;
Proc_show_margin;
End;on change of INVI_RATE: call PROC_VALIDATE_SRATE1(GLOBAL.COMPANY, INVH_DIVN_CODE, INVI_ITEM_CODE, INVI_UOM_CODE, null, INVH_DT, null, null) when ITEM_TYPE <> 'SRV' deny when (((ITEM_TYPE <> 'SRV') and ((nvl(ITEM_GROUP, 'N') = 'N') and (nvl(INVI_PROM_ITEM_ID, 0) = 0))) and (OUT.PROC_VALIDATE_SRATE1.8 = 0)) and (FRM_LOC_VALIDATE_COST = 'Y') else "Rate below Cost!" warn "Rate below Cost!" when ((((ITEM_TYPE <> 'SRV') and ((nvl(ITEM_GROUP, 'N') = 'N') and (nvl(INVI_PROM_ITEM_ID, 0) = 0))) and (OUT.PROC_VALIDATE_SRATE1.8 = 0)) and not (FRM_LOC_VALIDATE_COST = 'Y')) and (nvl(FRM_LOC_VALIDATE_COST, 'N') = 'N') warn "Cost details not available for this item!" when (((((ITEM_TYPE <> 'SRV') and ((nvl(ITEM_GROUP, 'N') = 'N') and (nvl(INVI_PROM_ITEM_ID, 0) = 0))) and (OUT.PROC_VALIDATE_SRATE1.8 = 0)) and not (FRM_LOC_VALIDATE_COST = 'Y')) and not (nvl(FRM_LOC_VALIDATE_COST, 'N') = 'N')) and (OUT.PROC_VALIDATE_SRATE1.8 = 1) deny when (ITEM_TYPE <> 'SRV') and (INVI_RATE < 0) else "Rate cannot be negative!" deny when ((ITEM_TYPE <> 'SRV') and not (INVI_RATE < 0)) and (INVI_RATE = 0) else "Rate cannot be zero!" call PROC_SHOW_MARGIN() # 1 statement did not convert.# line 13 # If Nvl(:Frm_Cost_Price_Billing, 'N') = 'Y' AND (:InvI_PLU_Code NOT LIKE :Frm_Weigh_Bcode_Prefix||'%' and :Frm_Weigh_Bcode_Prefix is Not Null) Then # Get_Prate; # Else # If (:InvI_PLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%' and :Frm_Weigh_Bcode_Prefix is Not Null) # And NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%' # and :Frm_Weigh_Item_Prefix IS NOT Null Then # v_Ref := SubStr(:InvI_PLU_Code, 3, 4); # v_Rate := SubStr(:InvI_PLU_Code, 7, 6)/100; # Else # If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then # Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc); # End If; # If :Inv_Additional_Disc > 0 Then # :Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2)); # End If; # Proc_Validate_Srate1(:Global.Company, :Invh_Divn_Code,:Invi_Item_Code, :Invi_Uom_Code, v_Rate, :InvH_Dt,v_Qty_Bu, v_Flag); # End If; # End If; # reason: this NOT LIKE reads a subject that can be null: Oracle answers unknown there and fires neither branch, while CRL's not is PL/SQL's Else and fires on unknown, so the two readings differ on exactly the input the Nvl the other twelve corpus sites write was put there to avoid
7 clauses converted, 1 statement refused
Declare
v_txn_Type Varchar2(10);
Begin
If :Ref_No is Not Null And :System.Mode <> 'QUERY' Then
:Parameter.Tndr_Flag := 'X'; --- 'X' = Not a Tender Txn 'N' =Tender Is Enabled, 'Y' = Load Button Pressed Added by mojish 11/04/14
Select Txn_Type INTO v_Txn_Type From M_Stock_Txn Where Txn_Code =:InvH_Ref_Txn_Code;
If v_Txn_Type ='DNOTE' Then
SELECT DNH_Id, DNH_SMan_Code INTO :InvrD_Dnh_Id,:Ref_Sman_Code
FROM T_DN_Head
WHERE DNH_Comp_Code = :Global.Company
AND DNH_Loc_Code = :Ref_Loc_Code -- Modified by Mojish 27/03/14
AND DnH_Txn_Code =:InvH_Ref_Txn_Code
AND DNH_Cust_Code = :InvH_Cust_Code
AND DnH_No =:Ref_No;
Elsif v_Txn_Type ='SAL_ORD' Then
SELECT SoH_Id, SoH_SMan_Code INTO :InvrD_SoH_Id,:Ref_Sman_Code
FROM T_So_Head
WHERE SoH_Comp_Code = :Global.Company
AND SoH_Loc_Code = :Ref_Loc_Code -- Modified by Mojish 27/03/14
AND SoH_Txn_Code =:InvH_Ref_Txn_Code
AND SoH_Cust_Code = :InvH_Cust_Code
AND SoH_No =:Ref_No;
Elsif v_Txn_Type = 'TNDR' Then -- Added by Mojish 03/04/14
If Nvl(Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_TENDER_REF'), 'F') = 'N' Then
Select Max(TndrH_Id) Into :InvrD_Tndr_Id
From M_Uom, M_Item, T_Tndr_Item, T_Tndr_Cust_Item, T_Tndr_Head
Where TndrC_TndrH_Id = TndrH_Id And TndrI_TndrC_Id = TndrC_Id
And Item_Code = TndrI_Item_Code And Uom_Code = TndrI_Uom_Code
And Nvl(TndrC_Inv_Qty_Bu, 0) < Nvl(TndrC_qty * Uom_Max_Loose, 0) + Nvl(TndrC_Loose, 0)
And TndrH_Comp_Code = :Global.Company And TndrH_Cust_Code = :InvH_Cust_Code
And TndrH_Loc_Code = :Ref_Loc_Code
And Nvl(TndrH_Status,'N') <> 'C' --Modified by Dipu on 19/07/14
And Nvl(Tndrh_Approval_Status,'P')='F' --Added by Dipu on 19/07/14
And Nvl(TndrH_Extended_Upto, TndrH_Valid_To) >= :InvH_Dt
And TndrH_Valid_Fm <= :InvH_Dt And TndrH_Txn_Code = :InvH_Ref_Txn_Code
And TndrH_No = :Ref_No;
If nvl(:InvrD_Tndr_Id, 0) = 0 Then
Show_Message('Inv_Alert', 'Invalid Tender!');
Raise Form_Trigger_Failure;
End If;
:Parameter.Tndr_Flag := 'N'; --- 'N' =Tender Is Enabled, 'Y' = Load Button Pressed Added by mojish 11/04/14
Else
Show_Message('Inv_Alert', 'Tender is not enabled!');
End If;
ElsIf v_Txn_Type = 'CUST_SERV' Then
SELECT CSH_Id Into :InvRD_CsH_Id
FROM T_Cust_Service_Head
WHERE CSH_Comp_Code = :Global.Company
AND CSH_Loc_Code =:Invh_Loc_Code
AND CSH_Cust_Code = :InvH_Cust_Code
AND CSH_Txn_Code = :InvH_Ref_Txn_Code
AND CSH_No = :Ref_No
AND Nvl(CSH_Load_Status,'N') = 'N';
Else
SELECT PreqH_Id INTO :InvrD_Preqh_Id
FROM T_Preq_Head
WHERE PreqH_Comp_Code = :Global.Company
AND PreqH_Loc_Code = :Ref_Loc_Code -- Modified by Mojish 27/03/14
AND PreqH_Txn_Code =:Invh_Ref_Txn_Code
AND PreqH_No =:Ref_No;
End If;
End If;
End;on change of REF_NO: from STOCK_TXN(INVH_REF_TXN_CODE) when is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-0 from DN_HEAD(INVH_CUST_CODE, INVH_REF_TXN_CODE, REF_LOC_CODE, REF_NO) when (is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and (STOCK_TXN.TXN_TYPE = 'DNOTE') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-1 from SO_HEAD(INVH_CUST_CODE, INVH_REF_TXN_CODE, REF_LOC_CODE, REF_NO) when ((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and (STOCK_TXN.TXN_TYPE = 'SAL_ORD') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-2 from UOM(INVH_CUST_CODE, INVH_DT, INVH_REF_TXN_CODE, REF_LOC_CODE, REF_NO) when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and (STOCK_TXN.TXN_TYPE = 'TNDR')) and (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-3 from CUST_SERVICE_HEAD(INVH_CUST_CODE, INVH_LOC_CODE, INVH_REF_TXN_CODE, REF_NO) when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and not (STOCK_TXN.TXN_TYPE = 'TNDR')) and (STOCK_TXN.TXN_TYPE = 'CUST_SERV') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-4 from PREQ_HEAD(INVH_REF_TXN_CODE, REF_LOC_CODE, REF_NO) when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and not (STOCK_TXN.TXN_TYPE = 'TNDR')) and not (STOCK_TXN.TXN_TYPE = 'CUST_SERV') # load-fmb-invoice-t-inv-ref-doc-ref-no-change-5 set INVRD_DNH_ID to DN_HEAD.DNH_ID when (is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and (STOCK_TXN.TXN_TYPE = 'DNOTE') set REF_SMAN_CODE to DN_HEAD.DNH_SMAN_CODE when (is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and (STOCK_TXN.TXN_TYPE = 'DNOTE') set INVRD_SOH_ID to SO_HEAD.SOH_ID when ((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and (STOCK_TXN.TXN_TYPE = 'SAL_ORD') set REF_SMAN_CODE to SO_HEAD.SOH_SMAN_CODE when ((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and (STOCK_TXN.TXN_TYPE = 'SAL_ORD') set INVRD_TNDR_ID to UOM.MAX when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and (STOCK_TXN.TXN_TYPE = 'TNDR')) and (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N') deny when (((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and (STOCK_TXN.TXN_TYPE = 'TNDR')) and (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N')) and (nvl(INVRD_TNDR_ID, 0) = 0) else "Invalid Tender!" warn "Tender is not enabled!" when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and (STOCK_TXN.TXN_TYPE = 'TNDR')) and not (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N') set INVRD_CSH_ID to CUST_SERVICE_HEAD.CSH_ID when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and not (STOCK_TXN.TXN_TYPE = 'TNDR')) and (STOCK_TXN.TXN_TYPE = 'CUST_SERV') set INVRD_PREQH_ID to PREQ_HEAD.PREQH_ID when ((((is_filled(REF_NO) and (SYSTEM.MODE <> 'QUERY')) and not (STOCK_TXN.TXN_TYPE = 'DNOTE')) and not (STOCK_TXN.TXN_TYPE = 'SAL_ORD')) and not (STOCK_TXN.TXN_TYPE = 'TNDR')) and not (STOCK_TXN.TXN_TYPE = 'CUST_SERV') # 2 statements did not convert.# line 5 # :Parameter.Tndr_Flag := 'X'; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 42 # :Parameter.Tndr_Flag := 'N'; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only
9 clauses converted, 2 statements refused
Declare
v_Count NUmber;
v_InvLog_Id NUmber;
v_Ayr_Dt_Fm Date := :Global.AYear_Fm;
v_Ayr_Dt_To Date := :Global.AYear_To;
Begin
If Get_Record_Property(1, 'T_Inv_Item', Status) = 'NEW' Then
Show_Message('Inv_Alert', 'Item Details Not Entered!');
Raise Form_Trigger_Failure;
End If;
:Parameter.Insert_Flag := 1; --Added by mojish 24/03/14
Validate_Invoice;
:InvH_Id := Fn_Get_Next_Id('Inv_Head');
:InvH_Comp_Code := :Global.Company;
If Trunc(:InvH_Dt) < Trunc(v_Ayr_Dt_Fm) Then
:InvH_Ayr_Code :=Fn_Get_Ayr_Code( :Global.Company,'P');
ElsIf Trunc(:InvH_Dt) > Trunc(v_Ayr_Dt_To) Then
:InvH_Ayr_Code :=Fn_Get_Ayr_Code( :Global.Company,'N');
Else
:InvH_AYr_Code := :Global.Ayear;
End If;
If :Sub_Total > 0 Then---------Added By Faisal On 12/04/2015
If :Sub_Total - Nvl(:Sub_Total * :InvH_Disc_Perc / 100, 0) - Nvl(:InvH_Disc_Amt, 0) < 0 Then
Show_Message('Inv_Alert', 'Invoice Nett Amount Cannot Be Negative!');
Raise Form_Trigger_Failure;
End If;
End If;
If Nvl(Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_DT'), 'F') = 'F' Then
If Trunc(:InvH_Dt) <> Trunc(Sysdate) Then
Show_Message('Inv_Alert', 'Invoice date is not today date!');
Raise Form_Trigger_Failure;
End If;
End If;
If Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_DOC_NO_GEN') <> 'M' Then
:InvH_No := Fn_Get_Next_Txn_No(:InvH_Comp_Code, :InvH_Loc_Code, :InvH_Txn_Code, :Frm_Doc_No_Gen);
End If;
:InvH_Cr_User := :Global.User;
:InvH_Cr_Dt := fn_get_zone_date(:Global.Company);
--Invoice Log
v_InvLog_Id :=Fn_Get_Next_Id('Inv_Log');
/*
Insert INTO T_Inv_Log(
InvLog_Id, InvLog_Login_Id ,
InvLog_InvH_Id, InvLog_Upd_Flag ,
InvLog_Comp_Os_Amt, InvLog_Comp_Os_Days,
InvLog_Divn_Os_Amt, InvLog_Divn_Os_Days,
InvLog_Comp_Limit_Days, InvLog_Comp_Cr_Limit ,
InvLog_Divn_Limit_Days, InvLog_Divn_Cr_Limit ,
InvLog_Temp_Limit, InvLog_Temp_Limit_Days,
InvLog_Temp_Dt, InvLog_Inv_Amt,
InvLog_DateTime)
Values
(v_InvLog_Id,:Global.User,
:InvH_Id, Nvl(:Upd_Flag,'U'),
:Comp_Os, (Round(Fn_Get_Zone_Date(:Global.Company)) - To_Date(:Comp_Os_Min_Dt)),
:Divn_Os, (Round(Fn_Get_Zone_Date(:Global.Company)) - TO_Date(:Divn_Os_Min_Dt)),
:Comp_Cr_Days, :Comp_Cr_Limit,
:Divn_Cr_Days, :Divn_Cr_Limit,
:Temp_Limit, :Temp_Days,
:Temp_Exp_Dt,:nett_loc,
Fn_Get_Zone_Date(:Global.Company)
);
*/
End;on save insert: deny when status of T_INV_ITEM = 'NEW' else "Item Details Not Entered!" call VALIDATE_INVOICE() set INVH_ID to FN_GET_NEXT_ID('Inv_Head') set INVH_COMP_CODE to GLOBAL.COMPANY set INVH_AYR_CODE to FN_GET_AYR_CODE(GLOBAL.COMPANY, 'P') when trunc(INVH_DT) < trunc(to_date(GLOBAL.AYEAR_FM)) set INVH_AYR_CODE to FN_GET_AYR_CODE(GLOBAL.COMPANY, 'N') when not (trunc(INVH_DT) < trunc(to_date(GLOBAL.AYEAR_FM))) and (trunc(INVH_DT) > trunc(to_date(GLOBAL.AYEAR_TO))) set INVH_AYR_CODE to GLOBAL.AYEAR when not (trunc(INVH_DT) < trunc(to_date(GLOBAL.AYEAR_FM))) and not (trunc(INVH_DT) > trunc(to_date(GLOBAL.AYEAR_TO))) deny when (SUB_TOTAL > 0) and (((SUB_TOTAL - nvl((SUB_TOTAL * INVH_DISC_PERC) / 100, 0)) - nvl(INVH_DISC_AMT, 0)) < 0) else "Invoice Nett Amount Cannot Be Negative!" deny when (nvl(FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_DT'), 'F') = 'F') and (trunc(INVH_DT) <> trunc(sysdate())) else "Invoice date is not today date!" set INVH_NO to FN_GET_NEXT_TXN_NO(INVH_COMP_CODE, INVH_LOC_CODE, INVH_TXN_CODE, FRM_DOC_NO_GEN) when FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_DOC_NO_GEN') <> 'M' set INVH_CR_USER to GLOBAL.USER set INVH_CR_DT to sysdate() # 1 statement did not convert.# line 12 # :Parameter.Insert_Flag := 1; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only
12 clauses converted, 1 statement refused
PROCEDURE Tender_Validate_Item_Level IS
v_Tndr_Qty Number := 0;
v_Tndr_Loose Number := 0;
v_Tndr_Inv_Qty_Bu Number := 0;
v_Tndr_Qty_Bu Number := 0;
v_Inv_Qty_Bu Number := 0;
v_Tndr_Validate Varchar2(10);
v_Count Number;
v_Row_Num Number := 1;
v_Ref_Tndr_Id Number(10);
v_Row_Count Number;
rg_Id RecordGroup;
BEGIN
If Nvl(:Parameter.Tndr_Flag, 'X') = 'N' Then --- 'N' = Tender Is Enabled, 'Y' = Load Button Pressed Added by mojish 11/04/14
Show_Message('Inv_Alert', 'Click Button -> Load Checked!');
Raise Form_Trigger_Failure;
End If;
rg_Id := Find_Group('RG_TNDR');
v_Row_Count := Get_Group_Row_Count(rg_Id);
If :InvI_Item_Code Is Not Null And Nvl(v_Row_Count, 0) > 0 Then
If Get_Block_Property('T_Inv_Ref_Doc', Insert_Allowed) = 'TRUE' Then
Set_Block_Property('T_Inv_Ref_Doc', Insert_Allowed, Property_False);
Set_Block_Property('T_Inv_Ref_Doc', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_Ref_Doc', Delete_Allowed, Property_False);
End If;
loop
v_Ref_Tndr_Id := Null;
v_Ref_Tndr_Id := Get_Group_Number_Cell('RG_TNDR.COL_TNDR', v_Row_Num);
If Nvl(:Flag, 'N') = 'Y' And Nvl(v_Ref_Tndr_Id, 0) > 0 And :InvI_Uom_Code Is Not Null Then
Select Count(*) Into v_Count From T_Tndr_Cust_Item, T_Tndr_Item
Where TndrC_Id = TndrI_TndrC_Id And TndrC_Uom_Code = TndrI_Uom_Code
And TndrI_Item_Code = :InvI_Item_Code And TndrI_Uom_Code = :InvI_Uom_Code And TndrC_TndrH_Id = v_Ref_Tndr_Id;
If v_Count > 0 Then
Select TndrC_Id, TndrC_Item_Code, TndrC_Item_Name, TndrC_Qty, TndrC_Loose, TndrC_Rate,(Nvl (Tndrc_Inv_Qty_Bu, 0) + Nvl (Tndrc_Dn_Qty_Bu, 0)) TndrC_Inv_Qty_Bu
Into :InvI_Tndr_Doc_Item_Id, :InvI_Ref_Item_Code, :InvI_Item_Alt_Name, v_Tndr_Qty, v_Tndr_Loose, :InvI_Rate, v_Tndr_Inv_Qty_Bu
From T_Tndr_Cust_Item, T_Tndr_Item
Where TndrC_Id = TndrI_TndrC_Id And TndrC_Uom_Code = TndrI_Uom_Code
And TndrI_Item_Code = :InvI_Item_Code And TndrI_Uom_Code = :InvI_Uom_Code And TndrC_TndrH_Id = v_Ref_Tndr_Id;
Exit;
End If;
End If;
If v_Row_Num = v_Row_Count Then
Exit;
End If;
v_Row_Num := v_Row_Num + 1;
End Loop;
If Nvl(:InvI_Tndr_Doc_Item_Id, 0) = 0 And Nvl(:InvrD_Tndr_Id, 0) > 0 Then --Checking Tender Item Code And Uom Code
Show_Message('Inv_Alert', 'Invalid Tender Item Code/Uom!');
Raise Form_Trigger_Failure;
ElsIf Nvl(:InvI_Tndr_Doc_Item_Id, 0) > 0 And Nvl(:InvrD_Tndr_Id, 0) > 0 Then
v_Inv_Qty_Bu := Nvl(:InvI_Qty * :Max_Loose, 0) + Nvl(:InvI_loose, 0);
If v_Inv_Qty_Bu > 0 Then
:InvI_Foc_Qty := 0;
:InvI_Foc_Loose := 0;
v_Tndr_Qty_Bu := Nvl(v_Tndr_Qty * :Max_Loose, 0) + Nvl(v_Tndr_Loose, 0);
If v_Inv_Qty_Bu + Nvl(v_Tndr_Inv_Qty_Bu, 0) > v_Tndr_Qty_Bu Then --Tender Qty Validating
Show_Message('Inv_Alert', 'Sales Order Qty is exceeded than Tender Qty!');
Raise Form_Trigger_Failure;
/* v_Tndr_Validate := Fn_Get_Cust_Param(:InvH_Cust_Code, :Global.Company, 'CUST_VALIDATE_TENDER');
If Nvl(v_Tndr_Validate, 'Y') = 'Y' Then -- Blocking Tender Qty
Raise Form_Trigger_Failure;
End If;*/
End If; --Validating Tender Qty
End If; --Checking Sales Order Qty > 0
End If; --Tender Item is exist or not
End If; --Item Code Not Null Checking
Exception When No_Data_Found Then
Show_Message('Inv_Alert', 'Invalid Tender Item Code/Uom!');
Raise Form_Trigger_Failure;
END;on unit TENDER_VALIDATE_ITEM_LEVEL: deny when PARAMETER.TNDR_FLAG = 'N' else "Click Button -> Load Checked!" # 2 statements did not convert.# line 20 # If :InvI_Item_Code Is Not Null And Nvl(v_Row_Count, 0) > 0 Then # If Get_Block_Property('T_Inv_Ref_Doc', Insert_Allowed) = 'TRUE' Then # Set_Block_Property('T_Inv_Ref_Doc', Insert_Allowed, Property_False); # Set_Block_Property('T_Inv_Ref_Doc', Update_Allowed, Property_False); # Set_Block_Property('T_Inv_Ref_Doc', Delete_Allowed, Property_False); # End If; # loop # v_Ref_Tndr_Id := Null; # v_Ref_Tndr_Id := Get_Group_Number_Cell('RG_TNDR.COL_TNDR', v_Row_Num); # # If Nvl(:Flag, 'N') = 'Y' And Nvl(v_Ref_Tndr_Id, 0) > 0 And :InvI_Uom_Code Is Not Null Then # Select Count(*) Into v_Count From T_Tndr_Cust_Item, T_Tndr_Item # Where TndrC_Id = TndrI_TndrC_Id And TndrC_Uom_Code = TndrI_Uom_Code # And TndrI_Item_Code = :InvI_Item_Code And TndrI_Uom_Code = :InvI_Uom_Code And TndrC_TndrH_Id = v_Ref_Tndr_Id; # # If v_Count > 0 Then # Select TndrC_Id, TndrC_Item_Code, TndrC_Item_Name, TndrC_Qty, TndrC_Loose, TndrC_Rate,(Nvl (Tndrc_Inv_Qty_Bu, 0) + Nvl (Tndrc_Dn_Qty_Bu, 0)) TndrC_Inv_Qty_Bu # Into :InvI_Tndr_Doc_Item_Id, :InvI_Ref_Item_Code, :InvI_Item_Alt_Name, v_Tndr_Qty, v_Tndr_Loose, :InvI_Rate, v_Tndr_Inv_Qty_Bu # From T_Tndr_Cust_Item, T_Tndr_Item # Where TndrC_Id = TndrI_TndrC_Id And TndrC_Uom_Code = TndrI_Uom_Code # And TndrI_Item_Code = :InvI_Item_Code And TndrI_Uom_Code = :InvI_Uom_Code And TndrC_TndrH_Id = v_Ref_Tndr_Id; # Exit; # End If; # End If; # # If v_Row_Num = v_Row_Count Then # Exit; # End If; # # v_Row_Num := v_Row_Num + 1; # End Loop; # If Nvl(:InvI_Tndr_Doc_Item_Id, 0) = 0 And Nvl(:InvrD_Tndr_Id, 0) > 0 Then # Show_Message('Inv_Alert', 'Invalid Tender Item Code/Uom!'); # Raise Form_Trigger_Failure; # Else # If Nvl(:InvI_Tndr_Doc_Item_Id, 0) > 0 And Nvl(:InvrD_Tndr_Id, 0) > 0 Then # v_Inv_Qty_Bu := Nvl(:InvI_Qty * :Max_Loose, 0) + Nvl(:InvI_loose, 0); # If v_Inv_Qty_Bu > 0 Then # :InvI_Foc_Qty := 0; # :InvI_Foc_Loose := 0; # v_Tndr_Qty_Bu := Nvl(v_Tndr_Qty * :Max_Loose, 0) + Nvl(v_Tndr_Loose, 0); # If v_Inv_Qty_Bu + Nvl(v_Tndr_Inv_Qty_Bu, 0) > v_Tndr_Qty_Bu Then # Show_Message('Inv_Alert', 'Sales Order Qty is exceeded than Tender Qty!'); # Raise Form_Trigger_Failure; # End If; # End If; # End If; # End If; # End If; # reason: the guard reads the local V_ROW_COUNT, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 76 # Exception When No_Data_Found Then # Show_Message('Inv_Alert', 'Invalid Tender Item Code/Uom!'); # Raise Form_Trigger_Failure; # reason: it handles NO_DATA_FOUND and re-raises, and CRL has no clause that runs when a statement fails: the error path ends the program either way, so the statements above it convert and the handler does not
1 clause converted, 2 statements refused
PROCEDURE GET_STOCK (Stk_Col_Name IN VarChar2, Stk_Dtl_Col_Name IN VarChar2, Comp_Code IN VarChar2, Loc_Code IN VarChar2, Item_Code IN VarChar2, Max_Loose IN Number, Stk_Chk_Type IN VarChar2) IS
v_Count Number;
v_Stock Number;
v_Resv Number;
v_Stock_Dtl VarChar2(100);
BEGIN
If Loc_Code Is Null Then
--Show complete direct location stock
SELECT Sum(Nvl(Stk_UnConf_Qty, 0))
INTO v_Stock
FROM M_Stock, M_Location
WHERE Loc_comp_Code = Stk_Comp_Code
AND Loc_Code = Stk_Loc_Code
AND Stk_Comp_Code = Comp_Code
AND Stk_Item_Code = Item_Code
AND Loc_SMan_Code Is Null
AND Loc_Stock_Fm Is Null;
--Show Reserv stock
SELECT count(*)
INTO v_count
FROM M_Stock_Resv, M_Location
WHERE Loc_comp_Code = Stkr_Comp_Code
AND Loc_Code = Stkr_Loc_Code
AND Stkr_Comp_Code = Comp_Code
AND Stkr_Item_Code = Item_Code
AND Loc_SMan_Code Is Null
AND Loc_Stock_Fm Is Null;
If v_Count >0 Then
SELECT Sum(Nvl(StkR_Qty, 0))
INTO v_Resv
FROM M_Stock_Resv, M_Location
WHERE Loc_comp_Code = Stkr_Comp_Code
AND Loc_Code = Stkr_Loc_Code
AND Stkr_Comp_Code = Comp_Code
AND Stkr_Item_Code = Item_Code
AND Loc_SMan_Code Is Null
AND Loc_Stock_Fm Is Null;
End If;
Else
SELECT Count(*) INTO v_Count
FROM M_Stock
WHERE Stk_Comp_Code = Comp_Code
AND Stk_Loc_Code = Loc_Code
AND Stk_Item_Code = Item_Code;
If v_Count = 1 Then
SELECT Nvl(Stk_UnConf_Qty, 0) + Decode(Nvl(:Frm_Loc_En_Uncosted_Stk,'N'),'N',0,Nvl(Stk_Uncosted_Qty,0)) INTO v_Stock
FROM M_Stock
WHERE Stk_Comp_Code(+) = Comp_Code
AND Stk_Loc_Code (+) = Loc_Code
AND Stk_Item_Code (+) = Item_Code;
End If;
--Reserv stock
/*SELECT Count(*) INTO v_Count --Commented By Mojish on 16/08/14
FROM M_Stock_Resv
WHERE Stkr_Comp_Code = Comp_Code
AND Stkr_Loc_Code = Loc_Code
AND Stkr_Item_Code = Item_Code;*/
--If v_Count = 1 Then
SELECT Nvl(Sum(Stkr_Qty), 0) INTO v_Resv --Modified By Mojish on 16/08/14
FROM M_Stock_Resv
WHERE Stkr_Comp_Code(+) = Comp_Code
AND Stkr_Loc_Code (+) = Loc_Code
AND Stkr_Item_Code (+) = Item_Code;
--End If;
End If;
If Nvl(v_Resv, 0) > 0 Then
v_Stock_Dtl := Fn_Get_Carton(Nvl(v_Stock -Nvl(v_Resv,0), 0), Max_Loose) || '[Aft Rsvd: ' || Fn_Get_Carton(v_Resv, Max_Loose) || ']';
Else
v_Stock_Dtl := Fn_Get_Carton(v_Stock, Max_Loose);
End If;
Copy (v_Stock_Dtl, Stk_Dtl_Col_Name);
Copy (v_Stock -Nvl(v_Resv,0), Stk_Col_Name);
END;
on unit GET_STOCK(STK_COL_NAME, STK_DTL_COL_NAME, COMP_CODE, LOC_CODE, ITEM_CODE, MAX_LOOSE, STK_CHK_TYPE): from STOCK_SUM(ARG.COMP_CODE, ARG.ITEM_CODE) when is_blank(ARG.LOC_CODE) # load-fmb-invoice-get-stock-unit-0 from STOCK_RESV_COUNT(ARG.COMP_CODE, ARG.ITEM_CODE) when is_blank(ARG.LOC_CODE) # load-fmb-invoice-get-stock-unit-1 from STOCK_RESV_2(ARG.COMP_CODE, ARG.ITEM_CODE) when is_blank(ARG.LOC_CODE) and (STOCK_RESV_COUNT.COUNT > 0) # load-fmb-invoice-get-stock-unit-2 from STOCK_COUNT(ARG.COMP_CODE, ARG.ITEM_CODE, ARG.LOC_CODE) when not is_blank(ARG.LOC_CODE) # load-fmb-invoice-get-stock-unit-3 from STOCK(ARG.COMP_CODE, ARG.ITEM_CODE, ARG.LOC_CODE, FRM_LOC_EN_UNCOSTED_STK) when not is_blank(ARG.LOC_CODE) and (STOCK_COUNT.COUNT = 1) # load-fmb-invoice-get-stock-unit-4 from STOCK_RESV_5(ARG.COMP_CODE, ARG.ITEM_CODE, ARG.LOC_CODE) when not is_blank(ARG.LOC_CODE) # load-fmb-invoice-get-stock-unit-5 set ARG.STK_COL_NAME to STOCK.V_STOCK - nvl(STOCK_RESV_5.SUM, 0) # 1 statement did not convert.# line 76 # Copy (v_Stock_Dtl, Stk_Dtl_Col_Name); # reason: Copy writes into the field ARG.STK_DTL_COL_NAME names, and CRL has no expression for V_STOCK_DTL, which is what it would write there
1 clause converted, 1 statement refused
Declare
CURSOR CurINV IS
SELECT INVH_Id, INVH_Loc_Code, INVH_Txn_Code, INVH_No, INVH_SMan_Code, INVH_Cust_Code, INVH_Disc_Perc,
INVH_Disc_Amt, DELI_Item_Code Item_Code, Item_Name, DELI_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose, DELI_QTY Qty,
DELI_LOOSE Loose,
0 FOC_Qty,
0 FOC_Loose,
DELI_Rate Rate, DELI_Disc_Perc Disc_Perc, DELI_DISC_AMT Disc_Amt, NULL Item_Id
FROM M_UOM, M_Item, T_DELITEM_LOG, T_INV_Head
WHERE DELI_HEADER_Id = INVH_Id
AND Item_Code = DELI_Item_Code
AND UOM_Code = DELI_UOM_Code
AND INVH_Comp_Code = :Global.Company
AND INVH_Cust_Code = :InvH_Cust_Code
AND INVH_Status = 'C'
AND INVH_Txn_Code = :DEL_REF_TXN_CODE
AND INVH_Loc_Code = :Del_REF_LOC_CODE
AND INVH_No = :DEL_Ref_No;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(60);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
Begin
Go_Block('T_Inv_Item');
Clear_Block;
First_Record;
Open CurInv;
Loop
Fetch CurInv INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc,
v_HDisc_Amt, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id;
EXIT WHEN CurInv%NotFound;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=v_Foc_Qty;
:Invi_Foc_Loose := v_Foc_Ls;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
Next_Record;
End Loop;
Close CurInv;
Set_Item_Property('PB_Cancel_Reload',Enabled,Property_False);
End;
on press of PB_CANCEL_RELOAD: go to T_INV_ITEM clear T_INV_ITEM first record of T_INV_HEAD state disable PB_CANCEL_RELOAD # 1 statement did not convert.# line 55 # Loop # Fetch CurInv INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, # v_HDisc_Amt, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id; # EXIT WHEN CurInv%NotFound; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=v_Foc_Qty; # :Invi_Foc_Loose := v_Foc_Ls; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # Next_Record; # End Loop; # reason: its body calls FN_GET_NEXT_ID once per row it appends, and an append performs no round trip per row
4 clauses converted, 1 statement refused
PROCEDURE Enable_Sl_Batch(v_Sl IN VarChar2, v_Batch IN VarChar2, v_Fix_SRate IN VarChar2) IS
BEGIN
Set_Item_Property('PB_Sl', Enabled, Property_False);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Required, Property_False);
Set_Item_Property('INVI_Item_Sl_Ref',VISUAL_ATTRIBUTE ,'DISABLE_VA');
If v_Sl IN ('M','Manual') Then --Manual
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False);
Set_Item_Property('INVI_Item_Sl_Ref',VISUAL_ATTRIBUTE ,'DISABLE_VA');
Set_Item_Property('PB_Sl', Enabled, Property_True);
Set_Item_Property('PB_Sl', Navigable, Property_True);
End If;
If v_Sl IN('A','Auto') Then --Auto
Set_Item_Property('InvI_Batch', Enabled, Property_False);
If Nvl(:Ref_Doc_Item, 'XX') <> 'Loaded' Then
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Required, Property_True);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_True);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_True);
Set_Item_Property('SL_REF_TO', Enabled, Property_True);
Set_Item_Property('SL_REF_TO', Navigable, Property_True);
End If;
End If;
If v_Sl IN('NA',' ') Then
Set_Item_Property('INVI_Item_Sl_Ref', Enabled, Property_False);
Set_Item_Property('SL_REF_TO', Enabled, Property_False);
Set_Item_Property('SL_REF_TO',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If v_Batch = 'N' Then
Set_Item_Property('InvI_Batch', Enabled, Property_False);
Set_Item_Property('InvI_Batch', Required, Property_False);
Set_Item_Property('InvI_Exp_Dt', Enabled, Property_False);
Set_Item_Property('InvI_Batch',VISUAL_ATTRIBUTE ,'DISABLE_VA');
Set_Item_Property('InvI_Exp_Dt',VISUAL_ATTRIBUTE ,'DISABLE_VA');
Else
--Location level
If Nvl(:Frm_Valid_Item_Batch,'Y') ='Y' Then
Set_Item_Property('InvI_Batch', Enabled, Property_True);
Set_Item_Property('InvI_Batch', Required, Property_True);
Set_Item_Property('InvI_Exp_Dt', Enabled, Property_True);
End If;
End If;
If Nvl(v_Fix_SRate, 'N') = 'Y' Then
If Get_Item_Property('KG_Rate',Enabled) ='TRUE' Then
Set_Item_Property('KG_Rate', Enabled, Property_False);
Set_Item_Property('KG_Rate',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Rate',Enabled) ='TRUE' Then
Set_Item_Property('InvI_Rate', Enabled, Property_False);
Set_Item_Property('InvI_Rate',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Disc_Perc',Enabled) ='TRUE' Then
Set_Item_Property('InvI_Disc_Perc', Enabled, Property_False);
Set_Item_Property('InvI_Disc_Perc',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
If Get_Item_Property('InvI_Disc_Amt',Enabled) ='TRUE' Then
Set_Item_Property('InvI_Disc_Amt', Enabled, Property_False);
Set_Item_Property('InvI_Disc_Amt',VISUAL_ATTRIBUTE ,'DISABLE_VA');
End If;
Else
If Nvl(:Wt, 0) > 0 Then
Enable_Text('KG_Rate', :Frm_En_Rate);
Enable_Text('KG_Rate', 'F');
Else
Enable_Text('KG_Rate', 'F');
Enable_Text('INVI_Rate', :Frm_En_Rate);
End If;
If Nvl(:Frm_Show_Rate,'Y') = 'Y' Then
Enable_Text('INVI_DISC_PERC', Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_DISC1'));
Enable_Text('INVI_DISC_AMT', Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_DISC1'));
End If;
End If;
END;on unit ENABLE_SL_BATCH(V_SL, V_BATCH, V_FIX_SRATE): state disable PB_SL state enable PB_SL when (ARG.V_SL = 'M') or (ARG.V_SL = 'Manual') state unskip PB_SL when (ARG.V_SL = 'M') or (ARG.V_SL = 'Manual') state disable INVI_BATCH when (ARG.V_SL = 'A') or (ARG.V_SL = 'Auto') state enable SL_REF_TO when ((ARG.V_SL = 'A') or (ARG.V_SL = 'Auto')) and (nvl(REF_DOC_ITEM, 'XX') <> 'Loaded') state unskip SL_REF_TO when ((ARG.V_SL = 'A') or (ARG.V_SL = 'Auto')) and (nvl(REF_DOC_ITEM, 'XX') <> 'Loaded') state disable INVI_ITEM_SL_REF, SL_REF_TO when (ARG.V_SL = 'NA') or (ARG.V_SL = ' ') state disable INVI_BATCH when ARG.V_BATCH = 'N' state optional INVI_BATCH when ARG.V_BATCH = 'N' state disable INVI_EXP_DT when ARG.V_BATCH = 'N' state enable INVI_BATCH when not (ARG.V_BATCH = 'N') and (nvl(FRM_VALID_ITEM_BATCH, 'Y') = 'Y') state require INVI_BATCH when not (ARG.V_BATCH = 'N') and (nvl(FRM_VALID_ITEM_BATCH, 'Y') = 'Y') state enable INVI_EXP_DT when not (ARG.V_BATCH = 'N') and (nvl(FRM_VALID_ITEM_BATCH, 'Y') = 'Y') state disable KG_RATE when (ARG.V_FIX_SRATE = 'Y') and enabled of KG_RATE state disable INVI_RATE when (ARG.V_FIX_SRATE = 'Y') and enabled of INVI_RATE state disable INVI_DISC_PERC when (ARG.V_FIX_SRATE = 'Y') and enabled of INVI_DISC_PERC state disable INVI_DISC_AMT when (ARG.V_FIX_SRATE = 'Y') and enabled of INVI_DISC_AMT call ENABLE_TEXT('T_INV_ITEM.KG_RATE', FRM_EN_RATE) when not (ARG.V_FIX_SRATE = 'Y') and (nvl(WT, 0) > 0) call ENABLE_TEXT('T_INV_ITEM.KG_RATE', 'F') when not (ARG.V_FIX_SRATE = 'Y') and (nvl(WT, 0) > 0) call ENABLE_TEXT('T_INV_ITEM.KG_RATE', 'F') when not (ARG.V_FIX_SRATE = 'Y') and not (nvl(WT, 0) > 0) call ENABLE_TEXT('T_INV_ITEM.INVI_RATE', FRM_EN_RATE) when not (ARG.V_FIX_SRATE = 'Y') and not (nvl(WT, 0) > 0) call ENABLE_TEXT('T_INV_ITEM.INVI_DISC_PERC', FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_DISC1')) when not (ARG.V_FIX_SRATE = 'Y') and (nvl(FRM_SHOW_RATE, 'Y') = 'Y') call ENABLE_TEXT('T_INV_ITEM.INVI_DISC_AMT', FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_DISC1')) when not (ARG.V_FIX_SRATE = 'Y') and (nvl(FRM_SHOW_RATE, 'Y') = 'Y') # 11 statements did not convert.# line 4 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 5 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 6 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Required, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 7 # Set_Item_Property('INVI_Item_Sl_Ref',VISUAL_ATTRIBUTE ,'DISABLE_VA'); # reason: the state effect is nine properties over twelve verbs, and VISUAL_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean# line 10 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 11 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 12 # Set_Item_Property('INVI_Item_Sl_Ref',VISUAL_ATTRIBUTE ,'DISABLE_VA'); # reason: the state effect is nine properties over twelve verbs, and VISUAL_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean# line 19 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Required, Property_True); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 20 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_True); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 21 # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_True); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built# line 37 # Set_Item_Property('InvI_Batch',VISUAL_ATTRIBUTE ,'DISABLE_VA'); # reason: the state effect is nine properties over twelve verbs, and VISUAL_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean
23 clauses converted, 11 statements refused
PROCEDURE Promo_Foc_Loading IS
rg_Id_Promo RecordGroup;
rg_Col GroupColumn; --Added By Mojish 29/04/14
v_Prom_Code Varchar2(10);
v_Rec_Num Number;
v_Row_Num Number;
v_PromH_Id Number;
v_InvI_Qty_Bu Number;
v_InvI_Foc_Bu Number;
v_InvI_Prom_Bu Number;
v_InvI_Prom_Foc_Bu Number;
v_Issue_Foc_Bu Number;
v_Count Number;
BEGIN
If Nvl(:Frm_En_Sales_Promo, 'N') = 'Y' Then
v_Rec_Num := Get_Block_Property('T_Inv_Item', Current_Record);
rg_Id_Promo := Find_Group('RG_PROMO');
If Id_Null(rg_Id_Promo) Then --Creating record group
rg_Id_Promo := Create_Group('RG_PROMO');
rg_Col := Add_Group_Column(rg_Id_Promo, 'PromH_Id', NUMBER_COLUMN);
rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Item_Id', NUMBER_COLUMN);
rg_Col := Add_Group_Column(rg_Id_Promo, 'Inv_Qty_Bu', NUMBER_COLUMN);
rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Inv_Bu', NUMBER_COLUMN);
rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Foc_Bu', NUMBER_COLUMN);
rg_Col := Add_Group_Column(rg_Id_Promo, 'Issued_Foc_Bu', NUMBER_COLUMN);
End If;
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); -- Record Group rows added
v_Row_Num := v_Row_Num + 1;
While (v_Row_Num <= v_Rec_Num) Loop
Add_Group_Row(rg_Id_Promo, v_Row_Num);
v_Row_Num := v_Row_Num + 1;
End Loop; -- End of Record Group rows added
End If;
If Nvl(:InvI_Prom_Item_Id, 0) > 0 And Nvl(:Frm_En_Sales_Promo, 'Y') = 'Y' And :InvI_Item_Code Is Not Null Then
Select PromI_PromH_Id Into v_PromH_Id From T_Prom_Item Where PromI_Id = :InvI_Prom_Item_Id;
Begin
Select PromH_Promt_Code, Nvl(PromH_Qty_Bu, 0), Nvl(PromH_Foc_Bu, 0) Into v_Prom_Code, v_InvI_Prom_Bu, v_InvI_Prom_Foc_Bu
From T_Prom_Head Where PromH_Id = v_PromH_Id;
Exception When Others Then
Null;
End;
:PromH_Id := v_PromH_Id;
Select Count(*) Into v_Count From T_Prom_Foc_Qualify, T_Prom_Foc_Item
Where PromFq_PromH_Id = PromFi_PromH_Id And PromFq_Item_Code = PromFi_Item_Code
And PromFi_PromH_Id = v_PromH_Id And PromFq_Item_Code = :InvI_Item_Code;
If Nvl(v_Prom_Code, 'FG') = 'FG' And v_Count = 0 Then --This option required for promotion free goods and never same item has foc
:InvI_Prom_Foc_Same := 'N';
Select Count(*) Into v_Count From T_Prom_Foc_Qualify
Where PromFq_PromH_Id = v_PromH_Id And PromFq_Item_Code = :InvI_Item_Code;
If v_Count = 1 Then
v_InvI_Qty_Bu := Nvl(:InvI_Qty * :Max_Loose, 0) + Nvl(:InvI_Loose, 0);
Else
v_InvI_Qty_Bu := 0;
End If;
Set_Group_Number_Cell('RG_PROMO.PromH_Id', v_Rec_Num, v_PromH_Id);
Set_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Rec_Num, :InvI_Prom_Item_Id);
Set_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Rec_Num, v_InvI_Qty_Bu);
Set_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Rec_Num, v_InvI_Prom_Bu);
Set_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Rec_Num, v_InvI_Prom_Foc_Bu);
Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Rec_Num, 0);
v_InvI_Foc_Bu := Nvl(:InvI_Foc_Qty * :Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0);
If v_InvI_Foc_Bu > 0 Then
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo) - 1;
While(v_Row_Num > 0) Loop -- taking Issued Foc Qty Same Promo Head Item
If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then
v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num);
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo);
While(v_Row_Num > 0) Loop -- Updating Issued Foc Qty Same Promo Head Item
If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then
Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + Nvl(v_InvI_Foc_Bu, 0)));
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
End If;
End If;
End If;
END;on unit PROMO_FOC_LOADING: # 1 statement did not convert.# PROCEDURE Promo_Foc_Loading IS # rg_Id_Promo RecordGroup; # rg_Col GroupColumn; --Added By Mojish 29/04/14 # v_Prom_Code Varchar2(10); # v_Rec_Num Number; # v_Row_Num Number; # v_PromH_Id Number; # v_InvI_Qty_Bu Number; # v_InvI_Foc_Bu Number; # v_InvI_Prom_Bu Number; # v_InvI_Prom_Foc_Bu Number; # v_Issue_Foc_Bu Number; # v_Count Number; # BEGIN # If Nvl(:Frm_En_Sales_Promo, 'N') = 'Y' Then # v_Rec_Num := Get_Block_Property('T_Inv_Item', Current_Record); # rg_Id_Promo := Find_Group('RG_PROMO'); # If Id_Null(rg_Id_Promo) Then --Creating record group # rg_Id_Promo := Create_Group('RG_PROMO'); # rg_Col := Add_Group_Column(rg_Id_Promo, 'PromH_Id', NUMBER_COLUMN); # rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Item_Id', NUMBER_COLUMN); # rg_Col := Add_Group_Column(rg_Id_Promo, 'Inv_Qty_Bu', NUMBER_COLUMN); # rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Inv_Bu', NUMBER_COLUMN); # rg_Col := Add_Group_Column(rg_Id_Promo, 'Prom_Foc_Bu', NUMBER_COLUMN); # rg_Col := Add_Group_Column(rg_Id_Promo, 'Issued_Foc_Bu', NUMBER_COLUMN); # End If; # # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); -- Record Group rows added # v_Row_Num := v_Row_Num + 1; # While (v_Row_Num <= v_Rec_Num) Loop # Add_Group_Row(rg_Id_Promo, v_Row_Num); # v_Row_Num := v_Row_Num + 1; # End Loop; -- End of Record Group rows added # End If; # # If Nvl(:InvI_Prom_Item_Id, 0) > 0 And Nvl(:Frm_En_Sales_Promo, 'Y') = 'Y' And :InvI_Item_Code Is Not Null Then # Select PromI_PromH_Id Into v_PromH_Id From T_Prom_Item Where PromI_Id = :InvI_Prom_Item_Id; # Begin # Select PromH_Promt_Code, Nvl(PromH_Qty_Bu, 0), Nvl(PromH_Foc_Bu, 0) Into v_Prom_Code, v_InvI_Prom_Bu, v_InvI_Prom_Foc_Bu # From T_Prom_Head Where PromH_Id = v_PromH_Id; # Exception When Others Then # Null; # End; # :PromH_Id := v_PromH_Id; # Select Count(*) Into v_Count From T_Prom_Foc_Qualify, T_Prom_Foc_Item # Where PromFq_PromH_Id = PromFi_PromH_Id And PromFq_Item_Code = PromFi_Item_Code # And PromFi_PromH_Id = v_PromH_Id And PromFq_Item_Code = :InvI_Item_Code; # # If Nvl(v_Prom_Code, 'FG') = 'FG' And v_Count = 0 Then --This option required for promotion free goods and never same item has foc # :InvI_Prom_Foc_Same := 'N'; # # Select Count(*) Into v_Count From T_Prom_Foc_Qualify # Where PromFq_PromH_Id = v_PromH_Id And PromFq_Item_Code = :InvI_Item_Code; # If v_Count = 1 Then # v_InvI_Qty_Bu := Nvl(:InvI_Qty * :Max_Loose, 0) + Nvl(:InvI_Loose, 0); # Else # v_InvI_Qty_Bu := 0; # End If; # Set_Group_Number_Cell('RG_PROMO.PromH_Id', v_Rec_Num, v_PromH_Id); # Set_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Rec_Num, :InvI_Prom_Item_Id); # Set_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Rec_Num, v_InvI_Qty_Bu); # Set_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Rec_Num, v_InvI_Prom_Bu); # Set_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Rec_Num, v_InvI_Prom_Foc_Bu); # Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Rec_Num, 0); # # v_InvI_Foc_Bu := Nvl(:InvI_Foc_Qty * :Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0); # If v_InvI_Foc_Bu > 0 Then # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo) - 1; # While(v_Row_Num > 0) Loop -- taking Issued Foc Qty Same Promo Head Item # If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then # v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); # While(v_Row_Num > 0) Loop -- Updating Issued Foc Qty Same Promo Head Item # If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then # Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + Nvl(v_InvI_Foc_Bu, 0))); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # End If; # End If; # End If; # END; # reason: it handles OTHERS and carries on, so every statement under that handler runs in a program that has no way to say what happens when one of them fails: CRL has no clause that runs on a failure and none that ignores one
0 clauses converted, 1 statement refused
Declare
v_Ctr Number;
v_location varchar2(10);
v_Count Number;
v_Sl Number;
Begin
If :InvH_Sman_Code Is Not Null Then
:Frm_MBK_CHK := Fn_Get_Sman_Param(:InvH_SMan_Code,'SMAN_MBK_CHK');
If :InvH_Ref Is Null and Nvl(:Frm_Mbk_Chk, 'Y') <> 'N' And :Txn_MBk_Item Is Not Null Then
--Show_Message('Inv_Alert', 'Reference Number Not Entered!');
Set_Item_Property('InvH_Ref', Required, Property_True); --Added by Mojish 03/05/14
Raise Form_Trigger_Failure;
End If;
End If;
if :INVH_REF is not null then
SELECT Count(*) INTO v_Ctr
FROM T_Inv_Head
WHERE InvH_Comp_Code = :Global.Company
AND InvH_Dt BETWEEN :Global.AYear_Fm AND :Global.AYear_To
AND INVH_Txn_Code= :InvH_Txn_Code
AND InvH_Ref = :InvH_Ref
AND InvH_Id <> Nvl(:InvH_Id, 0);
If v_Ctr > 0 Then
Show_Message('Inv_Alert', 'Reference already Entered!');
Raise Form_Trigger_Failure;
End If;
v_location := :Txn_MBk_Loc;
If Nvl(:Frm_Mbk_Chk, 'Y') <> 'N' and :Txn_MBk_Item Is Null Then
Show_Message('Inv_Alert', 'Book Issue item Code not set in Txn parameter!');
Raise Form_Trigger_Failure;
End If;
Select Count(*) Into v_Count From M_Item_Serial_Exception
Where ItemSlExc_Comp_Code = :Global.Company And ItemSlExc_Sman_Code = :InvH_Sman_Code
And ItemSlExc_Ref = :InvH_Ref;
If v_Count > 0 Then
Show_Message('Inv_Alert', 'Cancelled Serial Number!');
Raise Form_Trigger_Failure;
End If;
Select Count(Regexp_Replace(:Invh_Ref,'[^A-Za-z]'))Into V_Count From Dual;
If V_Count = 0 Then
v_Sl := :Invh_Ref;
SELECT Count(*) INTO v_Count
FROM M_Item_Serial
WHERE ItemSl_Comp_Code=:Global.Company
AND ItemSl_Loc_Code= v_location --:Txn_MBk_Loc
AND ItemSl_Item_Code=:Txn_MBk_Item
AND ItemSl_Sman_Code =:Invh_Sman_Code
AND ItemSl_Ref = (v_Sl-1)
AND Itemsl_Issued = 'Y'
AND not exists(select 'x' from M_Item_Serial_Exception
Where ItemSlexc_Comp_Code=Itemsl_Comp_Code
AND ItemSlexc_Loc_Code= Itemsl_Loc_Code --:Txn_MBk_Loc
AND ItemSlexc_Item_Code=ItemSl_Item_Code
AND ItemSlexc_Sman_Code =Itemsl_Sman_Code
AND ItemSlexc_Ref = Itemsl_Ref)
And Not Exists (Select 'X' from T_Inv_Head
Where InvH_Comp_Code = Itemsl_Comp_Code And InvH_Loc_Code = :InvH_Loc_Code
And InvH_Sman_Code = Itemsl_Sman_Code
And InvH_Ref = Itemsl_Ref);
If v_Count > 0 Then
Show_Message('Inv_Alert', 'Missing number found!');
Raise Form_Trigger_Failure;
End If;
End If;
If :Txn_MBk_Item Is Not Null Then
SELECT ItemSl_Issued, ItemSl_SMan_Code INTO :Txn_Mbk_Issued, :Txn_MBk_SMan_Code
FROM M_Item_Serial
WHERE ItemSl_Comp_Code=:Global.Company
AND ItemSl_Loc_Code= v_location --:Txn_MBk_Loc
AND ItemSl_Item_Code=:Txn_MBk_Item
AND ItemSl_Sman_Code =:Invh_Sman_Code
AND ItemSl_Ref=:InvH_Ref;
If Nvl(:Txn_MBk_Issued, 'N')='N' Then
Show_Message('Inv_Alert', 'Book Issue Not Found!');
Raise Form_Trigger_Failure;
Elsif Nvl(:Txn_MBk_SMan_Code, ' ') <> :InvH_SMan_Code Then
Show_Message('Inv_Alert', 'Book Issued to another salesman can not be accepted!');
Raise Form_Trigger_Failure;
End If;
End If;
end if;
Exception When No_Data_Found Then
Show_Message('Inv_Alert', 'Book Issue Not Found!');
Raise Form_Trigger_Failure;
End;on change of INVH_REF: from INV_HEAD(INVH_ID, INVH_REF, INVH_TXN_CODE) when is_filled(INVH_REF) # load-fmb-invoice-t-inv-head-invh-ref-change-0 from ITEM_SERIAL_EXCEPTION(INVH_REF, INVH_SMAN_CODE) when is_filled(INVH_REF) # load-fmb-invoice-t-inv-head-invh-ref-change-1 set FRM_MBK_CHK to FN_GET_SMAN_PARAM(INVH_SMAN_CODE, 'SMAN_MBK_CHK') when is_filled(INVH_SMAN_CODE) state require INVH_REF when is_filled(INVH_SMAN_CODE) and ((is_blank(INVH_REF) and (nvl(FRM_MBK_CHK, 'Y') <> 'N')) and is_filled(TXN_MBK_ITEM)) deny when is_filled(INVH_SMAN_CODE) and ((is_blank(INVH_REF) and (nvl(FRM_MBK_CHK, 'Y') <> 'N')) and is_filled(TXN_MBK_ITEM)) silent unique of INV_HEAD else "Reference already Entered!" when is_filled(INVH_REF) deny when is_filled(INVH_REF) and ((nvl(FRM_MBK_CHK, 'Y') <> 'N') and is_blank(TXN_MBK_ITEM)) else "Book Issue item Code not set in Txn parameter!" unique of ITEM_SERIAL_EXCEPTION else "Cancelled Serial Number!" when is_filled(INVH_REF) # 4 statements did not convert.# line 92 # Exception When No_Data_Found Then # Show_Message('Inv_Alert', 'Book Issue Not Found!'); # Raise Form_Trigger_Failure; # reason: it handles NO_DATA_FOUND and re-raises, and CRL has no clause that runs when a statement fails: the error path ends the program either way, so the statements above it convert and the handler does not# SELECT Count(*) INTO v_Count # FROM M_Item_Serial # WHERE ItemSl_Comp_Code=:Global.Company # AND ItemSl_Loc_Code= v_location # AND ItemSl_Item_Code=:Txn_MBk_Item # AND ItemSl_Sman_Code =:Invh_Sman_Code # AND ItemSl_Ref = (v_Sl-1) # AND Itemsl_Issued = 'Y' # AND not exists(select 'x' from M_Item_Serial_Exception # Where ItemSlexc_Comp_Code=Itemsl_Comp_Code # AND ItemSlexc_Loc_Code= Itemsl_Loc_Code # AND ItemSlexc_Item_Code=ItemSl_Item_Code # AND ItemSlexc_Sman_Code =Itemsl_Sman_Code # AND ItemSlexc_Ref = Itemsl_Ref) # And Not Exists (Select 'X' from T_Inv_Head # Where InvH_Comp_Code = Itemsl_Comp_Code And InvH_Loc_Code = :InvH_Loc_Code # And InvH_Sman_Code = Itemsl_Sman_Code # And InvH_Ref = Itemsl_Ref) # reason: its query narrows on V_LOCATION, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# SELECT ItemSl_Issued, ItemSl_SMan_Code INTO :Txn_Mbk_Issued, :Txn_MBk_SMan_Code # FROM M_Item_Serial # WHERE ItemSl_Comp_Code=:Global.Company # AND ItemSl_Loc_Code= v_location # AND ItemSl_Item_Code=:Txn_MBk_Item # AND ItemSl_Sman_Code =:Invh_Sman_Code # AND ItemSl_Ref=:InvH_Ref # reason: its query narrows on V_LOCATION, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Show_Message('Inv_Alert', 'Missing number found!'); # Raise Form_Trigger_Failure; # SELECT ItemSl_Issued, ItemSl_SMan_Code INTO :Txn_Mbk_Issued, :Txn_MBk_SMan_Code # FROM M_Item_Serial # WHERE ItemSl_Comp_Code=:Global.Company # AND ItemSl_Loc_Code= v_location # AND ItemSl_Item_Code=:Txn_MBk_Item # AND ItemSl_Sman_Code =:Invh_Sman_Code # AND ItemSl_Ref=:InvH_Ref; # Show_Message('Inv_Alert', 'Book Issue Not Found!'); # Raise Form_Trigger_Failure; # Show_Message('Inv_Alert', 'Book Issued to another salesman can not be accepted!'); # Raise Form_Trigger_Failure; # reason: the query they read is refused above, so a clause over it would read no row
6 clauses converted, 4 statements refused
PROCEDURE Load_Cs(Ref_Id IN Number) IS
CURSOR CurCs IS
SELECT CsH_Id, CsH_Loc_Code, CsH_Txn_Code, CsH_No,CsH_Cust_Code,
CsD_Item_Code Item_Code, Item_Name, CsD_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose, Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0))) /UOM_Max_Loose) Qty,
(Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))-
(Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
CsD_Rate, 0 Disc_Perc, 0 Disc_Amt, CsD_Id Item_Id,CsD_Remarks
FROM M_UOM, M_Item, T_Cust_Service_Detail, T_Cust_Service_Head
WHERE CsD_CsH_Id = CsH_Id
AND Item_Code = CsD_Item_Code
AND UOM_Code = CsD_UOM_Code
AND Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0
AND CsH_Comp_Code = :Global.Company
AND CsH_Loc_Code =:Ref_Loc_Code
AND CsH_Txn_Code =:Invh_Ref_Txn_Code
And CsH_Id =Ref_Id
AND Nvl(CsH_Load_Status,'N') ='N';
v_ctr Number := 0;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_csd_Remarks Varchar2(100);
BEGIN
Go_Block('T_Inv_Item');
Last_Record;
IF :System.Last_Record = 'TRUE' THEN
Last_Record;
Next_Record;
ELSE
First_Record;
END IF;
Open CurCs;
--If :FLAG = 'Y' THEN
Loop
Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,v_csd_Remarks;
EXIT WHEN CurCs%NotFound;
:InvI_Cs_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Remarks :=v_csd_Remarks;
:Ref_Doc_Item := 'Loaded';
v_ctr := v_ctr+1;
Next_Record;
End Loop;
If Nvl(v_Ctr,0) >0 Then
:Invh_Load_Status :='Y' ;
End If;
Close CurCs;
First_Record;
GO_BLOCK('T_INV_ITEM');
END;on unit LOAD_CS(REF_ID): go to T_INV_ITEM last record of T_INV_ITEM last record when SYSTEM.LAST_RECORD = 'TRUE' next record when SYSTEM.LAST_RECORD = 'TRUE' first record when not (SYSTEM.LAST_RECORD = 'TRUE') first record go to T_INV_ITEM # 2 statements did not convert.# line 65 # Loop # Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,v_csd_Remarks; # EXIT WHEN CurCs%NotFound; # # :InvI_Cs_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Remarks :=v_csd_Remarks; # :Ref_Doc_Item := 'Loaded'; # v_ctr := v_ctr+1; # Next_Record; # End Loop; # reason: its collection binds REF_ID, a parameter this program takes, and a parameter passed in PL/SQL is not a bind the page can supply# line 88 # If Nvl(v_Ctr,0) >0 Then # :Invh_Load_Status :='Y'; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := V_CTR+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
7 clauses converted, 2 statements refused
Declare
Pl_Id Paramlist;
V_Report Varchar2(30) := 'print_invoice_sret_005';
V_Rep_Id Report_Object;
V_Rep_Job_Id Varchar2(100);
V_Job_Id Varchar2(100);
V_Rep_Status Varchar2(100);
V_Rep_Url Varchar2(1000);
V_Host_Name Varchar2(100) := :Global.Rep_Host_Name;
V_Port Varchar2(100) := :Global.Rep_Port;
V_Rep_Server Varchar2(100) := :Global.Rep_Server;
V_Log_Id Number(10);
V_Dt Date := Fn_Get_Zone_Date(:Global.Company);
Begin
Txn_Validate;
If Nvl(:Frm_Skip_Print, 'N') = 'N' Then
:Frm_Report1 := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code,:Global.Company, 'INV_REPORT1');
:Frm_Printer_Name := Fn_Get_User_Preference(:Global.User, :Global.Company, :Invh_Txn_Code, 'USR_PRINTER');
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code, :Global.Company, 'INV_PRINTER');
End If;
Pl_Id := Get_Parameter_List(V_Report);
If Not Id_Null(Pl_Id) Then
Destroy_Parameter_List(Pl_Id);
End If;
Pl_Id:=Create_Parameter_List(V_Report);
If :Frm_No_Of_Print Is Null Then
:Frm_No_Of_Print := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code,:Global.Company, 'INV_NO_OF_PRINT');
End If;
Add_Parameter(Pl_Id, 'Parm_Comp_Code', Text_Parameter, :Global.Company);
Add_Parameter(Pl_Id, 'Parm_Comp_Name', Text_Parameter, :Global.Company_Name);
Add_Parameter(Pl_Id, 'Parm_Loc_Code', Text_Parameter, :Invh_Loc_Code);
Add_Parameter(Pl_Id, 'Parm_Txn_Code', Text_Parameter, :Invh_Txn_Code);
Add_Parameter(Pl_Id, 'Parm_AYr_Code', Text_Parameter, :Invh_Ayr_Code);
Add_Parameter(Pl_Id, 'Parm_No_From', Text_Parameter, :Invh_No);
Add_Parameter(Pl_Id, 'Parm_No_To', Text_Parameter, :Invh_No);
Add_Parameter(Pl_Id, 'No_Of_Print', Text_Parameter, :Frm_No_Of_Print);
Add_Parameter(Pl_Id, 'Parm_User', Text_Parameter, :Global.User);
Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
Add_Parameter(Pl_Id, 'Curr_Fmt', Text_Parameter, Nvl(:Frm_Curr_Format,:Global.Curr_Format));
--Find Report Object
V_Rep_Id := Find_Report_Object('print_txn');
--Communication Mode
Set_Report_Object_Property(V_Rep_Id, Report_Comm_Mode, Synchronous);
If :Frm_Desformat Is Not Null Then
Set_Report_Object_Property(V_Rep_Id, Report_Desformat, :Frm_Desformat);
Else
Set_Report_Object_Property(V_Rep_Id, Report_Desformat, 'PDF');
End If;
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_User_Preference(:Global.User, :Global.Company, :Invh_Txn_Code, 'USR_PRINTER');
End If;
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code, :Global.Company, 'INV_PRINTER');
End If;
--Specify Report Server and Report File Name
Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
Set_Report_Object_Property(v_Rep_Id, Report_FileName, lower(:Frm_Report1));
--Handled Destination Type and Name
If Nvl(:Frm_Printer_Name,:Mnu_Printer_Name) Is Not Null Then
Set_Report_Object_Property(V_Rep_Id, Report_Desname, Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
Set_Report_Object_Property(V_Rep_Id, Report_Destype,Cache);
Else
Set_Report_Object_Property(V_Rep_Id, Report_Destype,Cache);
End If;
--Run Report
V_Rep_Job_Id := Run_Report_Object(V_Rep_Id, Pl_Id);
V_Rep_Status := Report_Object_Status(V_Rep_Job_Id);
Set_Custom_Property('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
Set_Custom_Property('CTRL.CUSTOM_PRN_BEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
If V_Rep_Status = 'FINISHED' Then
If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
V_Job_Id := Substr(V_Rep_Job_Id, Length(V_Rep_Server)+2);
V_Rep_Url := 'http://' || V_Host_Name || ':' || V_Port || '/reports/rwservlet/getjobid' || V_Job_Id || '?server=' || V_Rep_Server;
Message(V_Rep_Url);
Set_Custom_Property('CTRL.PRINTBEAN',1,'FILE_NAME',V_Rep_Url);
Set_Custom_Property('CTRL.PRINTBEAN',1,'PRINT_FILE','');
--Web.Show_Document(v_Rep_URL, '_blank');
Elsif Upper(:Mnu_Dest_Name) = 'CACHE' Then
V_Job_Id := Substr(V_Rep_Job_Id, Length(V_Rep_Server)+2);
V_Rep_Url := 'http://' || V_Host_Name || ':' || V_Port || '/reports/rwservlet/getjobid' || V_Job_Id || '?server=' || V_Rep_Server;
Message(V_Rep_Url);
Web.Show_Document(V_Rep_Url, '_blank');
End If;
Else
Message('Error Running Report');
End If;
--Print Log
Proc_Insert_Txn_Print_Log1(:Global.Company,:Invh_Loc_Code,:Invh_Ayr_Code,:Invh_Txn_Code,:Invh_No,:Invh_No, Fn_Get_Zone_Date(:Global.Company),:Global.User);
Standard.Commit;
Else
Message('Print was skipped');
End If;
End;on press of PB_INV_RET_PRINT: call TXN_VALIDATE() set FRM_REPORT1 to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_REPORT1') when nvl(FRM_SKIP_PRINT, 'N') = 'N' set FRM_PRINTER_NAME to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_TXN_CODE, 'USR_PRINTER') when nvl(FRM_SKIP_PRINT, 'N') = 'N' set FRM_PRINTER_NAME to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_PRINTER') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_PRINTER_NAME) set FRM_NO_OF_PRINT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_NO_OF_PRINT') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_NO_OF_PRINT) set FRM_PRINTER_NAME to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_TXN_CODE, 'USR_PRINTER') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_PRINTER_NAME) set FRM_PRINTER_NAME to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_PRINTER') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_PRINTER_NAME) report lower(FRM_REPORT1) with (Curr_Fmt = nvl(FRM_CURR_FORMAT, GLOBAL.CURR_FORMAT), No_Of_Print = FRM_NO_OF_PRINT, ParamForm = 'No', Parm_AYr_Code = INVH_AYR_CODE, Parm_Comp_Code = GLOBAL.COMPANY, Parm_Comp_Name = GLOBAL.COMPANY_NAME, Parm_Loc_Code = INVH_LOC_CODE, Parm_No_From = INVH_NO, Parm_No_To = INVH_NO, Parm_Txn_Code = INVH_TXN_CODE, Parm_User = GLOBAL.USER) when nvl(FRM_SKIP_PRINT, 'N') = 'N' call PROC_INSERT_TXN_PRINT_LOG1(GLOBAL.COMPANY, INVH_LOC_CODE, INVH_AYR_CODE, INVH_TXN_CODE, INVH_NO, INVH_NO, sysdate(), GLOBAL.USER) when nvl(FRM_SKIP_PRINT, 'N') = 'N' warn "Print was skipped" when not (nvl(FRM_SKIP_PRINT, 'N') = 'N') # 4 statements did not convert.# line 71 # Set_Custom_Property('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name)); # reason: 'CTRL.PRINTBEAN' is a bean for printing, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent# line 72 # Set_Custom_Property('CTRL.CUSTOM_PRN_BEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name)); # reason: 'CTRL.CUSTOM_PRN_BEAN' is a bean for printing, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent# line 73 # If V_Rep_Status = 'FINISHED' Then # If Upper(:Mnu_Dest_Name) = 'PRINTER' Then # V_Job_Id := Substr(V_Rep_Job_Id, Length(V_Rep_Server)+2); # V_Rep_Url := 'http://' || V_Host_Name || ':' || V_Port || '/reports/rwservlet/getjobid' || V_Job_Id || '?server=' || V_Rep_Server; # Message(V_Rep_Url); # Set_Custom_Property('CTRL.PRINTBEAN',1,'FILE_NAME',V_Rep_Url); # Set_Custom_Property('CTRL.PRINTBEAN',1,'PRINT_FILE',''); # Else # If Upper(:Mnu_Dest_Name) = 'CACHE' Then # V_Job_Id := Substr(V_Rep_Job_Id, Length(V_Rep_Server)+2); # V_Rep_Url := 'http://' || V_Host_Name || ':' || V_Port || '/reports/rwservlet/getjobid' || V_Job_Id || '?server=' || V_Rep_Server; # Message(V_Rep_Url); # Web.Show_Document(V_Rep_Url, '_blank'); # End If; # End If; # Else # Message('Error Running Report'); # End If; # reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 92 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted
10 clauses converted, 4 statements refused
Declare
Pl_Id ParamList;
v_Status VarChar2(20);
v_Log_Id Number;
v_Report Varchar2(30);
v_Report VarChar2(30) := 'print_sret';
v_Rep_Id Report_Object;
v_Rep_Job_Id VarChar2(100);
v_Job_Id VarChar2(100);
v_Rep_Status VarChar2(100);
v_Rep_URL VarChar2(1000);
v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
v_Port VarChar2(100) := :Global.Rep_Port;
v_Rep_Server VarChar2(100) := :Global.Rep_Server;
v_Dt Date;
Begin
:Frm_Report1 := Fn_Get_User_Preference(:Global.User, :Global.Company, :Invh_Rev_Txn, 'USR_REPORT');
If :Frm_Report1 Is Null Then
:Frm_Report1 := Fn_Get_Stk_Txn_Param(:Invh_Rev_Txn,:Global.Company, 'SRET_REPORT');
End If;
If Nvl(:Frm_Skip_Print, 'N') = 'N' then
PL_Id := Get_Parameter_List('Print');
If Not Id_Null(Pl_Id) Then
Destroy_Parameter_List(Pl_Id);
End If;
PL_Id := Create_Parameter_List('Print');
Add_Parameter(PL_Id, 'Parm_Comp_Code', Text_Parameter, :Global.Company);
Add_Parameter(PL_Id, 'Parm_Loc_Code', Text_Parameter, :Invh_Loc_Code);
Add_Parameter(PL_Id, 'Parm_Txn_Code', Text_Parameter, :Invh_Rev_Txn);
Add_Parameter(PL_Id, 'Parm_AYr_Code', Text_Parameter, :Invh_AYr_Code);
Add_Parameter(PL_Id, 'Parm_No_From', Text_Parameter, :Invh_Rev_No);
Add_Parameter(PL_Id, 'Parm_No_To', Text_Parameter, :Invh_Rev_No);
Add_Parameter(PL_Id, 'Parm_User', Text_Parameter, :Global.User);
Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
v_Rep_Id := Find_Report_Object('print_txn');
--Communication Mode
Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
Set_Report_Object_Property(v_Rep_Id, Report_Desformat,:Frm_Desformat);
--User pref.Printer
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_User_Preference(:Global.User, :Global.Company, :InvH_Txn_Code, 'USR_PRINTER');
End If;
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code, :Global.Company, 'INV_PRINTER');
End If;
--Handled Destination Type and Name
If :Mnu_Dest_Name = 'PRINTER' Then
--Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
If Nvl(:Frm_Printer_Name,:Mnu_Printer_Name) Is Not Null Then
Set_Report_Object_Property(v_Rep_Id, Report_DesName, Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
End If;
Else
Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
End If;
--Specify Report Server and Report File Name
Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
Set_Report_Object_Property(v_Rep_Id, Report_FileName,lower(:Frm_Report1));
--Run Report
v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
If v_Rep_Status = 'FINISHED' Then
If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
Message(v_Rep_URL);
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL);
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE','');
--Web.Show_Document(v_Rep_URL, '_blank');
Elsif Upper(:Mnu_Dest_Name) = 'CACHE' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
Message(v_Rep_URL);
Web.Show_Document(v_Rep_URL, '_blank');
End If;
Else
Message('Error Running Report');
End If;
Proc_Insert_Txn_Print_Log1(:Global.Company,:Invh_Loc_Code,:Invh_Ayr_Code,:Invh_Rev_Txn,:Invh_Rev_No,:Invh_Rev_No, Sysdate,:Global.User);
Clear_Form(Do_Commit);
Init_Form;
else
message('Print was skipped');
end if;
End;on press of PB_REV_PRINT: set FRM_REPORT1 to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_REV_TXN, 'USR_REPORT') set FRM_REPORT1 to FN_GET_STK_TXN_PARAM(INVH_REV_TXN, GLOBAL.COMPANY, 'SRET_REPORT') when is_blank(FRM_REPORT1) set FRM_PRINTER_NAME to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_TXN_CODE, 'USR_PRINTER') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_PRINTER_NAME) set FRM_PRINTER_NAME to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_PRINTER') when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and is_blank(FRM_PRINTER_NAME) report lower(FRM_REPORT1) with (ParamForm = 'No', Parm_AYr_Code = INVH_AYR_CODE, Parm_Comp_Code = GLOBAL.COMPANY, Parm_Loc_Code = INVH_LOC_CODE, Parm_No_From = INVH_REV_NO, Parm_No_To = INVH_REV_NO, Parm_Txn_Code = INVH_REV_TXN, Parm_User = GLOBAL.USER) when nvl(FRM_SKIP_PRINT, 'N') = 'N' call PROC_INSERT_TXN_PRINT_LOG1(GLOBAL.COMPANY, INVH_LOC_CODE, INVH_AYR_CODE, INVH_REV_TXN, INVH_REV_NO, INVH_REV_NO, sysdate(), GLOBAL.USER) when nvl(FRM_SKIP_PRINT, 'N') = 'N' clear form when nvl(FRM_SKIP_PRINT, 'N') = 'N' warn "Print was skipped" when not (nvl(FRM_SKIP_PRINT, 'N') = 'N') # 2 statements did not convert.# line 72 # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name)); # reason: 'CTRL.PRINTBEAN' is a bean for printing, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent# line 74 # If v_Rep_Status = 'FINISHED' Then # If Upper(:Mnu_Dest_Name) = 'PRINTER' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # Message(v_Rep_URL); # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL); # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE',''); # Else # If Upper(:Mnu_Dest_Name) = 'CACHE' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # Message(v_Rep_URL); # Web.Show_Document(v_Rep_URL, '_blank'); # End If; # End If; # Else # Message('Error Running Report'); # End If; # reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses
8 clauses converted, 2 statements refused
Declare
v_Count Number;
v_count1 Number;
v_Status Char(1);
v_OS Number;
v_Alert Number;
Begin
IF :INVH_SMAN_CODE IS NOT NULL THEN
SELECT Count(*) INTO v_Count
FROM M_Salesman
WHERE SMan_Code = :InvH_SMan_Code;
If v_Count = 1 Then
SELECT SMan_Name, SMan_Status INTO :SMan_Name, v_Status
FROM M_Salesman
WHERE SMan_Code = :InvH_SMan_Code;
If Nvl(v_Status, ' ') = 'L' Then
Show_Message('Inv_Alert', 'Salesman Locked!');
Raise Form_Trigger_Failure;
End If;
If Fn_Get_pdc_Status(:Global.Company, :Invh_Sman_Code)=False Then
Show_Message('Inv_Alert', 'Salesman Locked:Unconfirmed deposited cheque exists!');
Raise Form_Trigger_Failure;
End If;
/*
--Added by Mojish 06/04/14
v_Count := Fn_Get_Pending_Cust_Cashbill(:InvH_Comp_Code, :InvH_Cust_Code);
If v_Count > 0 Then
Show_Message('Inv_Alert', 'Error,Customer Has ' || v_Count ||' Cash Bill Pending!');
Raise Form_Trigger_Failure;
End If;
---
*/
If Nvl(:Frm_Validate_Cash_Bill,'Y') = 'Y' Then
If Fn_Get_Pending_CashBill(:Global.Company,:InvH_Sman_Code) > 0 Then
Show_Message('Inv_Alert', 'Error,Pending CashBill Exists for salesman!');
Raise Form_Trigger_Failure;
End If;
End If;
--Validate Salesman Customer Combination
If :InvH_SMan_Code Is Not Null Then
SELECT Count(*) INTO v_Count
FROM M_Customer_Salesman
WHERE CustS_Comp_Code = :Global.Company
AND CustS_Divn_Code = :InvH_Divn_Code
AND CustS_SMan_Code = :InvH_SMan_Code
AND CustS_Cust_Code = :InvH_Cust_Code;
If v_Count = 0 Then
If Nvl(:Frm_Auto_Add_Comb,'N')='Y' Then
Set_Alert_Property('Warn_Alert', Alert_Message_Text, 'Would You like to add Customer Salesman Combination?');
v_Alert := Show_Alert('Warn_Alert');
If v_Alert = Alert_Button1 Then
INSERT INTO M_Customer_Salesman(CustS_Comp_Code, CustS_Sman_Code, CustS_Cust_Code,
CustS_Cr_User, CustS_Cr_Dt) Values(
:Global.Company, :InvH_Sman_Code, :InvH_Cust_Code, :Global.User, :Frm_Time_Zone);
Else
Show_Message('Inv_Alert', 'Salesman not allowed for Customer!');
Raise Form_Trigger_Failure;
End If;
Else
Show_Message('Inv_Alert', 'Salesman not allowed for Customer!');
Raise Form_Trigger_Failure;
End If;
End If;
End If;
----Validate Salesman Customer Division Combination ---Added By Faisal on 07/09/14
If Nvl(:Frm_Valid_SmanCust_Divn,'N') = 'Y' Then
If :InvH_SMan_Code Is Not Null Then
SELECT count(*) INTO v_count
FROM M_Customer_Salesman
WHERE CustS_Comp_Code = :Global.Company
AND CustS_Sman_Code = :InvH_SMan_Code
AND CustS_Cust_Code = :InvH_Cust_Code
AND CustS_Divn_Code = :InvH_Divn_Code;
If v_count = 0 Then
Show_Message('Inv_Alert', 'Salesman Customer Division Combination not found!');
Raise Form_Trigger_Failure;
End If;
End If;
End If;
Validate_Invoice;
--Warehout out validation by shibu on 23/06/15
Validate_Wout;
Else
Show_Message('Inv_Alert', 'Salesman not Found!');
Raise Form_Trigger_Failure;
End If;
END IF;
End;on change of INVH_SMAN_CODE when is_filled(INVH_SMAN_CODE): from SALESMAN_COUNT(INVH_SMAN_CODE) # load-fmb-invoice-t-inv-head-invh-sman-code-when-validate-item-change-0 from SALESMAN(INVH_SMAN_CODE) when SALESMAN_COUNT.COUNT = 1 # load-fmb-invoice-t-inv-head-invh-sman-code-when-validate-item-change-1 from CUSTOMER_SALESMAN_COUNT(INVH_CUST_CODE, INVH_DIVN_CODE, INVH_SMAN_CODE) when (SALESMAN_COUNT.COUNT = 1) and is_filled(INVH_SMAN_CODE) # load-fmb-invoice-t-inv-head-invh-sman-code-when-validate-item-change-2 from CUSTOMER_SALESMAN(INVH_CUST_CODE, INVH_DIVN_CODE, INVH_SMAN_CODE) when ((SALESMAN_COUNT.COUNT = 1) and (FRM_VALID_SMANCUST_DIVN = 'Y')) and is_filled(INVH_SMAN_CODE) # load-fmb-invoice-t-inv-head-invh-sman-code-when-validate-item-change-3 set SMAN_NAME to SALESMAN.SMAN_NAME when SALESMAN_COUNT.COUNT = 1 deny when (SALESMAN_COUNT.COUNT = 1) and (SALESMAN.SMAN_STATUS = 'L') else "Salesman Locked!" deny when ((SALESMAN_COUNT.COUNT = 1) and (nvl(FRM_VALIDATE_CASH_BILL, 'Y') = 'Y')) and (FN_GET_PENDING_CASHBILL(GLOBAL.COMPANY, INVH_SMAN_CODE) > 0) else "Error,Pending CashBill Exists for salesman!" show alert WARN_ALERT with 'Would You like to add Customer Salesman Combination?' when (((SALESMAN_COUNT.COUNT = 1) and is_filled(INVH_SMAN_CODE)) and (CUSTOMER_SALESMAN_COUNT.COUNT = 0)) and (FRM_AUTO_ADD_COMB = 'Y') call WRITE_M_CUSTOMER_SALESMAN_9DEE54AB(GLOBAL.COMPANY, INVH_SMAN_CODE, INVH_CUST_CODE, GLOBAL.USER, FRM_TIME_ZONE) when ((((SALESMAN_COUNT.COUNT = 1) and is_filled(INVH_SMAN_CODE)) and (CUSTOMER_SALESMAN_COUNT.COUNT = 0)) and (FRM_AUTO_ADD_COMB = 'Y')) and (ANSWER.BUTTON = '1') deny when ((((SALESMAN_COUNT.COUNT = 1) and is_filled(INVH_SMAN_CODE)) and (CUSTOMER_SALESMAN_COUNT.COUNT = 0)) and (FRM_AUTO_ADD_COMB = 'Y')) and not (ANSWER.BUTTON = '1') else "Salesman not allowed for Customer!" deny when (((SALESMAN_COUNT.COUNT = 1) and is_filled(INVH_SMAN_CODE)) and (CUSTOMER_SALESMAN_COUNT.COUNT = 0)) and not (FRM_AUTO_ADD_COMB = 'Y') else "Salesman not allowed for Customer!" exists of CUSTOMER_SALESMAN else "Salesman Customer Division Combination not found!" when ((SALESMAN_COUNT.COUNT = 1) and (FRM_VALID_SMANCUST_DIVN = 'Y')) and is_filled(INVH_SMAN_CODE) call VALIDATE_INVOICE() when SALESMAN_COUNT.COUNT = 1 call VALIDATE_WOUT() when SALESMAN_COUNT.COUNT = 1 deny when not (SALESMAN_COUNT.COUNT = 1) else "Salesman not Found!" # 1 statement did not convert.# line 23 # If Fn_Get_pdc_Status(:Global.Company, :Invh_Sman_Code)=False Then # Show_Message('Inv_Alert', 'Salesman Locked:Unconfirmed deposited cheque exists!'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads FALSE, which is one of Forms' own constants and not a value: CRL has no expression for what a property or an alert button is called
11 clauses converted, 1 statement refused
PROCEDURE Init_Form IS
V_DateTime_Format VarChar2(30);
V_Rights VarChar2(1000);
Rg_Id RecordGroup; --Added By Mojish 06/04/14
Rg_Id_Promo RecordGroup; --Added By Mojish 16/04/14
Rg_Col GroupColumn; --Added By Mojish 16/04/14
BEGIN
:Parameter.Insert_Flag := 0; --Added By Mojish 24/03/14
:Frm_Comp_Name := :Global.Company_Name;
:Frm_Txn_Type := 'INVOICE';
--Menu Parameters
:Mnu_Txn := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_DEF_TXN_CODE');
:Mnu_En_Txn := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_EN_TXN_CODE');
:Mnu_Dest_Name := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_DEST_NAME');
:Mnu_Title := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_TITLE');
:Mnu_FormColor := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_FORMCOLOR');
:Mnu_Printer_Name := Fn_Get_Menu_Param(:Parameter.Menu_Code, 'MNU_PRINTER');
:Frm_Max_Temp_Limit := Fn_Get_Company_Param(:Global.Company,'COM_MAX_TEMP_LIMIT_PERC');
:Frm_Show_Stock := Fn_Get_User_Param(:Global.User,'USR_SHOW_STOCK');
:Frm_Weigh_Bcode_Prefix :=Fn_Get_Company_Param(:Global.Company,'COM_WEIGH_BCODE_PREFIX');
:Frm_En_Show_History := Fn_Get_Stk_Txn_Param(:INVH_Txn_Code,:Global.Company, 'INV_EN_SHOW_HISTORY');
:Frm_Max_Disc_Perc := Fn_Get_Company_Param(:Global.Company,'COM_MAX_DISC_PERC');
:Frm_Max_Disc_Amt :=Fn_Get_Company_Param(:Global.Company,'COM_MAX_DISC_AMT');
:Frm_En_Sales_Promo := Fn_Get_Company_Param(:Global.Company,'COM_EN_SALES_PROMOTION'); --Added By Mojish 17/04/14
:Frm_Validate_Cash_Bill := Fn_Get_Company_Param(:Global.Company,'COMP_VALIDATE_SMAN_CASHBILL'); --Added By Faisal 14/03/15
----Added By Faisal On 29/03/2015
:Frm_Max_Item_Disc_Perc := Fn_Get_Company_Param(:Global.Company,'COM_MAX_ITEM_DISC_PERC');
:Frm_En_Inv_Direct_Email := Fn_Get_Company_Param(:Global.Company,'COM_EN_INV_DIRECT_EMAIL');
:Frm_Image_Url := Fn_Get_Company_Param(:Global.Company, 'COM_EMP_IMAGE_URL');
:Frm_Item_Exp_Days := Fn_Get_Company_Param(:Global.Company, 'COM_ITEM_EXP_DAYS');
:Frm_Custom_Rate_Fmt := Fn_Get_Company_Param(:Global.Company, 'COM_CUSTOM_RATE_FMT');
:Frm_Weigh_Item_Prefix := Fn_Get_Company_Param(:Global.Company, 'COM_WEIGH_ITEM_PREFIX');
:Frm_Usr_Show_Margin := Fn_Get_User_Param(:Global.User,'USR_SHOW_MARGIN_INVOICE');
:Frm_Usr_Show_Net_Sale_Print := Fn_Get_User_Param(:Global.User,'USR_SHOW_NETSALE_INV_PRINT');
:Frm_Inv_En_Doc_Dt := Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_DOC_DT'); --Added on 29/Jun/2019, Shebin
:Frm_Inv_En_Dt := Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_DT'); --Added on 29/Jun/2019, Shebin
:Frm_Rights_New := Fn_Get_User_Rights(:Global.Company, :Parameter.Menu_Code, :Global.User, 'New');
:Frm_Rights_Edt := Fn_Get_User_Rights(:Global.Company, :Parameter.Menu_Code, :Global.User, 'Edit');
:Frm_Rights_Can := Fn_Get_User_Rights(:Global.Company, :Parameter.Menu_Code, :Global.User, 'Cancel');
:Frm_Rights_Prn := Fn_Get_User_Rights(:Global.Company, :Parameter.Menu_Code, :Global.User, 'Print');
If :Frm_Custom_Rate_Fmt Is Not Null Then
Set_Item_Property( 'INVI_RATE', Format_Mask, :Frm_Custom_Rate_Fmt);
Else
Set_Item_Property( 'INVI_RATE', Format_Mask, :Global.Curr_Format);
End If;
If Nvl(:Frm_Usr_Show_Margin,'N') ='Y' Then
Set_Item_Property('InvI_Margin_perc',Visible,Property_True);
End If;
If Nvl(:Frm_Usr_Show_Net_Sale_Print,'N') = 'Y' And :Frm_Rights_Prn > 0 Then
Set_Item_Property('Pb_Inv_Ret_Print',Visible,Property_True);
Else
Set_Item_Property('Pb_Inv_Ret_Print',Visible,Property_False);
End If;
Proc_Cust_Cur_Format;
--Show Stock
If Nvl(:Frm_Show_Stock,'N') = 'N' Then
Set_Item_Property('STOCK_DTL', Displayed, Property_False);
Else
Set_Item_Property('STOCK_DTL', Visible, Property_True);
End If;
--Date Formats
Set_Item_Property('InvH_Dt', Format_Mask, :Global.DateFormat);
Set_Item_Property('InvH_Doc_Dt', Format_Mask, :Global.DateFormat);
Set_Item_Property('InvH_Due_Dt', Format_Mask, :Global.DateFormat);
Set_Item_Property('InvI_Exp_Dt', Format_Mask, :Global.DateFormat);
Set_Item_Property('InvH_Cr_Dt', Format_Mask, :Global.Datetime);
If :Frm_Rights_Can > 0 And :Invh_Rev_No Is Null Then ---Added By John 20/06/18
Set_Item_Property( 'PB_REVERSE', Enabled, Property_True);
End If;
If :Frm_Rights_Prn > 0 Then
Set_Item_Property('PB_Print', Enabled, Property_True);
Else
Set_Item_Property('PB_Print', Enabled, Property_False);
End If;
If :System.Form_Status = 'NEW' Then ---Added By Mojish 19/04/14
Rg_Id := Find_Group('RG_TNDR'); ---Added By Mojish 06/04/14
If Not Id_Null(Rg_Id) Then
Delete_Group_Row(Rg_Id, ALL_ROWS);
End If;
Rg_Id_Promo := Find_Group('RG_PROMO'); ---Added By Mojish 16/04/14
If Not Id_Null(Rg_Id_Promo) Then
Delete_Group_Row(Rg_Id_Promo, ALL_ROWS);
End If;
If Id_Null(Rg_Id_Promo) Then
Rg_Id_Promo := Create_Group('RG_PROMO');
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'PromH_Id', NUMBER_COLUMN);
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Item_Id', NUMBER_COLUMN);
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Inv_Qty_Bu', NUMBER_COLUMN);
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Qty_Bu', NUMBER_COLUMN);
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Foc_Bu', NUMBER_COLUMN);
Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Issued_Foc_Bu', NUMBER_COLUMN);
End If;
End If;
END;on unit INIT_FORM: set FRM_COMP_NAME to GLOBAL.COMPANY_NAME set FRM_TXN_TYPE to 'INVOICE' set MNU_TXN to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_DEF_TXN_CODE') set MNU_EN_TXN to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_EN_TXN_CODE') set MNU_DEST_NAME to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_DEST_NAME') set MNU_TITLE to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_TITLE') set MNU_FORMCOLOR to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_FORMCOLOR') set MNU_PRINTER_NAME to FN_GET_MENU_PARAM(PARAMETER.MENU_CODE, 'MNU_PRINTER') set FRM_MAX_TEMP_LIMIT to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_MAX_TEMP_LIMIT_PERC') set FRM_SHOW_STOCK to FN_GET_USER_PARAM(GLOBAL.USER, 'USR_SHOW_STOCK') set FRM_WEIGH_BCODE_PREFIX to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_WEIGH_BCODE_PREFIX') set FRM_EN_SHOW_HISTORY to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_SHOW_HISTORY') set FRM_MAX_DISC_PERC to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_MAX_DISC_PERC') set FRM_MAX_DISC_AMT to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_MAX_DISC_AMT') set FRM_EN_SALES_PROMO to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_EN_SALES_PROMOTION') set FRM_VALIDATE_CASH_BILL to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COMP_VALIDATE_SMAN_CASHBILL') set FRM_MAX_ITEM_DISC_PERC to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_MAX_ITEM_DISC_PERC') set FRM_EN_INV_DIRECT_EMAIL to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_EN_INV_DIRECT_EMAIL') set FRM_IMAGE_URL to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_EMP_IMAGE_URL') set FRM_ITEM_EXP_DAYS to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_ITEM_EXP_DAYS') set FRM_CUSTOM_RATE_FMT to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_CUSTOM_RATE_FMT') set FRM_WEIGH_ITEM_PREFIX to FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_WEIGH_ITEM_PREFIX') set FRM_USR_SHOW_MARGIN to FN_GET_USER_PARAM(GLOBAL.USER, 'USR_SHOW_MARGIN_INVOICE') set FRM_USR_SHOW_NET_SALE_PRINT to FN_GET_USER_PARAM(GLOBAL.USER, 'USR_SHOW_NETSALE_INV_PRINT') set FRM_INV_EN_DOC_DT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_DOC_DT') set FRM_INV_EN_DT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_DT') set FRM_RIGHTS_NEW to FN_GET_USER_RIGHTS(GLOBAL.COMPANY, PARAMETER.MENU_CODE, GLOBAL.USER, 'New') set FRM_RIGHTS_EDT to FN_GET_USER_RIGHTS(GLOBAL.COMPANY, PARAMETER.MENU_CODE, GLOBAL.USER, 'Edit') set FRM_RIGHTS_CAN to FN_GET_USER_RIGHTS(GLOBAL.COMPANY, PARAMETER.MENU_CODE, GLOBAL.USER, 'Cancel') set FRM_RIGHTS_PRN to FN_GET_USER_RIGHTS(GLOBAL.COMPANY, PARAMETER.MENU_CODE, GLOBAL.USER, 'Print') state format INVI_RATE as FRM_CUSTOM_RATE_FMT when is_filled(FRM_CUSTOM_RATE_FMT) state format INVI_RATE as GLOBAL.CURR_FORMAT when not is_filled(FRM_CUSTOM_RATE_FMT) state show INVI_MARGIN_PERC when FRM_USR_SHOW_MARGIN = 'Y' state show PB_INV_RET_PRINT when (FRM_USR_SHOW_NET_SALE_PRINT = 'Y') and (FRM_RIGHTS_PRN > 0) state hide PB_INV_RET_PRINT when not ((FRM_USR_SHOW_NET_SALE_PRINT = 'Y') and (FRM_RIGHTS_PRN > 0)) call PROC_CUST_CUR_FORMAT() state hide STOCK_DTL when nvl(FRM_SHOW_STOCK, 'N') = 'N' state show STOCK_DTL when not (nvl(FRM_SHOW_STOCK, 'N') = 'N') state format INVH_DOC_DT, INVH_DT, INVH_DUE_DT, INVI_EXP_DT as GLOBAL.DATEFORMAT state format INVH_CR_DT as GLOBAL.DATETIME state enable PB_REVERSE when (FRM_RIGHTS_CAN > 0) and is_blank(INVH_REV_NO) state enable PB_PRINT when FRM_RIGHTS_PRN > 0 state disable PB_PRINT when not (FRM_RIGHTS_PRN > 0) # 4 statements did not convert.# line 9 # :Parameter.Insert_Flag := 0; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 93 # If Not Id_Null(Rg_Id) Then # Delete_Group_Row(Rg_Id, ALL_ROWS); # End If; # reason: the guard reads the local RG_ID, which is written from FIND_GROUP, and FIND_GROUP is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 98 # If Not Id_Null(Rg_Id_Promo) Then # Delete_Group_Row(Rg_Id_Promo, ALL_ROWS); # End If; # reason: the guard reads the local RG_ID_PROMO, which is written from FIND_GROUP, and FIND_GROUP is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 101 # If Id_Null(Rg_Id_Promo) Then # Rg_Id_Promo := Create_Group('RG_PROMO'); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'PromH_Id', NUMBER_COLUMN); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Item_Id', NUMBER_COLUMN); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Inv_Qty_Bu', NUMBER_COLUMN); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Qty_Bu', NUMBER_COLUMN); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Prom_Foc_Bu', NUMBER_COLUMN); # Rg_Col := Add_Group_Column(Rg_Id_Promo, 'Issued_Foc_Bu', NUMBER_COLUMN); # End If; # reason: the guard reads the local RG_ID_PROMO, which is written from FIND_GROUP, and FIND_GROUP is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
43 clauses converted, 4 statements refused
PROCEDURE Get_Promotion_Foc(p_Check_Flag In Varchar2) IS
Cursor CurFoc Is Select PromFi_Id, PromFi_PromH_Id From T_Prom_Foc_Item Where PromFi_Item_Code = :InvI_Item_Code;
rg_Id_Promo RecordGroup;
v_Row_Num Number;
v_Allow_Qty Number := 0;
v_PromH_Id Number;
v_Inv_Qty_Bu Number :=0;
v_Prom_Inv_Bu Number;
v_Prom_Foc_Bu Number;
v_Issue_Foc_Bu Number;
v_Inv_Foc_Bu Number;
v_Old_Foc_Bu Number;
BEGIN
If :InvI_Prom_Foc_Same Is Null And Nvl(:Frm_En_Sales_Promo, 'Y') = 'Y' Then --Foc Item Then
rg_Id_Promo := Find_Group('RG_PROMO');
For f In CurFoc Loop
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); --Modified by Mojish on 20/12/14 --Multiple FOC of Same Item
While(v_Row_Num > 0) Loop
If f.PromFi_PromH_Id = Nvl(Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num), 0) Then
v_PromH_Id := Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num);
v_Allow_Qty := Get_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Row_Num);
v_Inv_Qty_Bu := v_Inv_Qty_Bu + v_Allow_Qty;
v_Prom_Inv_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Row_Num);
v_Prom_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Row_Num);
:InvI_Prom_Item_Id := Get_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Row_Num);
:InvI_Prom_Foc_Same := 'N';
:PromH_Id := v_PromH_Id;
v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num); --Same foc qty in same promotion head, foc Already iisued qty
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
End Loop;
v_Allow_Qty := Floor(Nvl(v_Inv_Qty_Bu, 0)/Nvl(v_Prom_Inv_Bu, 1)) * Nvl(v_Prom_Foc_Bu, 0);
v_Inv_Foc_Bu := Nvl(:InvI_Foc_Qty * :Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0);
v_Old_Foc_Bu := Nvl(:Old_Foc_Qty * :Max_Loose, 0) + Nvl(:Old_Foc_Loose, 0);
If v_Inv_Foc_Bu > 0 And (v_Allow_Qty < (v_Inv_Foc_Bu - v_Old_Foc_Bu) + Nvl(v_Issue_Foc_Bu, 0) Or v_Allow_Qty < v_Inv_Foc_Bu)
And Nvl(:InvI_Prom_Foc_Same, 'X') = 'N' Then --Added By Mojish on 22/12/14
Show_Message('Inv_Alert', 'Foc qty is exceeded!, Item Code is '||:InvI_Item_Code);
Raise Form_Trigger_Failure;
ElsIf v_Inv_Foc_Bu <> v_Old_Foc_Bu And v_Inv_Qty_Bu > 0 Then -- Foc Already Entered Then
:Old_Foc_Qty := :InvI_Foc_Qty;
:Old_Foc_loose := :InvI_Foc_Loose;
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo);
While(v_Row_Num > 0) Loop -- Updating Issued Foc Qty Same Promo Head Item
If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then
Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + (v_Inv_Foc_Bu - v_Old_Foc_Bu)));
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
v_Issue_Foc_Bu := Nvl(v_Issue_Foc_Bu, 0) + (v_Inv_Foc_Bu - v_Old_Foc_Bu);
End If;
If (v_Allow_Qty - Nvl(v_Issue_Foc_Bu, 0)) > 0 And v_Inv_Qty_Bu > 0 Then -- Foc Qty is Available
If v_Inv_Foc_Bu = 0 And v_Inv_Foc_Bu = v_Old_Foc_Bu Then -- Foc Qty Not Entered till
:InvI_Foc_Loose := (v_Allow_Qty - Nvl(v_Issue_Foc_Bu, 0));
:Old_Foc_loose := :InvI_Foc_Loose;
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo);
While(v_Row_Num > 0) Loop -- Updating Issued Foc Qty Same Promo Head Item
If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then
Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + Nvl(:InvI_Foc_Loose, 0)));
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
If Nvl(:InvI_Foc_Loose, 0) >= Nvl(:Max_Loose, 1) Then -- Convert Qty to Carton and Loose
:InvI_Foc_Qty := Floor(:InvI_Foc_Loose / Nvl(:Max_Loose, 1));
:Old_Foc_Qty := :InvI_Foc_Qty;
:InvI_Foc_Loose := Mod(:InvI_Foc_Loose, Nvl(:Max_Loose, 1));
:Old_Foc_loose := :InvI_Foc_Loose;
End If;
End If; -- Foc Qty Not Entered till
End If; -- Foc Qty is Available
End If; -- Same item has no Foc Then
/************* Checking Foc is Issued Or Not **************/
If Nvl(:InvI_Prom_Item_Id, 0) > 0 And Nvl(:Frm_En_Sales_Promo, 'Y') = 'Y'
And Nvl(:InvI_Prom_Foc_Same, 'X') = 'N' And Upper(p_Check_Flag) = 'INSERT' Then
rg_Id_Promo := Find_Group('RG_PROMO');
v_Row_Num := Get_Group_Row_Count(rg_Id_Promo);
v_Inv_Qty_Bu := 0; --Added By Mojish on 22/12/14
While (v_Row_Num > 0) Loop
If :PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then
v_Allow_Qty := Get_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Row_Num);
v_Inv_Qty_Bu := v_Inv_Qty_Bu + v_Allow_Qty;
v_Prom_Inv_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Row_Num);
v_Prom_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Row_Num);
v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num); --Same foc qty in same promotion head, foc Already iisued qty
End If;
v_Row_Num := v_Row_Num - 1;
End Loop;
v_Inv_Foc_Bu := Nvl(:InvI_Foc_Qty * :Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0);
If v_Inv_Qty_Bu = 0 And v_Inv_Foc_Bu > 0 Then
Show_Message('Inv_Alert', 'Corresponding foc qualified item code not found!, Item Code is '||:InvI_Item_Code);
Raise Form_Trigger_Failure;
End If;
If v_Inv_Qty_Bu > 0 Then --Invoice Qty > 0
v_Allow_Qty := Floor(Nvl(v_Inv_Qty_Bu, 0)/Nvl(v_Prom_Inv_Bu, 1)) * Nvl(v_Prom_Foc_Bu, 0);
If v_Issue_Foc_Bu < v_Allow_Qty Then
Show_Message('Inv_Alert', 'Eligible for Foc Qty (Foc not issued/ Less Foc Qty)!, Item Code is '||:InvI_Item_Code);
Raise Form_Trigger_Failure;
ElsIf v_Allow_Qty < v_Issue_Foc_Bu Then
Show_Message('Inv_Alert', 'Foc Qty is exceeded!, Item Code is '||:InvI_Item_Code);
Raise Form_Trigger_Failure;
End If;
End If; --Invoice Qty > 0
End If;
/************* End of Checking Foc is Issued Or Not **************/
END;on unit GET_PROMOTION_FOC(P_CHECK_FLAG): # 6 statements did not convert.# line 16 # For f In CurFoc Loop # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); # While(v_Row_Num > 0) Loop # # If f.PromFi_PromH_Id = Nvl(Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num), 0) Then # v_PromH_Id := Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num); # v_Allow_Qty := Get_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Row_Num); # v_Inv_Qty_Bu := v_Inv_Qty_Bu + v_Allow_Qty; # v_Prom_Inv_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Row_Num); # v_Prom_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Row_Num); # :InvI_Prom_Item_Id := Get_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Row_Num); # :InvI_Prom_Foc_Same := 'N'; # :PromH_Id := v_PromH_Id; # v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # End Loop; # reason: it holds a loop over whatever (v_Row_Num > 0) is true of inside a loop over a query, and a collection operation reads one collection# line 39 # If v_Inv_Foc_Bu > 0 And (v_Allow_Qty < (v_Inv_Foc_Bu - v_Old_Foc_Bu) + Nvl(v_Issue_Foc_Bu, 0) Or v_Allow_Qty < v_Inv_Foc_Bu) # And Nvl(:InvI_Prom_Foc_Same, 'X') = 'N' Then # Show_Message('Inv_Alert', 'Foc qty is exceeded!, Item Code is '||:InvI_Item_Code); # Raise Form_Trigger_Failure; # Else # If v_Inv_Foc_Bu <> v_Old_Foc_Bu And v_Inv_Qty_Bu > 0 Then # :Old_Foc_Qty := :InvI_Foc_Qty; # :Old_Foc_loose := :InvI_Foc_Loose; # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); # While(v_Row_Num > 0) Loop # If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then # Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + (v_Inv_Foc_Bu - v_Old_Foc_Bu))); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # v_Issue_Foc_Bu := Nvl(v_Issue_Foc_Bu, 0) + (v_Inv_Foc_Bu - v_Old_Foc_Bu); # End If; # End If; # reason: the guard reads the local V_ALLOW_QTY, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 56 # If (v_Allow_Qty - Nvl(v_Issue_Foc_Bu, 0)) > 0 And v_Inv_Qty_Bu > 0 Then # If v_Inv_Foc_Bu = 0 And v_Inv_Foc_Bu = v_Old_Foc_Bu Then # :InvI_Foc_Loose := (v_Allow_Qty - Nvl(v_Issue_Foc_Bu, 0)); # :Old_Foc_loose := :InvI_Foc_Loose; # v_Row_Num := Get_Group_Row_Count(rg_Id_Promo); # While(v_Row_Num > 0) Loop # If v_PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then # Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num, (Nvl(v_Issue_Foc_Bu, 0) + Nvl(:InvI_Foc_Loose, 0))); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # If Nvl(:InvI_Foc_Loose, 0) >= Nvl(:Max_Loose, 1) Then # :InvI_Foc_Qty := Floor(:InvI_Foc_Loose / Nvl(:Max_Loose, 1)); # :Old_Foc_Qty := :InvI_Foc_Qty; # :InvI_Foc_Loose := Mod(:InvI_Foc_Loose, Nvl(:Max_Loose, 1)); # :Old_Foc_loose := :InvI_Foc_Loose; # End If; # End If; # End If; # reason: the guard reads the local V_ALLOW_QTY, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 84 # While (v_Row_Num > 0) Loop # If :PromH_Id = Get_Group_Number_Cell('RG_PROMO.PromH_Id', v_Row_Num) Then # v_Allow_Qty := Get_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Row_Num); # v_Inv_Qty_Bu := v_Inv_Qty_Bu + v_Allow_Qty; # v_Prom_Inv_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Row_Num); # v_Prom_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Row_Num); # v_Issue_Foc_Bu := Get_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Row_Num); # End If; # v_Row_Num := v_Row_Num - 1; # End Loop; # reason: it repeats while (v_Row_Num > 0) holds, and a condition is not a collection: crl-loops.md's six operations each read a finite collection whose rows are known before the first pass, and a while loop states only when it stops# line 95 # If v_Inv_Qty_Bu = 0 And v_Inv_Foc_Bu > 0 Then # Show_Message('Inv_Alert', 'Corresponding foc qualified item code not found!, Item Code is '||:InvI_Item_Code); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_INV_QTY_BU, which a loop body above it counts with: `V_INV_QTY_BU := V_INV_QTY_BU + V_ALLOW_QTY`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it# line 100 # If v_Inv_Qty_Bu > 0 Then # v_Allow_Qty := Floor(Nvl(v_Inv_Qty_Bu, 0)/Nvl(v_Prom_Inv_Bu, 1)) * Nvl(v_Prom_Foc_Bu, 0); # If v_Issue_Foc_Bu < v_Allow_Qty Then # Show_Message('Inv_Alert', 'Eligible for Foc Qty (Foc not issued/ Less Foc Qty)!, Item Code is '||:InvI_Item_Code); # Raise Form_Trigger_Failure; # Else # If v_Allow_Qty < v_Issue_Foc_Bu Then # Show_Message('Inv_Alert', 'Foc Qty is exceeded!, Item Code is '||:InvI_Item_Code); # Raise Form_Trigger_Failure; # End If; # End If; # End If; # reason: the guard reads the local V_INV_QTY_BU, which a loop body above it counts with: `V_INV_QTY_BU := V_INV_QTY_BU + V_ALLOW_QTY`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
0 clauses converted, 6 statements refused
PROCEDURE Validate_Promotion_Qty IS
v_Prom_Limit_Qty_Bu Number;
v_Prom_Qty_Bu Number;
v_Prom_Foc_Qty_Bu Number;
v_InvI_Qty_Bu Number;
v_Alert Number;
v_Ref VarChar2(4);
v_Rate Number;
v_Rec_Num Number;
rg_Id_Promo RecordGroup;
v_Rg_row Number;
BEGIN
If Nvl(:Frm_Cost_Price_Billing, 'N') = 'Y' AND (Nvl(:InvI_PLU_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix||'%' AND :Frm_Weigh_Bcode_Prefix IS Not Null)
-- Added by faisal for handling cost price billing in catering
And (NVL (:Invi_Item_Code, ' ') NOT LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then
-- Added 'And (NVL (:Invi_Item_Code, ' ') NOT LIKE.... condition, For Weighing Item, #50390,when validate error, invi_rate goes 0,Referred whn validate item code. Shebin,17/Sep/2019
Get_PRate;
:Rate_Flag :='Y';
ElsIf (Nvl(:InvI_PLU_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix||'%' AND :Frm_Weigh_Bcode_Prefix IS Not Null) Then
v_Ref := SubStr(:InvI_PLU_Code, 3, 4);
v_Rate := SubStr(:InvI_PLU_Code, 7, 6)/100;
--:InvI_Qty := 1;
--:InvI_Rate := v_Rate;
ElsIf NVL(:Frm_Cost_Price_Billing, 'N') = 'Y'
and Nvl(:InvH_Btrn_Flag,'D') ='B'
and NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
and :Frm_Weigh_Item_Prefix IS NOT Null Then
Get_PRate;
:Rate_Flag :='Y';
ElsIf NVL (:Frm_Cost_Price_Billing, 'N') = 'Y'
And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
And :Frm_Weigh_Item_Prefix IS NOT Null) and Nvl(:Invi_Rate,0) = 0 Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
Else
Proc_Get_Sale_Price(:Global.Company,:InvH_Divn_Code, :Invh_PlH_Code,:InvH_Alt_PlH_Code,
:InvI_Item_Code, :InvI_Uom_Code, :InvH_Cust_Code,:InvH_Curr_Code, Nvl(:Frm_Inc_Default_Price, 'Y'),
:InvH_Dt, :InvI_Prom_Item_Id, :PromH_Id, :InvI_Rate, :InvI_Disc_Perc, :InvI_Disc_Amt, :InvI_Prom_Bu, :InvI_Prom_Foc_Bu,
:InvI_Prom_Qty_Limit_Bu, :InvI_Prom_Qty_Inv_Bu, :InvI_Prom_Foc_Same);
End If;
If Nvl(:InvI_Prom_Item_Id, 0) > 0 And (Nvl(:InvI_Qty, 0) + Nvl(:InvI_Loose, 0)) > 0 Then
:InvI_Foc_Qty := 0;
:InvI_Foc_Loose := 0;
If Nvl(:InvI_Prom_Qty_Limit_Bu, 0) > 0 Then --Check For Limit Qty Exceeded
v_Prom_Limit_Qty_Bu := Nvl(:InvI_Prom_Qty_Inv_Bu, 0) + (Nvl(:InvI_Qty, 0) * Nvl(:Max_Loose, 0)) + Nvl(:InvI_Loose, 0);
If :InvI_Prom_Qty_Limit_Bu < v_Prom_Limit_Qty_Bu Then
Set_Alert_Property('CONF_PROM_ALERT', Alert_Message_Text,
'Promotion Qty Exceed. Maximum Allowed Qty(BU) ='||To_Char(:InvI_Prom_Qty_Limit_Bu - Nvl(:InvI_Prom_Qty_Inv_Bu, 0)));
v_Alert := Show_Alert('CONF_PROM_ALERT');
If v_Alert = Alert_Button1 Then --Promotion Qty
:InvI_Loose := :InvI_Prom_Qty_Limit_Bu - Nvl(:InvI_Prom_Qty_Inv_Bu, 0);
If Nvl(:InvI_Loose, 0) >= Nvl(:Max_Loose, 1) Then --Convert Qty to Carton and Loose
:InvI_Qty := Floor(:InvI_Loose / Nvl(:Max_Loose, 1));
:InvI_Loose := Mod(:InvI_Loose, Nvl(:Max_Loose, 1));
End If;
ElsIf v_Alert = Alert_Button2 Then --Without Promotion
:InvI_Prom_Item_Id := Null;
:InvI_Prom_Bu := 0;
:InvI_Prom_Foc_Bu := 0; :InvI_Prom_Foc_Same := Null;
:InvI_Foc_Qty := 0; :InvI_Foc_Loose := 0;
End If;
End if;
End If;
If Nvl(:InvI_Prom_Foc_Bu, 0) > 0 Then -- Checking Free Qty
v_InvI_Qty_Bu := (Nvl(:InvI_Qty, 0) * Nvl(:Max_Loose, 0)) + Nvl(:InvI_Loose, 0);
v_Prom_Qty_Bu := Nvl(:InvI_Prom_Bu, 0);
v_Prom_Foc_Qty_Bu := Nvl(:InvI_Prom_Foc_Bu, 0);
If Nvl(:InvI_Prom_Foc_Same, 'X') = 'N' Then
rg_Id_Promo := Find_Group('RG_PROMO');
v_Rec_Num := Get_Block_Property('T_Inv_Item', Current_Record);
If v_Rec_Num <> Nvl(Get_Group_Row_Count(rg_Id_Promo), 0) Then
v_Rg_Row := Get_Group_Row_Count(rg_Id_Promo);
v_Rg_Row := Nvl(v_Rg_Row, 0) + 1;
While (v_Rg_Row <= v_Rec_Num) Loop
Add_Group_Row(rg_Id_Promo, v_Rg_Row);
v_Rg_Row := v_Rg_Row + 1;
End Loop;
Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Rec_Num, 0);
End If;
Set_Group_Number_Cell('RG_PROMO.PromH_Id', v_Rec_Num, :PromH_Id);
Set_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Rec_Num, :InvI_Prom_Item_Id);
Set_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Rec_Num, v_InvI_Qty_Bu);
Set_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Rec_Num, :InvI_Prom_Bu);
Set_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Rec_Num, :InvI_Prom_Foc_Bu);
End If;
If Nvl(:InvI_Prom_Foc_Same, 'X') = 'Y' Then --:InvI_Prom_Foc_Same Is Y Then Same item has FOC, Or 'N' Then Other item has FOC or Null Then no Foc
:InvI_Foc_Loose := Floor(v_InvI_Qty_Bu/v_Prom_Qty_Bu) * v_Prom_Foc_Qty_Bu;
If Nvl(:InvI_Foc_Loose, 0) >= Nvl(:Max_Loose, 1) Then --Convert Qty to Carton and Loose
:InvI_Foc_Qty := Floor(:InvI_Foc_Loose / Nvl(:Max_Loose, 1));
:InvI_Foc_Loose := Mod(:InvI_Foc_Loose, Nvl(:Max_Loose, 1));
End If;
End If;
End if;
End If;
END;on unit VALIDATE_PROMOTION_QTY: call GET_PRATE() when ((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)) set RATE_FLAG to 'Y' when ((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)) call GET_PRATE() when (not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) set RATE_FLAG to 'Y' when (not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) call PROC_GET_SALE_PRICE(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_PLH_CODE, INVH_ALT_PLH_CODE, INVI_ITEM_CODE, INVI_UOM_CODE, INVH_CUST_CODE, INVH_CURR_CODE, nvl(FRM_INC_DEFAULT_PRICE, 'Y'), INVH_DT, INVI_PROM_ITEM_ID, PROMH_ID, INVI_RATE, INVI_DISC_PERC, INVI_DISC_AMT, INVI_PROM_BU, INVI_PROM_FOC_BU, INVI_PROM_QTY_LIMIT_BU, INVI_PROM_QTY_INV_BU, INVI_PROM_FOC_SAME) when ((not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (((FRM_COST_PRICE_BILLING = 'Y') and ((nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (nvl(INVI_RATE, 0) = 0)) call PROC_GET_SALE_PRICE(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_PLH_CODE, INVH_ALT_PLH_CODE, INVI_ITEM_CODE, INVI_UOM_CODE, INVH_CUST_CODE, INVH_CURR_CODE, nvl(FRM_INC_DEFAULT_PRICE, 'Y'), INVH_DT, INVI_PROM_ITEM_ID, PROMH_ID, INVI_RATE, INVI_DISC_PERC, INVI_DISC_AMT, INVI_PROM_BU, INVI_PROM_FOC_BU, INVI_PROM_QTY_LIMIT_BU, INVI_PROM_QTY_INV_BU, INVI_PROM_FOC_SAME) when ((not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and not (((FRM_COST_PRICE_BILLING = 'Y') and ((nvl(INVI_ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (nvl(INVI_RATE, 0) = 0)) set INVI_FOC_QTY to 0 when (nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0) set INVI_FOC_LOOSE to 0 when (nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0) show alert CONF_PROM_ALERT with 'Promotion Qty Exceed. Maximum Allowed Qty(BU) =' || to_char(INVI_PROM_QTY_LIMIT_BU - nvl(INVI_PROM_QTY_INV_BU, 0)) when (((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_QTY_LIMIT_BU, 0) > 0)) and (INVI_PROM_QTY_LIMIT_BU < ((nvl(INVI_PROM_QTY_INV_BU, 0) + (nvl(INVI_QTY, 0) * nvl(MAX_LOOSE, 0))) + nvl(INVI_LOOSE, 0))) when ((((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_QTY_LIMIT_BU, 0) > 0)) and (INVI_PROM_QTY_LIMIT_BU < ((nvl(INVI_PROM_QTY_INV_BU, 0) + (nvl(INVI_QTY, 0) * nvl(MAX_LOOSE, 0))) + nvl(INVI_LOOSE, 0)))) and (ANSWER.BUTTON = '1') when (((((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_QTY_LIMIT_BU, 0) > 0)) and (INVI_PROM_QTY_LIMIT_BU < ((nvl(INVI_PROM_QTY_INV_BU, 0) + (nvl(INVI_QTY, 0) * nvl(MAX_LOOSE, 0))) + nvl(INVI_LOOSE, 0)))) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') set INVI_FOC_LOOSE to floor(((nvl(INVI_QTY, 0) * nvl(MAX_LOOSE, 0)) + nvl(INVI_LOOSE, 0)) / nvl(INVI_PROM_BU, 0)) * nvl(INVI_PROM_FOC_BU, 0) when (((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_FOC_BU, 0) > 0)) and (INVI_PROM_FOC_SAME = 'Y') set INVI_FOC_QTY to floor(INVI_FOC_LOOSE / nvl(MAX_LOOSE, 1)) when ((((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_FOC_BU, 0) > 0)) and (INVI_PROM_FOC_SAME = 'Y')) and (nvl(INVI_FOC_LOOSE, 0) >= nvl(MAX_LOOSE, 1)) set INVI_FOC_LOOSE to mod(INVI_FOC_LOOSE, nvl(MAX_LOOSE, 1)) when ((((nvl(INVI_PROM_ITEM_ID, 0) > 0) and ((nvl(INVI_QTY, 0) + nvl(INVI_LOOSE, 0)) > 0)) and (nvl(INVI_PROM_FOC_BU, 0) > 0)) and (INVI_PROM_FOC_SAME = 'Y')) and (nvl(INVI_FOC_LOOSE, 0) >= nvl(MAX_LOOSE, 1)) # 6 statements did not convert.# line 92 # If v_Rec_Num <> Nvl(Get_Group_Row_Count(rg_Id_Promo), 0) Then # v_Rg_Row := Get_Group_Row_Count(rg_Id_Promo); # v_Rg_Row := Nvl(v_Rg_Row, 0) + 1; # While (v_Rg_Row <= v_Rec_Num) Loop # Add_Group_Row(rg_Id_Promo, v_Rg_Row); # v_Rg_Row := v_Rg_Row + 1; # End Loop; # Set_Group_Number_Cell('RG_PROMO.Issued_Foc_Bu', v_Rec_Num, 0); # End If; # reason: the guard reads the local V_REC_NUM, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 101 # Set_Group_Number_Cell('RG_PROMO.PromH_Id', v_Rec_Num, :PromH_Id); # reason: SET_GROUP_NUMBER_CELL is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 102 # Set_Group_Number_Cell('RG_PROMO.Prom_Item_Id', v_Rec_Num, :InvI_Prom_Item_Id); # reason: SET_GROUP_NUMBER_CELL is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 103 # Set_Group_Number_Cell('RG_PROMO.Inv_Qty_Bu', v_Rec_Num, v_InvI_Qty_Bu); # reason: SET_GROUP_NUMBER_CELL is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 104 # Set_Group_Number_Cell('RG_PROMO.Prom_Inv_Bu', v_Rec_Num, :InvI_Prom_Bu); # reason: SET_GROUP_NUMBER_CELL is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 105 # Set_Group_Number_Cell('RG_PROMO.Prom_Foc_Bu', v_Rec_Num, :InvI_Prom_Foc_Bu); # reason: SET_GROUP_NUMBER_CELL is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
14 clauses converted, 6 statements refused
Declare
v_ref_No Varchar2(100);
v_Ctr Number;
v_Curr_Blk VarChar2(30);
v_Txn_Type Varchar2(10);
v_Ref_So_Id Varchar2(100);
V_Ref_Tndr_Cnt Number(10);
V_Ref_Tndr_Val Number(20);
V_Ref_Tndr_Val2 Number(20);
V_Ref_Tndr_Cnt2 Number;
---Added by mojish 06/04/14
rg_Name Varchar(20):= 'RG_TNDR';
rg_Id RecordGroup;
rg_Col GroupColumn;
v_Row_Num Number := 1;
----
Begin
---Added by mojish 06/04/14
rg_Id := Find_Group(rg_Name);
If Not Id_Null(rg_Id) Then
Delete_Group_Row(rg_Id, ALL_ROWS);
End If;
If Id_Null(rg_Id) Then
rg_Id := Create_Group('RG_TNDR');
rg_Col := Add_Group_Column(rg_Id, 'COL_TNDR', NUMBER_COLUMN);
End If;
--------------
-----------Added By Dipu on 28/08/14 For avoid more than one tender--
Go_Block('T_Inv_Ref_Doc');
First_Record;
V_Ref_Tndr_Val2:=Null;
Loop
If Nvl(:Flag,'N') = 'Y' Then
Select Txn_Type INTO v_Txn_Type From M_Stock_Txn Where Txn_Code =:InvH_Ref_Txn_Code;
If v_Txn_Type ='SAL_ORD' Then
Select Count(*) Into V_Ref_Tndr_Cnt
From T_So_Item B,T_So_Head C
Where C.Soh_Tndr_Doc_Id Is Not Null
And B.Soi_Soh_Id=C.Soh_Id
And C.Soh_Comp_Code=:Global.Company
And C.Soh_Id=:InvrD_SoH_Id;
Select Count(*) Into V_Ref_Tndr_Cnt2
From T_So_Item B,T_So_Head C
Where C.Soh_Tndr_Doc_Id Is Null
And B.Soi_Soh_Id=C.Soh_Id
And C.Soh_Comp_Code=:Global.Company
And C.Soh_Id=:InvrD_SoH_Id;
If V_Ref_Tndr_Cnt > 0 Then
Select Soh_Tndr_Doc_Id Into V_Ref_Tndr_Val From( Select Distinct Soh_Tndr_Doc_Id
From T_So_Item B,T_So_Head C
Where C.Soh_Tndr_Doc_Id Is Not Null
And B.Soi_Soh_Id=C.Soh_Id
And C.Soh_Comp_Code=:Global.Company
And C.Soh_Id=:InvrD_SoH_Id);
End If;
If V_Ref_Tndr_Val2 Is Null And V_Ref_Tndr_Val Is Not Null Then
V_Ref_Tndr_Val2:=V_Ref_Tndr_Val;
End If;
If V_Ref_Tndr_Val2 Is not Null And V_Ref_Tndr_Val2<>V_Ref_Tndr_Val Then
Show_Message('Inv_Alert', 'Please select only one tender referenced SO !');
Raise Form_Trigger_Failure;
End If;
If V_Ref_Tndr_Val2 Is not Null And V_Ref_Tndr_Cnt=0 Then
Show_Message('Inv_Alert', 'You can not select tender referenced SO with non-tender referenced SO !');
Raise Form_Trigger_Failure;
End If;
End If;
End If;
If :System.Last_Record='TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
-----------
v_Curr_Blk := :System.Current_Block;
Go_Block('T_Inv_Ref_Doc');
First_Record;
Loop
If Nvl(:Flag,'N') = 'Y' Then
Select Txn_Type INTO v_Txn_Type From M_Stock_Txn Where Txn_Code =:InvH_Ref_Txn_Code;
If v_Txn_Type ='DNOTE' Then
Load_Dn(:InvrD_Dnh_Id);
Elsif v_Txn_Type ='SAL_ORD' Then
Load_So(:InvrD_SoH_Id);
Elsif v_Txn_Type ='CUST_SERV' Then
Load_Cs(:InvrD_CsH_Id);
Elsif v_Txn_Type = 'TNDR' Then --Added By Mojish 05/04/14
Add_Group_Row(rg_Id, v_Row_Num);
Set_Group_Number_Cell('RG_TNDR.COL_TNDR', v_Row_Num, :InvrD_Tndr_Id);
v_Row_Num := v_Row_Num + 1;
If Nvl(:Parameter.Tndr_Flag, 'X') = 'N' Then
:Parameter.Tndr_Flag := 'Y'; --- 'N' =Tender Is Enabled, 'Y' = Load Button Pressed Added by mojish 11/04/14
End If;
Else
Load_Preq(:InvRd_Preqh_Id);
End If;
Go_Block('T_Inv_Ref_Doc');
v_Ctr := Nvl(v_Ctr,0) + 1;
End If;
If :System.Last_Record='TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
--To clear unselected
Go_Block('T_Inv_Ref_Doc');
First_Record;
Loop
If Nvl(:Flag,'N') = 'N' Then
Clear_Record;
End If;
If :System.Last_Record='TRUE' Then
Exit;
End If;
Next_Record;
End Loop;
Go_Block('T_Inv_Item');
First_Record;
If v_Ctr > 0 and v_Txn_Type In ('DNOTE','SAL_ORD') Then
Go_Block('T_Inv_Item');
/*Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);*/
disable_details;
End If;
Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_False);
End;on press of PB_REF_LOAD: go to T_INV_REF_DOC go to T_INV_REF_DOC go to T_INV_REF_DOC for each row in T_INV_REF_DOC when nvl(FLAG, 'N') = 'N' go to T_INV_ITEM state disable PB_REF_LOAD # 5 statements did not convert.# line 21 # If Not Id_Null(rg_Id) Then # Delete_Group_Row(rg_Id, ALL_ROWS); # End If; # reason: the guard reads the local RG_ID, which is written from FIND_GROUP, and FIND_GROUP is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 24 # If Id_Null(rg_Id) Then # rg_Id := Create_Group('RG_TNDR'); # rg_Col := Add_Group_Column(rg_Id, 'COL_TNDR', NUMBER_COLUMN); # End If; # reason: the guard reads the local RG_ID, which is written from FIND_GROUP, and FIND_GROUP is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 34 # Loop # If Nvl(:Flag,'N') = 'Y' Then # Select Txn_Type INTO v_Txn_Type From M_Stock_Txn Where Txn_Code =:InvH_Ref_Txn_Code; # If v_Txn_Type ='SAL_ORD' Then # Select Count(*) Into V_Ref_Tndr_Cnt # From T_So_Item B,T_So_Head C # Where C.Soh_Tndr_Doc_Id Is Not Null # And B.Soi_Soh_Id=C.Soh_Id # And C.Soh_Comp_Code=:Global.Company # And C.Soh_Id=:InvrD_SoH_Id; # Select Count(*) Into V_Ref_Tndr_Cnt2 # From T_So_Item B,T_So_Head C # Where C.Soh_Tndr_Doc_Id Is Null # And B.Soi_Soh_Id=C.Soh_Id # And C.Soh_Comp_Code=:Global.Company # And C.Soh_Id=:InvrD_SoH_Id; # If V_Ref_Tndr_Cnt > 0 Then # Select Soh_Tndr_Doc_Id Into V_Ref_Tndr_Val From( Select Distinct Soh_Tndr_Doc_Id # From T_So_Item B,T_So_Head C # Where C.Soh_Tndr_Doc_Id Is Not Null # And B.Soi_Soh_Id=C.Soh_Id # And C.Soh_Comp_Code=:Global.Company # And C.Soh_Id=:InvrD_SoH_Id); # End If; # If V_Ref_Tndr_Val2 Is Null And V_Ref_Tndr_Val Is Not Null Then # V_Ref_Tndr_Val2:=V_Ref_Tndr_Val; # End If; # If V_Ref_Tndr_Val2 Is not Null And V_Ref_Tndr_Val2<>V_Ref_Tndr_Val Then # Show_Message('Inv_Alert', 'Please select only one tender referenced SO !'); # Raise Form_Trigger_Failure; # End If; # If V_Ref_Tndr_Val2 Is not Null And V_Ref_Tndr_Cnt=0 Then # Show_Message('Inv_Alert', 'You can not select tender referenced SO with non-tender referenced SO !'); # Raise Form_Trigger_Failure; # End If; # End If; # # End If; # If :System.Last_Record='TRUE' Then # Exit; # End If; # Next_Record; # 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)# line 85 # Loop # If Nvl(:Flag,'N') = 'Y' Then # Select Txn_Type INTO v_Txn_Type From M_Stock_Txn Where Txn_Code =:InvH_Ref_Txn_Code; # If v_Txn_Type ='DNOTE' Then # Load_Dn(:InvrD_Dnh_Id); # Elsif v_Txn_Type ='SAL_ORD' Then # Load_So(:InvrD_SoH_Id); # Elsif v_Txn_Type ='CUST_SERV' Then # Load_Cs(:InvrD_CsH_Id); # Elsif v_Txn_Type = 'TNDR' Then # Add_Group_Row(rg_Id, v_Row_Num); # Set_Group_Number_Cell('RG_TNDR.COL_TNDR', v_Row_Num, :InvrD_Tndr_Id); # v_Row_Num := v_Row_Num + 1; # If Nvl(:Parameter.Tndr_Flag, 'X') = 'N' Then # :Parameter.Tndr_Flag := 'Y'; # End If; # Else # Load_Preq(:InvRd_Preqh_Id); # End If; # Go_Block('T_Inv_Ref_Doc'); # v_Ctr := Nvl(v_Ctr,0) + 1; # End If; # If :System.Last_Record='TRUE' Then # Exit; # End If; # Next_Record; # 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)# line 130 # If v_Ctr > 0 and v_Txn_Type In ('DNOTE','SAL_ORD') Then # Go_Block('T_Inv_Item'); # disable_details; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := NVL(V_CTR,0) + 1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
6 clauses converted, 5 statements refused
PROCEDURE Validate_SO IS
v_Max_Loose Number;
v_Qty Number;
v_Loose Number;
v_Qty_Bu Number;
v_Count Number;
v_Lov Boolean;
BEGIN
If Nvl(:Frm_Validate_So, 'N') = 'Y' Then --Validate SO
If Nvl(:Frm_En_Multi_So, 'Y') = 'N' Then --Not allow multiple SO
Select Count(*) Into v_Count
FROM M_UOM, M_Item, T_So_Item, T_So_Head
WHERE SoI_SoH_Id = SoH_Id
AND Item_Code = SoI_Item_Code
AND UOM_Code = SoI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SoH_Comp_Code = :Global.Company
AND SoH_Loc_Code =:Ref_Loc_Code
AND SoH_Txn_Code =:Invh_Ref_Txn_Code
And SoH_Id = :InvrD_SoH_Id
And SoI_Item_Code = :InvI_Item_Code
And SoI_Uom_Code = :InvI_Uom_Code And Nvl(:Flag, 'N') = 'Y'
AND (SOH_APPROVAL_STATUS ='F' OR
Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F'
AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')));
If v_Count = 0 Then
Show_Message('Inv_Alert', 'Sales Order referernce not found!');
Raise Form_Trigger_Failure;
ElsIf v_Count = 1 Then --Single Record Then
SELECT Uom_Max_Loose, Floor((Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0))) /UOM_Max_Loose) Qty,
(Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))-
(Floor((Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
Floor((Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0))) /UOM_Max_Loose) foc_Qty,
(Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))-
(Floor((Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) foc_Loose,
Soi_Rate Rate, Soi_Disc_Perc Disc_Perc, Soi_Disc_Amt Disc_Amt, SoI_Id Item_Id,
SoI_Loc_Fm, SoI_Batch,Soi_Exp_Dt, SoI_Prom_Item_Id, Item_Serial_Status,Soi_Tndr_Doc_Item_Id,Soi_Inc_Foc_Ed,Soi_Inc_Foc_Vat
Into v_Max_Loose, v_Qty, v_Loose, :InvI_Foc_Qty, :InvI_Foc_Loose, :InvI_Rate, :InvI_Disc_Perc, :InvI_Disc_Amt,:InvI_So_Doc_Item_Id,
:InvI_Loc_Fm, :InvI_Batch, :InvI_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl, :Invi_Tndr_Doc_Item_Id,:Invi_Inc_Foc_Ed,:Invi_Inc_Foc_Vat
FROM M_UOM, M_Item, T_So_Item, T_So_Head
WHERE SoI_SoH_Id = SoH_Id
AND Item_Code = SoI_Item_Code
AND UOM_Code = SoI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SoH_Comp_Code = :Global.Company
AND SoH_Loc_Code =:Ref_Loc_Code
AND SoH_Txn_Code =:Invh_Ref_Txn_Code
And SoH_Id = :InvrD_SoH_Id
And SoI_Item_Code = :InvI_Item_Code
And SoI_Uom_Code = :InvI_Uom_Code And Nvl(:Flag, 'N') = 'Y'
AND (SOH_APPROVAL_STATUS ='F' OR
Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F'
AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')));
ElsIf v_Count > 1 Then --Multiple Record Then
v_Lov := Show_Lov('Lov_So');
If Not v_Lov Then
Show_Message('Inv_Alert', 'Sales Order referernce not found!');
Raise Form_Trigger_Failure;
End If;
SELECT Uom_Max_Loose, Floor((Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0))) /UOM_Max_Loose) Qty,
(Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))-
(Floor((Nvl(SoI_Rev_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Loose, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
Floor((Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0))) /UOM_Max_Loose) foc_Qty,
(Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))-
(Floor((Nvl(SoI_Rev_Foc_Qty * UOM_Max_Loose, 0) + Nvl(SoI_Rev_Foc_Loose, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) foc_Loose,
Soi_Rate Rate, Soi_Disc_Perc Disc_Perc, Soi_Disc_Amt Disc_Amt, SoI_Id Item_Id,
SoI_Loc_Fm, SoI_Batch,Soi_Exp_Dt, SoI_Prom_Item_Id, Item_Serial_Status,Soi_Tndr_Doc_Item_Id,Soi_Inc_Foc_Ed,Soi_Inc_Foc_Vat
Into v_Max_Loose, v_Qty, v_Loose, :InvI_Foc_Qty, :InvI_Foc_Loose, :InvI_Rate, :InvI_Disc_Perc, :InvI_Disc_Amt,:InvI_So_Doc_Item_Id,
:InvI_Loc_Fm, :InvI_Batch, :InvI_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl, :Invi_Tndr_Doc_Item_Id,:Invi_Inc_Foc_Ed,:Invi_Inc_Foc_Vat
FROM M_UOM, M_Item, T_So_Item, T_So_Head
WHERE SoI_SoH_Id = SoH_Id
AND Item_Code = SoI_Item_Code
AND UOM_Code = SoI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SoH_Comp_Code = :Global.Company
AND SoH_Loc_Code =:Ref_Loc_Code
AND SoH_Txn_Code =:Invh_Ref_Txn_Code
And SoH_Id = :InvrD_SoH_Id
And SoI_Item_Code = :InvI_Item_Code
And SoI_Uom_Code = :InvI_Uom_Code And Nvl(:Flag, 'N') = 'Y'
And SoI_Id = :InvI_So_Doc_Item_Id
AND (SOH_APPROVAL_STATUS ='F' OR
Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F'
AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')));
End If;
:Order_Qty_Bu := Nvl(v_Qty*v_Max_Loose, 0) + Nvl(v_Loose, 0);
:Order_Foc_Qty_Bu := Nvl(:InvI_Foc_Qty*v_Max_Loose, 0) + Nvl(:InvI_Foc_Loose, 0);
If :Frm_Validate_Stock = 'Y' Then
v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, :InvI_Item_Code, Null);
If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then
If v_Qty_BU <= 0 Then
v_Qty := 0;
v_Loose := 0;
ElsIf v_Qty_BU < 1 Then
v_Qty := v_Qty_BU;
v_Loose := 0;
Else
v_Qty := Floor(v_Qty_BU/v_Max_Loose);
v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0);
End If;
End If;
End If;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
If Nvl(:InvI_Prom_Item_Id, 0) > 0 Then
Select PromH_No, PromH_Id Into :PromH_No, :PromH_Id From T_Prom_Head, T_Prom_Item
Where PromI_PromH_Id = PromH_Id And PromH_Comp_Code = :Global.Company
And PromI_Id = :InvI_Prom_Item_Id;
End If;
End If;
End If;
END;on unit VALIDATE_SO: from UOM_COUNT(INVH_DT, INVI_ITEM_CODE, INVI_UOM_CODE, FLAG, INVH_REF_TXN_CODE, INVRD_SOH_ID, REF_LOC_CODE) when (FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N') # load-fmb-invoice-validate-so-unit-0 from UOM_1(INVH_DT, INVI_ITEM_CODE, INVI_UOM_CODE, FLAG, INVH_REF_TXN_CODE, INVRD_SOH_ID, REF_LOC_CODE) when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) # load-fmb-invoice-validate-so-unit-1 from UOM_2(INVH_DT, INVI_ITEM_CODE, INVI_SO_DOC_ITEM_ID, INVI_UOM_CODE, FLAG, INVH_REF_TXN_CODE, INVRD_SOH_ID, REF_LOC_CODE) # load-fmb-invoice-validate-so-unit-2 from PROM_HEAD(INVI_PROM_ITEM_ID) # load-fmb-invoice-validate-so-unit-3 deny when ((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and (UOM_COUNT.COUNT = 0) else "Sales Order referernce not found!" set INVI_FOC_QTY to UOM_1.INVI_FOC_QTY when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_FOC_LOOSE to UOM_1.INVI_FOC_LOOSE when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_RATE to UOM_1.INVI_RATE when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_DISC_PERC to UOM_1.INVI_DISC_PERC when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_DISC_AMT to UOM_1.INVI_DISC_AMT when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_SO_DOC_ITEM_ID to UOM_1.INVI_SO_DOC_ITEM_ID when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_LOC_FM to UOM_1.SOI_LOC_FM when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_BATCH to UOM_1.SOI_BATCH when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_EXP_DT to UOM_1.SOI_EXP_DT when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_PROM_ITEM_ID to UOM_1.SOI_PROM_ITEM_ID when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set EN_SL to UOM_1.ITEM_SERIAL_STATUS when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_TNDR_DOC_ITEM_ID to UOM_1.SOI_TNDR_DOC_ITEM_ID when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_INC_FOC_ED to UOM_1.SOI_INC_FOC_ED when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) set INVI_INC_FOC_VAT to UOM_1.SOI_INC_FOC_VAT when (((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and (UOM_COUNT.COUNT = 1) fetch UOM_2 when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_FOC_QTY to UOM_2.INVI_FOC_QTY when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_FOC_LOOSE to UOM_2.INVI_FOC_LOOSE when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_RATE to UOM_2.INVI_RATE when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_DISC_PERC to UOM_2.INVI_DISC_PERC when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_DISC_AMT to UOM_2.INVI_DISC_AMT when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_SO_DOC_ITEM_ID to UOM_2.INVI_SO_DOC_ITEM_ID when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_LOC_FM to UOM_2.SOI_LOC_FM when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_BATCH to UOM_2.SOI_BATCH when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_EXP_DT to UOM_2.SOI_EXP_DT when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_PROM_ITEM_ID to UOM_2.SOI_PROM_ITEM_ID when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set EN_SL to UOM_2.ITEM_SERIAL_STATUS when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_TNDR_DOC_ITEM_ID to UOM_2.SOI_TNDR_DOC_ITEM_ID when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_INC_FOC_ED to UOM_2.SOI_INC_FOC_ED when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set INVI_INC_FOC_VAT to UOM_2.SOI_INC_FOC_VAT when ((((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and not (UOM_COUNT.COUNT = 0)) and not (UOM_COUNT.COUNT = 1)) and (UOM_COUNT.COUNT > 1) set ORDER_QTY_BU to nvl(UOM_2.V_QTY * UOM_2.UOM_MAX_LOOSE, 0) + nvl(UOM_2.V_LOOSE, 0) when (FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N') set ORDER_FOC_QTY_BU to nvl(UOM_2.INVI_FOC_QTY * UOM_2.UOM_MAX_LOOSE, 0) + nvl(UOM_2.INVI_FOC_LOOSE, 0) when (FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N') set INVI_QTY to UOM_2.V_QTY when (FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N') set INVI_LOOSE to UOM_2.V_LOOSE when (FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N') fetch PROM_HEAD when ((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and (nvl(UOM_2.SOI_PROM_ITEM_ID, 0) > 0) set PROMH_NO to PROM_HEAD.PROMH_NO when ((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and (nvl(UOM_2.SOI_PROM_ITEM_ID, 0) > 0) set PROMH_ID to PROM_HEAD.PROMH_ID when ((FRM_VALIDATE_SO = 'Y') and (FRM_EN_MULTI_SO = 'N')) and (nvl(UOM_2.SOI_PROM_ITEM_ID, 0) > 0) # 2 statements did not convert.# line 70 # v_Lov := Show_Lov('Lov_So'); # reason: open value help names the field whose list opens and no single field of this form carries Lov_So, so there is no field to open it on: the list is either declared on none, which is the dangling name fmb_gledger already writes, or on several# line 71 # If Not v_Lov Then # Show_Message('Inv_Alert', 'Sales Order referernce not found!'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_LOV, which is written from SHOW_LOV, and SHOW_LOV is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to
37 clauses converted, 2 statements refused
PROCEDURE Proc_Commit_Form IS
v_ErrCode NUMBER;
v_ErrText VARCHAR2(2000);
BEGIN
BEGIN
-- Your existing validations (no changes here)
IF :System.Form_Status = 'CHANGED' OR :Parameter.Insert_Flag = 1 THEN
IF :INVH_LOC_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_LOC_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_DIVN_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_DIVN_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_CUST_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_CUST_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_SMAN_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_SMAN_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_PLH_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_PLH_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_CURR_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_CURR_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_PAY_MODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_PAY_MODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_DT IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_DT', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVH_DOC_DT IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVH_DOC_DT', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVI_ITEM_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVI_ITEM_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
ELSIF :INVI_UOM_CODE IS NULL THEN
SHOW_MESSAGE('INV_ALERT','Please enter ' || get_item_property('INVI_UOM_CODE', prompt_text));
RAISE FORM_TRIGGER_FAILURE;
END IF;
-- Your other pre-commit procedures
Proc_Upd_Avg_Rate;
Validate_Delivery_Loc_To;
IF NVL(:Frm_En_Sales_Promo, 'Y') = 'Y' THEN
GO_BLOCK('T_Inv_Item');
FIRST_RECORD;
LOOP
Promo_Foc_Loading;
IF :System.Last_Record = 'TRUE' THEN
EXIT;
END IF;
NEXT_RECORD;
END LOOP;
GO_BLOCK('T_Inv_Item');
FIRST_RECORD;
LOOP
Get_Promotion_Foc('INSERT');
IF :System.Last_Record = 'TRUE' THEN
EXIT;
END IF;
NEXT_RECORD;
END LOOP;
END IF;
-- Your stock batch validation
GO_BLOCK('T_Inv_Item');
FIRST_RECORD;
LOOP
DECLARE
v_Qty NUMBER := 0;
BEGIN
IF NVL(:Gr_Batch_En, 'N') = 'Y' THEN
v_Qty := NVL(:Invi_qty * :Max_Loose, 0) + NVL(:Invi_Loose, 0) + NVL(:Invi_Foc_Qty * :Max_Loose, 0) + NVL(:Invi_Foc_Loose, 0);
IF :Invi_Txn_Batch_id IS NOT NULL THEN
Validate_Gr_Batch(:Invi_Item_Code, :Invh_Loc_Code, :Invi_Txn_Batch_id, v_Qty, :Gr_Batch_En);
ELSE
SHOW_MESSAGE('ALERT1', 'Purchase batch cannot be null');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
END;
IF :System.Last_Record = 'TRUE' THEN
EXIT;
END IF;
NEXT_RECORD;
END LOOP;
-- ?? Now COMMIT safely with exception handling
COMMIT_FORM;
-- Confirm COMMIT success
IF NOT FORM_SUCCESS THEN
v_ErrCode := ERROR_CODE;
v_ErrText := ERROR_TEXT;
MESSAGE('Error during commit: ' || v_ErrCode || ' - ' || v_ErrText);
MESSAGE(' ', NO_ACKNOWLEDGE);
RAISE FORM_TRIGGER_FAILURE;
END IF;
-- Financial posting after commit
IF NVL(:Nett_Loc, 0) > 0 THEN
Proc_Update_Fin_Status(:Global.Company, :InvH_Txn_Code, :InvH_Id);
COMMIT_FORM;
END IF;
END IF;
-- Printing setup after successful commit
IF :System.Form_Status = 'QUERY' THEN
:Frm_Desformat := Fn_Get_Stk_Txn_Param(:INVH_Txn_Code, :Global.Company, 'INV_REP_DESFORMAT');
:Frm_Skip_Print := Fn_Get_Stk_Txn_Param(:INVH_Txn_Code, :Global.Company, 'INV_SKIP_PRINT');
:Frm_Auto_Print := Fn_Get_Stk_Txn_Param(:INVH_Txn_Code, :Global.Company, 'INV_AUTO_PRINT');
:Frm_Report := Fn_Get_User_Preference(:Global.User, :Global.Company, :InvH_Txn_Code, 'USR_REPORT');
IF :Frm_Report IS NULL THEN
:Frm_Report := Fn_Get_Stk_Txn_Param(:InvH_Txn_Code, :Global.Company, 'INV_REPORT');
END IF;
IF NVL(:InvH_Prn_Count, 0) > 0 THEN
SHOW_MESSAGE('Inv_Alert', 'Already printed! - ' || :InvH_No);
RAISE FORM_TRIGGER_FAILURE;
ELSIF NVL(:InvH_Prn_Count, 0) = 0 AND NVL(:Frm_Skip_Print, 'N') = 'N' AND NVL(:Frm_Auto_Print, 'N') = 'N' THEN
Proc_Dup_Print('K');
END IF;
END IF;
-- Final messages
SHOW_MESSAGE('Inv_Alert', 'Do# :' || :InvH_Loc_Code || '/' || :InvH_Txn_Code || '/' || :Invh_No);
CLEAR_FORM;
Init_Form;
Enable_Details;
EXCEPTION
WHEN OTHERS THEN
v_ErrCode := SQLCODE;
v_ErrText := SQLERRM;
MESSAGE('Unhandled Error: ' || v_ErrCode || ' - ' || v_ErrText);
MESSAGE(' ', NO_ACKNOWLEDGE);
RAISE FORM_TRIGGER_FAILURE;
END;
END;on unit PROC_COMMIT_FORM: deny when ((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and is_blank(INVH_LOC_CODE) else 'Please enter ' || label of INVH_LOC_CODE deny when (((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and is_blank(INVH_DIVN_CODE) else 'Please enter ' || label of INVH_DIVN_CODE deny when ((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and is_blank(INVH_CUST_CODE) else 'Please enter ' || label of INVH_CUST_CODE deny when (((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and is_blank(INVH_SMAN_CODE) else 'Please enter ' || label of INVH_SMAN_CODE deny when ((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and is_blank(INVH_PLH_CODE) else 'Please enter ' || label of INVH_PLH_CODE deny when (((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and is_blank(INVH_CURR_CODE) else 'Please enter ' || label of INVH_CURR_CODE deny when ((((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and not is_blank(INVH_CURR_CODE)) and is_blank(INVH_PAY_MODE) else 'Please enter ' || label of INVH_PAY_MODE deny when (((((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and not is_blank(INVH_CURR_CODE)) and not is_blank(INVH_PAY_MODE)) and is_blank(INVH_DT) else 'Please enter ' || label of INVH_DT deny when ((((((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and not is_blank(INVH_CURR_CODE)) and not is_blank(INVH_PAY_MODE)) and not is_blank(INVH_DT)) and is_blank(INVH_DOC_DT) else 'Please enter ' || label of INVH_DOC_DT deny when (((((((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and not is_blank(INVH_CURR_CODE)) and not is_blank(INVH_PAY_MODE)) and not is_blank(INVH_DT)) and not is_blank(INVH_DOC_DT)) and is_blank(INVI_ITEM_CODE) else 'Please enter ' || label of INVI_ITEM_CODE require INVI_UOM_CODE else 'Please enter ' || label of INVI_UOM_CODE when (((((((((((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and not is_blank(INVH_LOC_CODE)) and not is_blank(INVH_DIVN_CODE)) and not is_blank(INVH_CUST_CODE)) and not is_blank(INVH_SMAN_CODE)) and not is_blank(INVH_PLH_CODE)) and not is_blank(INVH_CURR_CODE)) and not is_blank(INVH_PAY_MODE)) and not is_blank(INVH_DT)) and not is_blank(INVH_DOC_DT)) and not is_blank(INVI_ITEM_CODE) call PROC_UPD_AVG_RATE() when (SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1) call VALIDATE_DELIVERY_LOC_TO() when (SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1) go to T_INV_ITEM when ((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and (nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') go to T_INV_ITEM when ((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and (nvl(FRM_EN_SALES_PROMO, 'Y') = 'Y') go to T_INV_ITEM when (SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1) call PROC_UPDATE_FIN_STATUS(GLOBAL.COMPANY, INVH_TXN_CODE, INVH_ID) when ((SYSTEM.FORM_STATUS = 'CHANGED') or (PARAMETER.INSERT_FLAG = 1)) and (nvl(NETT_LOC, 0) > 0) set FRM_DESFORMAT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_REP_DESFORMAT') when SYSTEM.FORM_STATUS = 'QUERY' set FRM_SKIP_PRINT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_SKIP_PRINT') when SYSTEM.FORM_STATUS = 'QUERY' set FRM_AUTO_PRINT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_AUTO_PRINT') when SYSTEM.FORM_STATUS = 'QUERY' set FRM_REPORT to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_TXN_CODE, 'USR_REPORT') when SYSTEM.FORM_STATUS = 'QUERY' set FRM_REPORT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_REPORT') when (SYSTEM.FORM_STATUS = 'QUERY') and is_blank(FRM_REPORT) deny when (SYSTEM.FORM_STATUS = 'QUERY') and (nvl(INVH_PRN_COUNT, 0) > 0) else 'Already printed! - ' || INVH_NO call PROC_DUP_PRINT('K') when ((SYSTEM.FORM_STATUS = 'QUERY') and not (nvl(INVH_PRN_COUNT, 0) > 0)) and (((nvl(INVH_PRN_COUNT, 0) = 0) and (nvl(FRM_SKIP_PRINT, 'N') = 'N')) and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) warn (((('Do# :' || INVH_LOC_CODE) || '/') || INVH_TXN_CODE) || '/') || INVH_NO clear form call ENABLE_DETAILS() # 5 statements did not convert.# line 50 # LOOP # Promo_Foc_Loading; # IF :System.Last_Record = 'TRUE' THEN # EXIT; # END IF; # NEXT_RECORD; # END LOOP; # reason: PROMO_FOC_LOADING is a program unit of this form used as a value, and a unit's body is inlined at a call statement rather than read for a return, so no FormConnect entry is written for it and what this expression holds is not stated# line 60 # LOOP # Get_Promotion_Foc('INSERT'); # IF :System.Last_Record = 'TRUE' THEN # EXIT; # END IF; # NEXT_RECORD; # END LOOP; # reason: GET_PROMOTION_FOC is a program unit of this form used as a value, and a unit's body is inlined at a call statement rather than read for a return, so no FormConnect entry is written for it and what this expression holds is not stated# line 72 # LOOP # DECLARE # v_Qty NUMBER := 0; # BEGIN # IF NVL(:Gr_Batch_En, 'N') = 'Y' THEN # v_Qty := NVL(:Invi_qty * :Max_Loose, 0) + NVL(:Invi_Loose, 0) + NVL(:Invi_Foc_Qty * :Max_Loose, 0) + NVL(:Invi_Foc_Loose, 0); # IF :Invi_Txn_Batch_id IS NOT NULL THEN # Validate_Gr_Batch(:Invi_Item_Code, :Invh_Loc_Code, :Invi_Txn_Batch_id, v_Qty, :Gr_Batch_En); # ELSE # SHOW_MESSAGE('ALERT1', 'Purchase batch cannot be null'); # RAISE FORM_TRIGGER_FAILURE; # END IF; # END IF; # END; # # IF :System.Last_Record = 'TRUE' THEN # EXIT; # END IF; # NEXT_RECORD; # END LOOP; # reason: it names T_INV_ITEM and T_INV_HEAD, so it walks no one collection# line 97 # If NOT FORM_SUCCESS Then # v_ErrCode := ERROR_CODE; # v_ErrText := ERROR_TEXT; # MESSAGE('Error during commit: ' || v_ErrCode || ' - ' || v_ErrText); # MESSAGE(' ', NO_ACKNOWLEDGE); # RAISE FORM_TRIGGER_FAILURE; # End If; # reason: the guard reads FORM_SUCCESS, which is one of Forms' own constants and not a value: CRL has no expression for what a property or an alert button is called# line 138 # EXCEPTION # WHEN OTHERS THEN # v_ErrCode := SQLCODE; # v_ErrText := SQLERRM; # MESSAGE('Unhandled Error: ' || v_ErrCode || ' - ' || v_ErrText); # MESSAGE(' ', NO_ACKNOWLEDGE); # RAISE FORM_TRIGGER_FAILURE; # reason: it handles OTHERS and re-raises, and CRL has no clause that runs when a statement fails: the error path ends the program either way, so the statements above it convert and the handler does not
27 clauses converted, 5 statements refused
Procedure Load_Dn(Ref_Id In Number) Is
Cursor Curdn Is
Select Dnh_Id, Dnh_Loc_Code, Dnh_Txn_Code, Dnh_No, Dnh_Sman_Code, Dnh_Cust_Code, Dnh_Disc_Perc,
Dnh_Disc_Amt,Dnh_Remarks, Dni_Plu_Code,Dni_Item_Code Item_Code, Item_Name, Dni_Uom_Code Uom_Code,
Uom_Max_Loose Max_Loose, Dni_Remarks,
Floor((Nvl(Dni_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0) - Nvl(Dni_Inv_Qty_Bu, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/Uom_Max_Loose) Qty,
(Nvl(Dni_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0) - Nvl(Dni_Inv_Qty_Bu, 0) - Nvl(Dni_Dnret_Qty_Bu,0))-
(Floor((Nvl(Dni_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0) - Nvl(Dni_Inv_Qty_Bu, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/Uom_Max_Loose) * Uom_Max_Loose) Loose,
Floor((Nvl(Dni_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0) - Nvl(Dni_Inv_Foc_Qty_Bu, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))/Uom_Max_Loose) Foc_Qty,
(Nvl(Dni_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0) - Nvl(Dni_Inv_Foc_Qty_Bu, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))-
(Floor((Nvl(Dni_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0) - Nvl(Dni_Inv_Foc_Qty_Bu, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))/Uom_Max_Loose) * Uom_Max_Loose) Foc_Loose,
Dni_Rate Rate,Dni_Disc_Perc Disc_Perc, /*0 commented on 07-04-2013*/Dni_Disc_Amt Disc_Amt, Dni_Id Item_Id,
Dni_Ref_Item_Code, Dni_Item_Alt_Name, --- added by prem(06/11/2013) ---
Dni_Loc_Fm, Dni_Prom_Item_Id, Item_Exp_Type, Dni_Batch, Dni_Exp_Dt, ---Added by Mojish 09/02/14
Dni_Vat,Dni_Vat_Incl_Price,Dni_Vat_Stax_Id,Dni_Ed,Dni_Ed_Incl_Price,Dni_Ed_Stax_Id,Dni_Base_Rate,Dni_Vat_Amt,Dni_Ed_Amt,Dni_Inc_Foc_Ed,Dni_Inc_Foc_Vat,
Dni_Txn_Batch_Id
From M_Uom, M_Item, T_Dn_Item, T_Dn_Head
Where Dni_Dnh_Id = Dnh_Id
And Item_Code = Dni_Item_Code
And Uom_Code = Dni_Uom_Code
And Nvl(Dni_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0) + Nvl(Dni_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0) - (Nvl(Dni_Inv_Qty_Bu, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) > 0
And Dnh_Comp_Code = :Global.Company
And Dnh_Loc_Code =:Invh_Loc_Code
And Dnh_Cust_Code = :Invh_Cust_Code
--AND (Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - nvl(DNI_DNRET_QTY_BU,0))/UOM_Max_Loose)>0
--OR (Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - nvl(DNI_DNRET_QTY_BU,0))-
-- (Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - nvl(DNI_DNRET_QTY_BU,0))/UOM_Max_Loose) * UOM_Max_Loose) >0)
--AND Nvl(DNH_Load_Status,'N') = 'N'
And Dnh_Id =Ref_Id
Order By Dni_Id;
v_ctr Number := 0;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Remarks Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_ref_Item_Code VarChar2(10);
v_Item_alt_Name VarChar2(60);
v_Loc_Fm Varchar2(10);
v_Batch Number(20);
V_Exp_Dt Date;
v_Vat Number;
v_Vat_Incl_Price Varchar2(2);
v_Vat_Stax_Id Number;
v_ED Number;
v_ED_Incl_Price Varchar2(2);
v_Ed_Stax_Id Number;
v_Base_Rate Number;
v_Vat_Amt Number;
v_Ed_Amt Number;
v_Inc_Vat Varchar2(1);
v_Inc_Ed Varchar2(1);
v_Batch_id Number;
BEGIN
Go_Block('T_Inv_Item');
Open CurDN;
--If :FLAG = 'Y' THEN
Loop
Fetch CurDN INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, :InvH_Remarks, v_Plu_Code,
v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, v_Remarks, v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,
v_ref_item_code, v_item_alt_name, v_Loc_Fm, :InvI_Prom_Item_Id, :En_Batch, v_Batch, v_Exp_Dt,--- added by prem(06/11/2013) ---
v_Vat,v_Vat_Incl_Price,v_Vat_Stax_Id,v_ED,v_ED_Incl_Price,v_Ed_Stax_Id,v_Base_Rate,v_Vat_Amt,v_Ed_Amt,v_Inc_Ed,v_Inc_Vat,v_Batch_Id;
EXIT WHEN CurDN%NotFound;
:Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); -- Added on 9/3/2019, Shebin, Since its loading only for one and first record when multiple items loads
:InvH_Disc_Perc := v_HDisc_Perc;
:InvH_Disc_Amt := v_HDisc_Amt;
:InvI_DN_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Remarks := v_Remarks;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=v_Foc_Qty;
:Invi_Foc_Loose := v_Foc_Ls;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:invi_ref_item_code := v_ref_item_code;--- added by prem (06/11/2013) ---
:invi_item_alt_name := v_item_alt_name;--- added by prem (06/11/2013) ---
:InvI_Loc_Fm := v_Loc_Fm; ---Added By Mojish 09/02/14
:InvI_Batch := v_Batch;
:InvI_Exp_Dt := v_Exp_Dt;
:Ref_Doc_Item := 'Loaded';
:InvI_Loaded_Fm_DN :='Y';
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := Fn_Get_Zone_Date(:Global.Company);
:Invi_Vat := v_Vat;
:Invi_Vat_Incl_Price := v_Vat_Incl_Price;
:Invi_Vat_Stax_Id := v_Vat_Stax_Id;
:Invi_Ed := v_ED;
:Invi_Ed_Incl_Price := v_Ed_Incl_Price;
:Invi_Ed_Stax_Id := v_Ed_Stax_Id;
:Invi_Base_Rate := v_Base_Rate;
:Invi_Vat_Amt := v_Vat_Amt;
:Invi_Ed_Amt := v_Ed_Amt;
:Invi_Inc_Foc_Vat := v_Inc_Vat;
:Invi_Inc_Foc_Ed := v_Inc_Ed;
:Invi_Txn_Batch_Id := v_Batch_Id;
v_ctr := v_ctr+1;
Next_Record;
End Loop;
If Nvl(v_Ctr,0) >0 Then
:Invh_Load_Status :='Y' ;
End If;
Close CurDN;
-- First_Record;
--End If;
-- GO_BLOCK('T_INV_ITEM');
--- added by prem (06/11/2013) ---
/*If v_Ref_Item_Id Is Not Null Then --Commented By Mojish for Multiple delivery not didn't load
Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
end if;*/
--- added by prem (06/11/2013) ---
END;on unit LOAD_DN(REF_ID): go to T_INV_ITEM # 2 statements did not convert.# line 86 # Loop # Fetch CurDN INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, :InvH_Remarks, v_Plu_Code, # v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, v_Remarks, v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id, # v_ref_item_code, v_item_alt_name, v_Loc_Fm, :InvI_Prom_Item_Id, :En_Batch, v_Batch, v_Exp_Dt, # v_Vat,v_Vat_Incl_Price,v_Vat_Stax_Id,v_ED,v_ED_Incl_Price,v_Ed_Stax_Id,v_Base_Rate,v_Vat_Amt,v_Ed_Amt,v_Inc_Ed,v_Inc_Vat,v_Batch_Id; # # EXIT WHEN CurDN%NotFound; # :Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); # :InvH_Disc_Perc := v_HDisc_Perc; # :InvH_Disc_Amt := v_HDisc_Amt; # :InvI_DN_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Remarks := v_Remarks; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=v_Foc_Qty; # :Invi_Foc_Loose := v_Foc_Ls; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :invi_ref_item_code := v_ref_item_code; # :invi_item_alt_name := v_item_alt_name; # :InvI_Loc_Fm := v_Loc_Fm; # :InvI_Batch := v_Batch; # :InvI_Exp_Dt := v_Exp_Dt; # :Ref_Doc_Item := 'Loaded'; # :InvI_Loaded_Fm_DN :='Y'; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := Fn_Get_Zone_Date(:Global.Company); # # :Invi_Vat := v_Vat; # :Invi_Vat_Incl_Price := v_Vat_Incl_Price; # :Invi_Vat_Stax_Id := v_Vat_Stax_Id; # :Invi_Ed := v_ED; # :Invi_Ed_Incl_Price := v_Ed_Incl_Price; # :Invi_Ed_Stax_Id := v_Ed_Stax_Id; # :Invi_Base_Rate := v_Base_Rate; # :Invi_Vat_Amt := v_Vat_Amt; # :Invi_Ed_Amt := v_Ed_Amt; # :Invi_Inc_Foc_Vat := v_Inc_Vat; # :Invi_Inc_Foc_Ed := v_Inc_Ed; # :Invi_Txn_Batch_Id := v_Batch_Id; # v_ctr := v_ctr+1; # Next_Record; # End Loop; # reason: its collection binds REF_ID, a parameter this program takes, and a parameter passed in PL/SQL is not a bind the page can supply# line 138 # If Nvl(v_Ctr,0) >0 Then # :Invh_Load_Status :='Y'; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := V_CTR+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
1 clause converted, 2 statements refused
-- Task-Invoice, $Shebin, 15/June/2019
Declare
Cursor C_Item_Det Is
Select Invi_Id,Invi_Invh_Id,Invi_So_Doc_Item_Id,Invi_Dn_Doc_Item_Id,Invi_Plu_Code,Invi_Item_Code,Invi_Uom_Code ,
Invi_Batch,Invi_Exp_Dt,Invi_Item_Sl_Ref,Invi_Qty,Invi_Loose,Invi_Foc_Qty,Invi_Foc_Loose,Invi_Loaded_Fm_Dn,
Invi_Srt_Qty_Bu,Invi_Lt_Qty_Bu,Invi_Fifo,Invi_Wac,Invi_Rate,Invi_Disc_Perc,Invi_Disc_Amt,Invi_Com_Perc,
Invi_Vat_Perc,Invi_Others,Invi_Remarks
From Table(Pkg_Invoice.Fn_Load_Invoice_Dtl(:Parameter.Par_InvhId)); --Item details
/* Cursor C_T_Inv_Cess Is
Select Invc_Stax_Id,Invc_Tax_Perc,Invc_Tax_Level,Invc_Tax_On
From T_Inv_Cess Where Invc_Invh_Id = :Parameter.Par_Invhid; -- T_Inv_Cess
v_Cess C_T_Inv_Cess%Rowtype; */
v_Item_Rec C_Item_Det%Rowtype;
item_hd_tab Pkg_Invoice.Item_hd_table;
v_Cnt Number := 0;
Begin
--Populating Header
:Parameter.P_Copy := 1; -- To handle some of the validations during Copying
If :T_Inv_Head.Invh_no Is null Then
Show_Message('Inv_Alert', 'Please enter Doc No.');
Raise Form_Trigger_Failure;
End If;
:Parameter.Par_InvhId := :T_Inv_Head.Invh_id;
If Nvl(:Parameter.Par_InvhId,0) = 0 Then
Select Count(*) Into v_Cnt from T_inv_head
Where invh_no = :T_Inv_Head.Invh_no;
If v_Cnt = 1 Then
Select Invh_id Into :Parameter.Par_InvhId from T_inv_head
Where invh_no = :T_Inv_Head.Invh_no;
ElsIf v_Cnt > 1 Then
Declare
lov_id LOV;
v_lov BOOLEAN;
Begin
lov_id := Find_LOV('LOV_DOC_NO');
If Get_LOV_Property(lov_id,GROUP_NAME) = 'LOV_DOC_NO' Then
Set_LOV_Property(lov_id,GROUP_NAME,'LOV_DOC_COPY');
v_lov := Show_LOV('LOV_DOC_NO');
If v_lov THEN
:Parameter.Par_InvhId := :T_Inv_Head.Invh_id;
End If;
End If;
End;
/*Else
Select Invh_id Into :Parameter.Par_InvhId from T_inv_head
Where invh_no = :T_Inv_Head.Invh_no
And Invh_Cust_code = :T_Inv_Head.Invh_Cust_code
Order by 1 Desc; */
End If;
End If;
Pkg_Invoice.Proc_Load_Invoice_Hd(:Parameter.Par_InvhId,item_hd_tab);
Go_Block('T_INV_HEAD');
-- for i in item_hd_tab.first..item_hd_tab.last loop -- Since only one record no loop is needed
-- :T_Inv_Head.Invh_Comp_Code := Item_hd_tab(1).Invh_Comp_Code;
:T_Inv_Head.Invh_Divn_Code := Item_hd_tab(1).Invh_Divn_Code;
:T_Inv_Head.Invh_Ayr_Code := Item_hd_tab(1).Invh_Ayr_Code;
:T_Inv_Head.Invh_Loc_Code := Item_hd_tab(1).Invh_Loc_Code;
:T_Inv_Head.Invh_Txn_Code := Item_hd_tab(1).Invh_Txn_Code;
-- :T_Inv_Head.Invh_Ref := Item_hd_tab(1).Invh_Ref;
--:T_Inv_Head.Invh_Dt := Item_hd_tab(1).Invh_Dt;
--:T_Inv_Head.Invh_Doc_Dt := Item_hd_tab(1).Invh_Doc_Dt;
:T_Inv_Head.Invh_Cust_Code := Item_hd_tab(1).Invh_Cust_Code;
:T_Inv_Head.Invh_Cust_Alt_Name:= Item_hd_tab(1).Invh_Cust_Alt_Name;
:T_Inv_Head.Invh_Loyalty_Ref := Item_hd_tab(1).Invh_Loyalty_Ref;
:T_Inv_Head.Invh_Pay_Mode := Item_hd_tab(1).Invh_Loyalty_Ref;
--:T_Inv_Head.Invh_Cash:= Item_hd_tab(1).Invh_Cash;
-- :T_Inv_Head.Invh_Card := Item_hd_tab(1).Invh_Card;
--:T_Inv_Head.Invh_Card_Code := Item_hd_tab(1).Invh_Card_Code;
--:T_Inv_Head.Invh_Card_No:= Item_hd_tab(1).Invh_Card_No;
--:T_Inv_Head.Invh_Credit := Item_hd_tab(1).Invh_Credit;
--:T_Inv_Head.Invh_Pos_Ref := Item_hd_tab(1).Invh_Pos_Ref;
-- :T_Inv_Head.Invh_Due_Dt := Item_hd_tab(1).Invh_Due_Dt;
:T_Inv_Head.Invh_Cust_Ref := Item_hd_tab(1).Invh_Cust_Ref;
:T_Inv_Head.Invh_Sman_Code := Item_hd_tab(1).Invh_Sman_Code;
:T_Inv_Head.Invh_Del_Address1 := Item_hd_tab(1).Invh_Del_Address1;
:T_Inv_Head.Invh_Del_Address2 := Item_hd_tab(1).Invh_Del_Address2;
:T_Inv_Head.Invh_Del_Area_Code := Item_hd_tab(1).Invh_Del_Area_Code;
:T_Inv_Head.Invh_Plh_Code := Item_hd_tab(1).Invh_Plh_Code;
:T_Inv_Head.Invh_Curr_Code := Item_hd_tab(1).Invh_Curr_Code;
:T_Inv_Head.Invh_Curr_Rate := Item_hd_tab(1).Invh_Curr_Rate;
:T_Inv_Head.Invh_Disc_Perc := Item_hd_tab(1).Invh_Disc_Perc;
:T_Inv_Head.Invh_Disc_Amt := Item_hd_tab(1).Invh_Disc_Amt;
:T_Inv_Head.Invh_Com_Perc := Item_hd_tab(1).Invh_Com_Perc;
:T_Inv_Head.Invh_Vat_Perc := Item_hd_tab(1).Invh_Vat_Perc;
:T_Inv_Head.Invh_Others := Item_hd_tab(1).Invh_Others;
:T_Inv_Head.Invh_Remarks := Item_hd_tab(1).Invh_Remarks;
--:T_Inv_Head.Invh_Locked ,
--Invh_Status ,
---:T_Inv_Head.Invh_Conf_User ,
-- :T_Inv_Head.Invh_Conf_Dt ,
:T_Inv_Head.Invh_Th_Id := Item_hd_tab(1).Invh_Th_Id;
:T_Inv_Head.Invh_Close_So := Item_hd_tab(1).Invh_Close_So;
-- Invh_Cr_User ,
-- Invh_Cr_Dt ,
--Invh_Edt_User ,
-- Invh_Edt_Dt ,
:T_Inv_Head.Invh_Load_Status := Item_hd_tab(1).Invh_Load_Status;
--:T_Inv_Head.Invh_Barcode := Item_hd_tab(1).Invh_Barcode;
:T_Inv_Head.Invh_Btrn_Flag := Item_hd_tab(1).Invh_Btrn_Flag;
--:T_Inv_Head.Invh_Wdel_Status := Item_hd_tab(1).Invh_Wdel_Status;
:T_Inv_Head.Invh_Ord_Ref := Item_hd_tab(1).Invh_Ord_Ref;
:T_Inv_Head.Invh_Ord_Dt := Item_hd_tab(1).Invh_Ord_Dt;
:T_Inv_Head.Invh_Emp_Code := Item_hd_tab(1).Invh_Emp_Code;
:T_Inv_Head.Invh_Bank_Code := Item_hd_tab(1).Invh_Bank_Code;
:T_Inv_Head.Invh_Loc_Code_To := Item_hd_tab(1).Invh_Loc_Code_To;
--:T_Inv_Head.Invh_Edt_Terminal:= Item_hd_tab(1).Invh_Edt_Terminal;
--:T_Inv_Head.Invh_Cob_Dt := Item_hd_tab(1).Invh_Cob_Dt;
:T_Inv_Head.Invh_Advance_Amt := Item_hd_tab(1).Invh_Advance_Amt;
--Populating Detail Block
Go_Block('T_INV_ITEM');
First_Record;
Open C_Item_Det;
Loop
Next_Record;
Fetch C_Item_Det Into v_Item_Rec;
Exit When C_Item_Det%NotFound;
--:T_Inv_Item.Invi_Id := v_Item_Rec.Invi_Id;
--:T_Inv_Item.Invi_Invh_Id := v_Item_Rec.Invi_Invh_Id;
--:T_Inv_Item.Invi_So_Doc_Item_Id := v_Item_Rec.Invi_So_Doc_Item_Id;
--:T_Inv_Item.Invi_Dn_Doc_Item_Id := v_Item_Rec.Invi_Dn_Doc_Item_Id;
:T_Inv_Item.Invi_Plu_Code := v_Item_Rec.Invi_Plu_Code;
:T_Inv_Item.Invi_Item_Code := v_Item_Rec.Invi_Item_Code;
:T_Inv_Item.Invi_Uom_Code := v_Item_Rec.Invi_Uom_Code;
:T_Inv_Item.Invi_Batch := v_Item_Rec.Invi_Batch;
:T_Inv_Item.Invi_Exp_Dt := v_Item_Rec.Invi_Exp_Dt;
--:T_Inv_Item.Invi_Item_Sl_Ref := v_Item_Rec.Invi_Item_Sl_Ref;
:T_Inv_Item.Invi_Qty := v_Item_Rec.Invi_Qty;
:T_Inv_Item.Invi_Loose := v_Item_Rec.Invi_Loose;
:T_Inv_Item.Invi_Foc_Qty := v_Item_Rec.Invi_Foc_Qty;
:T_Inv_Item.Invi_Foc_Loose := v_Item_Rec.Invi_Foc_Loose;
--:T_Inv_Item.Invi_Loaded_Fm_Dn := v_Item_Rec.Invi_Loaded_Fm_Dn;
--:T_Inv_Item.Invi_Srt_Qty_Bu := v_Item_Rec.Invi_Srt_Qty_Bu;
--:T_Inv_Item.Invi_Lt_Qty_Bu := v_Item_Rec.Invi_Lt_Qty_Bu;
--:T_Inv_Item.Invi_Fifo := v_Item_Rec.Invi_Fifo;
--:T_Inv_Item.Invi_Wac := v_Item_Rec.Invi_Wac;
:T_Inv_Item.Invi_Rate := v_Item_Rec.Invi_Rate;
:T_Inv_Item.Invi_Disc_Perc := v_Item_Rec.Invi_Disc_Perc;
:T_Inv_Item.Invi_Disc_Amt := v_Item_Rec.Invi_Disc_Amt;
:T_Inv_Item.Invi_Com_Perc := v_Item_Rec.Invi_Com_Perc;
:T_Inv_Item.Invi_Others := v_Item_Rec.Invi_Others;
--:T_Inv_Item.Invi_Remarks := v_Item_Rec.Invi_Remarks;
End Loop;
Close C_Item_Det;
Go_Block('T_INV_ITEM');
First_Record;
--Added on 30/Jun/2019
proc_load_cess;-- to handle t_inv_cess
Go_Block('T_INV_HEAD'); --till
---
--Reset
:Parameter.P_Copy := 0;
:Parameter.Par_InvhId := Null;
:T_Inv_Head.Invh_id := Null;
:T_Inv_Head.Invh_No := Null;
Exception
When No_Data_Found Then
Null;
End; on press of PB_COPY: from INV_HEAD_COUNT(INVH_NO) when nvl(PARAMETER.PAR_INVHID, 0) = 0 # load-fmb-invoice-ctrl-pb-copy-press-0 from INV_HEAD(INVH_NO) when (nvl(PARAMETER.PAR_INVHID, 0) = 0) and (INV_HEAD_COUNT.COUNT = 1) or null # load-fmb-invoice-ctrl-pb-copy-press-1 require INVH_NO else "Please enter Doc No." go to T_INV_HEAD go to T_INV_ITEM go to T_INV_ITEM call PROC_LOAD_CESS() go to T_INV_HEAD set INVH_ID to null set INVH_NO to null # 39 statements did not convert.# line 19 # :Parameter.P_Copy := 1; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 24 # :Parameter.Par_InvhId := :T_Inv_Head.Invh_id; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 37 # If Get_LOV_Property(lov_id,GROUP_NAME) = 'LOV_DOC_NO' Then # Set_LOV_Property(lov_id,GROUP_NAME,'LOV_DOC_COPY'); # v_lov := Show_LOV('LOV_DOC_NO'); # If v_lov Then # :Parameter.Par_InvhId := :T_Inv_Head.Invh_id; # End If; # End If; # reason: the guard reads the local LOV_ID, which is written from FIND_LOV, and FIND_LOV is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 53 # Pkg_Invoice.Proc_Load_Invoice_Hd(:Parameter.Par_InvhId,item_hd_tab); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 57 # :T_Inv_Head.Invh_Divn_Code := Item_hd_tab(1).Invh_Divn_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 58 # :T_Inv_Head.Invh_Ayr_Code := Item_hd_tab(1).Invh_Ayr_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 59 # :T_Inv_Head.Invh_Loc_Code := Item_hd_tab(1).Invh_Loc_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 60 # :T_Inv_Head.Invh_Txn_Code := Item_hd_tab(1).Invh_Txn_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 64 # :T_Inv_Head.Invh_Cust_Code := Item_hd_tab(1).Invh_Cust_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 65 # :T_Inv_Head.Invh_Cust_Alt_Name:= Item_hd_tab(1).Invh_Cust_Alt_Name; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 66 # :T_Inv_Head.Invh_Loyalty_Ref := Item_hd_tab(1).Invh_Loyalty_Ref; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 67 # :T_Inv_Head.Invh_Pay_Mode := Item_hd_tab(1).Invh_Loyalty_Ref; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 75 # :T_Inv_Head.Invh_Cust_Ref := Item_hd_tab(1).Invh_Cust_Ref; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 76 # :T_Inv_Head.Invh_Sman_Code := Item_hd_tab(1).Invh_Sman_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 77 # :T_Inv_Head.Invh_Del_Address1 := Item_hd_tab(1).Invh_Del_Address1; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 78 # :T_Inv_Head.Invh_Del_Address2 := Item_hd_tab(1).Invh_Del_Address2; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 79 # :T_Inv_Head.Invh_Del_Area_Code := Item_hd_tab(1).Invh_Del_Area_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 80 # :T_Inv_Head.Invh_Plh_Code := Item_hd_tab(1).Invh_Plh_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 81 # :T_Inv_Head.Invh_Curr_Code := Item_hd_tab(1).Invh_Curr_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 82 # :T_Inv_Head.Invh_Curr_Rate := Item_hd_tab(1).Invh_Curr_Rate; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 83 # :T_Inv_Head.Invh_Disc_Perc := Item_hd_tab(1).Invh_Disc_Perc; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 84 # :T_Inv_Head.Invh_Disc_Amt := Item_hd_tab(1).Invh_Disc_Amt; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 85 # :T_Inv_Head.Invh_Com_Perc := Item_hd_tab(1).Invh_Com_Perc; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 86 # :T_Inv_Head.Invh_Vat_Perc := Item_hd_tab(1).Invh_Vat_Perc; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 87 # :T_Inv_Head.Invh_Others := Item_hd_tab(1).Invh_Others; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 88 # :T_Inv_Head.Invh_Remarks := Item_hd_tab(1).Invh_Remarks; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 93 # :T_Inv_Head.Invh_Th_Id := Item_hd_tab(1).Invh_Th_Id; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 94 # :T_Inv_Head.Invh_Close_So := Item_hd_tab(1).Invh_Close_So; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 99 # :T_Inv_Head.Invh_Load_Status := Item_hd_tab(1).Invh_Load_Status; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 101 # :T_Inv_Head.Invh_Btrn_Flag := Item_hd_tab(1).Invh_Btrn_Flag; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 103 # :T_Inv_Head.Invh_Ord_Ref := Item_hd_tab(1).Invh_Ord_Ref; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 104 # :T_Inv_Head.Invh_Ord_Dt := Item_hd_tab(1).Invh_Ord_Dt; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 105 # :T_Inv_Head.Invh_Emp_Code := Item_hd_tab(1).Invh_Emp_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 106 # :T_Inv_Head.Invh_Bank_Code := Item_hd_tab(1).Invh_Bank_Code; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 107 # :T_Inv_Head.Invh_Loc_Code_To := Item_hd_tab(1).Invh_Loc_Code_To; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 110 # :T_Inv_Head.Invh_Advance_Amt := Item_hd_tab(1).Invh_Advance_Amt; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 116 # Loop # Next_Record; # Fetch C_Item_Det Into v_Item_Rec; # Exit When C_Item_Det%NotFound; # # # # # :T_Inv_Item.Invi_Plu_Code := v_Item_Rec.Invi_Plu_Code; # :T_Inv_Item.Invi_Item_Code := v_Item_Rec.Invi_Item_Code; # :T_Inv_Item.Invi_Uom_Code := v_Item_Rec.Invi_Uom_Code; # :T_Inv_Item.Invi_Batch := v_Item_Rec.Invi_Batch; # :T_Inv_Item.Invi_Exp_Dt := v_Item_Rec.Invi_Exp_Dt; # # :T_Inv_Item.Invi_Qty := v_Item_Rec.Invi_Qty; # :T_Inv_Item.Invi_Loose := v_Item_Rec.Invi_Loose; # :T_Inv_Item.Invi_Foc_Qty := v_Item_Rec.Invi_Foc_Qty; # :T_Inv_Item.Invi_Foc_Loose := v_Item_Rec.Invi_Foc_Loose; # # # # # # :T_Inv_Item.Invi_Rate := v_Item_Rec.Invi_Rate; # :T_Inv_Item.Invi_Disc_Perc := v_Item_Rec.Invi_Disc_Perc; # :T_Inv_Item.Invi_Disc_Amt := v_Item_Rec.Invi_Disc_Amt; # :T_Inv_Item.Invi_Com_Perc := v_Item_Rec.Invi_Com_Perc; # :T_Inv_Item.Invi_Others := v_Item_Rec.Invi_Others; # # End Loop; # reason: its collection binds Parameter.Par_InvhId, which this form has no field for# line 154 # :Parameter.P_Copy := 0; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 155 # :Parameter.Par_InvhId := Null; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only
8 clauses converted, 39 statements refused
PROCEDURE Load_Cs_Mth(Mth IN Number) IS
Cursor CurCust Is Select CustI_Item_Code,Custi_Packing_Rate,CustI_Packing_Qty,CustI_Packing_Period From M_Cust_Item
Where CustI_Comp_Code =:Global.Company
and CustI_Cust_Code =:Invh_Cust_Code;
CURSOR CurCs(Dt_fm in Date,Dt_to in Date,ItemCode in Varchar2) IS
SELECT CsH_Id, CsH_Loc_Code, CsH_Txn_Code, CsH_No,CsH_Cust_Code,
CsD_Item_Code Item_Code, Item_Name, CsD_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose, Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0))) /UOM_Max_Loose) Qty,
(Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))-
(Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
CsD_Rate, 0 Disc_Perc, 0 Disc_Amt, CsD_Id Item_Id
FROM M_UOM, M_Item, T_Cust_Service_Detail, T_Cust_Service_Head
WHERE CsD_CsH_Id = CsH_Id
AND Item_Code = CsD_Item_Code
AND UOM_Code = CsD_UOM_Code
AND Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0
AND CsH_Comp_Code = :Global.Company
AND CsH_Loc_Code =:InvH_Loc_Code
--AND CsH_Txn_Code =:Invh_Ref_Txn_Code
And Csd_Item_Code =ItemCode
And CsH_Dt Between Dt_fm and Dt_to
AND Nvl(CsH_Load_Status,'N') ='N';
v_Dt_fm Date;
v_Dt_To Date;
v_ctr Number := 0;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
BEGIN
Select To_Date(Mth,'YYYYMM'),Last_Day(To_Date(Mth,'YYYYMM')) Into v_Dt_fm,v_Dt_to from dual;
Select count(*) into v_Count from T_Cust_Service_Detail, T_Cust_Service_Head,M_Uom
WHERE CsD_CsH_Id = CsH_Id
and Uom_Code =Csd_Uom_Code
AND Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0
AND CsH_Comp_Code = :Global.Company
AND CsH_Loc_Code =:InvH_Loc_Code
--AND CsH_Txn_Code =:Invh_Ref_Txn_Code
And Csd_Item_Code not in (select CustI_item_Code from M_Cust_item Where Custi_Comp_Code =:Global.Company and Custi_Cust_Code =:Invh_Cust_Code)
And CsH_Dt Between v_Dt_fm and v_Dt_to
AND Nvl(CsH_Load_Status,'N') ='N';
If v_Count > 0 Then
Show_Message('Inv_Alert', 'Items not defined in Customer Item Master!');
Raise Form_Trigger_Failure;
End If;
Go_Block('T_Inv_Item');
Last_Record;
IF :System.Last_Record = 'TRUE' THEN
Last_Record;
Next_Record;
ELSE
First_Record;
END IF;
For Cur in CurCust Loop
v_Count :=0;
Open CurCs(v_Dt_Fm,v_Dt_To,Cur.Custi_Item_Code);
--If :FLAG = 'Y' THEN
Loop
Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id;
EXIT WHEN CurCs%NotFound;
If v_count = Nvl(Cur.CustI_Packing_Qty,0) and Nvl(Cur.CustI_Packing_Qty,0)> 1 Then
--:InvI_Cs_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Count;
:InvI_Loose := 0;
:InvI_Rate := Cur.Custi_Packing_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
Next_Record;
Elsif (Nvl(Cur.CustI_Packing_Qty,0)= 0 Or v_count > Nvl(Cur.CustI_Packing_Qty,0)) Then
:InvI_Cs_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:Ref_Doc_Item := 'Loaded';
Next_Record;
End If;
v_count := v_Count + v_Qty;
v_ctr := v_ctr+1;
End Loop;
Close CurCs;
If v_Count >0 and v_Count < Nvl(Cur.CustI_Packing_Qty,0) Then
--:InvI_Cs_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Count;
:InvI_Loose := 0;
:InvI_Rate := Cur.Custi_Packing_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
End If;
End Loop;
If Nvl(v_Ctr,0) >0 Then
:Invh_Load_Status :='Y' ;
Update T_Cust_Service_Head set CsH_Load_Status='Y'
Where CsH_Comp_Code = :Global.Company
AND CsH_Loc_Code =:InvH_Loc_Code
And CsH_Dt Between v_Dt_fm and v_Dt_to
AND Nvl(CsH_Load_Status,'N') ='N';
End If;
First_Record;
GO_BLOCK('T_INV_ITEM');
END;on unit LOAD_CS_MTH(MTH): from load-fmb-invoice-load-cs-mth-0(INVH_CUST_CODE, INVH_LOC_CODE) unique else "Items not defined in Customer Item Master!" go to T_INV_ITEM last record of T_INV_ITEM last record when SYSTEM.LAST_RECORD = 'TRUE' next record when SYSTEM.LAST_RECORD = 'TRUE' first record when not (SYSTEM.LAST_RECORD = 'TRUE') first record go to T_INV_ITEM # 2 statements did not convert.# line 86 # For Cur in CurCust Loop # v_Count :=0; # Open CurCs(v_Dt_Fm,v_Dt_To,Cur.Custi_Item_Code); # # Loop # Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id; # EXIT WHEN CurCs%NotFound; # If v_count = Nvl(Cur.CustI_Packing_Qty,0) and Nvl(Cur.CustI_Packing_Qty,0)> 1 Then # # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Count; # :InvI_Loose := 0; # :InvI_Rate := Cur.Custi_Packing_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # Next_Record; # Elsif (Nvl(Cur.CustI_Packing_Qty,0)= 0 Or v_count > Nvl(Cur.CustI_Packing_Qty,0)) Then # # :InvI_Cs_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :Ref_Doc_Item := 'Loaded'; # Next_Record; # End If; # v_count := v_Count + v_Qty; # v_ctr := v_ctr+1; # End Loop; # Close CurCs; # # If v_Count >0 and v_Count < Nvl(Cur.CustI_Packing_Qty,0) Then # # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Count; # :InvI_Loose := 0; # :InvI_Rate := Cur.Custi_Packing_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # # End If; # # End Loop; # reason: it holds a loop over CURCS, a cursor this loop's own row supplies arguments to, so the inner collection is a source read once per row and no collection operation has a slot for one# line 151 # If Nvl(v_Ctr,0) >0 Then # :Invh_Load_Status :='Y'; # Update T_Cust_Service_Head set CsH_Load_Status='Y' # Where CsH_Comp_Code = :Global.Company # AND CsH_Loc_Code =:InvH_Loc_Code # And CsH_Dt Between v_Dt_fm and v_Dt_to # AND Nvl(CsH_Load_Status,'N') ='N'; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := V_CTR+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
8 clauses converted, 2 statements refused
PROCEDURE Load_Preq(Ref_Id IN Number) IS
CURSOR CurPreq IS
SELECT PreqI_Id, PreqH_Id, PreqH_Loc_Code, PreqH_Txn_Code, PreqH_No, Null PreqH_SMan_Code,Null PreqH_Cust_Code,Null PreqH_Disc_Perc,
Null PreqH_Disc_Amt,PreqI_Plu_Code, PreqI_Item_Code Item_Code, Item_Name, PreqI_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose, Floor((Nvl(PreqI_Qty * UOM_Max_Loose, 0) + Nvl(PreqI_Loose, 0) - (Nvl(PreqI_Inv_Qty_BU,0) + Nvl(PreqI_Pq_Qty_Bu,0) + Nvl(PreqI_PO_Qty_Bu,0) +
Nvl(PreqI_LtO_Qty_Bu,0) + Nvl(PreqI_Dn_Qty_Bu,0)))/UOM_Max_Loose) Qty,
(Nvl(PreqI_Qty * UOM_Max_Loose, 0) + Nvl(PreqI_Loose, 0) - (Nvl(PreqI_Inv_Qty_BU,0) + Nvl(PreqI_Pq_Qty_Bu,0) + Nvl(PreqI_PO_Qty_Bu,0) + Nvl(PreqI_LtO_Qty_Bu,0) + Nvl(PreqI_Dn_Qty_Bu,0)))-
(Floor((Nvl(PreqI_Qty * UOM_Max_Loose, 0) + Nvl(PreqI_Loose, 0) - (Nvl(PreqI_Inv_Qty_BU,0) + Nvl(PreqI_Pq_Qty_Bu,0) + Nvl(PreqI_PO_Qty_Bu,0) + Nvl(PreqI_LtO_Qty_Bu,0) + Nvl(PreqI_Dn_Qty_Bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
0 Rate, 0 Disc_Perc, 0 Disc_Amt, PreqI_Id Item_Id
FROM M_UOM, M_Item, T_Preq_Item, T_Preq_Head
WHERE PreqI_PreqH_Id = PreqH_Id
AND Item_Code = PreqI_Item_Code
AND UOM_Code = PreqI_UOM_Code
AND Nvl(PreqI_Qty*UOM_Max_Loose, 0) + Nvl(PreqI_Loose, 0) - (Nvl(PreqI_Inv_Qty_BU,0) + Nvl(PreqI_Pq_Qty_Bu,0) + Nvl(PreqI_PO_Qty_Bu,0) + Nvl(PreqI_LtO_Qty_Bu,0) + Nvl(PreqI_Dn_Qty_Bu,0)) > 0
AND PreqH_Comp_Code = :Global.Company
AND PreqH_Loc_Code =:Ref_Loc_Code
AND PreqH_Txn_Code =:Invh_Ref_Txn_Code
And PreqH_Id =Ref_Id
AND Nvl(PreqH_Load_Status,'N') = 'N' Order By PreqI_Id;
v_ctr Number := 0;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_Divn Varchar2(10);
v_PreqI_Id Number(10);
V_Ref VARCHAR2 (4);
BEGIN
--Validation
Select Loc_Divn_Code INTO v_Divn From M_Location Where Loc_Comp_Code =:Global.Company and Loc_Code =:Ref_Loc_Code;
If v_Divn is Null Then
Show_Message('Inv_Alert','Divn code of '||:Ref_Loc_Code||' not found!');
Raise Form_Trigger_Failure;
End If;
v_Cust_Code := Fn_Get_Divn_Param(:Global.Company,v_Divn,'DIVN_CUST_CODE');
If :Invh_Cust_Code <> v_Cust_Code Then
Show_Message('Inv_Alert','Division/Customer Not match!');
Raise Form_Trigger_Failure;
End If;
Go_Block('T_Inv_Item');
Open CurPreq;
--If :FLAG = 'Y' THEN
Loop
Fetch CurPreq INTO v_PreqI_Id, v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Plu_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id;
EXIT WHEN CurPreq%NotFound;
:InvI_Preq_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
Select Stkd_Unconf_Qty,Stkd_Validate_stk Into :Div_Stock_Bu,:Validate_Stk From M_Stock_Division
Where Stkd_Comp_Code = :Global.Company And Stkd_Divn_Code= :InvH_Divn_Code
And Stkd_Item_code = :InvI_Item_Code;
If Nvl(:InvI_Rate, 0) = 0 Then
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) And
(NVL (:Invi_Item_Code, ' ') NOT LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Get_Prate;
:Rate_Flag :='Y';
ELSIf (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then
V_Ref := SUBSTR (:Invi_Plu_Code, 3, 4);
V_Rate := SUBSTR (:Invi_Plu_Code, 7, 6) / 100;
-----For Weighing Item consider Selling Rate
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
End If;
If NVL (:Frm_Valid_Wt, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then
Proc_Get_Wt (:Invi_Plu_Code,:Invi_Rate,:Max_Loose,:Invi_Qty,:Invi_Loose);
End If;
Else
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
:Old_Uom_Code := :Invi_Uom_Code;
Get_Promotion_Foc ('VALIDATE');
If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then
Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc);
End If;
If :Inv_Additional_Disc > 0 Then
:Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2));
End If;
End If;
End If;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:Ref_Doc_Item := 'Loaded';
v_ctr := v_ctr+1;
Next_Record;
End Loop;
If Nvl(v_Ctr,0) >0 Then
:Invh_Load_Status :='Y' ;
End If;
Close CurPreq;
First_Record;
GO_BLOCK('T_INV_ITEM');
END;on unit LOAD_PREQ(REF_ID): from load-fmb-invoice-load-preq-0(REF_LOC_CODE) deny when is_blank(LOC_DIVN_CODE) else ('Divn code of ' || REF_LOC_CODE) || ' not found!' deny when INVH_CUST_CODE <> FN_GET_DIVN_PARAM(GLOBAL.COMPANY, LOC_DIVN_CODE, 'DIVN_CUST_CODE') else "Division/Customer Not match!" go to T_INV_ITEM first record go to T_INV_ITEM # 2 statements did not convert.# line 79 # Loop # Fetch CurPreq INTO v_PreqI_Id, v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Plu_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id; # EXIT WHEN CurPreq%NotFound; # # :InvI_Preq_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # Select Stkd_Unconf_Qty,Stkd_Validate_stk Into :Div_Stock_Bu,:Validate_Stk From M_Stock_Division # Where Stkd_Comp_Code = :Global.Company And Stkd_Divn_Code= :InvH_Divn_Code # And Stkd_Item_code = :InvI_Item_Code; # If Nvl(:InvI_Rate, 0) = 0 Then # # If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) And # (NVL (:Invi_Item_Code, ' ') NOT LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then # Get_Prate; # :Rate_Flag :='Y'; # ELSIf (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then # V_Ref := SUBSTR (:Invi_Plu_Code, 3, 4); # V_Rate := SUBSTR (:Invi_Plu_Code, 7, 6) / 100; # # If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then # Proc_Get_Sale_Price (:Global.Company, # :Invh_Divn_Code, # :Invh_PlH_Code,:InvH_Alt_PlH_Code, # :Invi_Item_Code, # :Invi_Uom_Code, # :Invh_Cust_Code, # :Invh_Curr_Code, # Nvl (:Frm_Inc_Default_Price, 'Y'), # :Invh_Dt, # :Invi_Prom_Item_Id, # :Promh_Id, # :Invi_Rate, # :Invi_Disc_Perc, # :Invi_Disc_Amt, # :Invi_Prom_Bu, # :Invi_Prom_Foc_Bu, # :Invi_Prom_Qty_Limit_Bu, # :Invi_Prom_Qty_Inv_Bu, # :Invi_Prom_Foc_Same); # End If; # # If NVL (:Frm_Valid_Wt, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then # Proc_Get_Wt (:Invi_Plu_Code,:Invi_Rate,:Max_Loose,:Invi_Qty,:Invi_Loose); # End If; # # Else # # Proc_Get_Sale_Price (:Global.Company, # :Invh_Divn_Code, # :Invh_PlH_Code,:InvH_Alt_PlH_Code, # :Invi_Item_Code, # :Invi_Uom_Code, # :Invh_Cust_Code, # :Invh_Curr_Code, # Nvl (:Frm_Inc_Default_Price, 'Y'), # :Invh_Dt, # :Invi_Prom_Item_Id, # :Promh_Id, # :Invi_Rate, # :Invi_Disc_Perc, # :Invi_Disc_Amt, # :Invi_Prom_Bu, # :Invi_Prom_Foc_Bu, # :Invi_Prom_Qty_Limit_Bu, # :Invi_Prom_Qty_Inv_Bu, # :Invi_Prom_Foc_Same); # :Old_Uom_Code := :Invi_Uom_Code; # Get_Promotion_Foc ('VALIDATE'); # # If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then # Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc); # End If; # If :Inv_Additional_Disc > 0 Then # :Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2)); # End If; # End If; # End If; # # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :Ref_Doc_Item := 'Loaded'; # v_ctr := v_ctr+1; # Next_Record; # End Loop; # reason: its collection binds REF_ID, a parameter this program takes, and a parameter passed in PL/SQL is not a bind the page can supply# line 173 # If Nvl(v_Ctr,0) >0 Then # :Invh_Load_Status :='Y'; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := V_CTR+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
5 clauses converted, 2 statements refused
PROCEDURE Proc_Dup_Print(P_Flag Varchar2) IS
-- P_Flag = K - Called from Key-Commit,
-- P-Flag = D - Duplicate Print Button
Pl_Id ParamList;
v_Status VarChar2(20);
v_Log_Id Number;
v_Report Varchar2(30);
v_Report VarChar2(30) := 'print_invoice';
v_Rep_Id Report_Object;
v_Rep_Job_Id VarChar2(100);
v_Job_Id VarChar2(100);
v_Rep_Status VarChar2(100);
v_Rep_URL VarChar2(1000);
v_Cust_Host VarChar2(100);
v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
v_Port VarChar2(100) := :Global.Rep_Port;
v_Rep_Server VarChar2(100):= :Global.Rep_Server;
v_Dt Date;
v_Alert Number;
v_mail_URL Varchar2(1000);
v_cust_short_name m_customer.cust_short_name%type;
v_cust_email m_customer.cust_email%type;
v_cust_tel1 m_customer.cust_tel1%type;
Begin
If P_Flag = 'D' Then
Txn_Validate;
End If;
Select cust_short_name,cust_email,cust_tel1 Into v_cust_short_name,v_cust_email,v_cust_tel1 from m_customer where cust_code = :Invh_Cust_code;
--Select user_email Into v_email from m_user Where user_code = 'ANOOP';
If Nvl(:Frm_Skip_Print, 'N') = 'N' AND Nvl(:Frm_Auto_Print, 'N') = 'N' Then
PL_Id := Get_Parameter_List('Print');
If Not Id_Null(Pl_Id) Then
Destroy_Parameter_List(Pl_Id);
End If;
PL_Id := Create_Parameter_List('Print');
If :Frm_No_Of_Print Is Null Then
:Frm_No_Of_Print := Fn_Get_Stk_Txn_Param(:Invh_Txn_Code,:Global.Company, 'INV_NO_OF_PRINT');
End If;
Add_Parameter(PL_Id, 'Parm_Comp_Code', Text_Parameter, :Global.Company);
Add_Parameter(PL_Id, 'Parm_Loc_Code', Text_Parameter, :InvH_Loc_Code);
Add_Parameter(PL_Id, 'Parm_Txn_Code', Text_Parameter, :InvH_Txn_Code);
Add_Parameter(PL_Id, 'Parm_AYr_Code', Text_Parameter, :InvH_AYr_Code);
Add_Parameter(PL_Id, 'Parm_No_From', Text_Parameter, :InvH_No);
Add_Parameter(PL_Id, 'Parm_No_To', Text_Parameter, :InvH_No);
Add_Parameter(PL_Id, 'No_Of_Print', Text_Parameter, :Frm_No_Of_Print);
Add_Parameter(PL_Id, 'Parm_User', Text_Parameter, :Global.User);
Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
Add_Parameter(PL_Id, 'Curr_Fmt', Text_Parameter, Nvl(:Frm_Curr_Format,:Global.Curr_Format));
v_Rep_Id := Find_Report_Object('print_txn');
--Communication Mode
Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
--Set_Report_Object_Property(v_Rep_Id, Report_Desformat,:Frm_Desformat);
Set_Report_Object_Property(v_Rep_Id, Report_Desformat, 'PDF');
--User pref.Printer
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_User_Preference(:Global.User, :Global.Company, :InvH_Txn_Code, 'USR_PRINTER');
End If;
If :Frm_Printer_Name Is Null Then
:Frm_Printer_Name := Fn_Get_Stk_Txn_Param(:InvH_Txn_Code, :Global.Company, 'INV_PRINTER');
End If;
--Specify Report Server and Report File Name
Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
If :Frm_Custom_Inv_Report Is Not Null Then
v_Alert := Show_Alert('CUSTOM_PRINT_ALERT');
If v_Alert = Alert_button1 Then
Set_Report_Object_Property(v_Rep_Id, Report_FileName,lower(:FRM_REPORT));
Else
Set_Report_Object_Property(v_Rep_Id, Report_FileName,lower(:Frm_Custom_Inv_Report));
:Frm_Printer_Name := Fn_Get_Cust_Param(:Invh_Cust_Code, :Global.Company, 'CUST_CUSTOM_PRINTER');
End If;
Else
Set_Report_Object_Property(v_Rep_Id, Report_FileName,lower(:FRM_REPORT));
End If;
--Handled Destination Type and Name
-- If :Mnu_Dest_Name = 'PRINTER' Then
-- Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
If Nvl(:Frm_Printer_Name,:Mnu_Printer_Name) Is Not Null Then
Set_Report_Object_Property(v_Rep_Id, Report_DesName, Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
--Set_Report_Object_Property(v_Rep_Id, Report_DesType,PRINTER);--- added by prem (06/11/2013) ---
Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
--End If;
Else
Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
End If;
--Run Report
v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);
-- SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',:Frm_Printer_Name);
-- SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'DEFAULT_PRINTER',:Frm_Printer_Name);
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name));
If Nvl(:Frm_Custom_Print,'N') = 'N' Then
-- Message('1');
If v_Rep_Status = 'FINISHED' Then
If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
Message('Print Success');
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL);
SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE','');
--Web.Show_Document(v_Rep_URL, '_blank');
Elsif Upper(:Mnu_Dest_Name) = 'CACHE' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
Message('Print Success');
Web.Show_Document(v_Rep_URL, '_blank');
Elsif Upper(:Mnu_Dest_Name) = 'EMAIL' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Cust_Host := Fn_Get_User_Param(:Global.User, 'USR_REP_HOST_NAME');
If v_Cust_Host Is Not Null Then
v_Host_Name := v_Cust_Host;
End If;
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
If Nvl(:Frm_En_Inv_Direct_Email,'N') = 'Y' Then
If Nvl(:Frm_Cust_En_Email, 'N') = 'Y' Then
If v_cust_email is not null Then
v_mail_URL := 'http://dev-portal.family.qa/send-mail/report-mailer/send-report-mail?to='||v_cust_email||'&user_code='||v_cust_short_name||'&content=Please find attached the report!&url='||v_Rep_URL;
Proc_Send_Report(:Global.Company,v_cust_email,:Global.User,v_cust_short_name,'Please find attached the pdf',v_mail_URL);
Proc_Ins_Email_Log(:Global.Company, :Invh_Loc_Code, :Invh_Txn_Code, :Invh_Ayr_Code, :Invh_No, Sysdate, v_cust_email, v_cust_short_name, :Global.User);
End If;
End If;
End If;
End If;
Else
Message('Error Running Report');
End If;
Else
If v_Rep_Status = 'FINISHED' Then
If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
If P_Flag = 'K' then
Message('Print Success');
End if;
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'FILE_NAME',v_Rep_URL);
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PAGE_WIDTH',Nvl(:FRM_CUSTOM_WIDTH,'8.5'));
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PAGE_HEIGHT',Nvl(:FRM_CUSTOM_HEIGHT,'5.5'));
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'ORIENTATION', 'POTRAIT');
SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PRINT_FILE','');
Elsif Upper(:Mnu_Dest_Name) = 'CACHE' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
If P_Flag = 'D' Then
Message('Print Success');
End if;
Web.Show_Document(v_Rep_URL, '_blank');
Elsif Upper(:Mnu_Dest_Name) = 'EMAIL' Then
v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
v_Cust_Host := Fn_Get_User_Param(:Global.User, 'USR_REP_HOST_NAME');
If v_Cust_Host Is Not Null Then
v_Host_Name := v_Cust_Host;
End If;
v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
If Nvl(:Frm_En_Inv_Direct_Email,'N') = 'Y' Then
If Nvl(:Frm_Cust_En_Email, 'N') = 'Y' Then
If v_cust_email is not null Then
v_mail_URL := 'http://dev-portal.family.qa/send-mail/report-mailer/send-report-mail?to='||v_cust_email||'&user_code='||v_cust_short_name||'&content=Please find attached the report!&url='||v_Rep_URL;
Proc_Send_Report(:Global.Company,v_cust_email,:Global.User,v_cust_short_name,'Please find attached the pdf',v_mail_URL);
Proc_Ins_Email_Log(:Global.Company, :Invh_Loc_Code, :Invh_Txn_Code, :Invh_Ayr_Code, :Invh_No, Sysdate, v_cust_email, v_cust_short_name, :Global.User);
End If;
End If;
End If;
End If;
Else
Message('Error Running Report');
End If;
End If;
Proc_Insert_Txn_Print_Log1(:Global.Company,:InvH_Loc_Code,:InvH_Ayr_Code,:InvH_Txn_Code,:InvH_No,:InvH_No, :Frm_Time_Zone,:Global.User);
Standard.Commit;
If P_Flag = 'D' then
Clear_Form(NO_COMMIT);
Init_Form;
End If;
Else
message('Print was skipped');
End if;
Exception
When No_Data_Found Then
Show_Message('Inv_Alert', 'Customer Email ID not found!');
End;on unit PROC_DUP_PRINT(P_FLAG): from load-fmb-invoice-proc-dup-print-0(INVH_CUST_CODE) or null call TXN_VALIDATE() when ARG.P_FLAG = 'D' set FRM_NO_OF_PRINT to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_NO_OF_PRINT') when ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and is_blank(FRM_NO_OF_PRINT) set FRM_PRINTER_NAME to FN_GET_USER_PREFERENCE(GLOBAL.USER, GLOBAL.COMPANY, INVH_TXN_CODE, 'USR_PRINTER') when ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and is_blank(FRM_PRINTER_NAME) set FRM_PRINTER_NAME to FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_PRINTER') when ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and is_blank(FRM_PRINTER_NAME) show alert CUSTOM_PRINT_ALERT when ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and is_filled(FRM_CUSTOM_INV_REPORT) set FRM_PRINTER_NAME to FN_GET_CUST_PARAM(INVH_CUST_CODE, GLOBAL.COMPANY, 'CUST_CUSTOM_PRINTER') when (((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and is_filled(FRM_CUSTOM_INV_REPORT)) and not (ANSWER.BUTTON = '1') report print_txn with (Curr_Fmt = nvl(FRM_CURR_FORMAT, GLOBAL.CURR_FORMAT), No_Of_Print = FRM_NO_OF_PRINT, ParamForm = 'No', Parm_AYr_Code = INVH_AYR_CODE, Parm_Comp_Code = GLOBAL.COMPANY, Parm_Loc_Code = INVH_LOC_CODE, Parm_No_From = INVH_NO, Parm_No_To = INVH_NO, Parm_Txn_Code = INVH_TXN_CODE, Parm_User = GLOBAL.USER) when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N') call PROC_INSERT_TXN_PRINT_LOG1(GLOBAL.COMPANY, INVH_LOC_CODE, INVH_AYR_CODE, INVH_TXN_CODE, INVH_NO, INVH_NO, FRM_TIME_ZONE, GLOBAL.USER) when (nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N') clear form when ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) and (ARG.P_FLAG = 'D') warn "Print was skipped" when not ((nvl(FRM_SKIP_PRINT, 'N') = 'N') and (nvl(FRM_AUTO_PRINT, 'N') = 'N')) warn "Customer Email ID not found!" when not is_filled(CUST_SHORT_NAME) # 5 statements did not convert.# line 101 # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name)); # reason: 'CTRL.PRINTBEAN' is a bean for printing, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent# line 102 # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'DEFAULT_PRINTER',Nvl(:Frm_Printer_Name,:Mnu_Printer_Name)); # reason: 'CTRL.CUSTOM_PRN_BEAN' is a bean for printing, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent# line 106 # If v_Rep_Status = 'FINISHED' Then # If Upper(:Mnu_Dest_Name) = 'PRINTER' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # Message('Print Success'); # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL); # SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE',''); # Else # If Upper(:Mnu_Dest_Name) = 'CACHE' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # Message('Print Success'); # Web.Show_Document(v_Rep_URL, '_blank'); # Else # If Upper(:Mnu_Dest_Name) = 'EMAIL' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Cust_Host := Fn_Get_User_Param(:Global.User, 'USR_REP_HOST_NAME'); # If v_Cust_Host Is Not Null Then # v_Host_Name := v_Cust_Host; # End If; # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # If Nvl(:Frm_En_Inv_Direct_Email,'N') = 'Y' Then # If Nvl(:Frm_Cust_En_Email, 'N') = 'Y' Then # If v_cust_email is not null Then # v_mail_URL := 'http://dev-portal.family.qa/send-mail/report-mailer/send-report-mail?to='||v_cust_email||'&user_code='||v_cust_short_name||'&content=Please find attached the report!&url='||v_Rep_URL; # Proc_Send_Report(:Global.Company,v_cust_email,:Global.User,v_cust_short_name,'Please find attached the pdf',v_mail_URL); # Proc_Ins_Email_Log(:Global.Company, :Invh_Loc_Code, :Invh_Txn_Code, :Invh_Ayr_Code, :Invh_No, Sysdate, v_cust_email, v_cust_short_name, :Global.User); # End If; # End If; # End If; # End If; # End If; # End If; # Else # Message('Error Running Report'); # End If; # reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 141 # If v_Rep_Status = 'FINISHED' Then # If Upper(:Mnu_Dest_Name) = 'PRINTER' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # If P_Flag = 'K' Then # Message('Print Success'); # End If; # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'FILE_NAME',v_Rep_URL); # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PAGE_WIDTH',Nvl(:FRM_CUSTOM_WIDTH,'8.5')); # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PAGE_HEIGHT',Nvl(:FRM_CUSTOM_HEIGHT,'5.5')); # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'ORIENTATION', 'POTRAIT'); # SET_CUSTOM_PROPERTY('CTRL.CUSTOM_PRN_BEAN',1,'PRINT_FILE',''); # Else # If Upper(:Mnu_Dest_Name) = 'CACHE' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # If P_Flag = 'D' Then # Message('Print Success'); # End If; # Web.Show_Document(v_Rep_URL, '_blank'); # Else # If Upper(:Mnu_Dest_Name) = 'EMAIL' Then # v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2); # v_Cust_Host := Fn_Get_User_Param(:Global.User, 'USR_REP_HOST_NAME'); # If v_Cust_Host Is Not Null Then # v_Host_Name := v_Cust_Host; # End If; # v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server; # If Nvl(:Frm_En_Inv_Direct_Email,'N') = 'Y' Then # If Nvl(:Frm_Cust_En_Email, 'N') = 'Y' Then # If v_cust_email is not null Then # v_mail_URL := 'http://dev-portal.family.qa/send-mail/report-mailer/send-report-mail?to='||v_cust_email||'&user_code='||v_cust_short_name||'&content=Please find attached the report!&url='||v_Rep_URL; # Proc_Send_Report(:Global.Company,v_cust_email,:Global.User,v_cust_short_name,'Please find attached the pdf',v_mail_URL); # Proc_Ins_Email_Log(:Global.Company, :Invh_Loc_Code, :Invh_Txn_Code, :Invh_Ayr_Code, :Invh_No, Sysdate, v_cust_email, v_cust_short_name, :Global.User); # End If; # End If; # End If; # End If; # End If; # End If; # Else # Message('Error Running Report'); # End If; # reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses# line 184 # Standard.Commit; # reason: G13: mid-trigger DML and the transaction boundary are refused, not converted
11 clauses converted, 5 statements refused
PROCEDURE Load_So(Ref_Id IN Number) IS
CURSOR CurSo IS
Select Soh_Id, Soh_Loc_Code, Soh_Txn_Code, Soh_No,Soh_Sman_Code,Soh_Cust_Code, Soh_Disc_Perc,
Soh_Disc_Amt,Soh_Remarks, Soi_Plu_Code, Soi_Item_Code Item_Code, Item_Name, Soi_Uom_Code Uom_Code,
Uom_Max_Loose Max_Loose,
Floor((Nvl(Soi_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0))) /Uom_Max_Loose) Qty,
(Nvl(Soi_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0)))-
(Floor((Nvl(Soi_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0)))/Uom_Max_Loose) * Uom_Max_Loose) Loose,
Floor((Nvl(Soi_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0))) /Uom_Max_Loose) Foc_Qty,
(Nvl(Soi_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0)))-
(Floor((Nvl(Soi_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0)))/Uom_Max_Loose) * Uom_Max_Loose) Foc_Loose,
Soi_Rate Rate, Soi_Disc_Perc Disc_Perc, Soi_Disc_Amt Disc_Amt, Soi_Id Item_Id, Soi_Ref_Item_Code,Soi_Item_Alt_Name,
Soi_Loc_Fm,Soi_Batch,Soi_Exp_Dt, Soi_Prom_Item_Id, Item_Serial_Status,Soi_Tndr_Doc_Item_Id,
Soi_Vat,Soi_Vat_Incl_Price,Soi_Vat_Stax_Id,Soi_Ed,Soi_Ed_Incl_Price,Soi_Ed_Stax_Id,Soi_Base_Rate,Soi_Vat_Amt,Soi_Ed_Amt,Soi_Inc_Foc_Ed,Soi_Inc_Foc_Vat,
Soi_Item_Desc,Soh_Tcs
From M_Uom, M_Item, T_So_Item, T_So_Head
Where Soi_Soh_Id = Soh_Id
And Item_Code = Soi_Item_Code
And Uom_Code = Soi_Uom_Code
And (Nvl(Soi_Qty*Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) +
Nvl(Soi_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Soi_Foc_Loose, 0)) - (Nvl(Soi_Inv_Qty_Bu, 0)+Nvl(Soi_Inv_Foc_Qty_Bu, 0)) > 0
And Soh_Comp_Code = :Global.Company
And Soh_Loc_Code =:Ref_Loc_Code
And Soh_Txn_Code =:Invh_Ref_Txn_Code
And Soh_Id = Ref_Id
And (Soh_Approval_Status ='F' Or
Fn_Get_Stk_Txn_Param(Soh_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
And Soh_Valid_Till >= :Invh_Dt
And (Nvl(Fn_Get_Stk_Txn_Param(Soh_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' Or
Exists(Select 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where Wplh_Id =Wplrd_Wplh_Id And Wplrd_Soh_Id =Soh_Id
And Nvl(Wplh_Status,'N') ='F'
And Not Exists(Select 'x' From T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id And Nvl(Wpli_Status,'N') ='N' And Wpli_Item_Code =Soi_Item_Code)))
Order By Soi_Id;
/*Select Soh_Id, Soh_Loc_Code, Soh_Txn_Code, Soh_No,Soh_Sman_Code,Soh_Cust_Code, Soh_Disc_Perc,
Soh_Disc_Amt,Soh_Remarks, Soi_Plu_Code, Soi_Item_Code Item_Code, Item_Name, Soi_Uom_Code Uom_Code,
Uom_Max_Loose Max_Loose,
Floor((Nvl(Soi_Rev_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0))) /Uom_Max_Loose) Qty,
(Nvl(Soi_Rev_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0)))-
(Floor((Nvl(Soi_Rev_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Rev_Loose, 0) - (Nvl(Soi_Inv_Qty_Bu,0) + Nvl(Soi_Dn_Qty_Bu,0)))/Uom_Max_Loose) * Uom_Max_Loose) Loose,
Floor((Nvl(Soi_Rev_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Rev_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0))) /Uom_Max_Loose) Foc_Qty,
(Nvl(Soi_Rev_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Rev_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0)))-
(Floor((Nvl(Soi_Rev_Foc_Qty * Uom_Max_Loose, 0) + Nvl(Soi_Rev_Foc_Loose, 0) - (Nvl(Soi_Inv_Foc_Qty_Bu,0) + Nvl(Soi_Dn_Foc_Qty_Bu,0)))/Uom_Max_Loose) * Uom_Max_Loose) Foc_Loose,
Soi_Rate Rate, Soi_Disc_Perc Disc_Perc, Soi_Disc_Amt Disc_Amt, Soi_Id Item_Id, Soi_Ref_Item_Code,Soi_Item_Alt_Name,
Soi_Loc_Fm,Soi_Batch,Soi_Exp_Dt, Soi_Prom_Item_Id, Item_Serial_Status,Soi_Tndr_Doc_Item_Id,
Soi_Vat,Soi_Vat_Incl_Price,Soi_Vat_Stax_Id,Soi_Ed,Soi_Ed_Incl_Price,Soi_Ed_Stax_Id,Soi_Base_Rate,Soi_Vat_Amt,Soi_Ed_Amt,Soi_Inc_Foc_Ed,Soi_Inc_Foc_Vat,
Soi_Item_Desc,Soh_Tcs
From M_Uom, M_Item, T_So_Item, T_So_Head
Where Soi_Soh_Id = Soh_Id
And Item_Code = Soi_Item_Code
And Uom_Code = Soi_Uom_Code
And (Nvl(Soi_Rev_Qty*Uom_Max_Loose, 0) + Nvl(Soi_Rev_Loose, 0) +
Nvl(Soi_Rev_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Soi_Rev_Foc_Loose, 0)) - (Nvl(Soi_Inv_Qty_Bu, 0)+Nvl(Soi_Inv_Foc_Qty_Bu, 0)) > 0
And Soh_Comp_Code = :Global.Company
And Soh_Loc_Code =:Ref_Loc_Code
And Soh_Txn_Code =:Invh_Ref_Txn_Code
And Soh_Id = Ref_Id
And (Soh_Approval_Status ='F' Or
Fn_Get_Stk_Txn_Param(Soh_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
And Soh_Valid_Till >= :Invh_Dt
And (Nvl(Fn_Get_Stk_Txn_Param(Soh_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' Or
Exists(Select 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where Wplh_Id =Wplrd_Wplh_Id And Wplrd_Soh_Id =Soh_Id
And Nvl(Wplh_Status,'N') ='F'
And Not Exists(Select 'x' From T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id And Nvl(Wpli_Status,'N') ='N' And Wpli_Item_Code =Soi_Item_Code)))
Order By Soi_Id; */
v_ctr Number := 0;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Emp_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_ref_Item_Code VarChar2(10);
v_Item_alt_Name VarChar2(60);
v_Loc_Fm Varchar2(10);
v_Batch Varchar2(20);
v_Exp_Dt Date;
V_Tndr_Doc_Item_Id number;
v_Vat Number;
v_Vat_Incl_Price Varchar2(2);
v_Vat_Stax_Id Number;
v_ED Number;
v_ED_Incl_Price Varchar2(2);
v_Ed_Stax_Id Number;
v_Base_Rate Number;
v_Vat_Amt Number;
v_Ed_Amt Number;
v_Inc_Vat Varchar2(1);
v_Inc_Ed Varchar2(1);
v_Item_Desc Varchar2(1000);
v_Tcs Varchar2(2000);
BEGIN
Go_Block('T_Inv_Item');
Last_Record; --Ticket #50390 Added on 28/08/2019 , S$hebin
IF :System.Last_Record = 'TRUE' THEN
Last_Record;
Next_Record;
ELSE
First_Record;
END IF;
Open CurSo;
--If :FLAG = 'Y' THEN
Loop
Fetch CurSo INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, :InvH_Remarks,
v_Plu_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose,v_Foc_Qty,v_Foc_ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,
v_ref_Item_Code, v_Item_alt_Name,
v_Loc_Fm,v_Batch,v_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl,V_Tndr_Doc_Item_Id, --added by prem (06/11/2013)---
V_Vat,v_Vat_Incl_Price,v_Vat_Stax_Id,v_ED,v_ED_Incl_Price,
v_Ed_Stax_Id,v_Base_Rate,v_Vat_Amt,v_Ed_Amt,v_Inc_Ed,v_Inc_Vat,v_Item_Desc,v_Tcs;
EXIT WHEN CurSo%NotFound;
if :Frm_Validate_Stock = 'Y' then
v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null);
If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then
If v_Qty_BU <= 0 Then
v_Qty := 0;
v_Loose := 0;
ElsIf v_Qty_BU < 1 Then
v_Qty := v_Qty_BU;
v_Loose := 0;
Else
v_Qty := Floor(v_Qty_BU/v_Max_Loose);
v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0);
End If;
End If;
end if;
:Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); --Added By Mojish 01/07/14
:InvH_Disc_Perc := v_HDisc_Perc;
:InvH_Disc_Amt := v_HDisc_Amt;
:InvH_Tcs := v_Tcs;
:InvI_So_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_foc_Qty := v_Foc_Qty;
:InvI_foc_Loose := v_Foc_ls;
:InvI_Rate := v_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:invi_ref_item_code := v_ref_Item_Code;--- added by prem (06/11/2013) ---
:invi_item_alt_name := v_Item_alt_Name;--- added by prem (06/11/2013) ---
:Ref_Doc_Item := 'Loaded';
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := Fn_Get_Zone_Date(:Global.Company);
:InvI_Loc_Fm := v_Loc_Fm;
:InvI_Batch := v_Batch;
:InvI_Exp_Dt := v_Exp_Dt;
:Invi_Tndr_Doc_Item_Id :=V_Tndr_Doc_Item_Id;
:Invi_Item_Desc := v_Item_Desc;
:Invi_Vat := v_Vat;
:Invi_Vat_Incl_Price := v_Vat_Incl_Price;
:Invi_Vat_Stax_Id := v_Vat_Stax_Id;
:Invi_Ed := v_ED;
:Invi_Ed_Incl_Price := v_Ed_Incl_Price;
:Invi_Ed_Stax_Id := v_Ed_Stax_Id;
:Invi_Base_Rate := v_Base_Rate;
:Invi_Vat_Amt := v_Vat_Amt;
:Invi_Ed_Amt := v_Ed_Amt;
:Invi_Inc_Foc_Vat := v_Inc_Vat;
:Invi_Inc_Foc_Ed := v_Inc_Ed;
If Nvl(:InvI_Prom_Item_Id, 0) > 0 Then -- Added by Mojish 10/06/14
Select PromH_No, PromH_Id Into :PromH_No, :PromH_Id From T_Prom_Head, T_Prom_Item
Where PromI_PromH_Id = PromH_Id And PromH_Comp_Code = :Global.Company
And PromI_Id = :InvI_Prom_Item_Id;
End If;
Promo_Foc_Loading; --Added By Mojish 30/04/14
v_ctr := v_ctr+1;
Next_Record;
End Loop;
If Nvl(v_Ctr,0) >0 Then
:Invh_Load_Status :='Y' ;
End If;
Close CurSo;
First_Record;
/*
If v_Ref_Item_Id Is Not Null Then --- added by prem (06/11/2013) ---
Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
end if; --- added by prem (06/11/2013) ---
*/
END;on unit LOAD_SO(REF_ID): go to T_INV_ITEM last record of T_INV_ITEM last record when SYSTEM.LAST_RECORD = 'TRUE' next record when SYSTEM.LAST_RECORD = 'TRUE' first record when not (SYSTEM.LAST_RECORD = 'TRUE') first record # 2 statements did not convert.# line 133 # Loop # Fetch CurSo INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, :InvH_Remarks, # v_Plu_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose,v_Foc_Qty,v_Foc_ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id, # v_ref_Item_Code, v_Item_alt_Name, # v_Loc_Fm,v_Batch,v_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl,V_Tndr_Doc_Item_Id, # V_Vat,v_Vat_Incl_Price,v_Vat_Stax_Id,v_ED,v_ED_Incl_Price, # v_Ed_Stax_Id,v_Base_Rate,v_Vat_Amt,v_Ed_Amt,v_Inc_Ed,v_Inc_Vat,v_Item_Desc,v_Tcs; # EXIT WHEN CurSo%NotFound; # if :Frm_Validate_Stock = 'Y' then # v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null); # # If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then # If v_Qty_BU <= 0 Then # v_Qty := 0; # v_Loose := 0; # ElsIf v_Qty_BU < 1 Then # v_Qty := v_Qty_BU; # v_Loose := 0; # Else # v_Qty := Floor(v_Qty_BU/v_Max_Loose); # v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0); # End If; # End If; # end if; # :Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); # :InvH_Disc_Perc := v_HDisc_Perc; # :InvH_Disc_Amt := v_HDisc_Amt; # :InvH_Tcs := v_Tcs; # :InvI_So_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_foc_Qty := v_Foc_Qty; # :InvI_foc_Loose := v_Foc_ls; # :InvI_Rate := v_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :invi_ref_item_code := v_ref_Item_Code; # :invi_item_alt_name := v_Item_alt_Name; # :Ref_Doc_Item := 'Loaded'; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := Fn_Get_Zone_Date(:Global.Company); # :InvI_Loc_Fm := v_Loc_Fm; # :InvI_Batch := v_Batch; # :InvI_Exp_Dt := v_Exp_Dt; # :Invi_Tndr_Doc_Item_Id :=V_Tndr_Doc_Item_Id; # :Invi_Item_Desc := v_Item_Desc; # :Invi_Vat := v_Vat; # :Invi_Vat_Incl_Price := v_Vat_Incl_Price; # :Invi_Vat_Stax_Id := v_Vat_Stax_Id; # :Invi_Ed := v_ED; # :Invi_Ed_Incl_Price := v_Ed_Incl_Price; # :Invi_Ed_Stax_Id := v_Ed_Stax_Id; # :Invi_Base_Rate := v_Base_Rate; # :Invi_Vat_Amt := v_Vat_Amt; # :Invi_Ed_Amt := v_Ed_Amt; # :Invi_Inc_Foc_Vat := v_Inc_Vat; # :Invi_Inc_Foc_Ed := v_Inc_Ed; # # # If Nvl(:InvI_Prom_Item_Id, 0) > 0 Then # Select PromH_No, PromH_Id Into :PromH_No, :PromH_Id From T_Prom_Head, T_Prom_Item # Where PromI_PromH_Id = PromH_Id And PromH_Comp_Code = :Global.Company # And PromI_Id = :InvI_Prom_Item_Id; # End If; # Promo_Foc_Loading; # # v_ctr := v_ctr+1; # Next_Record; # End Loop; # reason: its collection binds REF_ID, a parameter this program takes, and a parameter passed in PL/SQL is not a bind the page can supply# line 211 # If Nvl(v_Ctr,0) >0 Then # :Invh_Load_Status :='Y'; # End If; # reason: the guard reads the local V_CTR, which a loop body above it counts with: `V_CTR := V_CTR+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it
6 clauses converted, 2 statements refused
Declare
CURSOR Curstk Is Select Stk_Item_Code,Stk_Unconf_Qty From M_Stock
Where Stk_Comp_Code =:Global.Company
and Stk_Loc_Code =:Invh_Loc_Code
and Stk_unconf_qty > 0;
CURSOR CurSl(ItemCode in Varchar2) Is Select * FROM M_Item_Serial
WHERE ItemSl_Comp_Code = :Global.Company
AND ItemSl_Loc_Code = :InvH_Loc_Code
AND ItemSl_Item_Code = ItemCode
AND ItemSl_Ref BETWEEN 000000001 AND 99999999999999999
AND ItemSl_Issued = 'N'
Order by Itemsl_ref;
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(60);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_sl_Status Varchar2(10);
v_sl_count Number(10);
v_sl_fm Number(20);
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_sl Number(20);
Begin
Select Count(*) into v_Count From M_Location Where Loc_Comp_Code =:Global.Company and Loc_Code =:InvH_Loc_Code and Loc_Type ='VAN';
If Nvl(v_Count,0) = 0 Then
Show_Message('Inv_Alert', 'Stock can be loaded from Van location only!');
Raise Form_Trigger_Failure;
End If;
v_Count := 0;
Go_Block('T_Inv_Item');
Clear_Block;
First_Record;
Open CurStk;
Loop
Fetch CurStk INTO v_Item_Code,v_Qty;
EXIT WHEN CurStk%NotFound;
Select Item_Name,Item_Uom_Code,Uom_max_Loose,Item_Serial_Status INTO v_Item_Name,v_Uom_Code,v_max_Loose,v_Sl_status
From M_item,M_uom
Where Item_Code =v_item_Code
and Uom_Code =item_uom_code;
:En_Sl := v_sl_Status;
Select PLI_Rate,PLI_Disc_Perc,Pli_Disc_Amt INTO v_Rate,v_Disc_Perc,v_Disc_Amt
From M_PL_Item
Where PLI_Comp_Code =:Global.Company
and PLI_plh_Code =:Invh_PlH_Code
and PLI_Item_Code =v_item_Code
and PLI_Uom_Code =v_Uom_Code;
If v_sl_Status IN ('M','Manual') Then
SELECT Count(*) INTO v_Count
FROM M_Item_Serial
WHERE ItemSl_Comp_Code = :Global.Company
AND ItemSl_Loc_Code = :InvH_Loc_Code
AND ItemSl_Item_Code = v_Item_Code
AND ItemSl_Ref BETWEEN 1 AND 99999999999999999
AND ItemSl_Issued = 'N';
If v_Count <> v_Qty Then
Show_Message('Inv_Alert', 'Serial number count and Qty not tally!');
Raise Form_Trigger_Failure;
End If;
:Ref_Doc_Item:='Loaded';
:InvI_Item_Code := v_Item_Code;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
If v_Max_Loose <> 1 Then
:Invi_Qty :=Floor(v_Qty/v_Max_Loose);
:Invi_Loose :=v_Qty - (Floor(v_Qty/v_Max_Loose) * v_Max_Loose);
Else
:InvI_Qty := v_Qty;
:InvI_Loose := 0;
End If;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=0;
:Invi_Foc_Loose := 0;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False);
Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False);
Set_Item_Property('PB_Sl', Enabled, Property_True);
Set_Item_Property('PB_Sl', Navigable, Property_True);
Go_Block('T_Inv_Serial');
Last_Record;
For Cur in CurSl(v_item_Code) Loop
If Cursl%NotFound Then
Exit;
End If;
:InvSl_Ref :=Cur.ItemSl_Ref;
Next_Record;
End Loop;
Post;
Go_Block('T_inv_Item');
Last_Record;
Next_Record;
ElsIf v_sl_Status IN ('A','Auto') Then
v_sl_fm:=null;
v_sl_count:=0;
v_sl := Null;
SELECT Count(*) INTO v_Count
FROM M_Item_Serial
WHERE ItemSl_Comp_Code = :Global.Company
AND ItemSl_Loc_Code = :InvH_Loc_Code
AND ItemSl_Item_Code = v_Item_Code
AND ItemSl_Ref BETWEEN 1 AND 99999999999999999
AND ItemSl_Issued = 'N';
If v_Count <> v_Qty Then
Show_Message('Inv_Alert', 'Serial number count and Qty not tally!');
Raise Form_Trigger_Failure;
End If;
For Cur in CurSl(v_item_Code) Loop
If Cursl%NotFound Then
Exit;
End If;
If v_sl_fm is Null Then
v_sl_fm :=Cur.Itemsl_ref;
End If;
If v_Sl is Null Then
v_sl := Cur.Itemsl_ref;
Else
v_sl := v_sl + 1;
End If;
If v_sl <> Cur.Itemsl_ref Then
:Ref_Doc_Item:='Loaded';
:InvI_Item_Code := v_Item_Code;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
If v_Max_Loose <> 1 Then
:Invi_Qty :=Floor(v_sl_Count/v_Max_Loose);
:Invi_Loose :=v_Sl_Count - (Floor(v_sl_Count/v_Max_Loose) * v_Max_Loose);
Else
:InvI_Qty := v_Sl_Count;
:InvI_Loose := 0;
End If;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=0;
:Invi_Foc_Loose := 0;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
--Show_Message('Inv_Alert',v_sl_count);
--:InvI_Item_Sl_Status :=v_sl_Status;
:InvI_Item_Sl_Ref :=v_sl_fm;
v_sl_count:=1;
v_sl_fm := Cur.Itemsl_ref;
v_sl := Cur.Itemsl_ref;
Next_Record;
Else
v_sl_count := v_sl_count+1;
End If;
End Loop;
:Ref_Doc_Item:='Loaded';
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
If v_Max_Loose <> 1 Then
:Invi_Qty :=Floor(v_sl_Count/v_Max_Loose);
:Invi_Loose :=v_Sl_Count - (Floor(v_sl_Count/v_Max_Loose) * v_Max_Loose);
Else
:InvI_Qty := v_Sl_Count;
:InvI_Loose := 0;
End If;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=0;
:Invi_Foc_Loose := 0;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
--:InvI_Item_Sl_Status :=v_sl_Status;
:InvI_Item_Sl_Ref :=v_sl_fm;
Next_Record;
Else
:Ref_Doc_Item:='Loaded';
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
If v_Max_Loose <> 1 Then
:Invi_Qty :=Floor(v_Qty/v_Max_Loose);
:Invi_Loose :=v_Qty - (Floor(v_Qty/v_Max_Loose) * v_Max_Loose);
Else
:InvI_Qty := v_Qty;
:InvI_Loose := 0;
End If;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=0;
:Invi_Foc_Loose := 0;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
Next_Record;
End If;
End Loop;
Close Curstk;
Set_Item_Property('PB_LOAD_LOCN_STK',Enabled,Property_False);
End;
on press of PB_LOAD_LOCN_STK: from load-fmb-invoice-t-inv-head-pb-load-locn-stk-press-0(INVH_LOC_CODE) exists else "Stock can be loaded from Van location only!" go to T_INV_ITEM clear T_INV_ITEM first record of T_INV_HEAD state disable PB_LOAD_LOCN_STK # 1 statement did not convert.# line 63 # Loop # Fetch CurStk INTO v_Item_Code,v_Qty; # EXIT WHEN CurStk%NotFound; # Select Item_Name,Item_Uom_Code,Uom_max_Loose,Item_Serial_Status INTO v_Item_Name,v_Uom_Code,v_max_Loose,v_Sl_status # From M_item,M_uom # Where Item_Code =v_item_Code # and Uom_Code =item_uom_code; # :En_Sl := v_sl_Status; # Select PLI_Rate,PLI_Disc_Perc,Pli_Disc_Amt INTO v_Rate,v_Disc_Perc,v_Disc_Amt # From M_PL_Item # Where PLI_Comp_Code =:Global.Company # and PLI_plh_Code =:Invh_PlH_Code # and PLI_Item_Code =v_item_Code # and PLI_Uom_Code =v_Uom_Code; # If v_sl_Status IN ('M','Manual') Then # SELECT Count(*) INTO v_Count # FROM M_Item_Serial # WHERE ItemSl_Comp_Code = :Global.Company # AND ItemSl_Loc_Code = :InvH_Loc_Code # AND ItemSl_Item_Code = v_Item_Code # AND ItemSl_Ref BETWEEN 1 AND 99999999999999999 # AND ItemSl_Issued = 'N'; # If v_Count <> v_Qty Then # Show_Message('Inv_Alert', 'Serial number count and Qty not tally!'); # Raise Form_Trigger_Failure; # End If; # :Ref_Doc_Item:='Loaded'; # :InvI_Item_Code := v_Item_Code; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # If v_Max_Loose <> 1 Then # :Invi_Qty :=Floor(v_Qty/v_Max_Loose); # :Invi_Loose :=v_Qty - (Floor(v_Qty/v_Max_Loose) * v_Max_Loose); # Else # :InvI_Qty := v_Qty; # :InvI_Loose := 0; # End If; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=0; # :Invi_Foc_Loose := 0; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Insert_Allowed, Property_False); # Set_Item_Instance_Property('INVI_Item_Sl_Ref', Current_Record, Update_Allowed, Property_False); # Set_Item_Property('PB_Sl', Enabled, Property_True); # Set_Item_Property('PB_Sl', Navigable, Property_True); # # Go_Block('T_Inv_Serial'); # Last_Record; # For Cur in CurSl(v_item_Code) Loop # If Cursl%NotFound Then # Exit; # End If; # :InvSl_Ref :=Cur.ItemSl_Ref; # Next_Record; # End Loop; # Post; # Go_Block('T_inv_Item'); # Last_Record; # Next_Record; # ElsIf v_sl_Status IN ('A','Auto') Then # v_sl_fm:=null; # v_sl_count:=0; # v_sl := Null; # # SELECT Count(*) INTO v_Count # FROM M_Item_Serial # WHERE ItemSl_Comp_Code = :Global.Company # AND ItemSl_Loc_Code = :InvH_Loc_Code # AND ItemSl_Item_Code = v_Item_Code # AND ItemSl_Ref BETWEEN 1 AND 99999999999999999 # AND ItemSl_Issued = 'N'; # If v_Count <> v_Qty Then # Show_Message('Inv_Alert', 'Serial number count and Qty not tally!'); # Raise Form_Trigger_Failure; # End If; # # For Cur in CurSl(v_item_Code) Loop # If Cursl%NotFound Then # Exit; # End If; # If v_sl_fm is Null Then # v_sl_fm :=Cur.Itemsl_ref; # End If; # # If v_Sl is Null Then # v_sl := Cur.Itemsl_ref; # Else # v_sl := v_sl + 1; # End If; # # If v_sl <> Cur.Itemsl_ref Then # :Ref_Doc_Item:='Loaded'; # :InvI_Item_Code := v_Item_Code; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # If v_Max_Loose <> 1 Then # :Invi_Qty :=Floor(v_sl_Count/v_Max_Loose); # :Invi_Loose :=v_Sl_Count - (Floor(v_sl_Count/v_Max_Loose) * v_Max_Loose); # Else # :InvI_Qty := v_Sl_Count; # :InvI_Loose := 0; # End If; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=0; # :Invi_Foc_Loose := 0; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # # # :InvI_Item_Sl_Ref :=v_sl_fm; # v_sl_count:=1; # v_sl_fm := Cur.Itemsl_ref; # v_sl := Cur.Itemsl_ref; # Next_Record; # Else # v_sl_count := v_sl_count+1; # End If; # End Loop; # :Ref_Doc_Item:='Loaded'; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # If v_Max_Loose <> 1 Then # :Invi_Qty :=Floor(v_sl_Count/v_Max_Loose); # :Invi_Loose :=v_Sl_Count - (Floor(v_sl_Count/v_Max_Loose) * v_Max_Loose); # Else # :InvI_Qty := v_Sl_Count; # :InvI_Loose := 0; # End If; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=0; # :Invi_Foc_Loose := 0; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # # :InvI_Item_Sl_Ref :=v_sl_fm; # Next_Record; # Else # :Ref_Doc_Item:='Loaded'; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # If v_Max_Loose <> 1 Then # :Invi_Qty :=Floor(v_Qty/v_Max_Loose); # :Invi_Loose :=v_Qty - (Floor(v_Qty/v_Max_Loose) * v_Max_Loose); # Else # :InvI_Qty := v_Qty; # :InvI_Loose := 0; # End If; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=0; # :Invi_Foc_Loose := 0; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # Next_Record; # End If; # End Loop; # reason: it holds a loop over CURSL, a cursor this loop's own row supplies arguments to, so the inner collection is a source read once per row and no collection operation has a slot for one
5 clauses converted, 1 statement refused
Set_item_instance_property('INVI_ITEM_CODE', CURRENT_RECORD, REQUIRED,PROPERTY_TRUE);
:Invi_Item_Code := Fn_Get_Item_Code(:Invi_Item_Code, :Frm_Search_Order, Null, Null, :Global.Company, :Global.User); --Added by John-- 14/07/2019
If :Invi_Item_Code is not null then
Proc_Valid_Plu_Item('ITEM');
Validate_Cust_Item;
End if;
/*
DECLARE
V_Count NUMBER;
V_Uom_Code VARCHAR2 (10);
V_Pos NUMBER (2);
V_Status VARCHAR2 (10);
V_Def_Qty NUMBER (12,3);
V_Item_Code VARCHAR2 (20);
V_Sl NUMBER;
V_Ref VARCHAR2 (4);
V_Rate NUMBER;
V_Rate_Ref NUMBER;
V_Cat_Code VARCHAR2 (10);
V_Count1 NUMBER;
V_Vat_Incl_Price VARCHAR2 (10);
v_Gst_Incl_Price VARCHAR2 (10);
v_Cst_Incl_Price VARCHAR2 (10);
v_Serv_Tax_IncL_Price VARCHAR2 (10);
BEGIN
set_item_instance_property('INVI_ITEM_CODE', CURRENT_RECORD, REQUIRED,PROPERTY_TRUE);
If :Ref_Doc_Item = 'Loaded' Then
:Invi_Item_Code := :Old_Item_Code; --ModIfied By Mojish 12/02/14
:Invi_Uom_Code := :Old_Uom_Code; --ModIfied By Mojish 12/02/14
Else
If :Invi_Item_Code IS NOT NULL AND :Invi_Plu_Code IS Null Then
---Added by Mojish 12/02/14
If :Sl_Manual_Flag = 1 AND :Invi_Item_Code <> :Old_Item_Code Then
Show_Message ('Inv_Alert', 'Serial Number exist, Can''t Change Item Code!');
Validate_Sl_No;
Else
:Invi_Qty := 0;
:Invi_Loose := 0;
:Invi_Foc_Qty := 0;
:Invi_Foc_Loose := 0;
:Invi_Rate := 0;
:Invi_Disc_Perc := Null;
:Invi_Disc_Amt := Null;
End If;
---------
V_Pos := INSTR (:Invi_Item_Code, '+');
If V_Pos > 0 Then
:Invi_Qty := SUBSTR (:Invi_Item_Code, 1, V_Pos - 1);
:Invi_Item_Code := SUBSTR (:Invi_Item_Code, V_Pos + 1);
ELSIf NVL (:Invi_Qty, 0) = 0 And :Frm_Auto_Qty = 'Y' Then
:Invi_Qty := 1;
End If; */
/* -- Already commented --
Proc_Get_Item_Tax (:Invi_Item_Code,:Global.Company,:InvH_Loc_Code,:Invi_Vat_Perc,:InvI_Gst,:InvI_Cst,:Invi_Serv_Tax,V_Vat_Incl_Price,
v_Gst_Incl_Price,v_Cst_Incl_Price,v_Serv_Tax_IncL_Price);
V_Vat_Incl_Price := :InvI_Vat_Incl_Price;
v_Gst_Incl_Price := :Invi_Gst_Incl_Price;
v_Cst_Incl_Price := :Invi_Cst_Incl_Price;
v_Serv_Tax_IncL_Price := :Invi_Serv_Tax_IncL_Price;
*/
/*
Proc_Get_sale_Tax(:Invi_Item_Code,:Global.Company,:InvH_Divn_Code,'VAT',:Invh_Cust_Code,:Invh_Txn_Code,:Invi_Vat,:Invi_Vat_Amt,:InvI_Vat_Incl_Price,:InvI_Vat_Stax_Id,
:Invi_Base_Rate);
Proc_Get_sale_Tax (:Invi_Item_Code,:Global.Company,:InvH_Divn_Code,'ED',:Invh_Cust_Code,:Invh_Txn_Code,:Invi_ED,:Invi_ED_Amt,:InvI_ED_Incl_Price,:InvI_ED_Stax_Id,
:Invi_Base_Rate);
:Invi_Item_Code :=Fn_Get_Item_Code (:Invi_Item_Code,:Frm_Search_Order,'Y',:Invh_Cust_Code,:Global.Company,:Global.USER);
--Manually search for items until Fn_Get_Item_Code is fixed to return barcode in the next release
V_Item_Code := :Invi_Item_Code;
----Added By Faisal on 07/09/2014
If :Invi_Item_Code IS NOT Null Then
Select COUNT (*)INTO V_Count
FROM M_Item_Division
Where Itemd_Comp_Code = :Global.Company
And Itemd_Divn_Code = :Invh_Divn_Code
And Itemd_Item_Code = :Invi_Item_Code;
If V_Count = 0 Then
Show_Message ('Inv_Alert','Item Division Combination Not Found!');
RAISE Form_Trigger_Failure;
End If;
End If;
If :Invi_Plu_Code IS Null Then --Adde by Mojish 06/04/14 for tender
Select Item_Name,Item_Uom_Code,Uom_Max_Loose,Item_Cat_Code,Item_Status,Item_Serial_Status,Item_Type,Item_Def_Qty,
Stk_Unconf_Qty+ DECODE (NVL (:Frm_Loc_En_Uncosted_Stk, 'N'),'N', 0, NVL (Stk_Uncosted_Qty, 0)), Item_Exp_Type,Item_Group,Item_Mode
Into :Item_Name,:Invi_Uom_Code,:Max_Loose,V_Cat_Code,V_Status,:En_Sl,:Item_Type,V_Def_Qty,:Stock_Bu,:En_Batch,:Item_Group,:Item_Mode
From M_Stock, M_Uom, M_Item
Where Uom_Code = Item_Uom_Code
And Stk_Comp_Code(+) = :Global.Company
And Stk_Loc_Code(+) = :Invh_Loc_Code
And Stk_Item_Code(+) = Item_Code
And Item_Code = :Invi_Item_Code;
Else
Select Item_Cat_Code,Item_Status,Item_Serial_Status,
Item_Type,
Item_Def_Qty,
Stk_Unconf_Qty
+ DECODE (NVL (:Frm_Loc_En_Uncosted_Stk, 'N'),'N', 0,NVL (Stk_Uncosted_Qty, 0)),
Item_Exp_Type
Into V_Cat_Code,
V_Status,
:En_Sl,
:Item_Type,
V_Def_Qty,
:Stock_Bu,
:En_Batch
From M_Stock, M_Uom, M_Item
Where Uom_Code = Item_Uom_Code
And Stk_Comp_Code(+) = :Global.Company
And Stk_Loc_Code(+) = :Invh_Loc_Code
And Stk_Item_Code(+) = Item_Code
And Item_Code = :Invi_Item_Code;
End If;
Select COUNT (*) Into V_Count
From M_Cat_User_Group, M_User_Group_Belong
Where Catuser_User_Group_Code = Ugb_User_Group_Code
And Ugb_User_Code = :Global.USER
And Catuser_Cat_Code = V_Cat_Code;
If NVL (V_Count, 0) = 0 Then
Show_Message ('Inv_Alert',
'User Category combination not defined!');
RAISE Form_Trigger_Failure;
End If;
If :Invi_Item_Code IS Null Then
Show_Message ('Inv_Alert', 'Item not Found!');
RAISE Form_Trigger_Failure;
End If;
If V_Status = 'Locked' Then
Show_Message ('Inv_Alert', 'Item Locked!');
RAISE Form_Trigger_Failure;
End If;
If NVL (V_Status, 'New') NOT IN ('Open', 'Re-Act') Then
Show_Message ('Inv_ALERT', 'Item Status (' || NVL (V_Status, 'New') || ') is not Open');
End If;
If :Item_Type NOT IN ('SRV', 'STK') Then
Show_Message ('Inv_ALERT','Item not found/not a stock or service item!');
RAISE Form_Trigger_Failure;
End If;
If :Item_Mode = 'P' Then
Show_Message ('Inv_Alert','Purchase code, not enabled for selling!');
RAISE Form_Trigger_Failure;
End If;
If NVL (:Item_Group, 'N') = 'C' Then ---Added By Faisal On 22/03/2016
If NVL (:FRM_En_Consumable, 'N') = 'N' Then
Show_Message ('Inv_ALERT', 'Consumable items not enabled for this transaction!');
SET_ITEM_PROPERTY (:Global.Cur_Item, Current_Record_Attribute,'Alert_VA');
RAISE Form_Trigger_Failure;
ELSIf NVL (:Item_Group, 'N') <> 'C'
And NVL (:FRM_En_Consumable, 'N') = 'N' Then
Show_Message ('Inv_ALERT','Non Consumable items not enabled for this transaction!');
SET_ITEM_PROPERTY (:Global.Cur_Item,Current_Record_Attribute, 'Alert_VA');
RAISE Form_Trigger_Failure;
End If;
End If;
If V_Def_Qty IS NOT Null And NVL (:Invi_Qty, 0) = 0 Then
:Invi_Qty := V_Def_Qty;
End If;
If NVL (:Frm_Valid_Whouse, 'N') = 'Y' Then
Select COUNT (Wstk_Item_Code) Into V_Count1
From M_Wstock
Where Wstk_Comp_Code = :Global.Company
And Wstk_Item_Code = :Invi_Item_Code
And Wstk_Qty > 0
And (Wstk_Exp_Dt IS Null
OR Wstk_Exp_Dt >=
TO_DATE (:Frm_Time_Zone, 'DD/MM/YYYY'));
If NVL (V_Count1, 0) = 1 Then
Select Wstk_Loc_Code,
Wstk_Batch,
Wstk_Exp_Dt,
Wstk_Qty
Into :Invi_Loc_Fm,
:Invi_Batch,
:Invi_Exp_Dt,
:Invi_Wstock
From M_Wstock
Where Wstk_Comp_Code = :Global.Company
And Wstk_Item_Code = :Invi_Item_Code
And Wstk_Qty > 0
And (Wstk_Exp_Dt IS Null
OR Wstk_Exp_Dt >=
TO_DATE (:Frm_Time_Zone, 'DD/MM/YYYY'));
End If;
End If;
Select Stkd_Unconf_Qty Into :Div_Stock_Bu From M_Stock_Division
Where Stkd_Comp_Code = :Global.Company And Stkd_Divn_Code= :InvH_Divn_Code
And Stkd_Item_code = :InvI_Item_Code;
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) And
(NVL (:Invi_Item_Code, ' ') NOT LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Get_Prate;
ELSIf (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then
V_Ref := SUBSTR (:Invi_Plu_Code, 3, 4);
V_Rate := SUBSTR (:Invi_Plu_Code, 7, 6) / 100;
-----For Weighing Item consider Selling Rate added on 08/07/2017
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%' And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
End If;
If NVL (:Frm_Valid_Wt, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then --Added By Faisal on 09/Nov/2014
Proc_Get_Wt (:Invi_Plu_Code,:Invi_Rate,:Max_Loose,:Invi_Qty,:Invi_Loose); --Qty And loose From Plu added by Mojish on 10/11/14
End If;
Else
Select_Promotion; --Added by Mojish 10/06/14 For Selecting promotion
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
:Old_Uom_Code := :Invi_Uom_Code;
Get_Promotion_Foc ('VALIDATE'); --Added By Mojish 16/04/14
If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then
Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc);
End If;
If :Inv_Additional_Disc > 0 Then
:Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2));
End If;
End If;
Validate_SO; --Added By Mojish 21/04/16
--:Invi_Wac_Pcs := Fn_Get_Cost (:Invi_Item_Code, :Global.Company,:Invh_Divn_Code,:Invh_Dt,'WAC', Nvl(:Div_Stock_Bu,1)); Disabled On 23/11/2017 handled in trigger
-- :Invi_FIfo_Pcs := Fn_Get_Cost (:Invi_Item_Code, :Global.Company,:Invh_Divn_Code,:Invh_Dt,'FIfO', Nvl(:Div_Stock_Bu,1)); Disabled On 23/11/2017 handled in trigger
Enable_Sl_Batch (:En_Sl, NVL (:En_Batch, 'N'), :Fix_Srate);
Get_Stock ('STOCK_BU', 'STOCK_DTL',:Global.Company, :Invh_Loc_Code,:Invi_Item_Code,:Max_Loose,:Global.Stk_Chk_Type);
Enable_Pcs;
Tender_Validate_Item_Level; -- Added by mojish 05/04/14
Proc_show_margin;
End If;
End If;
END; */on change of INVI_ITEM_CODE: set INVI_ITEM_CODE to FN_GET_ITEM_CODE(INVI_ITEM_CODE, FRM_SEARCH_ORDER, null, null, GLOBAL.COMPANY, GLOBAL.USER) call PROC_VALID_PLU_ITEM('ITEM') when is_filled(INVI_ITEM_CODE) call VALIDATE_CUST_ITEM() when is_filled(INVI_ITEM_CODE) # 1 statement did not convert.# line 1 # Set_item_instance_property('INVI_ITEM_CODE', CURRENT_RECORD, REQUIRED,PROPERTY_TRUE); # reason: this sets a property of one record's cell, and the screen holds field state per field and not per row, so a verb here would lock or mark the column in every row of the grid: a per-record field state is grid.md's and is not built
3 clauses converted, 1 statement refused
Procedure Validate_Invoice Is
V_Count Number;
V_Inv_Count Number;
V_Alert Number;
V_Status Char;
V_Rem Varchar2(1000);
V_Date Date ;
V_Divn_Cr_Days Number;
V_Nett Number(12,2);
V_Pay_Mode Char;
V_Comp_Temp_Cr_Limit Number(10,2);
V_Comp_Temp_Cr_Dt Date;
V_Comp_Temp_Cr_Days Number(3);
V_Divn_Temp_Cr_Limit Number(10,2);
V_Divn_Temp_Cr_Dt Date;
V_Divn_Temp_Cr_Days Number(3);
V_Cash_Limit Number(14,2);
V_Divn_Inv_Count Number;
V_Divn_Inv_Limit Number(12,2);
V_Divn_Inv_Per_Day Number(3);
V_Divn_Inv_Settle_Limit_Days Number;
V_Msg Varchar2(1000);
V_Cust_Code Varchar2(10);
--<< ## Proc_InvCredit_limit_Val - Procedure Added on 13/Jun/2019,Shebin,
-- v_Ref_Div Sys_refcursor;
-- v_Ref_Comp Sys_refcursor;
v_errMsg Varchar2(100) := Null;
/* Type v_Rec_CustDiv Is Record (
Custd_Cr_Limit NUMBER(14,3),
Custd_Cr_Days NUMBER(3,0),
Custd_Cr_Warn_Limit NUMBER(14,3),
Custd_Pay_Mode CHAR(1),
Custd_Temp_Cr_Limit NUMBER(14,3),
Custd_Temp_Dt DATE,
Custd_Temp_Cr_Days NUMBER(3,0));
v_Rec v_Rec_CustDiv; */
v_Rec Pkg_Invoice.CustDiv_table;
/* Type v_Rec_CustComp Is Record(
Custcomp_Cr_Limit NUMBER(14,3),
Custcomp_Cr_Days NUMBER(3,0),
Custcomp_Cr_Warn_Limit NUMBER(14,3),
Custcomp_Pay_Mode CHAR(1),
Custcomp_Inv_Limit NUMBER(14,3) ,
Custcomp_Inv_Per_Day NUMBER(2,0),
Custcomp_Inv_Settle_Limit_Days NUMBER(2,0),
Custcomp_Temp_Cr_Limit NUMBER(14,3),
Custcomp_Temp_Cr_Days NUMBER(3,0),
Custcomp_Temp_Cr_Dt DATE);
v_RecComp v_Rec_CustComp; */ -->>
v_RecComp Pkg_Invoice.CustComp_table;
V_Sman_Cnt Number;
Begin
--Validate Customer Lock
/*Check if the validate invoice not fired in query mode*/
If :System.Record_Status <> 'QUERY' Then
If Nvl(:Cust_Status, ' ') = 'L' Then
Show_Message('Inv_Alert', 'Customer Locked! [' || Nvl(:Cust_Rem, 'No Remarks!') || ']');
Raise Form_Trigger_Failure;
End If;
Select Cust_Parent_Code Into V_Cust_Code From M_Customer Where Cust_Code =:Invh_Cust_Code;
If V_Cust_Code Is Null Then
V_Cust_Code :=:Invh_Cust_Code;
End If;
If :Frm_Loc_Sman is Not Null Then
:Invh_Sman_Code := :Frm_Loc_Sman;
End If;
--<<Task #49191, Added on 30/6/2019, Shebin
If :Invh_Sman_Code is Not Null Then
Select Count(*) Into V_Sman_Cnt
From M_Customer_Salesman
Where Custs_Comp_Code=:Global.Company
And Custs_Divn_Code =:Invh_Divn_Code
And Custs_Cust_Code =:Invh_Cust_Code
And Custs_Sman_Code =:Invh_Sman_Code;
If V_Sman_Cnt = 0 Then
Show_Message('Inv_Alert', 'Salesman is not defined for this location/Customer !');
:Invh_Sman_Code := Null;
:Sman_Name := Null;
Raise Form_Trigger_Failure;
End If;
End If;-->>
If :Frm_Loc_Sman Is Not Null Then
Select Sman_Name, Sman_Status, Sman_Remarks
Into :Sman_Name, V_Status, V_Rem
From M_Salesman
Where Sman_Code = :Invh_Sman_Code;
End If;
If Nvl(V_Status, ' ') = 'L' Then
Show_Message('Inv_Alert', 'Salesman Locked! [' || Nvl(V_Rem, 'No Remarks!') || ']');
Raise Form_Trigger_Failure;
End If;
:Frm_Valid_Cr_Limit := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_VALIDATE_CR_LIMIT');
:Frm_Valid_Cr_Days := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_VALIDATE_CR_DAYS');
:Frm_Valid_Order := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_VALIDATE_ORDER');
:Frm_Valid_Emp_Code := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_VALIDATE_EMP_CODE');
:Frm_Show_Rate := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_SHOW_RATE');
:Frm_En_Add_Disc := Fn_Get_Cust_Param(V_Cust_Code,:Global.Company,'CUST_EN_ADD_DISC');
If Nvl(:Frm_Show_Rate,'Y') = 'N' Then
Set_Item_Property('INVI_RATE', ECHO, PROPERTY_FALSE);
Set_Item_Property('INVI_DISC_PERC', ECHO, PROPERTY_FALSE);
Set_Item_Property('INVI_DISC_AMT', ECHO, PROPERTY_FALSE);
Set_Item_Property('AMOUNT', ECHO, PROPERTY_FALSE);
Set_Item_Property('INVH_DISC_PERC', ECHO, PROPERTY_FALSE);
Set_Item_Property('INVH_DISC_AMT', ECHO, PROPERTY_FALSE);
Else
SET_ITEM_PROPERTY('INVI_RATE', ECHO, PROPERTY_TRUE);
Set_Item_Property('INVI_RATE', ECHO, PROPERTY_TRUE);
Set_Item_Property('INVI_DISC_PERC', ECHO, PROPERTY_TRUE);
Set_Item_Property('INVI_DISC_AMT', ECHO, PROPERTY_TRUE);
Set_Item_Property('AMOUNT', ECHO, PROPERTY_TRUE);
Set_Item_Property('INVH_DISC_PERC', ECHO, PROPERTY_TRUE);
Set_Item_Property('INVH_DISC_AMT', ECHO, PROPERTY_TRUE);
End If;
If Nvl(:Frm_Valid_Order,'N') = 'Y' Then
Set_Item_Property('INVH_ORD_REF', Required, Property_True);
Set_Item_Property('INVH_ORD_DT', Required, Property_True);
Else
Set_Item_Property('INVH_ORD_REF', Required, Property_False);
Set_Item_Property('INVH_ORD_DT', Required, Property_False);
End If;
If Nvl(:Frm_Valid_Emp_Code,'N') = 'Y' Then
Set_Item_Property('InvH_Emp_Code', Enabled, Property_True);
Set_Item_Property('InvH_Emp_Code', Required, Property_True);
Set_Item_Property('Lov_InvH_Emp_Code', Enabled, Property_True);
Else
Set_Item_Property('InvH_Emp_Code', Enabled, Property_False);
Set_Item_Property('InvH_Emp_Code', Required, Property_False);
Set_Item_Property('Lov_InvH_Emp_Code', Enabled, Property_False);
End If;
If Nvl(:Frm_En_Bank,'F') = 'N' Then
Set_Item_Property('InvH_Bank_Code', Enabled, Property_True);
Set_Item_Property('InvH_Bank_Code', Required, Property_True);
Set_Item_Property('Lov_Bank', Enabled, Property_True);
Else
Set_Item_Property('InvH_Bank_Code', Enabled, Property_False);
Set_Item_Property('InvH_Bank_Code', Required, Property_False);
Set_Item_Property('Lov_Bank', Enabled, Property_False);
End If;
/*
If Nvl(:Frm_En_Loc_To,'F') = 'N' Then
Set_Item_Property('InvH_Loc_Code_To', Enabled, Property_True);
Set_Item_Property('InvH_Loc_Code_To', Required, Property_True);
Set_Item_Property('Lov_Loc_Code_To', Enabled, Property_True);
Else
Set_Item_Property('InvH_Loc_Code_To', Enabled, Property_False);
Set_Item_Property('InvH_Loc_Code_To', Required, Property_False);
Set_Item_Property('Lov_Loc_Code_To', Enabled, Property_False);
End If;
*/
--Validate Credit Limit(Divisin/Company)
If Nvl(:Frm_Valid_Cr_Limit,'Y') ='Y' And Nvl(:Frm_Invh_Btrn_Flag, 'D') <> 'B' Then
If Nvl(:Frm_Divn_Crlimit_Man, 'Y') ='Y' Then
Select Count(*) Into V_Count From M_Customer_Division Where Custd_Comp_Code =:Global.Company
And Custd_Divn_Code = :Invh_Divn_Code
And Custd_Cust_Code =V_Cust_Code
And Custd_Cr_Limit > 0; -- This was tried to include in db proc Pkg_Invoice.Proc_InvCredit_limit_Val, later brought back for the time being, since peculiar no data found issue db.
--<< ##Task -Invoice Standardization,Added on 13/06/2019,Shebin
If V_Count > 0 Then
Pkg_Invoice.Proc_InvCredit_limit_Val('D',:Global.Company,v_Cust_Code,:Invh_Divn_Code,:Invh_Dt,:Divn_Cr_Limit,:Divn_Cr_Days,v_errMsg,v_Rec,v_RecComp);
:Divn_Warn_Limit := v_Rec(1).Custd_Cr_Warn_Limit;
:Cust_Pay_Mode := v_Rec(1).Custd_Pay_Mode;
V_Divn_Temp_Cr_Limit := v_Rec(1).Custd_Temp_Cr_Limit;
V_Divn_Temp_Cr_Dt := v_Rec(1).Custd_Temp_Dt;
V_Divn_Temp_Cr_Days := v_Rec(1).Custd_Temp_Cr_Days; -->>
Else
Show_Message('Inv_Alert', 'Division Credit Limit not defined');
Raise Form_Trigger_Failure;
:Divn_Cr_Limit := Null;
:Divn_Cr_Days := Null;
:Divn_Warn_Limit :=Null;
:Invh_Cust_Code :=Null;
:Invh_Cust_Code :=Null;--Added on 13/06/2019,To handle repeated msgs, Shebin
:Invh_Cust_Name :=Null;
End If;
/* If V_Count > 0 Then
Select Custd_Cr_Limit,Custd_Cr_Days,Custd_Cr_Warn_Limit,Custd_Pay_Mode,Custd_Temp_Cr_Limit,Custd_Temp_Dt,Custd_Temp_Cr_Days
Into :Divn_Cr_Limit,:Divn_Cr_Days,:Divn_Warn_Limit,:Cust_Pay_Mode,V_Divn_Temp_Cr_Limit,V_Divn_Temp_Cr_Dt,V_Divn_Temp_Cr_Days
From M_Customer_Division
Where Custd_Comp_Code =:Global.Company
And Custd_Divn_Code = :Invh_Divn_Code
And Custd_Cust_Code =V_Cust_Code;
--Temporary Limt exception
Select Count(*) Into V_Count From M_Cust_Tempcr_Limit_Exception
Where Custex_Comp_Code =:Global.Company
And Custex_Cust_Code =V_Cust_Code
And Custex_Exp_Dt >= :Invh_Dt;
If (V_Divn_Temp_Cr_Dt >= :Invh_Dt And V_Divn_Temp_Cr_Dt Is Not Null) Then
If Nvl(:Frm_Max_Temp_Limit,0) > 0 Then
If Nvl(V_Count,0) = 0 Then
If Nvl(V_Divn_Temp_Cr_Limit,0) > Nvl(:Divn_Cr_Limit, 0) + Nvl(:Divn_Cr_Limit * :Frm_Max_Temp_Limit/100, 0) Then
:Divn_Cr_Limit := Nvl(:Divn_Cr_Limit,0) + Nvl(:Divn_Cr_Limit * :Frm_Max_Temp_Limit/100, 0);
Else
:Divn_Cr_Limit:= V_Divn_Temp_Cr_Limit;
End If;
Else
:Divn_Cr_Limit:= V_Divn_Temp_Cr_Limit;
End If;
Else
:Divn_Cr_Limit:= V_Divn_Temp_Cr_Limit;
End If;
:Divn_Cr_Days := V_Divn_Temp_Cr_Days ;
End If;
Else
Show_Message('Inv_Alert', 'Division Credit Limit not defined');
Raise Form_Trigger_Failure;
:Divn_Cr_Limit := Null;
:Divn_Cr_Days := Null;
:Divn_Warn_Limit :=Null;
End If;
*/
End If;
--<< Task #49191, -Invoice Standardization,Added on 12/06/2019, Shebin
Pkg_Invoice.Proc_InvCredit_limit_Val('C',:Global.Company,v_Cust_Code,:Invh_Divn_Code,:Invh_Dt,:Comp_Cr_Limit,:Comp_Cr_Days,v_errMsg,v_Rec,v_RecComp);
-- Fetch v_Ref_Comp Into v_RecComp;
:Comp_Warn_Limit := v_RecComp(1).Custcomp_Cr_Warn_Limit;
v_Pay_Mode := v_RecComp(1).Custcomp_Pay_Mode;
:Inv_Limit := v_RecComp(1).Custcomp_Inv_Limit;
:Inv_Per_Day := v_RecComp(1).Custcomp_Inv_Per_Day;
:Inv_Settle_Limit_Days := v_RecComp(1).Custcomp_Inv_Settle_Limit_Days;
V_Comp_Temp_Cr_Limit := v_RecComp(1).Custcomp_Temp_Cr_Limit;
V_Comp_Temp_Cr_Days := v_RecComp(1).Custcomp_Temp_Cr_Days;
V_Comp_Temp_Cr_Dt := v_RecComp(1).Custcomp_Temp_Cr_Dt; -->>
/*
Select Custcomp_Cr_Limit,Custcomp_Cr_Days,Custcomp_Cr_Warn_Limit,Custcomp_Pay_Mode,Custcomp_Inv_Limit,Custcomp_Inv_Per_Day,
Custcomp_Inv_Settle_Limit_Days, Custcomp_Temp_Cr_Limit, Custcomp_Temp_Cr_Days, Custcomp_Temp_Cr_Dt
Into :Comp_Cr_Limit,:Comp_Cr_Days,:Comp_Warn_Limit,V_Pay_Mode,:Inv_Limit,:Inv_Per_Day,:Inv_Settle_Limit_Days,
V_Comp_Temp_Cr_Limit, V_Comp_Temp_Cr_Days, V_Comp_Temp_Cr_Dt
From M_Customer_Company
Where Custcomp_Comp_Code =:Global.Company
And Custcomp_Cust_Code =V_Cust_Code;
Select Count(*) Into V_Count From M_Cust_Tempcr_Limit_Exception
Where Custex_Comp_Code =:Global.Company
And Custex_Cust_Code =V_Cust_Code
And Custex_Exp_Dt >= :Invh_Dt;
If V_Comp_Temp_Cr_Dt Is Not Null And V_Comp_Temp_Cr_Dt >= :Invh_Dt Then
If Nvl(:Frm_Max_Temp_Limit, 0) > 0 Then
If Nvl(V_Count, 0) = 0 Then
If Nvl(V_Comp_Temp_Cr_Limit, 0) > Nvl(:Comp_Cr_Limit, 0) + Nvl(:Comp_Cr_Limit * :Frm_Max_Temp_Limit/100, 0) Then
:Comp_Cr_Limit := Nvl(:Comp_Cr_Limit, 0) + Nvl(:Comp_Cr_Limit * :Frm_Max_Temp_Limit/100, 0);
Else
:Comp_Cr_Limit:= Nvl(V_Comp_Temp_Cr_Limit, 0);
End If;
Else
:Comp_Cr_Limit:= Nvl(V_Comp_Temp_Cr_Limit, 0);
End If;
Else
:Comp_Cr_Limit:= Nvl(V_Comp_Temp_Cr_Limit, 0);
End If;
:Comp_Cr_Days := Nvl(V_Comp_Temp_Cr_Days, 0);
End If; */
--Show_Message('Inv_Alert', :Comp_Cr_LImit||'*'||:Global.Company||'*'||v_Cust_Code);
If :Cust_Pay_Mode Is Null Then
:Cust_Pay_Mode := V_Pay_Mode;
End If;
If :Invh_Pay_Mode='R' Then
:Invh_Due_Dt := :Invh_Dt + :Comp_Cr_Days;
Else
:Invh_Due_Dt := :Invh_Dt;
End If;
If :Frm_Def_Pay_Mode = 'R' And :Cust_Pay_Mode = 'C' Then
Show_Message('Inv_Alert', 'Cash only Customer not allowed!');
Raise Form_Trigger_Failure;
End If;
If :Frm_Def_Pay_Mode Is Null Then
If :Invh_Pay_Mode Is Null Then
:Invh_Pay_Mode := :Cust_Pay_Mode;
End If;
Set_Item_Property('InvH_Pay_Mode', Enabled, Property_True);
Else
Set_Item_Property('InvH_Pay_Mode', Enabled, Property_False);
End If;
If :Invh_Pay_Mode = 'R' Then
Proc_Get_Cust_Bal(:Global.Company, :Invh_Divn_Code, V_Cust_Code, Nvl(:Nett_Loc, 0), Nvl(:Old_Inv_Amt, 0),
:Cust_Main_Ac, :Invh_Sman_Code, :Global.Company, :Invh_Divn_Code, :Divn_Os, :Comp_Os,
:Divn_Os_Bills, :Divn_Os_Min_Dt, :Comp_Os_Bills, :Comp_Os_Min_Dt);
--Show_Message('Inv_Alert', 'Company O/S:'||:Comp_Os||' Divn O/S :'||:Divn_Os||' Company Cr Limit:'|| :Comp_Cr_Limit||' Divn Cr Limit:'||:Divn_Cr_Limit);
--Company level
If Nvl(:Comp_Os, 0) > Nvl(:Comp_Cr_Limit, 0) And Nvl(:Frm_Invh_Btrn_Flag, 'D') <> 'B' Then
Show_Message('Inv_Alert', 'Company Credit Limit Exceeded!');
:Parameter.P_msg := 1; --To handle Copy functionality, Added on 16/6/2019,
Raise Form_Trigger_Failure;
Elsif Nvl(:Comp_Os, 0) > Nvl(:Comp_Warn_Limit, 0) Then
V_Msg :=V_Msg || 'Nearing Company Credit Limit!';
End If;
--Show_Message('Inv_Alert', Nvl(:Comp_Os, 0) || 'Divn:' || Nvl(:Divn_Os, 0 ));
:Available_Balance := Nvl(:Comp_Cr_Limit, 0) - Nvl(:Comp_Os, 0) ;
-- :Min_osdate := :Comp_OS_Min_Dt;
--Division Level
If Nvl(:Frm_Valid_Cr_Limit,'Y') ='Y' Then
If :Invh_Divn_Code Is Not Null And Nvl(:Divn_Cr_Limit, 0) > 0 And Nvl(:Frm_Invh_Btrn_Flag, 'D') <> 'B' Then
If Nvl(:Divn_Os, 0) > Nvl(:Divn_Cr_Limit, 0) Then
Show_Message('Inv_Alert', 'Division Credit Limit Exceeded!');
Raise Form_Trigger_Failure;
Elsif Nvl(:Divn_Os, 0) > Nvl(:Divn_Warn_Limit, 0) Then
V_Msg :=V_Msg || 'Nearing Division Credit Limit!';
Show_Message('Inv_Alert',V_Msg);
End If;
End If;
--Bill-wise O/s
If :Divn_Cr_Days > 0 And :Divn_Os_Min_Dt + Nvl(Nvl(:Divn_Cr_Days,:Comp_Cr_Days), :Global.No_Days) < Trunc(Fn_Get_Zone_Date(:Global.Company)) --Uncommented by Mojish on 16/08/14 for RQ
And Nvl(:Frm_Invh_Btrn_Flag, 'D') <> 'B' Then
If Nvl(:Frm_Valid_Cr_Days,'Y') = 'Y' Then
Show_Message('Inv_Alert', 'Division O/s Bills Day(s) Exceeded!');
Raise Form_Trigger_Failure; --Temporary blocked by faisal on 14/01/15 as per Mr.Punnen
End If;
End If;
End If;
--Show_Message('Inv_Alert', 'CR Days:'||:Comp_Cr_Days||' No Of days :'||:Global.No_Days);
--Show_Message('Inv_Alert', 'CR Days:'||:Comp_Cr_Days||' No Of days :'||:Global.No_Days || 'Min Date'||:Comp_Os_Min_Dt);
If :Comp_Os_Min_Dt + Nvl(:Comp_Cr_Days, :Global.No_Days) < Trunc(Fn_Get_Zone_Date(:Global.Company)) And Nvl(:Frm_Invh_Btrn_Flag, 'D') <> 'B' Then --Uncommented by Mojish on 16/08/14 for RQ
If Nvl(:Frm_Valid_Cr_Days,'Y') = 'Y' Then
Show_Message('Inv_Alert', 'Company O/s Bills Day(s) Exceeded!!!!');
Raise Form_Trigger_Failure;
End If;
End If;
If V_Msg Is Not Null And :Global.Msg_Flag = 1 Then
Show_Message('Inv_Alert', V_Msg);
:Global.Msg_Flag := 0;
V_Msg := Null;
End If;
Else
-- Invoice Limit Validation:
If Nvl(:Inv_Limit,0) > 0 Then
If Nvl(:Nett_Loc, 0)> :Inv_Limit Then
Show_Message('Inv_Alert', 'Invoice Amount Limit Exceeded!');
Raise Form_Trigger_Failure;
End If;
If Nvl(:Inv_Per_Day,0) <> 0 Then
Pkg_Invoice.Proc_InvCnt_Limit('C',:Invh_Cust_Code,:Global.Company,:Invh_Divn_Code,V_Divn_Inv_Limit,V_Divn_Inv_Per_Day,V_Divn_Inv_Settle_Limit_Days,V_Inv_Count); --##Invoice Standardization,Added on 12/06/2019, Shebin
If V_Inv_Count > Nvl(:Inv_Per_Day,0) Then
Show_Message('Inv_Alert', 'Number of Invoices Exceeded for the customer for the company '||:Global.Company||' !');
Raise Form_Trigger_Failure;
End If;
End If;
--Division Level Invoice limit per day and Invoice count limit validation
V_Count := 0;
Select Count(*) Into V_Count From M_Customer_Division Where Custd_Comp_Code =:Global.Company
And Custd_Divn_Code = :Invh_Divn_Code
And Custd_Cust_Code =:Invh_Cust_Code;
If V_Count >0 Then
Pkg_Invoice.Proc_InvCnt_Limit('D',:Invh_Cust_Code,:Global.Company,:Invh_Divn_Code,V_Divn_Inv_Limit,V_Divn_Inv_Per_Day,V_Divn_Inv_Settle_Limit_Days,V_Divn_Inv_Count); --##Invoice Standardization,Added on 17/06/2019, Shebin
If Nvl(:Nett_Loc, 0)> V_Divn_Inv_Limit Then
Show_Message('Inv_Alert', 'Division Invoice Amount Limit Exceeded!');
Raise Form_Trigger_Failure;
End If;
If Nvl(V_Divn_Inv_Per_Day,0) <> 0 Then
If V_Divn_Inv_Count > Nvl(V_Divn_Inv_Per_Day,0) Then
Show_Message('Inv_Alert', 'Number of Invoices Exceeded for the customer in this division!');
Raise Form_Trigger_Failure;
End If;
End If;
End If;
End If;
End If;
End If;
End If;
Exception
When No_Data_Found Then Null;
End; on unit VALIDATE_INVOICE: from CUSTOMER(INVH_CUST_CODE) when SYSTEM.RECORD_STATUS <> 'QUERY' or null # load-fmb-invoice-validate-invoice-unit-0 from CUSTOMER_SALESMAN(INVH_CUST_CODE, INVH_DIVN_CODE, INVH_SMAN_CODE) # load-fmb-invoice-validate-invoice-unit-1 from SALESMAN(INVH_SMAN_CODE) or null # load-fmb-invoice-validate-invoice-unit-2 from CUSTOMER_DIVISION(INVH_CUST_CODE, INVH_DIVN_CODE) or null # load-fmb-invoice-validate-invoice-unit-4 deny when (SYSTEM.RECORD_STATUS <> 'QUERY') and (CUST_STATUS = 'L') else ('Customer Locked! [' || nvl(CUST_REM, 'No Remarks!')) || ']' set INVH_SMAN_CODE to FRM_LOC_SMAN when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(FRM_LOC_SMAN) fetch CUSTOMER_SALESMAN when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE) when ((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (CUSTOMER_SALESMAN.COUNT = 0) fetch SALESMAN when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(FRM_LOC_SMAN) set SMAN_NAME to SALESMAN.SMAN_NAME when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(FRM_LOC_SMAN) deny when (SYSTEM.RECORD_STATUS <> 'QUERY') and (SALESMAN.SMAN_STATUS = 'L') else ('Salesman Locked! [' || nvl(SALESMAN.SMAN_REMARKS, 'No Remarks!')) || ']' set FRM_VALID_CR_LIMIT to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_VALIDATE_CR_LIMIT') when SYSTEM.RECORD_STATUS <> 'QUERY' set FRM_VALID_CR_DAYS to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_VALIDATE_CR_DAYS') when SYSTEM.RECORD_STATUS <> 'QUERY' set FRM_VALID_ORDER to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_VALIDATE_ORDER') when SYSTEM.RECORD_STATUS <> 'QUERY' set FRM_VALID_EMP_CODE to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_VALIDATE_EMP_CODE') when SYSTEM.RECORD_STATUS <> 'QUERY' set FRM_SHOW_RATE to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_SHOW_RATE') when SYSTEM.RECORD_STATUS <> 'QUERY' set FRM_EN_ADD_DISC to FN_GET_CUST_PARAM(CUSTOMER.CUST_PARENT_CODE, GLOBAL.COMPANY, 'CUST_EN_ADD_DISC') when SYSTEM.RECORD_STATUS <> 'QUERY' state conceal INVH_DISC_AMT, INVH_DISC_PERC, AMOUNT, INVI_DISC_AMT, INVI_DISC_PERC, INVI_RATE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_SHOW_RATE = 'N') state reveal INVH_DISC_AMT, INVH_DISC_PERC, AMOUNT, INVI_DISC_AMT, INVI_DISC_PERC, INVI_RATE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_SHOW_RATE = 'N') state require INVH_ORD_DT, INVH_ORD_REF when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_VALID_ORDER = 'Y') state optional INVH_ORD_DT, INVH_ORD_REF when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_VALID_ORDER = 'Y') state enable INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_VALID_EMP_CODE = 'Y') state require INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_VALID_EMP_CODE = 'Y') state enable LOV_INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_VALID_EMP_CODE = 'Y') state disable INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_VALID_EMP_CODE = 'Y') state optional INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_VALID_EMP_CODE = 'Y') state disable LOV_INVH_EMP_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_VALID_EMP_CODE = 'Y') state enable INVH_BANK_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_EN_BANK = 'N') state require INVH_BANK_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_EN_BANK = 'N') state enable LOV_BANK when (SYSTEM.RECORD_STATUS <> 'QUERY') and (FRM_EN_BANK = 'N') state disable INVH_BANK_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_EN_BANK = 'N') state optional INVH_BANK_CODE when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_EN_BANK = 'N') state disable LOV_BANK when (SYSTEM.RECORD_STATUS <> 'QUERY') and not (FRM_EN_BANK = 'N') set INVH_DUE_DT to INVH_DT + COMP_CR_DAYS when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R') set INVH_DUE_DT to INVH_DT when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and not (INVH_PAY_MODE = 'R') deny when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and ((FRM_DEF_PAY_MODE = 'R') and (CUST_PAY_MODE = 'C')) else "Cash only Customer not allowed!" set INVH_PAY_MODE to CUST_PAY_MODE when (((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and is_blank(FRM_DEF_PAY_MODE)) and is_blank(INVH_PAY_MODE) state enable INVH_PAY_MODE when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and is_blank(FRM_DEF_PAY_MODE) state disable INVH_PAY_MODE when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and not is_blank(FRM_DEF_PAY_MODE) call PROC_GET_CUST_BAL(GLOBAL.COMPANY, INVH_DIVN_CODE, CUSTOMER.CUST_PARENT_CODE, nvl(NETT_LOC, 0), nvl(OLD_INV_AMT, 0), CUST_MAIN_AC, INVH_SMAN_CODE, GLOBAL.COMPANY, INVH_DIVN_CODE, DIVN_OS, COMP_OS, DIVN_OS_BILLS, DIVN_OS_MIN_DT, COMP_OS_BILLS, COMP_OS_MIN_DT) when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R') warn "Company Credit Limit Exceeded!" when (((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R')) and ((nvl(COMP_OS, 0) > nvl(COMP_CR_LIMIT, 0)) and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B')) deny when (((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R')) and ((nvl(COMP_OS, 0) > nvl(COMP_CR_LIMIT, 0)) and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B')) silent set AVAILABLE_BALANCE to nvl(COMP_CR_LIMIT, 0) - nvl(COMP_OS, 0) when ((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R') deny when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R')) and (nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y')) and ((is_filled(INVH_DIVN_CODE) and (nvl(DIVN_CR_LIMIT, 0) > 0)) and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (nvl(DIVN_OS, 0) > nvl(DIVN_CR_LIMIT, 0)) else "Division Credit Limit Exceeded!" deny when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R')) and (nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y')) and (((DIVN_CR_DAYS > 0) and ((DIVN_OS_MIN_DT + nvl(nvl(DIVN_CR_DAYS, COMP_CR_DAYS), GLOBAL.NO_DAYS)) < trunc(sysdate()))) and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (nvl(FRM_VALID_CR_DAYS, 'Y') = 'Y') else "Division O/s Bills Day(s) Exceeded!" deny when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (INVH_PAY_MODE = 'R')) and (((COMP_OS_MIN_DT + nvl(COMP_CR_DAYS, GLOBAL.NO_DAYS)) < trunc(sysdate())) and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and (nvl(FRM_VALID_CR_DAYS, 'Y') = 'Y') else "Company O/s Bills Day(s) Exceeded!!!!" deny when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and not (INVH_PAY_MODE = 'R')) and (nvl(INV_LIMIT, 0) > 0)) and (nvl(NETT_LOC, 0) > INV_LIMIT) else "Invoice Amount Limit Exceeded!" fetch CUSTOMER_DIVISION when (((SYSTEM.RECORD_STATUS <> 'QUERY') and ((nvl(FRM_VALID_CR_LIMIT, 'Y') = 'Y') and (nvl(FRM_INVH_BTRN_FLAG, 'D') <> 'B'))) and not (INVH_PAY_MODE = 'R')) and (nvl(INV_LIMIT, 0) > 0) # 19 statements did not convert.# line 170 # Pkg_Invoice.Proc_InvCredit_limit_Val('D',:Global.Company,v_Cust_Code,:Invh_Divn_Code,:Invh_Dt,:Divn_Cr_Limit,:Divn_Cr_Days,v_errMsg,v_Rec,v_RecComp); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 171 # :Divn_Warn_Limit := v_Rec(1).Custd_Cr_Warn_Limit; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 172 # :Cust_Pay_Mode := v_Rec(1).Custd_Pay_Mode; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 227 # Pkg_Invoice.Proc_InvCredit_limit_Val('C',:Global.Company,v_Cust_Code,:Invh_Divn_Code,:Invh_Dt,:Comp_Cr_Limit,:Comp_Cr_Days,v_errMsg,v_Rec,v_RecComp); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 229 # :Comp_Warn_Limit := v_RecComp(1).Custcomp_Cr_Warn_Limit; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 231 # :Inv_Limit := v_RecComp(1).Custcomp_Inv_Limit; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 232 # :Inv_Per_Day := v_RecComp(1).Custcomp_Inv_Per_Day; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 233 # :Inv_Settle_Limit_Days := v_RecComp(1).Custcomp_Inv_Settle_Limit_Days; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 271 # :Cust_Pay_Mode := V_Pay_Mode; # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 302 # :Parameter.P_msg := 1; # reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only# line 318 # Show_Message('Inv_Alert',V_Msg); # reason: its message cannot be built from literals and the standard library# line 340 # If V_Msg Is Not Null And :Global.Msg_Flag = 1 Then # Show_Message('Inv_Alert', V_Msg); # :Global.Msg_Flag := 0; # V_Msg := Null; # End If; # reason: the guard reads the local V_MSG, which a branch above it writes on one path only, so what it holds here depends on which path ran# line 354 # Pkg_Invoice.Proc_InvCnt_Limit('C',:Invh_Cust_Code,:Global.Company,:Invh_Divn_Code,V_Divn_Inv_Limit,V_Divn_Inv_Per_Day,V_Divn_Inv_Settle_Limit_Days,V_Inv_Count); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 355 # If V_Inv_Count > Nvl(:Inv_Per_Day,0) Then # Show_Message('Inv_Alert', 'Number of Invoices Exceeded for the customer for the company '||:Global.Company||' !'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_INV_COUNT, which the statement `PKG_INVOICE.PROC_INVCNT_LIMIT('C',:INVH_CUST_CODE,:GLOBAL.COMPANY,:INV...` names above it, and no FormConnect entry declares that statement, so nothing says which of its arguments it writes# line 367 # Pkg_Invoice.Proc_InvCnt_Limit('D',:Invh_Cust_Code,:Global.Company,:Invh_Divn_Code,V_Divn_Inv_Limit,V_Divn_Inv_Per_Day,V_Divn_Inv_Settle_Limit_Days,V_Divn_Inv_Count); # reason: no recognizer claims it, and the vocabulary has no clause for what it does# line 368 # If Nvl(:Nett_Loc, 0)> V_Divn_Inv_Limit Then # Show_Message('Inv_Alert', 'Division Invoice Amount Limit Exceeded!'); # Raise Form_Trigger_Failure; # End If; # reason: the guard reads the local V_DIVN_INV_LIMIT, which the statement `PKG_INVOICE.PROC_INVCNT_LIMIT('D',:INVH_CUST_CODE,:GLOBAL.COMPANY,:INV...` names above it, and no FormConnect entry declares that statement, so nothing says which of its arguments it writes# line 373 # If Nvl(V_Divn_Inv_Per_Day,0) <> 0 Then # If V_Divn_Inv_Count > Nvl(V_Divn_Inv_Per_Day,0) Then # Show_Message('Inv_Alert', 'Number of Invoices Exceeded for the customer in this division!'); # Raise Form_Trigger_Failure; # End If; # End If; # reason: the guard reads the local V_DIVN_INV_PER_DAY, which the statement `PKG_INVOICE.PROC_INVCNT_LIMIT('D',:INVH_CUST_CODE,:GLOBAL.COMPANY,:INV...` names above it, and no FormConnect entry declares that statement, so nothing says which of its arguments it writes# Select Count(*) Into V_Count From M_Customer_Division Where Custd_Comp_Code =:Global.Company # And Custd_Divn_Code = :Invh_Divn_Code # And Custd_Cust_Code =V_Cust_Code # And Custd_Cr_Limit > 0 # reason: its query narrows on V_CUST_CODE, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Show_Message('Inv_Alert', 'Division Credit Limit not defined'); # Raise Form_Trigger_Failure; # :Divn_Cr_Limit := Null; # :Divn_Cr_Days := Null; # :Divn_Warn_Limit :=Null; # :Invh_Cust_Code :=Null; # :Invh_Cust_Name :=Null; # reason: the query they read is refused above, so a clause over it would read no row
44 clauses converted, 19 statements refused
Procedure Proc_Valid_Plu_Item(P_Flag Varchar2) IS
--## This procedure will validate the bar code and item code
--## Called from When-Validate-Item Triggers of Bar code and Item Code
--## P_Flag variable can have values 'PLU'( Bar code) and 'ITEM'(Item Code)
--Bar
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Qty Number;
v_Loose Number;
v_Sl Number;
v_rate_ref Number;
--Item
v_Count NUMBER;
v_Uom_Code VARCHAR2 (10);
v_Pos NUMBER (2);
v_Status VARCHAR2 (10);
v_Def_Qty NUMBER (12,3);
v_Item_Code VARCHAR2 (20);
v_Sl NUMBER;
v_Ref VARCHAR2 (4);
v_Rate_Ref NUMBER;
v_Cat_Code VARCHAR2 (10);
v_Count1 NUMBER;
v_Vat_Incl_Price VARCHAR2 (10);
v_Gst_Incl_Price VARCHAR2 (10);
v_Cst_Incl_Price VARCHAR2 (10);
v_Serv_Tax_IncL_Price VARCHAR2 (10);
v_Cat_Loc Number;
v_Comm Number;
v_Cust_Item Varchar2(2);
v_Btrn_Status Char(1);
v_Pos_Dept Varchar2(10);
Begin
If :Ref_Doc_Item = 'Loaded' Then
If P_Flag = 'ITEM' Then
:Invi_Item_Code := :Old_Item_Code; --ModIfied By Mojish 12/02/14
:Invi_Uom_Code := :Old_Uom_Code; --ModIfied By Mojish 12/02/14
Else
Null; -- Bar code validation
End If;
Else --<< Bar Code validation
If P_Flag = 'PLU' Then
If :InvI_PLU_Code Is Not Null Then
If :Sl_Manual_Flag = 1 Then
Show_Message('Inv_Alert', 'Serial Number exist, Can''t Change Barcode!');
Raise Form_Trigger_Failure;
End If;
v_Pos := InStr(:InvI_PLU_Code, '+');
If v_Pos > 0 Then
:InvI_Qty := SubStr(:InvI_PLU_Code, 1, v_Pos-1);
:InvI_PLU_Code := SubStr(:InvI_PLU_Code, v_Pos+1) ;
ElsIf Nvl(:InvI_Qty, 0) = 0 And :Frm_Auto_Qty = 'Y' Then
:InvI_Qty := 1;
End If;
-- :Invi_Plu_Code := Fn_Get_Plu_Code(:Invi_Plu_Code, :Frm_Search_Order, Null, Null, :Global.Company, :Global.User);
--FOR Weighing items
If :InvI_PLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%' and :Frm_Weigh_Bcode_Prefix is Not Null Then
v_Ref := SubStr(:InvI_PLU_Code, 3, 4);
v_Rate := SubStr(:InvI_PLU_Code, 7, 6)/100;
If v_Rate > 0 Then
Select Count(*) Into v_Count From M_Item_PLU, M_Item
Where ItemPLU_Item_Code = Item_Code
And Item_Ref=v_Ref
And ItemPLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%';
If v_Count = 1 Then
Select Item_Code,/*Item_Parent_Code,*/ ItemPLU_UOM_Code, UOM_Max_Loose, Item_Group
Into :InvI_Item_Code, /*:InvI_Lnk_Item_Code,*/ :InvI_UOM_Code, :Max_Loose, :Item_Group
From M_UOM, M_Item , M_Item_PLU
Where Item_Code = ItemPLU_Item_Code
And UOM_Code = ItemPLU_UOM_Code
And Item_Ref=v_Ref
And ItemPLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%';
/*If :InvI_Item_Code is Null Then
Show_Message('Inv_Alert', 'Item Parent code not defined for this Item!');
Raise Form_Trigger_Failure;
End If; */
Select y.Item_Name, y.Item_Cat_Code,
y.Item_Status, y.Item_Serial_Status, y.Item_Type,y.Item_Def_Qty,
Stk_UnConf_Qty + Decode(Nvl(:Frm_Loc_En_Uncosted_Stk,'N'),'N',0,Nvl(Stk_Uncosted_Qty,0))
Into :Item_Name,v_Cat_Code, v_Status, :En_Sl, :Item_Type, v_Def_Qty, :Stock_BU
From M_Stock, M_Item Y
Where Stk_Comp_Code (+) = :Global.Company
And Stk_Loc_Code (+) = :InvH_Loc_Code
And Stk_Item_Code (+) = Item_Code
And Item_Code=:Invi_Item_Code;
Proc_Get_Sale_Price(:Global.Company,:InvH_Divn_Code, :Invh_PlH_Code,:InvH_Alt_PlH_Code, -----Added by faisal on 09/Nov/2014
:InvI_Item_Code, :InvI_Uom_Code, :InvH_Cust_Code,:InvH_Curr_Code, Nvl(:Frm_Inc_Default_Price, 'Y'),
:InvH_Dt, :InvI_Prom_Item_Id, :PromH_Id, :InvI_Rate, :InvI_Disc_Perc, :InvI_Disc_Amt, :InvI_Prom_Bu, :InvI_Prom_Foc_Bu,
:InvI_Prom_Qty_Limit_Bu, :InvI_Prom_Qty_Inv_Bu, :InvI_Prom_Foc_Same);
If Nvl(:Frm_Valid_Wt,'N') = 'Y' And (Nvl(:InvI_PLU_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix||'%' And :Frm_Weigh_Bcode_Prefix IS Not Null) Then
Proc_Get_Wt(:InvI_PLU_Code, :InvI_Rate, :Max_Loose, :InvI_Qty, :InvI_Loose);
Set_Item_Property('Invi_Qty', Update_Allowed, Property_False);
Set_Item_Property('Invi_Loose', Update_Allowed, Property_False);
Else
Set_Item_Property('Invi_Qty', Update_Allowed, Property_True);
Set_Item_Property('Invi_Loose', Update_Allowed, Property_True);
:Invi_Qty :=0;
:Invi_Loose := 0;
End If;
-- :InvI_Qty := 1; -- Blocked by faisal on 09/Nov/2014
--:InvI_Rate := v_Rate;
Else
:InvI_PLU_Code := Null;
End If;
Elsif v_Rate =0 Then --- #50390 IN SALES ENTRY , User - category validation error , Added the else part, Shebin,17/Sep/2019
Select Item_Code,Item_Name,/*Item_Parent_Code,*/ ItemPLU_UOM_Code, UOM_Max_Loose, Item_Group
Into :InvI_Item_Code,:Item_Name, /*:InvI_Lnk_Item_Code,*/ :InvI_UOM_Code, :Max_Loose, :Item_Group
From M_UOM, M_Item , M_Item_PLU
Where Item_Code = ItemPLU_Item_Code
And UOM_Code = ItemPLU_UOM_Code
And ItemPlu_Code =:InvI_Plu_Code;
Select Item_Cat_Code,Item_Status,Item_Serial_Status,
Item_Type,
Item_Def_Qty,
Stk_Unconf_Qty
+ DECODE (NVL (:Frm_Loc_En_Uncosted_Stk, 'N'),'N', 0,NVL (Stk_Uncosted_Qty, 0)),
Item_Exp_Type
Into V_Cat_Code,
V_Status,
:En_Sl,
:Item_Type,
V_Def_Qty,
:Stock_Bu,
:En_Batch
From M_Stock, M_Uom, M_Item
Where Uom_Code = Item_Uom_Code
And Stk_Comp_Code(+) = :Global.Company
And Stk_Loc_Code(+) = :Invh_Loc_Code
And Stk_Item_Code(+) = Item_Code
And Item_Code = :Invi_Item_Code;
End If;
Else
--For Non Weighing items
:Invi_Plu_Code := Fn_Get_Plu_Code(:Invi_Plu_Code, :Frm_Search_Order, Null, Null, :Global.Company, :Global.User);
Select Count(*) Into v_Count From M_Item_Plu Where ItemPlu_Code =:InvI_Plu_Code;
If v_Count > 0 Then
--Uom code From M_Item_Plu
If Nvl(:Frm_Plu_Uom,'N') ='Y' Then
Select Item_Code, Item_Name, ItemPLU_UOM_Code, UOM_Max_Loose,Item_Cat_Code,
/*DECODE(Nvl(Item_Status, ' '), 'Locked', 'Y', 'N')Commented on 04-04-2013*/Item_Status,
Item_Serial_Status, Item_Type,Item_Def_Qty, Stk_UnConf_Qty + Decode(Nvl(:Frm_Loc_En_Uncosted_Stk,'N'),'N',0,Nvl(Stk_Uncosted_Qty,0)), Item_Group
Into :InvI_Item_Code, :Item_Name, :InvI_UOM_Code, :Max_Loose,v_Cat_Code, v_Status, :En_Sl, :Item_Type, v_Def_Qty, :Stock_BU, :Item_Group
From M_Stock, M_UOM, M_Item, M_Item_PLU
Where Item_Code = ItemPLU_Item_Code
And UOM_Code = ItemPLU_UOM_Code
And Stk_Comp_Code (+) = :Global.Company
And Stk_Loc_Code (+) = :InvH_Loc_Code
And Stk_Item_Code (+) = ItemPLU_Item_Code
And ItemPLU_Code = :InvI_PLU_Code;
Else
--Uom code From M_Item
Select Item_Code, Item_Name, Item_UOM_Code, UOM_Max_Loose,Item_Cat_Code,
/*DECODE(Nvl(Item_Status, ' '), 'Locked', 'Y', 'N')*/Item_Status, Item_Serial_Status, Item_Type,Item_Def_Qty,
Stk_UnConf_Qty + Decode(Nvl(:Frm_Loc_En_Uncosted_Stk,'N'),'N',0,Nvl(Stk_Uncosted_Qty,0)), Item_group
Into :InvI_Item_Code, :Item_Name, :InvI_UOM_Code, :Max_Loose,v_Cat_Code, v_Status, :En_Sl, :Item_Type, v_Def_Qty, :Stock_BU, :Item_Group
From M_Stock, M_UOM, M_Item, M_Item_PLU
Where Item_Code = ItemPLU_Item_Code
And UOM_Code = Item_UOM_Code
And Stk_Comp_Code (+) = :Global.Company
And Stk_Loc_Code (+) = :InvH_Loc_Code
And Stk_Item_Code (+) = ItemPLU_Item_Code
And ItemPLU_Code = :InvI_PLU_Code;
End If;
Else
Show_Message('Inv_Alert', 'Barcode not found!');
:InvI_PLU_Code := Null;
Raise Form_Trigger_Failure;
End If;
:Old_Uom_Code := :Invi_Uom_Code;
End If;
End If;
-- End If;
End If; -->> Bar Code validation
--<< Item code validation
If P_Flag = 'ITEM' Then
If :Invi_Item_Code IS NOT NULL And :Invi_Plu_Code IS Null Then
---Added by Mojish 12/02/14
If :Sl_Manual_Flag = 1 And :Invi_Item_Code <> :Old_Item_Code Then
Show_Message ('Inv_Alert', 'Serial Number exist, Can''t Change Item Code!');
Validate_Sl_No;
Else
:Invi_Qty := 0;
:Invi_Loose := 0;
:Invi_Foc_Qty := 0;
:Invi_Foc_Loose := 0;
:Invi_Rate := 0;
:Invi_Disc_Perc := Null;
:Invi_Disc_Amt := Null;
End If;
---------
V_Pos := INSTR (:Invi_Item_Code, '+');
If V_Pos > 0 Then
:Invi_Qty := SUBSTR (:Invi_Item_Code, 1, V_Pos - 1);
:Invi_Item_Code := SUBSTR (:Invi_Item_Code, V_Pos + 1);
ELSIf NVL (:Invi_Qty, 0) = 0 And :Frm_Auto_Qty = 'Y' Then
:Invi_Qty := 1;
End If;
If Nvl(:Frm_Cost_Price_Billing,'Y') = 'Y' Then --Added if condition only on 30/Jun/2019, Shebin -- Excise duty
Proc_Get_sale_Tax(:Invi_Item_Code,:Global.Company,:InvH_Divn_Code,'VAT',:Invh_Cust_Code,:Invh_Txn_Code,:Invi_Vat,:Invi_Vat_Amt,:InvI_Vat_Incl_Price,:InvI_Vat_Stax_Id,
:Invi_Base_Rate);
Proc_Get_sale_Tax (:Invi_Item_Code,:Global.Company,:InvH_Divn_Code,'ED',:Invh_Cust_Code,:Invh_Txn_Code,:Invi_ED,:Invi_ED_Amt,:InvI_ED_Incl_Price,:InvI_ED_Stax_Id,
:Invi_Base_Rate);
:Invi_Inc_Foc_Vat := :Frm_Inc_FOC_Vat;
:Invi_Inc_Foc_ED := :Frm_Inc_FOC_ED;
End If;
:Invi_Item_Code :=Fn_Get_Item_Code (:Invi_Item_Code,:Frm_Search_Order,'Y',:Invh_Cust_Code,:Global.Company,:Global.USER);
--Manually search for items until Fn_Get_Item_Code is fixed to return barcode in the next release
V_Item_Code := :Invi_Item_Code;
--
----Added By Faisal on 07/09/2014
If :Invi_Item_Code IS NOT Null Then
Select COUNT (*)Into V_Count
From M_Item_Division
Where Itemd_Comp_Code = :Global.Company
And Itemd_Divn_Code = :Invh_Divn_Code
And Itemd_Item_Code = :Invi_Item_Code;
If V_Count = 0 Then
Show_Message ('Inv_Alert','Item Division Combination Not Found!');
RAISE Form_Trigger_Failure;
End If;
End If;
End If;
If :Invi_Plu_Code IS Null Then --Adde by Mojish 06/04/14 for tender
Select Item_Name,Item_Uom_Code,Uom_Max_Loose,Item_Cat_Code,Item_Status,Item_Serial_Status,Item_Type,Item_Def_Qty,
Stk_Unconf_Qty+ DECODE (NVL (:Frm_Loc_En_Uncosted_Stk, 'N'),'N', 0, NVL (Stk_Uncosted_Qty, 0)),
Item_Exp_Type,Item_Group,Item_Mode,Item_Pos_Ref
Into :Item_Name,:Invi_Uom_Code,:Max_Loose,V_Cat_Code,V_Status,:En_Sl,:Item_Type,V_Def_Qty,:Stock_Bu,
:En_Batch,:Item_Group,:Item_Mode,v_Pos_Dept
From M_Stock, M_Uom, M_Item
Where Uom_Code = Item_Uom_Code
And Stk_Comp_Code(+) = :Global.Company
And Stk_Loc_Code(+) = :Invh_Loc_Code
And Stk_Item_Code(+) = Item_Code
And Item_Code = :Invi_Item_Code;
Else
Select Item_Cat_Code,Item_Status,Item_Serial_Status,
Item_Type,
Item_Def_Qty,
Stk_Unconf_Qty
+ DECODE (NVL (:Frm_Loc_En_Uncosted_Stk, 'N'),'N', 0,NVL (Stk_Uncosted_Qty, 0)),
Item_Exp_Type,
Item_Pos_Ref
Into V_Cat_Code,
V_Status,
:En_Sl,
:Item_Type,
V_Def_Qty,
:Stock_Bu,
:En_Batch, v_Pos_Dept
From M_Stock, M_Uom, M_Item
Where Uom_Code = Item_Uom_Code
And Stk_Comp_Code(+) = :Global.Company
And Stk_Loc_Code(+) = :Invh_Loc_Code
And Stk_Item_Code(+) = Item_Code
And Item_Code = :Invi_Item_Code;
End If;
End If; -->> Item Code validation
-- User Category Validation
If (P_Flag = 'PLU' And :InvI_PLU_Code Is Not Null) Or (P_Flag = 'ITEM' And (:Invi_Item_Code Is Not Null And :Invi_Plu_Code Is Null)) Then
v_Count :=0;
Select COUNT (*) Into V_Count
From M_Cat_User_Group, M_User_Group_Belong
Where Catuser_User_Group_Code = Ugb_User_Group_Code
And Ugb_User_Code = :Global.USER
And Catuser_Cat_Code = V_Cat_Code;
If NVL (V_Count, 0) = 0 Then
Show_Message ('Inv_Alert','User Category combination not defined!');
RAISE Form_Trigger_Failure;
End If;
If :Invi_Item_Code IS Null Then
Show_Message ('Inv_Alert', 'Item is not Found!');
RAISE Form_Trigger_Failure;
End If;
If Nvl(:InvH_Btrn_Flag,'D') ='B' Then
proc_validate_item_btrn(v_Pos_Dept,v_Btrn_Status);
If Nvl(v_Btrn_Status,'Y') ='N' Then
Show_Message ('Inv_Alert',:Invi_Item_Code ||' not enabled for inter branch transaction(POS Dept)!');
RAISE Form_Trigger_Failure;
End If;
End If;
If v_Status = 'Locked' Then
Show_Message ('Inv_Alert', 'Item Locked!');
RAISE Form_Trigger_Failure;
End If;
If NVL (V_Status, 'New') NOT IN ('Open', 'Re-Act') Then
Show_Message ('Inv_ALERT', 'Item Status (' || NVL (V_Status, 'New') || ') is not Open');
End If;
If :Item_Type NOT IN ('SRV', 'STK','NSTK','CONS') Then --- Included NSTK on 26/08/2019 ,Ticket #50050 ,Shebin
Show_Message ('Inv_ALERT','Item not found/not a stock or service item!');
RAISE Form_Trigger_Failure;
End If;
If :Item_Type IN ('NSTK') And Nvl(:Frm_Validate_Nstock, 'N') = 'Y' Then
Show_Message ('Inv_ALERT','Cannot proceed: The selected item is not a stock item.!');
RAISE Form_Trigger_Failure;
End If;
/*If :Item_Mode = 'P' Then -- Commented By John on 2308-2022 ([support #70377])
Show_Message ('Inv_Alert','Purchase code, not enabled for selling!');
RAISE Form_Trigger_Failure;
End If; */
--
/* If NVL (:Item_Group, 'N') = 'C' Then ---Added By Faisal On 22/03/2016
If NVL (:FRM_En_Consumable, 'N') = 'N' Then
Show_Message ('Inv_ALERT', 'Consumable items not enabled for this transaction!');
Set_Item_Property(:Global.Cur_Item, Current_Record_Attribute,'Alert_VA');
Raise Form_Trigger_Failure;
Elsif NVL (:Item_Group, 'N') <> 'C' And NVL (:FRM_En_Consumable, 'N') = 'N' Then
Show_Message ('Inv_ALERT','Non Consumable items not enabled for this transaction!');
Set_Item_Property (:Global.Cur_Item,Current_Record_Attribute, 'Alert_VA');
Raise Form_Trigger_Failure;
End If;
End If;*/
If Nvl (:Item_Group, 'N') = 'C' And Nvl (:Frm_En_Consumable, 'N') = 'N' Then
Show_Message ('Inv_ALERT', 'Consumable items not enabled for this transaction!');
Set_Item_Property(:Global.Cur_Item, Current_Record_Attribute,'Alert_VA');
Raise Form_Trigger_Failure;
Elsif Nvl (:Item_Group, 'N') <> 'C' And Nvl (:Frm_En_Consumable, 'N') = 'Y' Then
Show_Message ('Inv_ALERT','Non Consumable items not enabled for this transaction!');
Set_Item_Property (:Global.Cur_Item,Current_Record_Attribute, 'Alert_VA');
Raise Form_Trigger_Failure;
End If;
--
If v_Def_Qty IS NOT Null And NVL(:Invi_Qty, 0) = 0 Then
:Invi_Qty := V_Def_Qty;
End If;
If P_flag = 'ITEM' Then
If NVL (:Frm_Valid_Whouse, 'N') = 'Y' Then
Select COUNT (Wstk_Item_Code) Into V_Count1
From M_Wstock
Where Wstk_Comp_Code = :Global.Company
And Wstk_Item_Code = :Invi_Item_Code
And Wstk_Qty > 0
And (Wstk_Exp_Dt IS Null
OR Wstk_Exp_Dt >= TO_DATE (:Frm_Time_Zone, 'DD/MM/YYYY'));
If NVL (V_Count1, 0) = 1 Then
Select Wstk_Loc_Code,Wstk_Batch,Wstk_Exp_Dt, Wstk_Qty
Into :Invi_Loc_Fm,:Invi_Batch,:Invi_Exp_Dt,:Invi_Wstock
From M_Wstock
Where Wstk_Comp_Code = :Global.Company
And Wstk_Item_Code = :Invi_Item_Code
And Wstk_Qty > 0
And (Wstk_Exp_Dt IS Null
OR Wstk_Exp_Dt >= TO_DATE (:Frm_Time_Zone, 'DD/MM/YYYY'));
End If;
End If;
End If;
Select Count (*) Into V_Count
From M_Stock_Division
Where Stkd_Comp_Code = :Global.Company
And Stkd_Divn_Code= :Invh_Divn_Code
And Stkd_Item_Code = :Invi_Item_Code;
If V_Count = 0 Then
Show_Message ('Inv_Alert','Division not enabled for this Item!');
Raise Form_Trigger_Failure;
Else
Select Stkd_Unconf_Qty,Stkd_Validate_stk Into :Div_Stock_Bu,:Validate_Stk
From M_Stock_Division
Where Stkd_Comp_Code = :Global.Company
And Stkd_Divn_Code= :InvH_Divn_Code
And Stkd_Item_code = :InvI_Item_Code;
End If;
If NVL(:Frm_Cost_Price_Billing, 'N') = 'Y'
And (NVL (:Invi_Plu_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix || '%'
And :Frm_Weigh_Bcode_Prefix IS NOT Null)
And (NVL (:Invi_Item_Code, ' ') NOT LIKE :Frm_Weigh_Item_Prefix || '%'
And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Get_Prate;
:Rate_Flag :='Y';
--added shibu on 16/10/25
Elsif NVL(:Frm_Cost_Price_Billing, 'N') = 'Y'
And (NVL (:Invi_Plu_Code, ' ') NOT LIKE :Frm_Weigh_Bcode_Prefix || '%'
And :Frm_Weigh_Bcode_Prefix IS NOT Null)
And (NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
And :Frm_Weigh_Item_Prefix IS NOT Null) Then
Get_Prate;
:Rate_Flag :='Y';
Elsif (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%'
And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then
If P_flag = 'ITEM' Then
V_Ref := SUBSTR (:Invi_Plu_Code, 3, 4);
V_Rate := SUBSTR (:Invi_Plu_Code, 7, 6) / 100;
End If;
-----For Weighing Item consider Selling Rate added on 08/07/2017
If NVL(:Frm_Cost_Price_Billing, 'N') = 'Y'
and Nvl(:InvH_Btrn_Flag,'D') ='B'
and NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
and :Frm_Weigh_Item_Prefix IS NOT Null Then
Get_PRate;
:Rate_Flag :='Y';
-- Show_Message ('Inv_Alert','Rate:'||:Invi_Rate);
End If;
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y'
And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
And :Frm_Weigh_Item_Prefix IS NOT Null) and Nvl(:Invi_Rate,0) = 0 Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
End If;
--
If NVL (:Frm_Valid_Wt, 'N') = 'Y' And (NVL (:Invi_Plu_Code, ' ') LIKE :Frm_Weigh_Bcode_Prefix || '%' And :Frm_Weigh_Bcode_Prefix IS NOT Null) Then --Added By Faisal on 09/Nov/2014
Proc_Get_Wt (:Invi_Plu_Code,:Invi_Rate,:Max_Loose,:Invi_Qty,:Invi_Loose); --Qty And loose From Plu added by Mojish on 10/11/14
Set_Item_Property('Invi_Qty', Update_Allowed, Property_False);
Set_Item_Property('Invi_Loose', Update_Allowed, Property_False);
Else ---Else part is copied From Bar code validation,
Set_Item_Property('Invi_Qty', Update_Allowed, Property_True);
Set_Item_Property('Invi_Loose', Update_Allowed, Property_True);
:Invi_Qty :=0;
:Invi_Loose := 0;
End If;
Else
Select_Promotion; --Added by Mojish 10/06/14 For Selecting promotion
If NVL(:Frm_Cost_Price_Billing, 'N') = 'Y'
and Nvl(:InvH_Btrn_Flag,'D') ='B'
and NVL (:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
and :Frm_Weigh_Item_Prefix IS NOT Null Then
Get_PRate;
:Rate_Flag :='Y';
--Show_Message ('Inv_Alert','Rate:'||:Invi_Rate);
End If;
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y'
And (Nvl(:Invi_Item_Code, ' ') LIKE :Frm_Weigh_Item_Prefix || '%'
And :Frm_Weigh_Item_Prefix IS NOT Null) and Nvl(:Invi_Rate,0) = 0 Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
ElsIf NVL (:Frm_Cost_Price_Billing, 'N') <> 'Y' Then
Proc_Get_Sale_Price (:Global.Company,
:Invh_Divn_Code,
:Invh_PlH_Code,:InvH_Alt_PlH_Code,
:Invi_Item_Code,
:Invi_Uom_Code,
:Invh_Cust_Code,
:Invh_Curr_Code,
Nvl (:Frm_Inc_Default_Price, 'Y'),
:Invh_Dt,
:Invi_Prom_Item_Id,
:Promh_Id,
:Invi_Rate,
:Invi_Disc_Perc,
:Invi_Disc_Amt,
:Invi_Prom_Bu,
:Invi_Prom_Foc_Bu,
:Invi_Prom_Qty_Limit_Bu,
:Invi_Prom_Qty_Inv_Bu,
:Invi_Prom_Foc_Same);
End If;
--Show_Message ('Inv_Alert','Rate1:'||:Invi_Rate);
:Old_Uom_Code := :Invi_Uom_Code;
Get_Promotion_Foc ('VALIDATE'); --Added By Mojish 16/04/14
If Nvl(:Frm_En_Add_Disc,'N') ='Y' Then
Proc_Get_CustItem_Disc(:Global.Company,:InvI_Item_Code,:InvH_Cust_Code,:Inv_Additional_Disc);
End If;
If :Inv_Additional_Disc > 0 Then
:Invi_Disc_Amt := Round((:InvI_Rate * :Inv_Additional_Disc/100),Nvl(:Frm_Decimal,2));
End If;
End If;
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And Nvl(:Invi_Rate, 0) = 0 and Nvl(:InvH_Btrn_Flag,'D') ='B'
And NVL (:Invi_Item_Code, ' ') Not LIKE :Frm_Weigh_Item_Prefix || '%'
and :Frm_Weigh_Item_Prefix IS NOT Null Then
Get_PRate;
:Rate_Flag :='Y';
End If;
If NVL (:Frm_Cost_Price_Billing, 'N') = 'Y' And Nvl(:Invi_Rate, 0) = 0 Then
Get_Supp_Rate;
End If;
Validate_SO;
--Added By Mojish 21/04/16
--:Invi_Wac_Pcs := Fn_Get_Cost (:Invi_Item_Code, :Global.Company,:Invh_Divn_Code,:Invh_Dt,'WAC', Nvl(:Div_Stock_Bu,1)); Disabled On 23/11/2017 hAndled in trigger
-- :Invi_FIfo_Pcs := Fn_Get_Cost (:Invi_Item_Code, :Global.Company,:Invh_Divn_Code,:Invh_Dt,'FIfO', Nvl(:Div_Stock_Bu,1)); Disabled On 23/11/2017 hAndled in trigger
Enable_Sl_Batch (:En_Sl, NVL (:En_Batch, 'N'), :Fix_Srate);
:Gr_Batch_En :=Fn_Get_Item_Txn_Batch_Status(:Global.Company, :InvI_Item_Code);
En_gr_batch(:Gr_Batch_En);
Get_Stock ('STOCK_BU', 'STOCK_DTL',:Global.Company, :Invh_Loc_Code,:Invi_Item_Code,:Max_Loose,:Global.Stk_Chk_Type); --- not found in item code validation --- Shebin
Enable_Pcs;
Tender_Validate_Item_Level; -- Added by mojish 05/04/14
Proc_show_margin;
--<< Task-Invoice Configuration, Added by Shebin, 11/Jun/2019
v_Cat_Loc := Fn_Get_Stk_Txn_CatLoc(:Invh_Txn_Code,v_Cat_Code,:Global.Company,:Invh_Loc_Code);
If Nvl(v_Cat_Loc,0) <> -1 And Nvl(v_Cat_Loc,0) = 0 Then
If :Parameter.P_copy_msg_repeat = 0 then
Show_Message ('Inv_Alert',' Transaction category is not configured for this location! Please contact administrator.');
Raise Form_Trigger_Failure;
End If;
If :Parameter.P_copy = 1 Then
:Parameter.P_copy_msg_repeat := 1;
End If;
Raise Form_Trigger_Failure;
End If; -->>
:Old_Uom_Code := :Invi_Uom_Code;
End If;
End If;
End;on unit PROC_VALID_PLU_ITEM(P_FLAG): from UOM_3(INVI_PLU_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-3 from STOCK_4(FRM_LOC_EN_UNCOSTED_STK, INVH_LOC_CODE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-4 from ITEM_PLU_5(INVI_PLU_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-5 from STOCK_6(FRM_LOC_EN_UNCOSTED_STK, INVH_LOC_CODE, INVI_PLU_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-6 from STOCK_7(FRM_LOC_EN_UNCOSTED_STK, INVH_LOC_CODE, INVI_PLU_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-7 from ITEM_DIVISION(INVH_DIVN_CODE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-8 from STOCK_9(FRM_LOC_EN_UNCOSTED_STK, INVH_LOC_CODE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-9 from WSTOCK_COUNT(FRM_TIME_ZONE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-11 from WSTOCK(FRM_TIME_ZONE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-12 from STOCK_DIVISION_COUNT(INVH_DIVN_CODE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-13 from STOCK_DIVISION(INVH_DIVN_CODE, INVI_ITEM_CODE) # load-fmb-invoice-proc-valid-plu-item-unit-14 set INVI_ITEM_CODE to OLD_ITEM_CODE when (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM') set INVI_UOM_CODE to OLD_UOM_CODE when (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM') deny when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and (SL_MANUAL_FLAG = 1) else "Serial Number exist, Can't Change Barcode!" set INVI_QTY to substr(INVI_PLU_CODE, 1, instr(INVI_PLU_CODE, '+') - 1) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and (instr(INVI_PLU_CODE, '+') > 0) set INVI_PLU_CODE to substr(INVI_PLU_CODE, instr(INVI_PLU_CODE, '+') + 1) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and (instr(INVI_PLU_CODE, '+') > 0) set INVI_QTY to 1 when (((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and not (instr(INVI_PLU_CODE, '+') > 0)) and ((nvl(INVI_QTY, 0) = 0) and (FRM_AUTO_QTY = 'Y')) fetch UOM_3 when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set INVI_ITEM_CODE to UOM_3.ITEM_CODE when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set ITEM_NAME to UOM_3.ITEM_NAME when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set INVI_UOM_CODE to UOM_3.ITEMPLU_UOM_CODE when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set MAX_LOOSE to UOM_3.UOM_MAX_LOOSE when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set ITEM_GROUP to UOM_3.ITEM_GROUP when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) fetch STOCK_4 when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set EN_SL to STOCK_4.ITEM_SERIAL_STATUS when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set ITEM_TYPE to STOCK_4.ITEM_TYPE when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set STOCK_BU to STOCK_4.STOCK_BU when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) set EN_BATCH to STOCK_4.ITEM_EXP_TYPE when ((((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((substr(INVI_PLU_CODE, 7, 6) / 100) > 0)) and ((substr(INVI_PLU_CODE, 7, 6) / 100) = 0) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'PLU')) and is_filled(INVI_PLU_CODE)) and not ((INVI_PLU_CODE like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX)) warn "Serial Number exist, Can't Change Item Code!" when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) call VALIDATE_SL_NO() when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_QTY to 0 when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_LOOSE to 0 when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_FOC_QTY to 0 when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_FOC_LOOSE to 0 when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_RATE to 0 when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_DISC_PERC to null when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_DISC_AMT to null when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not ((SL_MANUAL_FLAG = 1) and (STOCK_7.ITEM_CODE <> OLD_ITEM_CODE)) set INVI_QTY to substr(STOCK_7.ITEM_CODE, 1, instr(STOCK_7.ITEM_CODE, '+') - 1) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (instr(STOCK_7.ITEM_CODE, '+') > 0) set INVI_ITEM_CODE to substr(STOCK_7.ITEM_CODE, instr(STOCK_7.ITEM_CODE, '+') + 1) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (instr(STOCK_7.ITEM_CODE, '+') > 0) set INVI_QTY to 1 when (((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and not (instr(STOCK_7.ITEM_CODE, '+') > 0)) and ((nvl(INVI_QTY, 0) = 0) and (FRM_AUTO_QTY = 'Y')) call PROC_GET_SALE_TAX(STOCK_7.ITEM_CODE, GLOBAL.COMPANY, INVH_DIVN_CODE, 'VAT', INVH_CUST_CODE, INVH_TXN_CODE, INVI_VAT, INVI_VAT_AMT, INVI_VAT_INCL_PRICE, INVI_VAT_STAX_ID, INVI_BASE_RATE) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (nvl(FRM_COST_PRICE_BILLING, 'Y') = 'Y') call PROC_GET_SALE_TAX(STOCK_7.ITEM_CODE, GLOBAL.COMPANY, INVH_DIVN_CODE, 'ED', INVH_CUST_CODE, INVH_TXN_CODE, INVI_ED, INVI_ED_AMT, INVI_ED_INCL_PRICE, INVI_ED_STAX_ID, INVI_BASE_RATE) when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (nvl(FRM_COST_PRICE_BILLING, 'Y') = 'Y') set INVI_INC_FOC_VAT to FRM_INC_FOC_VAT when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (nvl(FRM_COST_PRICE_BILLING, 'Y') = 'Y') set INVI_INC_FOC_ED to FRM_INC_FOC_ED when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and (nvl(FRM_COST_PRICE_BILLING, 'Y') = 'Y') set INVI_ITEM_CODE to FN_GET_ITEM_CODE(STOCK_7.ITEM_CODE, FRM_SEARCH_ORDER, 'Y', INVH_CUST_CODE, GLOBAL.COMPANY, GLOBAL.USER) when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)) fetch ITEM_DIVISION when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and is_filled(STOCK_7.ITEM_CODE) exists of ITEM_DIVISION else "Item Division Combination Not Found!" when ((not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))) and is_filled(STOCK_7.ITEM_CODE) fetch STOCK_9 when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set ITEM_NAME to STOCK_9.ITEM_NAME when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set INVI_UOM_CODE to STOCK_9.ITEM_UOM_CODE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set MAX_LOOSE to STOCK_9.UOM_MAX_LOOSE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set EN_SL to STOCK_9.ITEM_SERIAL_STATUS when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set ITEM_TYPE to STOCK_9.ITEM_TYPE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set STOCK_BU to STOCK_9.STOCK_BU when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set EN_BATCH to STOCK_9.ITEM_EXP_TYPE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set ITEM_GROUP to STOCK_9.ITEM_GROUP when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set ITEM_MODE to STOCK_9.ITEM_MODE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and is_blank(INVI_PLU_CODE) set EN_SL to STOCK_4.ITEM_SERIAL_STATUS when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and not is_blank(INVI_PLU_CODE) set ITEM_TYPE to STOCK_4.ITEM_TYPE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and not is_blank(INVI_PLU_CODE) set STOCK_BU to STOCK_4.STOCK_BU when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and not is_blank(INVI_PLU_CODE) set EN_BATCH to STOCK_4.ITEM_EXP_TYPE when (not (REF_DOC_ITEM = 'Loaded') and (ARG.P_FLAG = 'ITEM')) and not is_blank(INVI_PLU_CODE) deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and is_blank(STOCK_7.ITEM_CODE) else "Item is not Found!" call PROC_VALIDATE_ITEM_BTRN(STOCK_4.ITEM_POS_REF, null) when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (INVH_BTRN_FLAG = 'B') deny when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (INVH_BTRN_FLAG = 'B')) and (OUT.PROC_VALIDATE_ITEM_BTRN.2 = 'N') else STOCK_7.ITEM_CODE || ' not enabled for inter branch transaction(POS Dept)!' deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (STOCK_4.ITEM_STATUS = 'Locked') else "Item Locked!" warn ('Item Status (' || nvl(STOCK_4.ITEM_STATUS, 'New')) || ') is not Open' when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((nvl(STOCK_4.ITEM_STATUS, 'New') <> 'Open') and (nvl(STOCK_4.ITEM_STATUS, 'New') <> 'Re-Act')) deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((((STOCK_4.ITEM_TYPE <> 'SRV') and (STOCK_4.ITEM_TYPE <> 'STK')) and (STOCK_4.ITEM_TYPE <> 'NSTK')) and (STOCK_4.ITEM_TYPE <> 'CONS')) else "Item not found/not a stock or service item!" deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((STOCK_4.ITEM_TYPE = 'NSTK') and (FRM_VALIDATE_NSTOCK = 'Y')) else "Cannot proceed: The selected item is not a stock item.!" warn "Consumable items not enabled for this transaction!" when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((STOCK_9.ITEM_GROUP = 'C') and (nvl(FRM_EN_CONSUMABLE, 'N') = 'N')) deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((STOCK_9.ITEM_GROUP = 'C') and (nvl(FRM_EN_CONSUMABLE, 'N') = 'N')) silent warn "Non Consumable items not enabled for this transaction!" when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not ((STOCK_9.ITEM_GROUP = 'C') and (nvl(FRM_EN_CONSUMABLE, 'N') = 'N'))) and ((nvl(STOCK_9.ITEM_GROUP, 'N') <> 'C') and (FRM_EN_CONSUMABLE = 'Y')) deny when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not ((STOCK_9.ITEM_GROUP = 'C') and (nvl(FRM_EN_CONSUMABLE, 'N') = 'N'))) and ((nvl(STOCK_9.ITEM_GROUP, 'N') <> 'C') and (FRM_EN_CONSUMABLE = 'Y')) silent set INVI_QTY to STOCK_4.ITEM_DEF_QTY when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (is_filled(STOCK_4.ITEM_DEF_QTY) and (nvl(INVI_QTY, 0) = 0)) fetch WSTOCK_COUNT when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y') fetch WSTOCK when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y')) and (WSTOCK_COUNT.COUNT = 1) set INVI_LOC_FM to WSTOCK.WSTK_LOC_CODE when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y')) and (WSTOCK_COUNT.COUNT = 1) set INVI_BATCH to WSTOCK.WSTK_BATCH when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y')) and (WSTOCK_COUNT.COUNT = 1) set INVI_EXP_DT to WSTOCK.WSTK_EXP_DT when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y')) and (WSTOCK_COUNT.COUNT = 1) set INVI_WSTOCK to WSTOCK.WSTK_QTY when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (ARG.P_FLAG = 'ITEM')) and (FRM_VALID_WHOUSE = 'Y')) and (WSTOCK_COUNT.COUNT = 1) fetch STOCK_DIVISION_COUNT when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) deny when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (STOCK_DIVISION_COUNT.COUNT = 0) else "Division not enabled for this Item!" fetch STOCK_DIVISION when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (STOCK_DIVISION_COUNT.COUNT = 0) set DIV_STOCK_BU to STOCK_DIVISION.STKD_UNCONF_QTY when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (STOCK_DIVISION_COUNT.COUNT = 0) set VALIDATE_STK to STOCK_DIVISION.STKD_VALIDATE_STK when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (STOCK_DIVISION_COUNT.COUNT = 0) call GET_PRATE() when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) set RATE_FLAG to 'Y' when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) call GET_PRATE() when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) set RATE_FLAG to 'Y' when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) call GET_PRATE() when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) set RATE_FLAG to 'Y' when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) call PROC_GET_SALE_PRICE(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_PLH_CODE, INVH_ALT_PLH_CODE, STOCK_7.ITEM_CODE, STOCK_9.ITEM_UOM_CODE, INVH_CUST_CODE, INVH_CURR_CODE, nvl(FRM_INC_DEFAULT_PRICE, 'Y'), INVH_DT, INVI_PROM_ITEM_ID, PROMH_ID, INVI_RATE, INVI_DISC_PERC, INVI_DISC_AMT, INVI_PROM_BU, INVI_PROM_FOC_BU, INVI_PROM_QTY_LIMIT_BU, INVI_PROM_QTY_INV_BU, INVI_PROM_FOC_SAME) when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (((FRM_COST_PRICE_BILLING = 'Y') and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (nvl(INVI_RATE, 0) = 0)) call PROC_GET_WT(INVI_PLU_CODE, INVI_RATE, STOCK_9.UOM_MAX_LOOSE, INVI_QTY, INVI_LOOSE) when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((FRM_VALID_WT = 'Y') and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) state lock INVI_LOOSE, INVI_QTY on update when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((FRM_VALID_WT = 'Y') and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) state unlock INVI_LOOSE, INVI_QTY on update when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((FRM_VALID_WT = 'Y') and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) set INVI_QTY to 0 when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((FRM_VALID_WT = 'Y') and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) set INVI_LOOSE to 0 when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not ((FRM_VALID_WT = 'Y') and ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) call SELECT_PROMOTION() when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX)) call GET_PRATE() when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) set RATE_FLAG to 'Y' when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((((FRM_COST_PRICE_BILLING = 'Y') and (INVH_BTRN_FLAG = 'B')) and (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) call PROC_GET_SALE_PRICE(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_PLH_CODE, INVH_ALT_PLH_CODE, STOCK_7.ITEM_CODE, STOCK_9.ITEM_UOM_CODE, INVH_CUST_CODE, INVH_CURR_CODE, nvl(FRM_INC_DEFAULT_PRICE, 'Y'), INVH_DT, INVI_PROM_ITEM_ID, PROMH_ID, INVI_RATE, INVI_DISC_PERC, INVI_DISC_AMT, INVI_PROM_BU, INVI_PROM_FOC_BU, INVI_PROM_QTY_LIMIT_BU, INVI_PROM_QTY_INV_BU, INVI_PROM_FOC_SAME) when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (((FRM_COST_PRICE_BILLING = 'Y') and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (nvl(INVI_RATE, 0) = 0)) call PROC_GET_SALE_PRICE(GLOBAL.COMPANY, INVH_DIVN_CODE, INVH_PLH_CODE, INVH_ALT_PLH_CODE, STOCK_7.ITEM_CODE, STOCK_9.ITEM_UOM_CODE, INVH_CUST_CODE, INVH_CURR_CODE, nvl(FRM_INC_DEFAULT_PRICE, 'Y'), INVH_DT, INVI_PROM_ITEM_ID, PROMH_ID, INVI_RATE, INVI_DISC_PERC, INVI_DISC_AMT, INVI_PROM_BU, INVI_PROM_FOC_BU, INVI_PROM_QTY_LIMIT_BU, INVI_PROM_QTY_INV_BU, INVI_PROM_FOC_SAME) when (((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and not (((FRM_COST_PRICE_BILLING = 'Y') and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX))) and (nvl(INVI_RATE, 0) = 0))) and (nvl(FRM_COST_PRICE_BILLING, 'N') <> 'Y') set OLD_UOM_CODE to STOCK_9.ITEM_UOM_CODE when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX)) call GET_PROMOTION_FOC('VALIDATE') when (((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX)) call PROC_GET_CUSTITEM_DISC(GLOBAL.COMPANY, STOCK_7.ITEM_CODE, INVH_CUST_CODE, INV_ADDITIONAL_DISC) when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (FRM_EN_ADD_DISC = 'Y') set INVI_DISC_AMT to round((INVI_RATE * INV_ADDITIONAL_DISC) / 100, nvl(FRM_DECIMAL, 2)) when ((((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not (((FRM_COST_PRICE_BILLING = 'Y') and (not (nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and ((nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%')) and is_filled(FRM_WEIGH_ITEM_PREFIX)))) and not ((nvl(INVI_PLU_CODE, ' ') like (FRM_WEIGH_BCODE_PREFIX || '%')) and is_filled(FRM_WEIGH_BCODE_PREFIX))) and (INV_ADDITIONAL_DISC > 0) call GET_PRATE() when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (((((FRM_COST_PRICE_BILLING = 'Y') and (nvl(INVI_RATE, 0) = 0)) and (INVH_BTRN_FLAG = 'B')) and not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) set RATE_FLAG to 'Y' when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and (((((FRM_COST_PRICE_BILLING = 'Y') and (nvl(INVI_RATE, 0) = 0)) and (INVH_BTRN_FLAG = 'B')) and not (nvl(STOCK_7.ITEM_CODE, ' ') like (FRM_WEIGH_ITEM_PREFIX || '%'))) and is_filled(FRM_WEIGH_ITEM_PREFIX)) call GET_SUPP_RATE() when (not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((FRM_COST_PRICE_BILLING = 'Y') and (nvl(INVI_RATE, 0) = 0)) call VALIDATE_SO() when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call ENABLE_SL_BATCH(STOCK_4.ITEM_SERIAL_STATUS, nvl(STOCK_4.ITEM_EXP_TYPE, 'N'), FIX_SRATE) when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) set GR_BATCH_EN to FN_GET_ITEM_TXN_BATCH_STATUS(GLOBAL.COMPANY, STOCK_7.ITEM_CODE) when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call EN_GR_BATCH(GR_BATCH_EN) when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call GET_STOCK('T_INV_ITEM.STOCK_BU', 'T_INV_ITEM.STOCK_DTL', GLOBAL.COMPANY, INVH_LOC_CODE, STOCK_7.ITEM_CODE, STOCK_9.UOM_MAX_LOOSE, GLOBAL.STK_CHK_TYPE) when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call ENABLE_PCS() when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call TENDER_VALIDATE_ITEM_LEVEL() when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) call PROC_SHOW_MARGIN() when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) deny when ((not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE))))) and ((nvl(FN_GET_STK_TXN_CATLOC(INVH_TXN_CODE, STOCK_4.ITEM_CAT_CODE, GLOBAL.COMPANY, INVH_LOC_CODE), 0) <> -1) and (nvl(FN_GET_STK_TXN_CATLOC(INVH_TXN_CODE, STOCK_4.ITEM_CAT_CODE, GLOBAL.COMPANY, INVH_LOC_CODE), 0) = 0))) and (PARAMETER.P_COPY_MSG_REPEAT = 0) else " Transaction category is not configured for this location! Please contact administrator." set OLD_UOM_CODE to STOCK_9.ITEM_UOM_CODE when not (REF_DOC_ITEM = 'Loaded') and (((ARG.P_FLAG = 'PLU') and is_filled(INVI_PLU_CODE)) or ((ARG.P_FLAG = 'ITEM') and (is_filled(STOCK_7.ITEM_CODE) and is_blank(INVI_PLU_CODE)))) # 7 statements did not convert.# line 330 # Set_Item_Property(:Global.Cur_Item, Current_Record_Attribute,'Alert_VA'); # reason: the state effect is nine properties over twelve verbs, and CURRENT_RECORD_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean# line 334 # Set_Item_Property (:Global.Cur_Item,Current_Record_Attribute, 'Alert_VA'); # reason: the state effect is nine properties over twelve verbs, and CURRENT_RECORD_ATTRIBUTE is none of them, so it is refused rather than folded into a verb it does not mean# line 544 # If :Parameter.P_copy = 1 Then # :Parameter.P_copy_msg_repeat := 1; # End If; # Raise Form_Trigger_Failure; # reason: the message this abort shows is inside the branch before it, so pairing them would drop the guard that branch runs under# Select Count(*) Into v_Count From M_Item_PLU, M_Item # Where ItemPLU_Item_Code = Item_Code # And Item_Ref=v_Ref # And ItemPLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%' # reason: its query narrows on V_REF, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Select Item_Code, ItemPLU_UOM_Code, UOM_Max_Loose, Item_Group # Into :InvI_Item_Code, :InvI_UOM_Code, :Max_Loose, :Item_Group # From M_UOM, M_Item , M_Item_PLU # Where Item_Code = ItemPLU_Item_Code # And UOM_Code = ItemPLU_UOM_Code # And Item_Ref=v_Ref # And ItemPLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%' # reason: its query narrows on V_REF, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Select COUNT (*) Into V_Count # From M_Cat_User_Group, M_User_Group_Belong # Where Catuser_User_Group_Code = Ugb_User_Group_Code # And Ugb_User_Code = :Global.USER # And Catuser_Cat_Code = V_Cat_Code # reason: its query narrows on V_CAT_CODE, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither# Select Item_Code, ItemPLU_UOM_Code, UOM_Max_Loose, Item_Group # Into :InvI_Item_Code, :InvI_UOM_Code, :Max_Loose, :Item_Group # From M_UOM, M_Item , M_Item_PLU # Where Item_Code = ItemPLU_Item_Code # And UOM_Code = ItemPLU_UOM_Code # And Item_Ref=v_Ref # And ItemPLU_Code LIKE :Frm_Weigh_Bcode_Prefix||'%'; # Select y.Item_Name, y.Item_Cat_Code, # y.Item_Status, y.Item_Serial_Status, y.Item_Type,y.Item_Def_Qty, # Stk_UnConf_Qty + Decode(Nvl(:Frm_Loc_En_Uncosted_Stk,'N'),'N',0,Nvl(Stk_Uncosted_Qty,0)) # Into :Item_Name,v_Cat_Code, v_Status, :En_Sl, :Item_Type, v_Def_Qty, :Stock_BU # From M_Stock, M_Item Y # Where Stk_Comp_Code (+) = :Global.Company # And Stk_Loc_Code (+) = :InvH_Loc_Code # And Stk_Item_Code (+) = Item_Code # And Item_Code=:Invi_Item_Code; # Set_Item_Property('Invi_Qty', Update_Allowed, Property_False); # Set_Item_Property('Invi_Qty', Update_Allowed, Property_True); # :Invi_Qty :=0; # :Invi_Loose := 0; # :InvI_PLU_Code := Null; # Show_Message ('Inv_Alert','User Category combination not defined!'); # RAISE Form_Trigger_Failure; # reason: the query they read is refused above, so a clause over it would read no row
108 clauses converted, 7 statements refused
Declare
CURSOR CurSO IS
SELECT SOH_Id, SOH_Loc_Code, SOH_Txn_Code, SOH_No, SOH_SMan_Code, SOH_Cust_Code, SOH_Disc_Perc,
SOH_Disc_Amt, SOI_Item_Code Item_Code, Item_Name, SOI_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose,
Floor((Nvl(SOI_REV_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) - (Nvl(SOI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))/UOM_Max_Loose) Qty,
(Nvl(SOI_REV_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))-
(Floor((Nvl(SOI_REV_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) - (Nvl(SoI_Inv_Qty_BU,0) + Nvl(SoI_Dn_Qty_Bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
Floor((Nvl(SOI_REV_FOC_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0))) /UOM_Max_Loose) foc_Qty,
(Nvl(SOI_REV_FOC_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))-
(Floor((Nvl(SOI_REV_FOC_QTY * UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0) - (Nvl(soi_inv_foc_qty_bu,0) + Nvl(soi_dn_foc_qty_bu,0)))/UOM_Max_Loose) * UOM_Max_Loose) foc_Loose,
SOI_Rate Rate, SOI_Disc_Perc Disc_Perc, SOI_Disc_Amt Disc_Amt, SOI_Id Item_Id,
soi_ref_item_code, soi_item_alt_name, --- added by prem (06/11/2013) ---
SoI_Loc_Fm,SoI_Batch,Soi_Exp_Dt, SoI_Prom_Item_Id, Item_Serial_Status,Soi_Tndr_Doc_Item_Id,SoH_Tcs,Soi_Item_Desc
FROM M_UOM, M_Item, T_SO_Item, T_SO_Head
WHERE SOI_SOH_Id = SOH_Id
AND Item_Code = SOI_Item_Code
AND UOM_Code = SOI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SOH_Comp_Code = :Global.Company
AND SOH_Cust_Code = :InvH_Cust_Code
AND SoH_Loc_Code =:Invh_Loc_Code
And SoH_Sman_Code = :InvH_Sman_Code --Added by Mojish 19/05/14
AND SOH_Load_Status = 'N'
AND (SOH_APPROVAL_STATUS ='F' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL'),'N') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc,T_Wpl_Item Where WPLH_Id =Wplrd_Wplh_Id And Wpli_Wplh_Id(+)=Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F' and Nvl(wpli_Status,'N') ='F')) -- added item outer join dipu 19-JUL-18
-- AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')))--
Order By SoI_Id;
CURSOR CurDN IS
SELECT DNH_Id, DNH_Loc_Code, DNH_Txn_Code, DNH_No, DNH_SMan_Code, DNH_Cust_Code, DNH_Disc_Perc,
DNH_Disc_Amt,DNI_Plu_Code,
DNI_Item_Code Item_Code, Item_Name, DNI_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose,Dni_Remarks,
Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/UOM_Max_Loose) Qty,
(Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))-
(Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
Floor((Nvl(DNI_Foc_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Foc_Loose, 0) - Nvl(DNI_Inv_FOC_Qty_BU, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))/UOM_Max_Loose) FOC_Qty,
(Nvl(DNI_Foc_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Foc_Loose, 0) - Nvl(DNI_Inv_FOC_Qty_BU, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))-
(Floor((Nvl(DNI_Foc_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Foc_Loose, 0) - Nvl(DNI_Inv_FOC_Qty_BU, 0) - Nvl(Dni_Dnret_Foc_Qty_Bu,0))/UOM_Max_Loose) * UOM_Max_Loose) FOC_Loose,
DNI_Rate Rate, DNI_Disc_Perc Disc_Perc, /*0 commented on 07-04-2013*/Dni_Disc_Amt Disc_Amt, DNI_Id Item_Id,
dni_ref_item_code,dni_item_alt_name --- added by prem(06/11/2013) ---
FROM M_UOM, M_Item,/*M_Item_Plu, Commented by dipu on 08-09-14*/ T_DN_Item, T_DN_Head
WHERE DNI_DNH_Id = DNH_Id
AND Item_Code = DNI_Item_Code
--AND ItemPlu_Item_Code = Item_code Commented by dipu on 08-09-14
AND UOM_Code = DNI_UOM_Code
--AND ItemPlu_Uom_Code = Uom_Code Commented by dipu on 08-09-14
--AND Nvl(DNI_Qty*UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - (Nvl(DNI_Inv_Qty_BU, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) > 0
And (Nvl(Dni_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0)) + (Nvl(Dni_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0)) - (Nvl(Dni_Inv_Qty_Bu, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) + (Nvl(Dni_Inv_Foc_Qty_Bu, 0) + Nvl(Dni_Dnret_Foc_Qty_Bu,0)) > 0
AND DNH_Comp_Code = :Global.Company
AND DNH_Loc_Code =:Invh_Loc_Code
AND DNH_Cust_Code = :InvH_Cust_Code;
--Added By dipu on 16/09/14 for validate delivery return
--AND (Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/UOM_Max_Loose) >0
--OR (Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))-
-- (Floor((Nvl(DNI_Qty * UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) - Nvl(Dni_Dnret_Qty_Bu,0))/UOM_Max_Loose) * UOM_Max_Loose)>0)
-----
--AND DNH_Load_Status = 'N';
CURSOR CurDN2 IS
SELECT DNH_Id, DNH_Loc_Code, DNH_Txn_Code, DNH_No, DNH_SMan_Code
FROM M_UOM,T_DN_Head,T_DN_Item /*Item Added By Faisal On 21/02/17*/
WHERE DNI_DNH_Id = DNH_Id
AND UOM_Code = DNI_UOM_Code
-- AND Nvl(DNI_Qty*UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - (Nvl(DNI_Inv_Qty_BU, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) > 0
And (Nvl(Dni_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0)) + (Nvl(Dni_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0)) - (Nvl(Dni_Inv_Qty_Bu, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) + (Nvl(Dni_Inv_Foc_Qty_Bu, 0) + Nvl(Dni_Dnret_Foc_Qty_Bu,0)) > 0
AND DNH_Comp_Code = :Global.Company
AND DNH_Loc_Code =:Invh_Loc_Code
AND DNH_Cust_Code = :InvH_Cust_Code
AND Nvl(DNH_Load_Status,'N') = 'N'--UNcommented by DIPU ON 14-JUL-2018
GROUP BY DNH_Id, DNH_Loc_Code, DNH_Txn_Code, DNH_No, DNH_SMan_Code;--added by DIPU ON 14-JUL-2018
/*
CURSOR CurSo2 IS
SELECT SoH_Id, SoH_Loc_Code, SoH_Txn_Code, SoH_No, SoH_SMan_Code
FROM T_So_Head
WHERE SoH_Comp_Code = :Global.Company
AND SoH_Loc_Code =:Invh_Loc_Code
AND SoH_Cust_Code = :InvH_Cust_Code
AND Nvl(SoH_Load_Status,'N') = 'N'
AND (SOH_APPROVAL_STATUS ='F' OR Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL') ='N')
AND SOH_Valid_Till >= :InvH_Dt;
*/
CURSOR CurSo2 IS
SELECT distinct SOH_Id, SOH_Loc_Code, SOH_Txn_Code, SOH_No, SOH_SMan_Code
FROM M_UOM, T_SO_Item, T_SO_Head
WHERE SOI_SOH_Id = SOH_Id
AND UOM_Code = SOI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SOH_Comp_Code = :Global.Company
AND SOH_Cust_Code = :InvH_Cust_Code
AND SoH_Loc_Code =:Invh_Loc_Code
And SoH_Sman_Code = :InvH_Sman_Code --Added by Mojish 19/05/14
AND SOH_Load_Status = 'N'
AND (SOH_APPROVAL_STATUS ='F' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL'),'N') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc,T_Wpl_Item Where WPLH_Id =Wplrd_Wplh_Id And Wpli_Wplh_Id(+)=Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F' and Nvl(wpli_Status,'N') ='F')); -- added item outer join dipu 19-JUL-18
--AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N'))); -- commented dipu 19-JUL-18
--Service
CURSOR CurCs IS
SELECT CsH_Id, CsH_Loc_Code, CsH_Txn_Code, CsH_No,CsH_Cust_Code,
CsD_Item_Code Item_Code, Item_Name, CsD_UOM_Code UOM_Code,
UOM_Max_Loose Max_Loose, Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0))) /UOM_Max_Loose) Qty,
(Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))-
(Floor((Nvl(CsD_Qty * UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)))/UOM_Max_Loose) * UOM_Max_Loose) Loose,
CsD_Rate, 0 Disc_Perc, 0 Disc_Amt, CsD_Id Item_Id,CsD_Remarks
FROM M_UOM, M_Item, T_Cust_Service_Detail, T_Cust_Service_Head
WHERE CsD_CsH_Id = CsH_Id
AND Item_Code = CsD_Item_Code
AND UOM_Code = CsD_UOM_Code
AND Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0
AND CsH_Comp_Code = :Global.Company
AND CSH_Loc_Code =:Invh_Loc_Code
AND CsH_Cust_Code =:InvH_Cust_Code
AND Nvl(CsH_Load_Status,'N') ='N';
CURSOR CurCS2 IS
SELECT CSH_Id, CSH_Loc_Code, CSH_Txn_Code, CSH_No
FROM T_Cust_Service_Head
WHERE CSH_Comp_Code = :Global.Company
AND CSH_Loc_Code =:Invh_Loc_Code
AND CSH_Cust_Code = :InvH_Cust_Code
AND Nvl(CSH_Load_Status,'N') = 'N'
And Exists (Select 'x' From T_Cust_Service_Detail, m_Uom
Where CsD_CsH_Id = Csh_Id And CsD_Uom_Code = Uom_Code
And Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0);
v_Count Number;
v_Loc_Code VarChar2(10);
v_Txn_Code VarChar2(10);
v_Doc_No Number;
v_Txn_Type VarChar2(10);
v_Alert Number := Alert_Button2;
v_Ref_Doc_Id Number;
v_Cust_Code VarChar2(10);
v_HDisc_Perc Number;
v_HDisc_Amt Number;
v_PLU_Code VarChar2(20);
v_Item_Code VarChar2(10);
v_Item_Name VarChar2(100);
V_Remarks VarChar2(100);
v_UOM_Code VarChar2(10);
v_Max_Loose Number;
v_Qty_BU Number;
v_Qty Number;
v_Loose Number;
v_Rate Number;
v_Disc_Perc Number;
v_Disc_Amt Number;
v_Ref_Item_Id Number;
v_SMan_Code VarChar2(10);
v_Rem Varchar2(100);
v_Load_Status Char(1);
v_Foc_Qty Number;
v_Foc_Ls Number;
v_Init Char(1) := 'N';
v_Old_ID Number := 0;
v_ref_Item_Code VarChar2(10);
v_Loc_Fm Varchar2(10);
v_Batch Varchar2(20);
v_Exp_Dt Date;
v_Item_alt_Name VarChar2(100);
V_So_Tndr_Cnt Number;
V_Pl_Comp_Cnt Number;
v_csd_Remarks Varchar2(100);
v_Tcs Varchar2(2000);
v_Item_Desc Varchar2(1000);
Begin
If :system.record_status <> 'QUERY' THEN
If :INVH_Sman_Code Is Not Null THEN
SELECT Count(*) INTO v_Count
FROM M_Customer_Salesman
WHERE Custs_Comp_Code = :Global.Company
AND Custs_Divn_Code = :InvH_Divn_COde
AND Custs_SMan_Code = :InvH_SMan_Code
AND Custs_Cust_Code = :InvH_Cust_Code;
If v_Count = 0 Then
Show_Message('Inv_Alert', 'Salesman not allowed for Customer!');
Raise Form_Trigger_Failure;
End If;
if :RADIO_DOC_SELECTION = 'DN' then
hide_window('INVH_DOC_SELECTION');
SELECT Count(*) INTO v_Count
FROM M_UOM, M_Item, T_DN_Item, T_DN_Head
WHERE DNI_DNH_Id = DNH_Id
AND Item_Code = DNI_Item_Code
AND UOM_Code = DNI_UOM_Code
-- AND Nvl(DNI_Qty*UOM_Max_Loose, 0) + Nvl(DNI_Loose, 0) - Nvl(DNI_Inv_Qty_BU, 0) > 0
And (Nvl(Dni_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Loose, 0)) + (Nvl(Dni_Foc_Qty*Uom_Max_Loose, 0) + Nvl(Dni_Foc_Loose, 0)) - (Nvl(Dni_Inv_Qty_Bu, 0) + Nvl(Dni_Dnret_Qty_Bu,0)) + (Nvl(Dni_Inv_Foc_Qty_Bu, 0) + Nvl(Dni_Dnret_Foc_Qty_Bu,0)) > 0
AND DNH_Comp_Code = :Global.Company
AND DNH_Loc_Code =:Invh_Loc_Code
AND DNH_Cust_Code = :InvH_Cust_Code
AND DNH_Load_Status = 'N'
AND DNH_Loc_Code = :InvH_Loc_Code;
If Nvl(v_Count,0) > 0 Then
--clear_block('T_Inv_Ref_Doc');
--clear_block('T_Inv_Item');
Set_Alert_Property('CONF_LOAD_ALERT', Alert_Message_Text, 'Please select load type for all pending Delivery Notes');--Added by Janisha on 06-04-2013
v_Alert := Show_Alert('CONF_LOAD_ALERT');
If v_Alert = Alert_Button1 Then
Go_Block('T_Inv_Item');
Open CurDN;
Loop
Fetch CurDN INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Plu_Code,
v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, V_Remarks,
v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,
v_ref_item_code,v_item_alt_name;--- added by prem(06/11/2013) ---
EXIT WHEN CurDN%NotFound;
If v_Old_Id <> v_Ref_Doc_Id Then
Go_BLock('T_Inv_Ref_Doc');
:Ref_Loc_Code := v_Loc_Code;
:InvH_Ref_Txn_Code := v_Txn_Code;
:Ref_No := v_Doc_No;
:InvRD_DNH_Id := v_Ref_Doc_Id;
:InvRD_Close_SO := 'Y';
:Ref_SMan_Code := v_SMan_Code;
:FLAG := 'Y';
Next_Record;
v_Old_Id := v_Ref_Doc_Id;
Go_Block('T_Inv_Item');
--Last_Record;
End If;
/* Commented by faisal for avoiding check stock for loaded item */
/*
v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null);
If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then
If v_Qty_BU <= 0 Then
v_Qty := 0;
v_Loose := 0;
ElsIf v_Qty_BU < 1 Then
v_Qty := v_Qty_BU;
v_Loose := 0;
Else
v_Qty := Floor(v_Qty_BU/v_Max_Loose);
v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0);
End If;
End If;
*/
If :INVH_CUST_CODE Is Not Null Then
Select Count(*) Into V_Pl_Comp_Cnt From M_Customer_Company Where Custcomp_Comp_Code=:Global.Company And Custcomp_Cust_Code=:INVH_CUST_CODE;
If V_Pl_Comp_Cnt=1 Then
Select Custcomp_Plh_Code Into :InvI_Plu_Code From M_Customer_Company Where Custcomp_Comp_Code=:Global.Company And Custcomp_Cust_Code=:INVH_CUST_CODE;
End If;
End If;
:InvI_Loaded_Fm_DN :='Y';
:Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); --Added By Mojish 01/07/14
:InvI_DN_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:Invi_Remarks := V_Remarks;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:Invi_Foc_Qty :=v_Foc_Qty;
:Invi_Foc_Loose := v_Foc_Ls;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:invi_ref_item_code := v_ref_item_code;--- added by prem(06/11/2013) ---
:invi_item_alt_name := v_item_alt_name;--- added by prem(06/11/2013) ---
:Ref_Doc_Item := 'Loaded';
:InvI_Loaded_Fm_DN :='Y';
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
Next_Record;
End Loop;
Close CurDN;
first_record;
ElsIf v_Alert = Alert_Button2 Then
GO_ITEM('REF_LOC_CODE');
--Dn_load
Open CurDN2;
Loop
Fetch CurDN2 INTO :InvRD_DNH_Id, :Ref_Loc_Code, :InvH_Ref_Txn_Code, :Ref_No, :Ref_SMan_Code ;
EXIT WHEN CurDN2%NotFound;
Next_Record;
-- Go_BLock('T_Inv_Ref_Doc');
-- :Ref_Loc_Code := v_Loc_Code;
-- :InvH_Ref_Txn_Code := v_Txn_Code;
-- :Ref_No := v_Doc_No;
-- :Ref_SMan_Code := v_SMan_Code;
End Loop;
Close CurDN2;
first_record;
--Dn_Load End
ElsIf v_Alert = Alert_Button3 Then
Go_Block('T_Inv_Item');
--Exit_Form;
End If;
else
show_message('INV_ALERT','There is no documents to load');
End If;
--Disable Updation in Items in case of DN otherwise check sales orders
If v_Ref_Item_Id Is Not Null Then
Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
end if;
--Else
ELSif :RADIO_DOC_SELECTION = 'SO' then
hide_window('INVH_DOC_SELECTION');
SELECT Count(*) INTO v_Count
FROM M_UOM, M_Item, T_SO_Item, T_SO_Head
WHERE SOI_SOH_Id = SOH_Id
AND Item_Code = SOI_Item_Code
AND UOM_Code = SOI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SOH_Comp_Code = :Global.Company
AND SOH_Cust_Code = :InvH_Cust_Code
AND SoH_Loc_Code =:Invh_Loc_Code
AND Nvl(SoH_Load_Status,'N') = 'N'
AND (SOH_APPROVAL_STATUS ='F' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL'),'N') ='N')
--AND (NVL(SOH_WPL_STATUS,'N') ='Y' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'Y') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') = 'F'
AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')));
If Nvl(v_Count,0) > 0 Then
Set_Alert_Property('CONF_LOAD_ALERT', Alert_Message_Text, 'Please select load type for all pending Sales Orders');
v_Alert := Show_Alert('CONF_LOAD_ALERT');
If v_Alert = Alert_Button1 Then
-----Added By Dipu on 25-08-14 for load maximum one tender
Select Count (*) Into V_So_Tndr_Cnt From (Select Distinct Soh_Tndr_Doc_Id FROM M_UOM, M_Item, T_SO_Item, T_SO_Head
WHERE SOI_SOH_Id = SOH_Id
AND Item_Code = SOI_Item_Code
AND UOM_Code = SOI_UOM_Code
AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) +
Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0
AND SOH_Comp_Code = :Global.Company
AND SOH_Cust_Code = :InvH_Cust_Code
AND SoH_Loc_Code =:Invh_Loc_Code
And SoH_Sman_Code = :InvH_Sman_Code
AND SOH_Load_Status = 'N'
AND (SOH_APPROVAL_STATUS ='F' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL'),'N') ='N')
AND SOH_Valid_Till >= :InvH_Dt
AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR
EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id
AND Nvl(WPLH_Status,'N') ='F'
AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N'))));
If V_So_Tndr_Cnt<=1 Then -----Added By Dipu on 25-08-14 for load maximum one tender
Open CurSO;
Loop
Fetch CurSO INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose,v_foc_Qty, v_foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,
v_ref_Item_Code, v_Item_alt_Name,v_Loc_Fm,v_Batch,v_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl,:Invi_Tndr_Doc_Item_Id,v_Tcs,v_Item_Desc ;--- added by prem (06/11/2013) ---
EXIT WHEN CurSO%NotFound;
If v_Old_Id <> v_Ref_Doc_Id Then
Go_BLock('T_Inv_Ref_Doc');
:Ref_Loc_Code := v_Loc_Code;
:InvH_Ref_Txn_Code := v_Txn_Code;
:Ref_No := v_Doc_No;
:InvRD_SOH_Id := v_Ref_Doc_Id;
:InvRD_Close_SO := 'Y';
:Ref_SMan_Code := v_SMan_Code;
:FLAG := 'Y';
:InvH_Tcs := v_Tcs;
Next_Record;
v_Old_Id := v_Ref_Doc_Id;
/*If Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Cr_Limit, 0) AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then
Show_Message('Inv_Alert', 'Company Credit Limit Exceeded!');
Raise Form_Trigger_Failure;
ElsIf Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Warn_Limit, 0) Then
-- Show_Message('Inv_Alert', 'Nearing Company Credit!');
NULL;
End If;
--Division Level
If :Invh_Divn_Code is Not Null and Nvl(:Divn_Cr_Limit, 0) > 0 AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B'Then
If Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Cr_Limit, 0) Then
Show_Message('Inv_Alert', 'Division Credit Limit Exceeded!');
Raise Form_Trigger_Failure;
ElsIf Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Warn_Limit, 0) AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then
Show_Message('Inv_Alert', 'Nearing Division Credit Limit!');
End If;
End If;*/ --Commented by Mojish 26/06/14 Temp Credit limit exception not handled
Validate_Invoice; --Added By Mojish 26/06/14
Go_Block('T_Inv_Item');
Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_True);
End If;
if :Frm_Validate_Stock = 'Y' then
v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null);
If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then
If v_Qty_BU <= 0 Then
v_Qty := 0;
v_Loose := 0;
ElsIf v_Qty_BU < 1 Then
v_Qty := v_Qty_BU;
v_Loose := 0;
Else
v_Qty := Floor(v_Qty_BU/v_Max_Loose);
v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0);
End If;
End If;
end if;
:Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); --Added By Mojish 01/07/14
:InvI_SO_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Plu_Code := v_Plu_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_foc_Qty := v_foc_Qty;
:InvI_foc_Loose := v_foc_Ls;
:InvI_Rate := v_Rate;
:InvI_Disc_Perc := v_Disc_Perc;
:InvI_Disc_Amt := v_Disc_Amt;
:InvI_ref_Item_Code := v_ref_Item_Code;
:invi_item_alt_name := v_Item_alt_Name;
:Ref_Doc_Item := 'Loaded';
:InvI_Id := Fn_Get_Next_Id('Inv_Item');
:InvI_Cr_User := :Global.User;
:InvI_Cr_Dt := :Frm_Time_Zone;
:InvI_Loc_Fm := v_Loc_Fm;
:InvI_Batch := v_Batch;
:InvI_Exp_Dt := v_Exp_Dt;
:Invi_item_Desc := v_Item_Desc;
If Nvl(:InvI_Prom_Item_Id, 0) > 0 Then --Added by Mojish 10/06/14
Select PromH_No, PromH_Id Into :PromH_No, :PromH_Id From T_Prom_Head, T_Prom_Item
Where PromI_PromH_Id = PromH_Id And PromH_Comp_Code = :Global.Company
And PromI_Id = :InvI_Prom_Item_Id;
End If;
Next_Record;
End Loop;
Close CurSO;
first_record;
Else -----Added By Dipu on 25-08-14 for load maximum one tender
Show_Message('Inv_Alert', 'Please select the required SO,More than one tender can not load!');
v_Alert:= Alert_Button2;
--Raise Form_Trigger_Failure;
End If;
ElsIf v_Alert = Alert_Button2 Then
Go_BLock('T_Inv_Ref_Doc');
GO_ITEM('REF_LOC_CODE');
--Dn_load
Open CurSO2;
Loop
Fetch CurSO2 INTO :InvRD_SoH_Id, :Ref_Loc_Code, :InvH_Ref_Txn_Code, :Ref_No, :Ref_SMan_Code ;
If Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Cr_Limit, 0) AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then
Show_Message('Inv_Alert', 'Company Credit Limit Exceeded!');
Raise Form_Trigger_Failure;
ElsIf Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Warn_Limit, 0) Then
-- Show_Message('Inv_Alert', 'Nearing Company Credit!');
NULL;
End If;
--Division Level
If :Invh_Divn_Code is Not Null and Nvl(:Divn_Cr_Limit, 0) > 0 AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then
If Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Cr_Limit, 0) Then
Show_Message('Inv_Alert', 'Division Credit Limit Exceeded!');
Raise Form_Trigger_Failure;
NULL;
ElsIf Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Warn_Limit, 0) Then
Show_Message('Inv_Alert', 'Nearing Division Credit Limit!');
End If;
End If;
EXIT WHEN CurSo2%NotFound;
Next_Record;
-- Go_BLock('T_Inv_Ref_Doc');
-- :Ref_Loc_Code := v_Loc_Code;
-- :InvH_Ref_Txn_Code := v_Txn_Code;
-- :Ref_No := v_Doc_No;
-- :Ref_SMan_Code := v_SMan_Code;
End Loop;
Close CurSO2;
first_record;
ElsIf v_Alert = Alert_Button3 Then
Go_Block('T_Inv_Item');
--Exit_Form;
End If;
else
show_message('INV_ALERT','There is no documents to load');
End If;
If v_Ref_Item_Id Is Not Null Then
/*Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);*/
/*
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
Set_Item_Property('InvI_Item_Code', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Item_Code', Update_Allowed, Property_False);
Set_Item_Property('InvI_Uom_Code', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Uom_Code', Update_Allowed, Property_False);
Set_Item_Property('InvI_Qty', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Qty', Update_Allowed, Property_False);
Set_Item_Property('InvI_Loose', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Loose', Update_Allowed, Property_False);
Set_Item_Property('InvI_Rate', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Rate', Update_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Perc', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Perc', Update_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Amt', Insert_Allowed, Property_False);
Set_Item_Property('InvI_Disc_Amt', Update_Allowed, Property_False);
*/
disable_details;
end if;
Elsif :RADIO_DOC_SELECTION = 'SB' then
hide_window('INVH_DOC_SELECTION');
SELECT Count(*) INTO v_Count
FROM M_UOM, M_Item, T_Cust_Service_Detail, T_Cust_Service_Head
WHERE CsD_CsH_Id = CsH_Id
AND Item_Code = CsD_Item_Code
AND UOM_Code = CsD_UOM_Code
AND Nvl(CsD_Qty*UOM_Max_Loose, 0) + Nvl(CsD_Loose, 0) - (Nvl(CsD_Inv_Qty_BU,0)) > 0
AND CsH_Comp_Code = :Global.Company
AND CSH_Loc_Code =:Invh_Loc_Code
AND CsH_Cust_Code =:InvH_Cust_Code
AND Nvl(CsH_Load_Status,'N') ='N';
If Nvl(v_Count,0) > 0 Then
Set_Alert_Property('CONF_LOAD_ALERT', Alert_Message_Text, 'Please select load type for all pending Service Bills');
v_Alert := Show_Alert('CONF_LOAD_ALERT'); --03-04-2013
If v_Alert = Alert_Button1 Then
Open CurCs;
Loop
Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose,
v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,v_csd_Remarks;
EXIT WHEN CurCs%NotFound;
If v_Old_Id <> v_Ref_Doc_Id Then
Go_BLock('T_Inv_Ref_Doc');
:Ref_Loc_Code := v_Loc_Code;
:InvH_Ref_Txn_Code := v_Txn_Code;
:Ref_No := v_Doc_No;
:InvRD_CsH_Id := v_Ref_Doc_Id;
:FLAG := 'Y';
Next_Record;
v_Old_Id := v_Ref_Doc_Id;
--Division Level
Go_Block('T_Inv_Item');
Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_True);
End If;
v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null);
If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then
If v_Qty_BU <= 0 Then
v_Qty := 0;
v_Loose := 0;
ElsIf v_Qty_BU < 1 Then
v_Qty := v_Qty_BU;
v_Loose := 0;
Else
v_Qty := Floor(v_Qty_BU/v_Max_Loose);
v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0);
End If;
End If;
:InvI_CS_Doc_Item_Id := v_Ref_Item_Id;
:Old_Item_Code := v_Item_Code;
:Old_UOM_Code := v_UOM_Code;
:InvI_Item_Code := v_Item_Code;
:Item_Name := v_Item_Name;
:InvI_UOM_Code := v_UOM_Code;
:Max_Loose := v_Max_Loose;
:InvI_Qty := v_Qty;
:InvI_Loose := v_Loose;
:InvI_Rate := v_Rate;
:InvI_Remarks :=v_csd_Remarks;
:Ref_Doc_Item := 'Loaded';
Next_Record;
End Loop;
Close CurCs;
first_record;
ElsIf v_Alert = Alert_Button2 Then
Go_BLock('T_Inv_Ref_Doc');
GO_ITEM('REF_LOC_CODE');
Open CurCs2;
Loop
Fetch CurCs2 INTO :InvRD_CsH_Id, :Ref_Loc_Code, :InvH_Ref_Txn_Code, :Ref_No ;
EXIT WHEN CurCs2%NotFound;
Next_Record;
End Loop;
Close CurCs2;
first_record;
ElsIf v_Alert = Alert_Button3 Then
Go_Block('T_Inv_Item');
End If;
else
show_message('INV_ALERT','There is no documents to load');
End If;
If v_Ref_Item_Id Is Not Null Then
Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False);
Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False);
end if;
ElsIf :RADIO_DOC_SELECTION = 'TNDR' Then --Added By Mojish 02/04/14
If Nvl(Fn_Get_Stk_Txn_Param(:InvH_Txn_Code,:Global.Company, 'INV_EN_TENDER_REF'), 'F') = 'N' Then
Load_Ref_Tndr;
Else
Show_Message('Inv_Alert', 'Tender is not enabled!');
End If;
End If;
--Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_False);
Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_True);
Else
Show_Message('Inv_Alert', 'Salesman Not Found!');
End If;
End If;
End;on press of DOC_SELECTION_OK: from CUSTOMER_SALESMAN(INVH_CUST_CODE, INVH_DIVN_CODE, INVH_SMAN_CODE) when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE) # load-fmb-invoice-t-inv-head-doc-selection-ok-press-0 from UOM_1(INVH_CUST_CODE, INVH_LOC_CODE) when ((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN') # load-fmb-invoice-t-inv-head-doc-selection-ok-press-1 from UOM_2(INVH_CUST_CODE, INVH_DT, INVH_LOC_CODE) when (((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO') # load-fmb-invoice-t-inv-head-doc-selection-ok-press-2 from UOM_4(INVH_CUST_CODE, INVH_LOC_CODE) when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB') # load-fmb-invoice-t-inv-head-doc-selection-ok-press-4 exists of CUSTOMER_SALESMAN else "Salesman not allowed for Customer!" when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE) show alert CONF_LOAD_ALERT with 'Please select load type for all pending Delivery Notes' when (((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0) go to T_INV_ITEM when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and (ANSWER.BUTTON = '1') first record of T_INV_HEAD when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and (ANSWER.BUTTON = '1') go to REF_LOC_CODE when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') append rows to T_INV_REF_DOC in loop-fmb-invoice-t-inv-head-doc-selection-ok-0 when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') first record of T_INV_HEAD when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') go to T_INV_ITEM when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and (nvl(UOM_1.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and not (ANSWER.BUTTON = '2')) and (ANSWER.BUTTON = '3') warn "There is no documents to load" when (((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and (RADIO_DOC_SELECTION = 'DN')) and not (nvl(UOM_1.COUNT, 0) > 0) show alert CONF_LOAD_ALERT with 'Please select load type for all pending Sales Orders' when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and (nvl(UOM_2.COUNT, 0) > 0) go to T_INV_REF_DOC when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and (nvl(UOM_2.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') go to REF_LOC_CODE when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and (nvl(UOM_2.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') first record of T_INV_HEAD when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and (nvl(UOM_2.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') go to T_INV_ITEM when (((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and (nvl(UOM_2.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and not (ANSWER.BUTTON = '2')) and (ANSWER.BUTTON = '3') warn "There is no documents to load" when ((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and (RADIO_DOC_SELECTION = 'SO')) and not (nvl(UOM_2.COUNT, 0) > 0) show alert CONF_LOAD_ALERT with 'Please select load type for all pending Service Bills' when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0) first record of T_INV_HEAD when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and (ANSWER.BUTTON = '1') go to T_INV_REF_DOC when (((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') go to REF_LOC_CODE when (((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') append rows to T_INV_REF_DOC in loop-fmb-invoice-t-inv-head-doc-selection-ok-1 when (((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') first record of T_INV_HEAD when (((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and (ANSWER.BUTTON = '2') go to T_INV_ITEM when ((((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and (nvl(UOM_4.COUNT, 0) > 0)) and not (ANSWER.BUTTON = '1')) and not (ANSWER.BUTTON = '2')) and (ANSWER.BUTTON = '3') warn "There is no documents to load" when (((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and (RADIO_DOC_SELECTION = 'SB')) and not (nvl(UOM_4.COUNT, 0) > 0) call LOAD_REF_TNDR() when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and not (RADIO_DOC_SELECTION = 'SB')) and (RADIO_DOC_SELECTION = 'TNDR')) and (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N') warn "Tender is not enabled!" when ((((((SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE)) and not (RADIO_DOC_SELECTION = 'DN')) and not (RADIO_DOC_SELECTION = 'SO')) and not (RADIO_DOC_SELECTION = 'SB')) and (RADIO_DOC_SELECTION = 'TNDR')) and not (FN_GET_STK_TXN_PARAM(INVH_TXN_CODE, GLOBAL.COMPANY, 'INV_EN_TENDER_REF') = 'N') state enable PB_REF_LOAD when (SYSTEM.RECORD_STATUS <> 'QUERY') and is_filled(INVH_SMAN_CODE) warn "Salesman Not Found!" when (SYSTEM.RECORD_STATUS <> 'QUERY') and not is_filled(INVH_SMAN_CODE) # 12 statements did not convert.# line 199 # hide_window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 225 # Loop # Fetch CurDN INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Plu_Code, # v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, V_Remarks, # v_Qty, v_Loose,v_Foc_Qty,v_Foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id, # v_ref_item_code,v_item_alt_name; # # EXIT WHEN CurDN%NotFound; # # If v_Old_Id <> v_Ref_Doc_Id Then # Go_BLock('T_Inv_Ref_Doc'); # :Ref_Loc_Code := v_Loc_Code; # :InvH_Ref_Txn_Code := v_Txn_Code; # :Ref_No := v_Doc_No; # :InvRD_DNH_Id := v_Ref_Doc_Id; # :InvRD_Close_SO := 'Y'; # :Ref_SMan_Code := v_SMan_Code; # :FLAG := 'Y'; # # Next_Record; # # v_Old_Id := v_Ref_Doc_Id; # Go_Block('T_Inv_Item'); # # End If; # # # # If :INVH_CUST_CODE Is Not Null Then # Select Count(*) Into V_Pl_Comp_Cnt From M_Customer_Company Where Custcomp_Comp_Code=:Global.Company And Custcomp_Cust_Code=:INVH_CUST_CODE; # If V_Pl_Comp_Cnt=1 Then # Select Custcomp_Plh_Code Into :InvI_Plu_Code From M_Customer_Company Where Custcomp_Comp_Code=:Global.Company And Custcomp_Cust_Code=:INVH_CUST_CODE; # End If; # End If; # :InvI_Loaded_Fm_DN :='Y'; # :Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); # :InvI_DN_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :Invi_Remarks := V_Remarks; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :Invi_Foc_Qty :=v_Foc_Qty; # :Invi_Foc_Loose := v_Foc_Ls; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :invi_ref_item_code := v_ref_item_code; # :invi_item_alt_name := v_item_alt_name; # :Ref_Doc_Item := 'Loaded'; # :InvI_Loaded_Fm_DN :='Y'; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # # Next_Record; # End Loop; # reason: it moves to T_INV_REF_DOC and T_INV_ITEM inside the loop, so it acts on two blocks in one body and a collection operation names one collection# line 330 # If v_Ref_Item_Id Is Not Null Then # Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False); # Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False); # Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False); # End If; # reason: the guard reads the local V_REF_ITEM_ID, which a branch above it writes on one path only, so what it holds here depends on which path ran# line 337 # hide_window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 384 # Loop # Fetch CurSO INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_SMan_Code, v_Cust_Code, v_HDisc_Perc, v_HDisc_Amt, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose,v_foc_Qty, v_foc_Ls, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id, # v_ref_Item_Code, v_Item_alt_Name,v_Loc_Fm,v_Batch,v_Exp_Dt, :InvI_Prom_Item_Id, :En_Sl,:Invi_Tndr_Doc_Item_Id,v_Tcs,v_Item_Desc ; # # EXIT WHEN CurSO%NotFound; # # If v_Old_Id <> v_Ref_Doc_Id Then # Go_BLock('T_Inv_Ref_Doc'); # :Ref_Loc_Code := v_Loc_Code; # :InvH_Ref_Txn_Code := v_Txn_Code; # :Ref_No := v_Doc_No; # :InvRD_SOH_Id := v_Ref_Doc_Id; # :InvRD_Close_SO := 'Y'; # :Ref_SMan_Code := v_SMan_Code; # :FLAG := 'Y'; # :InvH_Tcs := v_Tcs; # Next_Record; # # v_Old_Id := v_Ref_Doc_Id; # # # # Validate_Invoice; # # Go_Block('T_Inv_Item'); # Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_True); # End If; # # if :Frm_Validate_Stock = 'Y' then # v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null); # # If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then # If v_Qty_BU <= 0 Then # v_Qty := 0; # v_Loose := 0; # ElsIf v_Qty_BU < 1 Then # v_Qty := v_Qty_BU; # v_Loose := 0; # Else # v_Qty := Floor(v_Qty_BU/v_Max_Loose); # v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0); # End If; # End If; # end if; # # :Prom_Enabled := Nvl(:Frm_En_Sales_Promo, 'N'); # :InvI_SO_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Plu_Code := v_Plu_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_foc_Qty := v_foc_Qty; # :InvI_foc_Loose := v_foc_Ls; # :InvI_Rate := v_Rate; # :InvI_Disc_Perc := v_Disc_Perc; # :InvI_Disc_Amt := v_Disc_Amt; # :InvI_ref_Item_Code := v_ref_Item_Code; # :invi_item_alt_name := v_Item_alt_Name; # :Ref_Doc_Item := 'Loaded'; # :InvI_Id := Fn_Get_Next_Id('Inv_Item'); # :InvI_Cr_User := :Global.User; # :InvI_Cr_Dt := :Frm_Time_Zone; # :InvI_Loc_Fm := v_Loc_Fm; # :InvI_Batch := v_Batch; # :InvI_Exp_Dt := v_Exp_Dt; # :Invi_item_Desc := v_Item_Desc; # If Nvl(:InvI_Prom_Item_Id, 0) > 0 Then # Select PromH_No, PromH_Id Into :PromH_No, :PromH_Id From T_Prom_Head, T_Prom_Item # Where PromI_PromH_Id = PromH_Id And PromH_Comp_Code = :Global.Company # And PromI_Id = :InvI_Prom_Item_Id; # End If; # Next_Record; # End Loop; # reason: it moves to T_INV_REF_DOC and T_INV_ITEM inside the loop, so it acts on two blocks in one body and a collection operation names one collection# line 492 # Loop # Fetch CurSO2 INTO :InvRD_SoH_Id, :Ref_Loc_Code, :InvH_Ref_Txn_Code, :Ref_No, :Ref_SMan_Code ; # # If Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Cr_Limit, 0) AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then # Show_Message('Inv_Alert', 'Company Credit Limit Exceeded!'); # Raise Form_Trigger_Failure; # ElsIf Nvl(:Comp_Os, 0) + Nvl(:Invrd_Comp_So_Total,0) > Nvl(:Comp_Warn_Limit, 0) Then # # NULL; # End If; # # # If :Invh_Divn_Code is Not Null and Nvl(:Divn_Cr_Limit, 0) > 0 AND Nvl(:Frm_InvH_Btrn_Flag, 'D') <> 'B' Then # If Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Cr_Limit, 0) Then # Show_Message('Inv_Alert', 'Division Credit Limit Exceeded!'); # Raise Form_Trigger_Failure; # NULL; # ElsIf Nvl(:Divn_Os, 0) + Nvl(:Invrd_Divn_So_Total,0) > Nvl(:Divn_Warn_Limit, 0) Then # Show_Message('Inv_Alert', 'Nearing Division Credit Limit!'); # End If; # End If; # # EXIT WHEN CurSo2%NotFound; # # Next_Record; # # # # # # End Loop; # reason: its body deny, deny, warn beside writing the record it appends, and an append states the values of a row and does nothing else# line 533 # If v_Ref_Item_Id Is Not Null Then # disable_details; # End If; # reason: the guard reads the local V_REF_ITEM_ID, which a branch above it writes on one path only, so what it holds here depends on which path ran# line 557 # hide_window('INVH_DOC_SELECTION'); # reason: HIDE_WINDOW is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to# line 576 # Loop # Fetch CurCs INTO v_Ref_Doc_Id, v_Loc_Code, v_Txn_Code, v_Doc_No, v_Cust_Code, v_Item_Code, v_Item_Name, v_UOM_Code, v_Max_Loose, # v_Qty, v_Loose, v_Rate, v_Disc_Perc, v_Disc_Amt, v_Ref_Item_Id,v_csd_Remarks; # # EXIT WHEN CurCs%NotFound; # If v_Old_Id <> v_Ref_Doc_Id Then # Go_BLock('T_Inv_Ref_Doc'); # :Ref_Loc_Code := v_Loc_Code; # :InvH_Ref_Txn_Code := v_Txn_Code; # :Ref_No := v_Doc_No; # :InvRD_CsH_Id := v_Ref_Doc_Id; # :FLAG := 'Y'; # # Next_Record; # v_Old_Id := v_Ref_Doc_Id; # # Go_Block('T_Inv_Item'); # Set_Item_Property('PB_REF_LOAD', ENABLED, PRoperty_True); # End If; # # v_Qty_BU := Fn_Get_UnConf_Stock(:Global.Company, :InvH_Loc_Code, v_Item_Code, Null); # # If v_Qty_BU < Nvl(v_Qty * v_Max_Loose, 0) + Nvl(v_Loose, 0) Then # If v_Qty_BU <= 0 Then # v_Qty := 0; # v_Loose := 0; # ElsIf v_Qty_BU < 1 Then # v_Qty := v_Qty_BU; # v_Loose := 0; # Else # v_Qty := Floor(v_Qty_BU/v_Max_Loose); # v_Loose := v_Qty_BU - Nvl(v_Qty * v_Max_Loose, 0); # End If; # End If; # # :InvI_CS_Doc_Item_Id := v_Ref_Item_Id; # :Old_Item_Code := v_Item_Code; # :Old_UOM_Code := v_UOM_Code; # :InvI_Item_Code := v_Item_Code; # :Item_Name := v_Item_Name; # :InvI_UOM_Code := v_UOM_Code; # :Max_Loose := v_Max_Loose; # :InvI_Qty := v_Qty; # :InvI_Loose := v_Loose; # :InvI_Rate := v_Rate; # :InvI_Remarks :=v_csd_Remarks; # :Ref_Doc_Item := 'Loaded'; # # Next_Record; # End Loop; # reason: it moves to T_INV_REF_DOC and T_INV_ITEM inside the loop, so it acts on two blocks in one body and a collection operation names one collection# line 647 # If v_Ref_Item_Id Is Not Null Then # Set_Block_Property('T_Inv_ITem', Update_Allowed, Property_False); # Set_Block_Property('T_Inv_ITem', Insert_Allowed, Property_False); # Set_Block_Property('T_Inv_ITem', Delete_Allowed, Property_False); # End If; # reason: the guard reads the local V_REF_ITEM_ID, which a branch above it writes on one path only, so what it holds here depends on which path ran# Select Count (*) Into V_So_Tndr_Cnt From (Select Distinct Soh_Tndr_Doc_Id FROM M_UOM, M_Item, T_SO_Item, T_SO_Head # WHERE SOI_SOH_Id = SOH_Id # AND Item_Code = SOI_Item_Code # AND UOM_Code = SOI_UOM_Code # AND (Nvl(SOI_REV_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_LOOSE, 0) + # Nvl(SOI_REV_Foc_QTY*UOM_Max_Loose, 0) + Nvl(SOI_REV_FOC_LOOSE, 0)) - (Nvl(SOI_Inv_Qty_BU, 0)+Nvl(SOI_Inv_Foc_Qty_BU, 0)) > 0 # AND SOH_Comp_Code = :Global.Company # AND SOH_Cust_Code = :InvH_Cust_Code # AND SoH_Loc_Code =:Invh_Loc_Code # And SoH_Sman_Code = :InvH_Sman_Code # AND SOH_Load_Status = 'N' # AND (SOH_APPROVAL_STATUS ='F' OR NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_APPROVAL'),'N') ='N') # AND SOH_Valid_Till >= :InvH_Dt # AND (NVL(Fn_Get_Stk_Txn_Param(SOH_Txn_Code,Soh_Comp_Code,'SO_REQ_WPL'),'N') ='N' OR # EXISTS(SELECT 'X' From T_Wpl_Head,T_Wpl_Ref_Doc Where WPLH_Id =Wplrd_Wplh_Id and Wplrd_Soh_Id =Soh_Id # AND Nvl(WPLH_Status,'N') ='F' # AND NOT EXISTS(SELECT 'x' FROM T_Wpl_Item Where Wpli_Wplh_Id =Wplh_Id and Nvl(wpli_Status,'N') ='N')))) # reason: its query has no WHERE clause, so nothing ties the row it reads to a value# first_record; # Show_Message('Inv_Alert', 'Please select the required SO,More than one tender can not load!'); # reason: the query they read is refused above, so a clause over it would read no row
27 clauses converted, 12 statements refused