With some custom Javascript the trashcan may effect an update ensuring the resulting remaining items are calculating as intended
Step-by-step guide
Click on Modules.
Select the Module with the Line Item.
Select the Forms tab.
Select Field List button "Create/Update Fields".
Use the filter to find relevant Line Item.
Select the control name or pencil icon to Edit.
Select Custom JavaScript tab.
Paste the Javascript below
/*** Example: Remove Handler for Line Item trash can **/
fieldScope.factoryremoveRow = fieldScope.removeRow;
fieldScope.removeRow = function (field, idx) {
debugger;
fieldScope.factoryremoveRow(field, idx)
debugger;
var runningTotal = 0;
/ loop for i 0-19 /
for (var i = 0; i < 20; i++) {
/ Using i as row # checks if the field and row exist */
if (formScope.formdata.hasOwnProperty("line_extendedfieldLineItem_customString8_" + i) && formScope.formdata[("line_extendedfieldLineItem_customString8_" + i)]) {
var sysInv = 0;
if (formScope.formdata[("line_extendedfieldLineItem_customNumeric5_" + i)]){
sysInv = formScope.formdata[("line_extendedfieldLineItem_customNumeric5_" + i)];
}
var physInv = 0;
if (formScope.formdata[("line_extendedfieldLineItem_customNumeric6_" + i)]){
physInv = formScope.formdata[("line_extendedfieldLineItem_customNumeric6_" + i)];
}
var pendInv = 0;
if (formScope.formdata[("line_extendedfieldLineItem_customNumeric7_" + i)]){
pendInv = formScope.formdata[("line_extendedfieldLineItem_customNumeric7_" + i)];
}
// Assign total calculation for row
formScope.formdata[("line_extendedfieldLineItem_customNumeric8_" + i)] = (physInv - sysInv);
runningTotal = runningTotal + formScope.formdata[("line_extendedfieldLineItem_customNumeric8_" + i)];
}
}
// Assign Final Total calculation for all rows
formScope.formdata.customNumeric4 = runningTotal;
};
/*** Example: Remove Handler for Line Item trash can **/
fieldScope.factoryremoveRow = fieldScope.removeRow;
fieldScope.removeRow = function (field, idx) {
debugger;
fieldScope.factoryremoveRow(field, idx)
};