WO insert

PHOTO EMBED

Tue Aug 20 2024 10:26:52 GMT+0000 (Coordinated Universal Time)

Saved by @nishpod

//CALCULATION: 1
		line = WO_Lines_Import1[ID != 0];
		mainwo = WO[Works_Order_Number == line.WO_No];
		if(line.Works_Line_Amount != null)
		{
			if(mainwo.VAT_ApplicableWO = "No")
			{
				line.Percent=line.Works_Line_Amount / mainwo.WO_NetValue * 100;
				line.Gross=line.Works_Line_Amount;
				line.VAT=0.00;
				line.Net=line.Works_Line_Amount;
			}
			else if(mainwo.VAT_ApplicableWO = "Yes")
			{
				line.Percent=line.Works_Line_Amount / mainwo.WO_NetValue * 100;
				line.Gross=line.Works_Line_Amount / 100 * 120;
				line.VAT=line.Gross - line.Works_Line_Amount;
				line.Net=line.Gross / 120 * 100;
			}
			//sum rows;
			total_line = WO_Lines_Import1.sum(Works_Line_Amount);
			total_perc = WO_Lines_Import1.sum(Percent);
			info total_line;
			info total_perc;
			//CALC 2: Compare values /validations 
			if(total_perc != 100)
			{
				alertmsg = "Line item percentages do not sum to 100 - please amend and import again";
				alerturl = "#Form:Alert?plain=" + alertmsg;
				openUrl(alerturl,"popup window","height=300,width=500");
				delete from WO_Lines_Import1[WO_No == mainwo.Works_Order_Number];
				openURL("#Page:WO_Lines_Import","same window");
			}
			else if(total_line = 0.00 || total_line is null)
			{
				alertmsg = "Line item total cannot be zero or empty - please amend";
				alerturl = "#Form:Alert?plain=" + alertmsg;
				openUrl(alerturl,"popup window","height=300,width=500");
				delete from WO_Lines_Import1[WO_No == mainwo.Works_Order_Number];
				openURL("#Page:WO_Lines_Import","same window");
			}
			else if(total_line != mainwo.WO_NetValue)
			{
				alertmsg = "Sum of line totals does not equal WO net value - please amend";
				alerturl = "#Form:Alert?plain=" + alertmsg;
				openUrl(alerturl,"popup window","height=300,width=500");
				delete from WO_Lines_Import1[WO_No == mainwo.Works_Order_Number];
				openURL("#Page:WO_Lines_Import","same window");
			}
			else
			{
				mainwo.Line_item_total=total_line;
				mainwo.Line_perctotal=total_perc;
				//	INSERT into WO
				rows_collection = Collection();
				for each  rec in WO_Lines_Import1
				{
					row1 = WO.Order_DetailsWO();
					//development
					devID = Developments[Development_Name == rec.Dev_name].ID;
					row1.Development_PropertySF=devID;
					//block
					blockID = Development_Blocks[Block_Name == rec.Block_name].ID;
					row1.Block=blockID;
					//schedule
					sched = ScheduleBudgets[ID == rec.ScheduleID].ID;
					row1.ScheduleID=sched;
					//cost head 
					costheadID = BudgetBuilderCH[ID == rec.Cost_HeadID].ID;
					row1.Cost_HeadID=costheadID;
					//asset 
					assetID = Add_Single_Asset[ID == rec.AssetWO_ID].ID;
					row1.AssetWO_ID=assetID;
					//ppm
					ppmID = Testing_and_Maintenance[ID == rec.PPM_ID].ID;
					row1.PPM_ID=ppmID;
					row1.Works_Required=rec.Works_Required;
					//calculation fields 
					row1.Percent=rec.Percent;
					row1.Works_Line_Amount=rec.Works_Line_Amount;
					row1.VAT=0.2 * rec.Works_Line_Amount;
					row1.Gross=rec.Works_Line_Amount + row1.VAT;
					row1.Net=rec.Works_Line_Amount;
					rows_collection.insert(row1);
					fet = WO[Works_Order_Number == rec.WO_No];
					fet.Order_DetailsWO.insert(rows_collection);
				}
				delete from WO_Lines_Import1[WO_No == rec.WO_No];
				openURL("#Page:WO_Lines_Import","same window");
			}
		}
content_copyCOPY