GIN -> on_load_gin_create
Tue Jan 07 2025 14:34:10 GMT+0000 (Coordinated Universal Time)
Saved by @Pooja
emptylist = List(); //move the status into form mode to handle. if(input.Form_Mode == null || input.Form_Mode == "") { input.Form_Mode = "Direct GIN"; //info Form_Mode; } if(input.Status == "GIN against MRQ" && input.Material_Request_Subform_record_id != emptylist || input.Material_Request_Subform_record_id != null) { input.Form_Mode = "GIN against MRQ"; hide Item_Details.Available_Qty; hide Item_Details.Block_Qty; input.Status = ""; matreqsf = Material_Request_Subform[ID == input.Material_Request_Subform_record_id]; Material_Req_Exis_ID = matreqsf.Material_Req_Exis_ID; mat_req = Material_Request[ID == Material_Req_Exis_ID]; input.Material_Request_RECID = Material_Req_Exis_ID; input.Warehouse = matreqsf.Material_Req_Exis_ID.Warehouse; input.Work_Order_No = matreqsf.Material_Req_Exis_ID.Work_Order_No; input.Finished_Good = mat_req.FG_Part_Description; mrn = mat_req.Material_Request_No; input.Project_Name = Zoho_Projects_Data[ID == mat_req.Project_Name].ID; input.Machine_Name = Machine_Master[ID == mat_req.Machine_Name].ID; input.Status = "Draft"; input.Request_raised_By = mat_req.Request_Raised_By; //input.Department = Department[ID==mat_req.Department].Department_Name; input.Request_Date = mat_req.Request_Date; //info mat_req.Material_Type; input.Material_Request_Type = mat_req.Material_Type; //input.Project_Name = ifnull(mat_req.Project_Name,""); row1 = Goods_Issued_Note.Item_Details(); i = 0; grstot = 0; for each i1 in matreqsf { i = i + 1; //Store will issue Itmes from Satellite stores and engineering stores - erp channel - 14/12/2024 from user. //inv = Inventory[Part_No == i1.Part_No && Warehouse == input.Warehouse && Total_Qty > 0]; inv = Inventory[Part_No == i1.Part_No && Warehouse == input.Warehouse && Total_Qty > 0 && Location_Name.Location__Name == "Satellite Stores" || Location_Name.Location__Name == "Engineering Stores"]; //info inv; fet_stockvalue = Stock_Value[Part_No == i1.Part_No] sort by Unit_Price desc; row1.S_No=i; row1.Part_No=i1.Part_No; row1.Part_Description=i1.Part_Description; row1.Material_Type=i1.Material_Type; row1.Unit_of_Measurement=i1.UoM; row1.Required_Quantity=ifnull(i1.Required_Qty,0.00); row1.Quantity_issued_so_far=ifnull(i1.Quantity_issued_so_far,0); row1.Specification=i1.Specification; if(i1.Quantity_issued_so_far > 0 && i1.Required_Qty > 0) { if(i1.Quantity_issued_so_far > i1.Required_Qty) { row1.Issued_Quantity=ifnull(i1.Quantity_issued_so_far,0) - ifnull(i1.Required_Qty,0); } } else { row1.Issued_Quantity=ifnull(i1.Required_Qty,0); } //row1.Issued_Quantity=ifnull(i1.Required_Qty,0) - ifnull(i1.Quantity_issued_so_far,0); //row1.Sub_Total=row1.Issued_Quantity * row1.Rate; //new function is written to calculate the rate by Mr.Varun - dt 5/12/2023 - Mail on 5/12/2023 //row1.Rate=fet_stockvalue.Unit_Price; getrate = thisapp.Stock_Value.Average_Stock_Value(row1.Part_No,row1.Issued_Quantity); row1.Rate=ifnull(getrate,0); if(row1.Issued_Quantity > 0 && row1.Rate > 0) { sub = ifnull(row1.Issued_Quantity,0) * ifnull(row1.Rate,0); } grstot = ifnull(grstot,0) + ifnull(sub,0); //row1.Sub_Total=sub; row1.Value=sub; row1.Balance_Quantity=0.00; row1.Stock_Quantity=ifnull(inv.Total_Qty,0.00); row1.Available_Qty=ifnull(inv.Available_Qty,0.00); row1.Block_Qty=ifnull(inv.Block_Qty,0.00); row1.Work_Order_No=i1.Work_Order_No; row1.Sales_Order_No=i1.Sales_Order_No; row1.Material_Request_No=Material_Req_Exis_ID.Material_Request_No; row1.Material_Request_Subform_lu=i1.ID; row1.Material_type_from_mrq=Material_Req_Exis_ID.Material_Type; row1.Location=inv.Location_Name.getall(); row1.Sub_Location=inv.Sub_Location.getall(); row1.Racks_Bins=inv.Rack_Number.getall(); input.Item_Details.insert(row1); } input.Grand_Total1 = grstot; for each row2 in input.Item_Details { if(row2.Racks_Bins != null) { ava = 0; for each i1 in row2.Racks_Bins { inv2 = Inventory[Warehouse == input.Warehouse && Part_No == row2.Part_No && Location_Name == row2.Location && Sub_Location == row2.Sub_Location && Rack_Number == i1 && Total_Qty > 0]; //info inv2; ava = ava + ifnull(inv2.Available_Qty,0.0); } row2.Stock_Quantity=ifnull(ava,0.00); row2.Qty_after_Issued=ifnull(row2.Stock_Quantity,0.0) - ifnull(row2.Issued_Quantity,0.0); //info row2.Qty_after_Issued; } } disable Request_raised_By; disable Request_Date; disable Material_Request_Type; } else if(input.Form_Mode == "GIN against WO") { disable Item_Details.Available_Qty; disable Item_Details.Block_Qty; input.Status = ""; matreqsf = Material_Request_Subform[ID == input.Material_Request_Subform_record_id]; Material_Req_Exis_ID = matreqsf.Material_Req_Exis_ID; mat_req = Material_Request[ID == Material_Req_Exis_ID]; input.Material_Request_RECID = Material_Req_Exis_ID; input.Warehouse = matreqsf.Material_Req_Exis_ID.Warehouse; input.Work_Order_No = matreqsf.Material_Req_Exis_ID.Work_Order_No; input.Finished_Good = mat_req.FG_Part_Description; mrn = mat_req.Material_Request_No; input.Project_Name = Zoho_Projects_Data[ID == mat_req.Project_Name].ID; input.Machine_Name = Machine_Master[ID == mat_req.Machine_Name].ID; input.Status = "Draft"; input.Request_raised_By = mat_req.Request_Raised_By; input.Request_Date = mat_req.Request_Date; input.Material_Request_Type = mat_req.Material_Type; partno_list = List(); qtylist = List(); mymap = Map(); qtymap = Map(); for each bomrec in matreqsf { partno_list.add(bomrec.Part_No); qtyvar = ifnull(qtymap.get(bomrec.Part_No),0) + bomrec.Required_Qty; qtymap.put(bomrec.Part_No,qtyvar); //partno_list.add(bomrec.Required_Qty); } partno_list.sort(); i = 0; grstot = 0; for each recpartlist in partno_list.distinct() { row1 = Goods_Issued_Note.Item_Details(); mrqsflist = Material_Request_Subform[ID = input.Material_Request_Subform_record_id && Part_No == recpartlist]; mymap.put("Partno",recpartlist); mymap.put("partdesc",mrqsflist.Part_Description); i = i + 1; getinv = Inventory[Part_No == mrqsflist.Part_No && Warehouse == input.Warehouse && Total_Qty > 0]; getin = Inventory[Part_No == mrqsflist.Part_No && Location_Name.Location__Name != "Production WIP"].sum(Total_Qty); ////Store will issue Itemss from Satellite stores and engineering stores - erp channel - 14/12/2024 from user. getstokqty = Inventory[Part_No == mrqsflist.Part_No && Warehouse == input.Warehouse && Total_Qty > 0 && Location_Name.Location__Name == "Satellite Stores" || Location_Name.Location__Name == "Engineering Stores"].sum(Total_Qty); //info "getstokqty " + getstokqty; fet_stockvalue = Stock_Value[Part_No == mrqsflist.Part_No] sort by Unit_Price desc; row1.S_No=i; row1.Part_No=recpartlist; row1.Part_Description=mrqsflist.Part_Description; row1.Material_Type=mrqsflist.Material_Type; row1.Unit_of_Measurement=mrqsflist.UoM; qtv = qtymap.get(mrqsflist.Part_No); //info "line 155 qty " + qtv; row1.Required_Quantity=qtv; row1.Quantity_issued_so_far=ifnull(mrqsflist.Quantity_issued_so_far,0); row1.Specification=mrqsflist.Specification; if(mrqsflist.Quantity_issued_so_far > 0 && mrqsflist.Required_Qty > 0) { if(mrqsflist.Quantity_issued_so_far > qtv) { row1.Issued_Quantity=ifnull(mrqsflist.Quantity_issued_so_far,0) - ifnull(qtv,0); } else if(mrqsflist.Quantity_issued_so_far < qtv) { row1.Issued_Quantity=ifnull(qtv,0) - ifnull(mrqsflist.Quantity_issued_so_far,0); } } else { row1.Issued_Quantity=ifnull(qtv,0); } getrate = thisapp.Stock_Value.Average_Stock_Value(row1.Part_No,row1.Issued_Quantity); if(getrate == null) { getrate = Stock_Value[Part_No == row1.Part_No && Unit_Price > 0].Unit_Price sort by Added_Time asc; } if(getrate > 0 || getrate != null) { row1.Rate=ifnull(getrate,0); sub = ifnull(row1.Issued_Quantity,0) * ifnull(row1.Rate,0); } grstot = ifnull(grstot,0) + ifnull(sub,0); //row1.Sub_Total=sub; row1.Value=sub; row1.Balance_Quantity=0.00; //Stock Quantity should be from engineering and satellite locations only - 16/12/2024 //row1.Stock_Quantity=ifnull(getinv.Total_Qty,0.00); // row1.Stock_Quantity=ifnull(getin,0); row1.Stock_Quantity=ifnull(getstokqty,0); row1.Available_Qty=ifnull(getinv.Available_Qty,0.00); row1.Block_Qty=ifnull(getinv.Block_Qty,0.00); row1.Work_Order_No=mrqsflist.Work_Order_No; row1.Sales_Order_No=mrqsflist.Sales_Order_No; row1.Material_Request_No=Material_Req_Exis_ID.Material_Request_No; row1.Material_Request_Subform_lu=mrqsflist.ID; row1.Material_type_from_mrq=Material_Req_Exis_ID.Material_Type; // row1.Location=getinv.Location_Name.getall(); // row1.Sub_Location=getinv.Sub_Location.getall(); // row1.Racks_Bins=getinv.Rack_Number.getall(); input.Item_Details.insert(row1); } input.Grand_Total1 = grstot; for each row2 in input.Item_Details { if(row2.Racks_Bins != null) { ava = 0; for each mrqsflist in row2.Racks_Bins { ////Store will issue Itemss from Satellite stores and engineering stores - erp channel - 14/12/2024 from user. //inv2 = Inventory[Warehouse == input.Warehouse && Part_No == row2.Part_No && Location_Name == row2.Location && Sub_Location == row2.Sub_Location && Rack_Number == mrqsflist && Total_Qty > 0]; inv2 = Inventory[Warehouse == input.Warehouse && Part_No == row2.Part_No && Location_Name.Location__Name == "Satellite Stores" || Location_Name.Location__Name == "Engineering Stores" && Rack_Number == mrqsflist && Total_Qty > 0]; //info inv2; ava = ava + ifnull(inv2.Available_Qty,0.0); } row2.Stock_Quantity=ifnull(ava,0.00); row2.Qty_after_Issued=ifnull(row2.Stock_Quantity,0.0) - ifnull(row2.Issued_Quantity,0.0); //info row2.Qty_after_Issued; } } disable Request_raised_By; disable Request_Date; disable Material_Request_Type; }
Comments