Revert - OnSuccess
Tue Jan 07 2025 15:35:04 GMT+0000 (Coordinated Universal Time)
Saved by @Pooja
var = 0;
if(isBlank(input.Revert_No.trim()))
{
var = 1;
str = thisapp.Common.Number_Function_New("Revert MRP");
input.Revert_No = str;
}
fet_mrp = MRP[Work_Order_No1 == input.Work_Order_No];
fetwo = Work_Order[Work_Order_No == input.Work_Order_No.Work_Order_No];
fetwosf = Work_Order_Subform[Work_Order_Exis_ID == fetwo.ID];
sosub = Sale_Order_Subform[Sales_Order_Exis_ID.Sale_Order_No == fetwo.Sales_Order_Nos.Sale_Order_No];
DFWOSUB = DF_Work_Order_Subform[Part_No == fetwosf.Part_No];
DFWO = Create_WO_for_Regular_Wheels[ID == DFWOSUB.Draft_Work_Order_RecID];
if(input.Work_Order_Subform_ID != null)
{
input.Status = "WO Reverted";
fetwo.WO_Status="WO Reverted";
fetwosf.Work_Order_Status="WO Reverted";
if(fetwo.Form_Mode == "Draft WO-Regular Wheels")
{
if(DFWO.count() > 0)
{
DFWO.WO_Status="Draft WO";
DFWOSUB.Status="";
}
thisapp.workorder.RegularItem_Master_Total_Qty_DailyUpdate();
thisapp.workorder.Draft_WO();
}
if(fetwo.Form_Mode == "WO against SO")
{
sosub.WO_Status_in_sosub="Pending WO";
for each wosub in fetwosf
{
get_inv = Inventory[Part_No == wosub.Part_No] sort by Block_Qty desc;
if(get_inv.count() > 0)
{
/* get_inv.Available_Qty=ifnull(get_inv.Available_Qty,0.00) + ifnull(get_inv.Block_Qty,0.00);
//get_inv.Block_Qty=0.00;
get_inv.Block_Qty=ifnull(get_inv.Block_Qty,0.00) - ifnull(wosub.Block_Qty,0.00); */
blkqty = wosub.Block_Qty;
for each inven in get_inv
{
if(blkqty > inven.Block_Qty)
{
inven.Available_Qty=ifnull(inven.Available_Qty,0) + ifnull(inven.Block_Qty,0);
blkqty = blkqty - ifnull(inven.Block_Qty,0);
inven.Block_Qty=0.00;
// inventory.Total_Qty = 0.00;
}
else if(blkqty <= inven.Block_Qty)
{
// inven.Total_Qty = ifnull(inven.Total_Qty,0) - ifnull(var.Block_Qty ,0);
inven.Available_Qty=ifnull(inven.Available_Qty,0) + ifnull(blkqty,0);
inven.Block_Qty=ifnull(inven.Block_Qty,0) - ifnull(blkqty,0);
blkqty = 0.00;
}
if(blkqty == 0)
{
break;
}
}
}
}
}
}
if(fet_mrp.MRP_Status == "MRP Done" || fet_mrp.MRP_Status = "Release Production")
{
//fet_mrp.MRP_Status="MRP Reverted";
input.Status = "MRP Reverted";
fet_mrp.MRP_Status="MRP Reverted";
fetwo.WO_Status="MRP Reverted";
fetwosf.Work_Order_Status="MRP Reverted";
//fetwosf.Work_Order_Status="MRP Reverted";
for each blk in fet_mrp.BoM_Details_CWPL
{
fet_inv = Inventory[Part_No == blk.Part_No && Block_Qty > 0];
if(fet_inv.count() > 0)
{
if(blk.Block_Qty = True)
{
balqty = 0;
i = 1;
for each invcwplrec in fet_inv
{
//blocked Quantiy is less inventory available qty
if(blk.Blocked_Qty <= invcwplrec.Block_Qty && i == 1)
{
//info "issued qty is less than total qty";
invcwplrec.Available_Qty=ifnull(invcwplrec.Available_Qty,0.0) + ifnull(blk.Blocked_Qty,0.0);
invcwplrec.Block_Qty=ifnull(invcwplrec.Block_Qty,0) - ifnull(blk.Blocked_Qty,0);
}
//blocked Quantiy is more than inventory available qty
else if(blk.Blocked_Qty > invcwplrec.Block_Qty && i == 1)
{
//info "issued qty is more than total qty";
balqty = ifnull(blk.Blocked_Qty,0.0) - ifnull(invcwplrec.Block_Qty,0.0);
invcwplrec.Available_Qty=balqty;
invcwplrec.Block_Qty=ifnull(invcwplrec.Block_Qty,0) - ifnull(blk.Blocked_Qty,0);
}
//for first time it should not get inside the loop
if(balqty > 0 && i > 1)
{
//info "balance qty is more than zero";
//Balance Qty is less
if(balqty <= invcwplrec.Block_Qty)
{
//info "balance qty is less than total qty";
invcwplrec.Available_Qty=ifnull(invcwplrec.Available_Qty,0.0) + ifnull(balqty,0.0);
invcwplrec.Block_Qty=ifnull(blk.Blocked_Qty,0) - ifnull(invcwplrec.Block_Qty,0);
balqty = 0;
}
//----Balance Qty is More------
else if(balqty >= invcwplrec.Block_Qty)
{
//info "balance qty is greater than total qty";
balqty = ifnull(balqty,0.0) - ifnull(invcwplrec.Block_Qty,0.0);
invcwplrec.Available_Qty=ifnull(balqty,0);
invcwplrec.Block_Qty=ifnull(balqty,0) - ifnull(invcwplrec.Block_Qty,0);
}
}
if(balqty == 0)
{
break;
}
i = i + 1;
}
}
}
}
for each blk1 in fet_mrp.BoM_Details_General_Purchase
{
fet_virstk = Inventory[Part_No == blk1.Part_No && Block_Qty > 0];
if(fet_virstk.count() > 0)
{
if(blk1.Block_Qty = True)
{
balqty = 0;
i1 = 1;
for each invgprec in fet_virstk
{
if(blk1.Blocked_Qty <= invgprec.Block_Qty && i1 == 1)
{
//info "blocked qty is less than total qty";
invgprec.Block_Qty=ifnull(invgprec.Block_Qty,0) - ifnull(blk1.Blocked_Qty,0);
invgprec.Available_Qty=ifnull(invgprec.Available_Qty,0) + ifnull(blk1.Blocked_Qty,0);
}
else if(blk1.Blocked_Qty > invgprec.Block_Qty && i == 1)
{
//info "blocked qty is more than available qty";
balqty = ifnull(blk1.Blocked_Qty,0.0) - ifnull(invgprec.Block_Qty,0.0);
invgprec.Available_Qty=balqty;
invgprec.Block_Qty=ifnull(invgprec.Block_Qty,0) - ifnull(blk1.Blocked_Qty,0);
}
if(balqty > 0 && i > 1)
{
//info "balaance qty is more than zero";
//Balance Qty is less
if(balqty <= invgprec.Block_Qty)
{
// info "balance qty is less than available qty";
invgprec.Available_Qty=ifnull(invgprec.Available_Qty,0.0) + ifnull(balqty,0.0);
invgprec.Block_Qty=ifnull(invgprec.Block_Qty,0) - ifnull(blk1.Blocked_Qty,0);
balqty = 0;
}
//Balance Qty is More
else if(balqty >= invgprec.Block_Qty)
{
//info "balance qty is greater than available qty";
balqty = ifnull(balqty,0.0) - ifnull(invgprec.Block_Qty,0.0);
invgprec.Available_Qty=balqty;
invgprec.Block_Qty=ifnull(invgprec.Block_Qty,0) - ifnull(blk1.Blocked_Qty,0);
}
}
if(balqty == 0)
{
break;
}
i = i + 1;
}
}
}
}
}
//openUrl("#Script:page.refresh","same window");
openUrl("##Report:MRP_Reverse","same window");
if(var == 1 && input.Form_Mode == "Front")
{
openUrl("#Form:Alert_Messages?Status=" + "RMRP" + "&Value=" + input.Revert_No + "&zc_LoadIn=dialog","same window");
}
else if(input.Form_Mode == "Rear")
{
openUrl("#Form:Alert_Messages?Status=" + "REVMRP" + "&Value=" + input.Revert_No + "&zc_LoadIn=dialog","same window");
}
else if(input.Form_Mode == "ReverseWO")
{
openUrl("#Form:Alert_Messages?Status=" + "MRPRev" + "&Value=" + input.Revert_No + "&zc_LoadIn=dialog","same window");
}



Comments