WO - OnLoad
Tue Jan 07 2025 15:40:41 GMT+0000 (Coordinated Universal Time)
Saved by @Pooja
disable Part_No; disable Part_Name; disable WO_Qty; disable Packing_Std; hide Packing_Std; fet_pref = Preferences[Module_Name = "Work Order"]; input.Auto_Approval = fet_pref.Auto_Approval; input.Virtual_Stock_Enable = fet_pref.Virtual_Stock; //info input.Form_Mode; input.Created_By = Employee_Details[Employee_Email == zoho.loginuserid].ID; if(input.Sale_Order_Subform_ID != null || input.Sale_Order_Subform_ID.size() > 0 || input.Sale_Order_Subform_ID.len() > 0) { // fetch_sosub = Sale_Order_Subform[ID == input.Sales_Order_Nos]; // fetch_so = Sales_Order[ID == fetch_sosub.Sales_Order_Exis_ID]; // Sales_Order_Nos = fetch_so.ID; // info fetch_so; sno = 0; for each a1 in input.Sale_Order_Subform_ID { sosub = Sale_Order_Subform[ID == a1.ID]; fetch_so = Sales_Order[ID == a1.Sales_Order_Exis_ID]; inven = Inventory[Part_No == sosub.Part_No].sum(Available_Qty); fet_inven = Inventory[Part_No == sosub.Part_No].sum(Total_Qty); WO = Work_Order[Draft_Work_Order_ID == input.ID]; Wosub = Work_Order_Subform[Part_No == a1.Part_No && Work_Order_Status != "WO Closed" && Work_Order_Status != "WO Cancelled" && Work_Order_Status != "Cancelled"].sum(WO_Qty); // if(a1.WO_Qty > = a1.Stock_Qty) // { // alert "Stock is already Available, Check and Proceed"; // } //----------- fet_mat = MPS_Master [Part_No == row.Part_No]; //input.Front1 = Materials[ID == sosub.Part_No].Front; //input.Regular1 = Materials[ID == sosub.Part_No].Regular; //input.CED_Product1 = Materials[ID == sosub.Part_No].CED_Product; //input.Batch_Size1 = Materials[ID == sosub.Part_No].Batch_Size; row1 = Work_Order.Material_Details(); row1.Stock_Qty=inven; row1.Total_Stock=fet_inven; row1.WO_Pipeline=Wosub; row1.SO_Quantity=a1.Qty; row1.Part_No=a1.Part_No; sno = sno + 1; row1.S_No=sno; row1.Sales_Order_No=fetch_so.ID; row1.Part_Description=a1.Part_Description; row1.UOM=a1.UoM; input.Category = Materials[ID == sosub.Part_No].Category; input.Sub_Category = Materials[ID == sosub.Part_No].Sub_Category; input.Part_No = a1.Part_No; input.Part_Name = a1.Part_Description; input.Packing_Std = ifnull(sosub.Packing_Std,null); wosub = Work_Order_Subform[Sale_Order_Subform_ID == sosub.ID && Part_No == a1.Part_No].sum(WO_Qty); row1.WO_Sofar=wosub; woqty = a1.Qty - wosub; if(row1.WO_Sofar > 0) { row1.Balance=woqty; } else { row1.Balance=0.00; } //row1.Balance=ifnull(row1.Quantity,0) - ifnull(row1.WO_Sofar,0) + ifnull(row1.WO_Qty,0); //row1.WO_Qty=woqty; row1.Buffer_Percentage=0.0; //row1.Required_Qty=ifnull(row1.SO_Quantity,0) - ifnull(row1.WO_Pipeline,0) - ifnull(row1.Stock_Qty,0); row1.Required_Qty=ifnull(row1.SO_Quantity,0) - ifnull(row1.Stock_Qty,0); if(row1.Stock_Qty >= row1.SO_Quantity) { // info"Stk > so"; row1.Block_Qty=ifnull(row1.SO_Quantity,0); } if(row1.Stock_Qty <= row1.SO_Quantity) { //info"Stk < so "; row1.Block_Qty=ifnull(row1.Stock_Qty,0); } if(row1.Stock_Qty <= row1.SO_Quantity && row1.Stock_Qty == 0) { //info"stk < so & stk =0"; row1.Block_Qty=ifnull(row1.Stock_Qty,0); } // if(row1.Required_Qty > 0 && row1.Stock_Qty != 0) // { // info "req is > than 0"; // row1.WO_Qty=row1.Required_Qty; // row1.Block_Qty=row1.WO_Qty; // } if(row1.Required_Qty < 0) { // info "req is 0"; row1.Required_Qty=0.0; row1.WO_Qty=0.0; input.WO_Qty = 0.0; //row1.Block_Qty=ifnull(row1.SO_Quantity,0) - ifnull(row1.Stock_Qty,0); } else { // info " req > 0"; //row1.WO_Qty=woqty; row1.WO_Qty=row1.Required_Qty; input.WO_Qty = row1.Required_Qty; //row1.Block_Qty=row1.WO_Qty; } //if(row1.Required_Qty > 0 && row1.Stock_Qty != 0) row1.WO_Qty_with_buffer=(ifnull(row1.WO_Qty,0.0) + ifnull(row1.WO_Qty,0.0) * ifnull(row1.Buffer_Percentage,0.0) / 100).ceil(); //row1.To_be_Blocked=a1.Blocke_Qty; inventory = Inventory[Part_No == sosub.Part_No]; //row1.Block_Qty=row1.WO_Qty; row1.Specification=a1.Remarks_multiline; row1.Sale_Order_Subform_ID=sosub.ID; row1.Work_Order_Exis_ID=input.ID; input.Material_Details.insert(row1); } if(fetch_so.count() > 0) { input.Customer_Name = ifnull(fetch_so.Customer_Name,""); disable Customer_Name; input.Expected_Delivery_Date = ifnull(fetch_so.Expected_Shipment_Date,""); /* if(fetch_so.Expected_Shipment_Date.getDay() >= 20) { input.Expected_Delivery_Date = ifnull(fetch_so.Expected_Shipment_Date,""); } else if(fetch_so.Expected_Shipment_Date.getDay() <= 20) { input.Expected_Delivery_Date = ifnull(fetch_so.Sale_Order_Date.addDay(20),""); } //info "salesorder " + fetch_so.Expected_Shipment_Date; // if(fetch_so.Expected_Shipment_Date >= zoho.currentdate && fetch_so.Expected_Shipment_Date != null) // { //input.Expected_Delivery_Date = ifnull(fetch_so.Expected_Shipment_Date,""); //} */ input.Sales_Order_Nos = fetch_so.ID; } } //----------------------------------DRAFT WO --------------------------------------------- //info Draft_Work_Order_ID ; //info Form_Mode; if(Draft_Work_Order_ID != null && input.Form_Mode == "Draft WO-Regular Wheels") { //info "IF"; hide Material_Details.SO_Quantity; DFWO = Create_WO_for_Regular_Wheels[ID == input.Draft_Work_Order_ID]; DFWOSUB = DF_Work_Order_Subform[Draft_Work_Order_RecID == DFWO.ID]; // childwo = Regular_Child_Item_Parts[ID == input.Draft_Work_Order_ID]; //WO = Work_Order[Draft_Work_Order_ID == input.ID]; //Wosub = Work_Order_Subform[Work_Order_Exis_ID == WO.ID]; //inven1 = Inventory[Part_No == DFWOSUB.Part_No].sum(Available_Qty); //------------Changing inventory as Virtual stock ---------------------- inven1 = Inventory[Part_No == DFWOSUB.Part_No].sum(Available_Qty); input.Draft_WO_Date = DFWO.Draft_WO_Date; input.Draft_Work_Order_ID = DFWO.ID; info input.Draft_Work_Order_ID + "after"; input.Created_By = DFWO.Created_By; input.Work_Order_Date = zoho.currentdate; input.WO_Status = "Draft WO"; input.Production_Start_Date = DFWO.Production_Start_Date; input.Expected_Delivery_Date = DFWO.Delivery_Date; // if(DFWO.Delivery_Date != null && DFWO.Delivery_Date >= zoho.currentdate) // { // //info "if"; // input.Expected_Delivery_Date = ifnull(DFWO.Delivery_Date,""); // } // else // { // input.Expected_Delivery_Date = zoho.currentdate; // } input.Production_End_Date = DFWO.Production_End_Date; input.Approval = DFWO.Approval; input.CED_Product1 = DFWO.Category; input.Front1 = DFWO.Front1; input.Regular1 = DFWO.Regular1; input.Batch_Size1 = DFWO.BATCH_SIZE1; input.Category = Materials[ID == DFWOSUB.Part_No].Category; input.Sub_Category = Materials[ID == DFWOSUB.Part_No].Sub_Category; sno = 0; for each var in DFWO.Material_Details_SF { //info"FOR"; WO = Work_Order[Draft_Work_Order_ID == input.ID]; Wosub = Work_Order_Subform[Part_No == var.Part_No && Work_Order_Status != "WO Closed" && Work_Order_Status != "WO Cancelled" && Work_Order_Status != "Cancelled" && Work_Order_Status != "WO Reverted"].sum(WO_Qty); inven2 = Inventory[Part_No == var.Part_No].sum(Available_Qty); fet_inv2 = Inventory[Part_No == var.Part_No].sum(Total_Qty); reg_master = Regular_Item_Master[Part_No == var.Part_No]; childwo = Regular_Child_Item_Parts[Part_No == var.Part_No]; row2 = Work_Order.Material_Details(); row2.Stock_Qty=inven2; row2.Total_Stock=fet_inv2; row2.WO_Pipeline=Wosub; sno = sno + 1; row2.S_No=sno; row2.Part_No=var.Part_No; row2.Part_Description=var.Part_Description; input.Part_No = var.Part_No; input.Part_Name = var.Part_Description; row2.UOM=var.UOM; row2.SO_Quantity=0; // row2.WO_Qty=var.WO_Qty; // row2.Block_Qty=row2.WO_Qty; row2.Buffer_Percentage=0.0; //row2.Required_Qty=ifnull(row2.SO_Quantity,0) - ifnull(row2.WO_Pipeline,0) - ifnull(row2.Stock_Qty,0); row2.Required_Qty=ifnull(row2.SO_Quantity,0) - ifnull(row2.Stock_Qty,0); if(row2.Required_Qty < 0) { row2.Required_Qty=0.0; row2.WO_Qty=0.0; input.WO_Qty = 0.0; } else { //row2.WO_Qty=var.WO_Qty; row2.WO_Qty=row2.Required_Qty; input.WO_Qty = row2.Required_Qty; //row2.Block_Qty=row2.WO_Qty; } row2.WO_Qty_with_buffer=(ifnull(row2.WO_Qty,0.0) + ifnull(row2.WO_Qty,0.0) * ifnull(row2.Buffer_Percentage,0.0) / 100).ceil(); // inv_subform = Invoice_Subform[Part_No == var.Part_No && Added_Time >= "01-Jan-2023" && Added_Time <= "31-Dec-2023"].sum(Qty); //row2.Six_Month_Sale = ifnull(thisapp.Invoice.Calculation_last_6_months_invoiceQty(row2.Part_No)," "); //_________Calculating Six month sales Qty in invoice________________ //info curdate; //curdate = "17-Jan-2024"; curdate = zoho.currentdate; startmonth = curdate.eomonth(-6); //info startmonth; startdate = startmonth.toStartOfMonth(); curstartdate = curdate.toStartOfMonth(); enddate = curstartdate.subday(1); startdate = startdate + " 00:00:00"; enddate = enddate + " 23:59:59"; //info "startdate " + startdate; //info "enddate " + enddate; inv_qty = Invoice_Subform[Part_No == row2.Part_No && Added_Time >= startdate && Added_Time <= enddate].sum(Qty); //info inv_qty; average_sale = ifnull(inv_qty / 6,0.00); row2.Six_Month_Sale=average_sale; //___________________________________________________________ row2.Min_Stock=reg_master.Min_Stock; row2.Batch_Size=reg_master.Batch_Size; row2.Specification=var.Specification; input.Six_Month_Avg_Sale = average_sale; // input.Minimum_Stock = reg_master.Min_Stock; // input.Batch_Size = reg_master.Batch_Size; if(reg_master.Min_Stock != null) { //info "reg"; input.Minimum_Stock = reg_master.Min_Stock; input.Batch_Size = reg_master.Batch_Size; } else { //info"else"; //info childwo.Minimum_Qty +"m"; //info childwo.Batch_Size +"b"; input.Minimum_Stock = childwo.Minimum_Qty; input.Batch_Size = childwo.Batch_Size; } input.Material_Details.insert(row2); } //-------------------------------------- disable Six_Month_Avg_Sale; disable Minimum_Stock; disable Batch_Size; hide Material_Details.Six_Month_Sale; hide Material_Details.Batch_Size; hide Material_Details.Min_Stock; hide Draft_WO_Date; disable Material_Details.Min_Stock; disable Material_Details.Six_Month_Sale; disable Material_Details.Batch_Size; disable Schedule_WO; hide Sales_Order_Nos; hide Customer_Name; hide Material_Details.WO_Sofar; hide Material_Details.Balance; hide Material_Details.Buffer_Percentage; hide Material_Details.WO_Qty_with_buffer; //hide Material_Details.SO_Quantity; disable Material_Details.WO_Pipeline; disable Material_Details.Stock_Qty; //------------------- disable Created_By; disable Sales_Order_Nos; disable Customer_Name; disable Expected_Delivery_Date; disable Warehouse; hide Material_Details.To_be_Blocked; disable Material_Details.S_No; hide Material_Details.MRP_ID; disable Material_Details.WO_Qty_with_buffer; disable Material_Details.To_be_Blocked; disable Material_Details.Part_Description; disable Material_Details.Part_No; disable Material_Details.SO_Quantity; disable Material_Details.Buffer_Percentage; disable Material_Details.WO_Sofar; disable Material_Details.Balance; disable Material_Details.UOM; disable Material_Details.Required_Qty; hide WO_Status; hide Approval; hide Approval; //hide Status; hide Schedule_WO; hide Production_Start_Date; hide Production_End_Date; hide Delivery_Address; hide Sale_Order_Subform_ID; hide Material_Details.Stock_FG_Qty; hide Material_Details.Stock_SFG_Qty; hide Material_Details.MRP_Qty; hide Material_Details.To_be_Blocked; hide Material_Details.Work_Order_Status; hide Material_Details.Scheduled_so_far; hide Material_Details.Sale_Order_Subform_ID; hide Material_Details.Balance_Qty; hide Form_Mode; hide Draft_Work_Order_ID; disable Front1; disable Regular1; //disable Batch_Size1; disable CED_Product1; disable Material_Details.S_No; disable Material_Details.Block_Qty; disable Category; disable Sub_Category; hide Category; hide Sub_Category; hide Material_Details.Block_Qty; } //------------------------------------------- // if(row1.Stock_Qty > row1.SO_Quantity && row1.Stock_Qty > row1.WO_Pipeline) // { // reqqty = ifnull(row1.Stock_Qty,0) - ifnull(row1.WO_Pipeline,0) - ifnull(row1.SO_Quantity,0); // info reqqty + " Stock > So & Stock > wopipe"; // row1.Required_Qty=reqqty; // } // else if(row1.SO_Quantity > row1.WO_Pipeline && row1.SO_Quantity > row1.Stock_Qty) // { // reqqty2 = ifnull(a1.Qty,0) - ifnull(Wosub,0) - ifnull(inven,0); // info reqqty2 + " So > wopipe & So > stock"; // row1.Required_Qty=reqqty2; // } // else if(row1.WO_Pipeline > row1.SO_Quantity && row1.WO_Pipeline > row1.Stock_Qty) // { // reqqty3 = ifnull(Wosub,0) - ifnull(a1.Qty,0) - ifnull(inven,0); // info reqqty3 + " wopipe > So & wopipe > stock"; // row1.Required_Qty=reqqty3; // } // else if(row1.WO_Pipeline > row1.WO_Qty || row1.WO_Pipeline > row1.Stock_Qty) // { // reqqty4 = ifnull(row1.WO_Pipeline,0) - ifnull(row1.WO_Qty,0) - ifnull(row1.Stock_Qty,0); // info reqqty4 + " Wopipe > Wo (Or) wopipe > stock"; // row1.Required_Qty=reqqty4; // } // else if(row1.WO_Qty > row1.WO_Pipeline && row1.WO_Pipeline > row1.Stock_Qty) // { // reqqty5 = ifnull(row1.WO_Qty,0) - ifnull(row1.WO_Pipeline,0) - ifnull(row1.Stock_Qty,0); // info reqqty5 + " Wo > wopipe > stock"; // row1.Required_Qty=reqqty5; // } // ----- To Remove the Negative values in Requires Qty ----- // reqqty = ifnull(a1.Qty,0) - ifnull(Wosub,0) - ifnull(inven,0); // Req = reqqty.toString(); // if(Req.contains("-")) // { // row1.Required_Qty=Req.removeFirstOccurence("-").toLong(); // } // else // { // row1.Required_Qty=reqqty; // } //-------------------------------------
Comments