diff --git a/server/job/job-costing.js b/server/job/job-costing.js index d82d0ac42..274012e2f 100644 --- a/server/job/job-costing.js +++ b/server/job/job-costing.js @@ -269,7 +269,7 @@ function GenerateCostingData(job) { job && job.joblines.reduce( (acc, val) => { - //Parts Lines + //Shop or Paint Material Flags if (val.db_ref === "936008") { //If either of these DB REFs change, they also need to change in job-totals/job-costing calculations. hasMapaLine = true; @@ -277,6 +277,8 @@ function GenerateCostingData(job) { if (val.db_ref === "936007") { hasMashLine = true; } + + //Labor Profit Center if (val.mod_lbr_ty) { const laborProfitCenter = val.profitcenter_labor || defaultProfits[val.mod_lbr_ty] || "Unknown"; @@ -307,6 +309,7 @@ function GenerateCostingData(job) { } } + // Part Profit Center if (val.part_type && val.part_type !== "PAE" && val.part_type !== "PAS" && val.part_type !== "PASL") { const partsProfitCenter = val.profitcenter_part || defaultProfits[val.part_type] || "Unknown"; @@ -334,6 +337,8 @@ function GenerateCostingData(job) { if (!acc.parts[partsProfitCenter]) acc.parts[partsProfitCenter] = Dinero(); acc.parts[partsProfitCenter] = acc.parts[partsProfitCenter].add(partsAmount); } + + //Sublet Profit Center if (val.part_type && val.part_type !== "PAE" && (val.part_type === "PAS" || val.part_type === "PASL")) { const partsProfitCenter = val.profitcenter_part || defaultProfits[val.part_type] || "Unknown"; @@ -362,8 +367,8 @@ function GenerateCostingData(job) { acc.sublet[partsProfitCenter] = acc.sublet[partsProfitCenter].add(partsAmount); } - //To deal with additional costs. - if (!val.part_type && !val.mod_lbr_ty) { + //Additional Profit Center + if ((!val.part_type && !val.mod_lbr_ty) || (!val.part_type && val.mod_lbr_ty)) { //Does it already have a defined profit center? //If so, use it, otherwise try to use the same from the auto-allocate logic in IO app jobs-close-auto-allocate. const partsProfitCenter = val.profitcenter_part || getAdditionalCostCenter(val, defaultProfits) || "Unknown";