IO-2023 Resolve hours paid as part for MPI.

This commit is contained in:
Patrick Fic
2022-08-16 16:18:50 -07:00
parent b744720efe
commit fe6e85e993
3 changed files with 41 additions and 34 deletions

View File

@@ -309,7 +309,8 @@ function GenerateCostingData(job) {
job.bodyshop.md_responsibility_centers.defaults.profits;
const allCenters = _.union(
job.bodyshop.md_responsibility_centers.profits.map((p) => p.name),
job.bodyshop.md_responsibility_centers.costs.map((p) => p.name)
job.bodyshop.md_responsibility_centers.costs.map((p) => p.name),
["Unknown"]
);
const materialsHours = { mapaHrs: 0, mashHrs: 0 };
@@ -331,9 +332,11 @@ function GenerateCostingData(job) {
}
if (val.mod_lbr_ty) {
const laborProfitCenter =
val.profitcenter_labor || defaultProfits[val.mod_lbr_ty] || "?";
val.profitcenter_labor ||
defaultProfits[val.mod_lbr_ty] ||
"Unknown";
if (laborProfitCenter === "?")
if (laborProfitCenter === "Unknown")
console.log("Unknown type", val.line_desc, val.mod_lbr_ty);
const rateName = `rate_${(val.mod_lbr_ty || "").toLowerCase()}`;
@@ -374,9 +377,9 @@ function GenerateCostingData(job) {
val.part_type !== "PASL"
) {
const partsProfitCenter =
val.profitcenter_part || defaultProfits[val.part_type] || "?";
val.profitcenter_part || defaultProfits[val.part_type] || "Unknown";
if (partsProfitCenter === "?")
if (partsProfitCenter === "Unknown")
console.log("Unknown type", val.line_desc, val.part_type);
if (!partsProfitCenter)
@@ -414,9 +417,9 @@ function GenerateCostingData(job) {
(val.part_type === "PAS" || val.part_type === "PASL")
) {
const partsProfitCenter =
val.profitcenter_part || defaultProfits[val.part_type] || "?";
val.profitcenter_part || defaultProfits[val.part_type] || "Unknown";
if (partsProfitCenter === "?")
if (partsProfitCenter === "Unknown")
console.log("Unknown type", val.line_desc, val.part_type);
if (!partsProfitCenter)
@@ -431,17 +434,17 @@ function GenerateCostingData(job) {
.multiply(val.part_qty || 1)
.add(
((val.prt_dsmk_m && val.prt_dsmk_m !== 0) ||
(val.prt_dsmk_p && val.prt_dsmk_p !== 0)) &&
DiscountNotAlreadyCounted(val, job.joblines)
? val.prt_dsmk_m
? Dinero({ amount: Math.round(val.prt_dsmk_m * 100) })
: Dinero({
amount: Math.round(val.act_price * 100),
})
.multiply(val.part_qty || 0)
.percentage(Math.abs(val.prt_dsmk_p || 0))
.multiply(val.prt_dsmk_p > 0 ? 1 : -1)
: Dinero()
(val.prt_dsmk_p && val.prt_dsmk_p !== 0)) &&
DiscountNotAlreadyCounted(val, job.joblines)
? val.prt_dsmk_m
? Dinero({ amount: Math.round(val.prt_dsmk_m * 100) })
: Dinero({
amount: Math.round(val.act_price * 100),
})
.multiply(val.part_qty || 0)
.percentage(Math.abs(val.prt_dsmk_p || 0))
.multiply(val.prt_dsmk_p > 0 ? 1 : -1)
: Dinero()
);
if (!acc.sublet[partsProfitCenter])
acc.sublet[partsProfitCenter] = Dinero();
@@ -456,17 +459,17 @@ function GenerateCostingData(job) {
const partsProfitCenter =
val.profitcenter_part ||
getAdditionalCostCenter(val, defaultProfits) ||
"?";
"Unknown";
if (partsProfitCenter === "?") {
if (partsProfitCenter === "Unknown") {
console.log("Unknown type", val.line_desc, val.part_type);
} else {
const partsAmount = Dinero({
amount: Math.round((val.act_price || 0) * 100),
})
.multiply(val.part_qty || 1)
.add(
((val.prt_dsmk_m && val.prt_dsmk_m !== 0) ||
}
const partsAmount = Dinero({
amount: Math.round((val.act_price || 0) * 100),
})
.multiply(val.part_qty || 1)
.add(
((val.prt_dsmk_m && val.prt_dsmk_m !== 0) ||
(val.prt_dsmk_p && val.prt_dsmk_p !== 0)) &&
DiscountNotAlreadyCounted(val, job.joblines)
? val.prt_dsmk_m
@@ -478,13 +481,12 @@ function GenerateCostingData(job) {
.percentage(Math.abs(val.prt_dsmk_p || 0))
.multiply(val.prt_dsmk_p > 0 ? 1 : -1)
: Dinero()
);
);
if (!acc.additional[partsProfitCenter])
acc.additional[partsProfitCenter] = Dinero();
acc.additional[partsProfitCenter] =
acc.additional[partsProfitCenter].add(partsAmount);
}
if (!acc.additional[partsProfitCenter])
acc.additional[partsProfitCenter] = Dinero();
acc.additional[partsProfitCenter] =
acc.additional[partsProfitCenter].add(partsAmount);
}
return acc;