//input.Approval = "Pending";
// Nisha.s -- I have commented the below code up to line no 251& used this on blueprint
qty = ifnull(input.Moved_Qty,0.0) + ifnull(input.Moved_Qty_So_Far,0.0);
if(input.Accepted_Quantity > input.Moved_Qty)
{
input.Balance_Qty_to_Move = ifnull(input.Accepted_Quantity,0.0) - qty;
input.Moved_Qty_So_Far = ifnull(input.Moved_Qty_So_Far,0.0) + ifnull(input.Moved_Qty,0.0);
}
mts_status = Income_Quality_Check_Process[ID == input.Income_Quality_Check_RECID];
//Coil Id based Stock Maintenace - User Requirement - 10/02/2023
getmat = Materials[ID == input.Part_No];
getcatg = Category[ID == getmat.Category];
if(getcatg.Category != "HR Coils")
{
stock = Inventory[Part_No == input.Part_No && Part_Description == input.Part_Description && Warehouse == input.Warehouse && Location_Name == input.Location_Name && Sub_Location == input.Sub_Location && Rack_Number == input.Rack_Number];
}
else
{
stock = Inventory[Part_No == input.Part_No && Part_Description == input.Part_Description && HR_Coil_id == input.HR_Coil_id && Warehouse == input.Warehouse && Location_Name == input.Location_Name && Sub_Location == input.Sub_Location && Rack_Number == input.Rack_Number];
}
category = Materials[ID == input.Part_Description].Category;
sub_category = Materials[ID == input.Part_Description].Sub_Category;
fet_reg = Regular_Item_Master[Part_No == input.Part_No];
fet_child = Regular_Child_Item_Parts[Part_No == input.Part_No];
if(stock.count() == 0)
{
insert into Inventory
[
Added_User=zoho.loginuser
Stock_Update_ID=input.ID
Part_No=input.Part_No
Part_Description=input.Part_Description
Specification=input.Specification
Total_Qty=input.Moved_Qty
Batch_Number=input.Batch_Number
Location_Name=input.Location_Name
Sub_Location=input.Sub_Location
Rack_Number=input.Rack_Number
Available_Qty=input.Moved_Qty
Warehouse=input.Warehouse
Block_Qty=0.00
Category=category
Sub_Category=sub_category
HR_Coil_id=input.HR_Coil_id
UOM=input.Unit_of_Measurement
]
//Total_Qty=mts_status.Received_Qty
if(Form_Mode == "Move to Stock")
{
if(input.Accepted_Quantity == qty)
{
mts_status.Move_to_Stock_status="Moved";
mts_status.IQC_Status="Stock Updated";
}
else if(input.Accepted_Quantity > qty)
{
mts_status.Move_to_Stock_status="Partially Moved";
mts_status.IQC_Status="Stock Partially Updated";
}
}
}
else
{
//dont update the stock again.ie.Move to stock done-vendor inspection done - move to stock cases.
// if(mts_status.IQC_Status != "Stock Update Pending" && Form_Mode == "Move to Stock")
// {
// //stock.Total_Qty=ifnull(stock.Total_Qty,0.00) + mts_status.Received_Qty;
// }
stock.Available_Qty=ifnull(stock.Available_Qty,0.0) + ifnull(input.Moved_Qty,0.0);
stock.Total_Qty=ifnull(stock.Total_Qty,0.00) + ifnull(input.Moved_Qty,0.0);
//stock.Total_Qty=ifnull(stock.Block_Qty,0.0) + ifnull(stock.Available_Qty,0.0);
//fet_reg.Today_inventory = ifnull(stock.Available_Qty,0.0) + ifnull(input.Moved_Qty,0.0);
if(Form_Mode == "Move to Stock")
{
if(input.Accepted_Quantity == qty)
{
mts_status.Move_to_Stock_status="Moved";
mts_status.IQC_Status="Stock Updated";
}
else if(input.Accepted_Quantity > qty)
{
mts_status.Move_to_Stock_status="Partially Moved";
mts_status.IQC_Status="Stock Partially Updated";
}
}
}
//rejected qty become accepted qty by manangement spl approval.
if(Form_Mode = "Rejectitem movetostock")
{
//stock.Total_Qty=ifnull(stock.Total_Qty,0.00) + mts_status.Received_Qty;
stock.Total_Qty=ifnull(stock.Total_Qty,0.00) + ifnull(input.Moved_Qty,0.0);
mts_status.Rejected_Qty=ifnull(input.Accepted_Quantity,0.0) - ifnull(mts_status.Rejected_Qty,0.0);
mts_status.Accepted_Qty=ifnull(mts_status.Accepted_Qty,0.0) + input.Accepted_Quantity;
}
if(input.Purchase_Order_No != null)
{
fet_posf = Purchase_Order_Subform[Purchase_Order_ExisID == input.Purchase_Order_No && Part_No == input.Part_No && ID == input.Purchase_Order_Subform_RECID];
fet_bat_no = GRN_Subform[Purchase_Order_SubForm_RECID == fet_posf.ID && Batch_Number == input.Batch_Number];
fet_stockvalue = Stock_Value[Part_No == input.Part_No && Unit_Price == fet_posf.Rate];
if(fet_stockvalue.count() > 0)
{
stockvalue = Stock_Value[Part_No == input.Part_No && Unit_Price == fet_posf.Rate];
// stockvalue.Stock_Qty=stockvalue.Stock_Qty + ifnull(input.Accepted_Quantity,0.00);
// a = ifnull(fet_posf.Rate,0.00) * ifnull(input.Accepted_Quantity,0.00);
stockvalue.Purchase_Order_No=input.Purchase_Order_No;
stockvalue.Stock_Qty=ifnull(stockvalue.Stock_Qty,0.0) + ifnull(input.Moved_Qty,0.00);
a = ifnull(fet_posf.Rate,0.00) * ifnull(input.Moved_Qty,0.00);
stockvalue.Stock_Value=ifnull(stockvalue.Stock_Value,0.0) + ifnull(a,0.0);
stockvalue.Inventory_Qty=ifnull(stockvalue.Stock_Qty,0.0);
}
else
{
insert into Stock_Value
[
Added_User=zoho.loginuser
Purchase_Order_No=input.Purchase_Order_No
Batch_Number=fet_bat_no.ID
Part_No=input.Part_No
Part_Description=input.Part_Description
Specification=input.Specification
Location_Name=input.Location_Name
Sub_Location=input.Sub_Location
Rack_Number=input.Rack_Number
Warehouse=input.Warehouse
Stock_Qty=ifnull(input.Moved_Qty,0.00)
Unit_Price=ifnull(fet_posf.Rate,0.00)
Stock_Value=ifnull(fet_posf.Rate,0.00) * ifnull(input.Moved_Qty,0.00)
Stock_Update=input.ID
Inventory_Qty=ifnull(input.Moved_Qty,0.0)
]
}
}
//-----------------Update po status------------------------
if(input.Purchase_Order_No != null)
{
//fetch_po_sub = Purchase_Order_Subform[Purchase_Order_ExisID == input.Purchase_Order_No && Part_No == input.Part_No].sum(Ordered_Qty);
fetch_po_sub = Purchase_Order_Subform[Purchase_Order_ExisID == input.Purchase_Order_No && Part_No == input.Part_No && ID == input.Purchase_Order_Subform_RECID].sum(Ordered_Qty);
get_grn_qty = GRN_Subform[Purchase_Order_Number == input.Purchase_Order_No && Part_No == input.Part_No].sum(Received_Qty);
fet_po_sub = Purchase_Order_Subform[Purchase_Order_ExisID == input.Purchase_Order_No && Part_No == input.Part_No && ID == input.Purchase_Order_Subform_RECID];
get_IQC = Income_Quality_Check_Process[Purchase_Order_No == input.Purchase_Order_No && IQC_No != "" && Part_No == fet_po_sub.Part_No && GRN_Subform_RECID == input.GRN_Subform_RECID].sum(Accepted_Qty);
//PO Final Close
get_po_id = Purchase_Order[ID == input.Purchase_Order_No && Purchase_Order_No != ""];
// sendmail
// [
// from :"erp@carrierwheels.com"
// to :"parthasarathy.m@synprosoft.com"
// subject :"stock update created succussful form sub - afert line 128 if condition-slno1" + input.Part_No.Part_No
// message :"fetchposubqty " + fetch_po_sub + " getiqcqty " + get_IQC + "posfstts " + input.Part_No.Part_No
// ]
if(get_po_id.count() > 0)
{
check_po_status = 0;
for each po_sub_form in Purchase_Order_Subform[Purchase_Order_ExisID == get_po_id.ID && Part_No == input.Part_No && ID == input.Purchase_Order_Subform_RECID]
{
// sendmail
// [
// from :"erp@carrierwheels.com"
// to :"parthasarathy.m@synprosoft.com"
// subject :"stock update created succussful form sub - after line 147 for loop po status before slno2" + po_sub_form.ID
// message :po_sub_form.PO_Status + "---" + po_sub_form.ID
// ]
if(po_sub_form.PO_Status != "QC Completed")
{
check_po_status = 1;
}
}
// sendmail
// [
// from :"erp@carrierwheels.com"
// to :"parthasarathy.m@synprosoft.com"
// subject :"stock update created succussful form sub - after check po status slno3 " + input.Purchase_Order_Subform_RECID
// message :"check_po_status " + check_po_status + "---" + input.Purchase_Order_Subform_RECID
// ]
if(check_po_status == 0)
{
//the below line is comment on 27/11/2023 due to main po status is updating po closed,still items are not stock updated fully.
//get_po_id.PO_Status="PO Closed";
//get_po_id.PO_Status="QC Partially Completed";
}
else
{
get_po_id.PO_Status="QC Partially Completed";
}
}
//if po quantity is greater than or equal to the total accepted qty in the IQC, it means the po order is closed
if(fet_po_sub.count() > 0)
{
//Stock Update id for PO History Report in PO subform
fet_po_sub.Stock_Update_ID=input.ID;
if(get_IQC >= fetch_po_sub)
{
// fet_po_sub.PO_Status="QC Completed";--ERP Issue & Queries No.122 dt 10/04/2023.
fet_po_sub.PO_Status="PO Closed";
}
//additional check for Po sf status
if(fet_po_sub.Qty_Received_so_far == fet_po_sub.Ordered_Qty)
{
fet_po_sub.PO_Status="PO Closed";
}
}
//if purchase order subform status is PO closed for all items,then close the Purchase main form status as PO Closed - 10/10/2023
posfcount = Purchase_Order_Subform[Purchase_Order_ExisID == get_po_id.ID].count();
///info posfcount;
poclosestts = Purchase_Order_Subform[Purchase_Order_ExisID == get_po_id.ID && PO_Status == "PO Closed"].count();
//info poclosestts;
posffc = Purchase_Order_Subform[Purchase_Order_ExisID == get_po_id.ID && PO_Status == "Foreclosed"].count();
//info posffc;
if(posfcount == poclosestts)
{
updtpomain = Purchase_Order[ID == get_po_id.ID];
if(updtpomain.count() > 0)
{
updtpomain.PO_Status="PO Closed";
}
}
else if(poclosestts >= posffc && posfcount == ifnull(posffc,0.0) + ifnull(poclosestts,0.0))
{
updtpomain = Purchase_Order[ID == get_po_id.ID];
if(updtpomain.count() > 0)
{
updtpomain.PO_Status="PO Closed";
}
}
//for checking purpose - posf is not closed by po main is closed
if(posfcount != poclosestts)
{
checkpo = Purchase_Order[ID == get_po_id.ID];
if(checkpo.count() > 0 && checkpo.PO_Status == "PO Closed")
{
// sendmail
// [
// from :"erp@carrierwheels.com"
// to :"parthasarathy.m@synprosoft.com"
// subject :"ALERT PO SUBFORM ITEMS STILL PENDING AND MAIN PO ISs CLOSED slno-4" + get_po_id
// message :checkpo.Purchase_Order_No + "- " + get_po_id
// ]
}
}
}
//Insert records in Inventory Ageing form
insert into Inventory_Ageing
[
Added_User=zoho.loginuser
Part_No=input.Part_No
Part_Description=input.Part_Description
Specification=input.Specification
Added_Stock=input.Moved_Qty
Stock_Added_Issued_Date=zoho.currentdate
Expiry_Date=input.Expiry_Date
]
//Insert record in Stock Ledger for Report purpose
fet_iqc1 = Income_Quality_Check_Process[ID == input.Income_Quality_Check_RECID];
GRNsubformID = GRN_Subform[ID == fet_iqc1.GRN_Subform_ID];
fetch_grn1 = GRN[ID == GRNsubformID.GRN_ID];
Vend_name = Vendor[ID = fetch_grn1.Vendor_Name].Vendor_Name;
//the below function will insert the record in stock ledger
thisapp.Stock_Ledger.Quantity_in_for_Stock_Ledger(input.ID);
//Update the Stock in ZOHO CRM --> Products--> Quantity in Stock Field- as per Mr.Senthil Advice the below fucntion is not required.19/05/2023
//thisapp.Update_Stock_in_CRM(input.Part_No);
//------
//_________Updating Moved Qty value & subform calculation to create Bills__________Nisha___________________________
get_bill = Create_Bills[GRN_No == input.GRN_Recid];
fet_Hold = Accept_Quantity[IQC_RECID == input.ID];
if(get_bill.count() > 0 && fet_Hold.Hold_Flag != "Hold Flag")
{
updbills = Create_Bills_Subform[Exists_ID == get_bill.ID && Part_No == input.Part_No && GRN_Subform_ID == input.GRN_Subform_RECID];
if(updbills.count() > 0)
{
get_data = Stock_Update[ID == input.ID];
updbills.Qty=ifnull(get_data.Moved_Qty,0);
updbills.Subtotal=ifnull(updbills.Qty,0) * ifnull(updbills.Rate,0);
get_po = Purchase_Order_Subform[ID == updbills.Purchase_Order_Subform_ID];
tot = updbills.Subtotal + get_po.Tax_Value;
//info get_po.Tax_Value;
//info get_po.Tax;
subtot = Ifnull(get_po.Rate,0.0) * ifnull(get_data.Moved_Qty,0.0);
get_tax_value = GST_Details[ID == get_po.Tax].Total_Rate;
tax_calc = ifnull(subtot,0.00) * ifnull(get_tax_value,0.00) / 100;
Total = ifnull(get_data.Moved_Qty,0.00) * ifnull(get_po.Rate,0.00) + ifnull(tax_calc,0.00);
updbills.Tax=ifnull(get_po.Tax,null);
updbills.Tax_Value=ifnull(tax_calc,0.00);
//updbills.Tax_Value=ifnull(subtot,0.00) * ifnull(get_tax_value,0.00) / 100;
updbills.Total=ifnull(Total,0.00);
}
itemtot = 0;
taxtot = 0;
Grndtot = 0;
dftbill = True;
for each item in Create_Bills_Subform[Exists_ID == get_bill.ID]
{
itemtot = itemtot + ifNull(item.Subtotal,0);
taxtot = taxtot + ifNull(item.Tax_Value,0);
Grndtot = Grndtot + ifNull(item.Total,0);
if(item.Qty == null)
{
dftbill = False;
}
// else if (item.Qty == null && fet_iqc1.Rejected_Qty > 0 && fet_iqc1.Accepted_Qty == 0 )
// {
// dftbill = True;
// }
}
get_bill.Item_Total=itemtot;
get_bill.Tax_Total=taxtot;
get_bill.Grand_Total=Grndtot;
get_bill.Create_Draft_Bill=dftbill;
if(fetch_grn1.count() > 0)
{
fetch_grn1.Create_Draft_Bill=dftbill;
}
// get_bill.Item_Total=ifnull(updbills.Subtotal,0.00);
// get_bill.Tax_Total=ifnull(updbills.Total,0.00);
// get_bill.Grand_Total =ifnull(updbills.Subtotal,0.00)+ifnull(updbills.Total,0.00);
}
//-----------------If Accepted > 0 & hold > 0 ,calculation for Moved Qty--------------------
// if(get_bill.count() > 0 && fet_iqc1.Hold_Qty > 0 && fet_iqc1.Accepted_Qty > 0 && fet_iqc1.IQC_Status =="IQC Completed" && fet_iqc1.Hold_Flag = "Bill Generated by Hold Qty")
// if(get_bill.count() > 0 && fet_iqc1.Hold_Qty > 0 && fet_iqc1.Accepted_Qty > 0 && fet_iqc1.Hold_Flag = "Bill Generated by Hold Qty")
// {
// updbills1 = Create_Bills_Subform[Exists_ID == get_bill.ID && Part_No == input.Part_No && GRN_Subform_ID == input.GRN_Subform_RECID];
// if(updbills1.count() > 0 && fet_iqc1.Hold_Qty > 0)
// {
// get_data = Stock_Update[ID == input.ID];
// movqty = get_data.Moved_Qty + fet_iqc1.Hold_Qty ;
// updbills1.Qty=movqty;
// updbills1.Subtotal=ifnull(updbills1.Qty,0) * ifnull(updbills1.Rate,0);
// get_po = Purchase_Order_Subform[ID == updbills1.Purchase_Order_Subform_ID];
// tot = updbills1.Subtotal + get_po.Tax_Value;
// info get_po.Tax_Value;
// info get_po.Tax;
// subtot = Ifnull(get_po.Rate,0.0) * ifnull(movqty,0.0);
// get_tax_value = GST_Details[ID == get_po.Tax].Total_Rate;
// tax_calc = ifnull(subtot,0.00) * ifnull(get_tax_value,0.00) / 100;
// Total = ifnull(movqty,0.00) * ifnull(get_po.Rate,0.00) + ifnull(tax_calc,0.00);
// updbills1.Tax=ifnull(get_po.Tax,null);
// updbills1.Tax_Value=ifnull(tax_calc,0.00);
// //updbills1.Tax_Value=ifnull(subtot,0.00) * ifnull(get_tax_value,0.00) / 100;
// updbills1.Total=ifnull(Total,0.00);
// }
// itemtot = 0;
// taxtot = 0;
// Grndtot = 0;
// dftbill = True;
// for each item1 in Create_Bills_Subform[Exists_ID == get_bill.ID]
// {
// itemtot = itemtot + ifNull(item1.Subtotal,0);
// taxtot = taxtot + ifNull(item1.Tax_Value,0);
// Grndtot = Grndtot + ifNull(item1.Total,0);
// if(item1.Qty == null)
// {
// dftbill = False;
// }
// }
// get_bill.Item_Total=itemtot;
// get_bill.Tax_Total=taxtot;
// get_bill.Grand_Total=Grndtot;
// get_bill.Create_Draft_Bill=dftbill;
// fetch_grn1.Create_Draft_Bill=dftbill;
// }
//______________________________________________________________________________________________________________
// if (zoho.loginuserid =="admin@carrierwheels.com")
// {
//--------Run DRaft Wo function-----------------------
fet_reg = Regular_Item_Master[Part_No == input.Part_No];
if(fet_reg.count() > 0)
{
thisapp.workorder.Draft_WO();
//------------Daily Total Inventory Update by Schedule in Regular Item Master------
thisapp.workorder.RegularItem_Master_Total_Qty_DailyUpdate();
}
reg_child = Regular_Child_Item_Parts[Part_No == input.Part_No];
if(reg_child.count() > 0)
{
thisapp.workorder.Draft_WO_Child_Parts();
}
//_____________Deleting the records in Create WO for Regular wheels( if Stock > MIn stock in comparing Reg item Master )
//thisapp.Delete_DraftWO_When_Stock_Increases();
//}
//__________________________________________________________________________________________________________________
val = input.Part_No.Part_No + " - " + input.Moved_Qty;
if(Form_Mode == "Move to Stock")
{
openUrl("#Form:Alert_Messages?Status=StockUpdate&Value=" + val + "&zc_LoadIn=dialog","same window");
}
if(Form_Mode == "Rejectitem movetostock")
{
openUrl("#Form:Alert_Messages?Status=RejMovetoStock&Value=" + val + "&zc_LoadIn=dialog","same window");
}