IO-1468 Resolve line markup for MCE.
This commit is contained in:
@@ -162,7 +162,11 @@ export function JobLinesComponent({
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<>
|
<>
|
||||||
<CurrencyFormatter>{record.act_price}</CurrencyFormatter>
|
<CurrencyFormatter>
|
||||||
|
{record.db_ref === "900510" || record.db_ref === "900511"
|
||||||
|
? record.prt_dsmk_m
|
||||||
|
: record.act_price}
|
||||||
|
</CurrencyFormatter>
|
||||||
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
||||||
<span
|
<span
|
||||||
style={{ marginLeft: ".2rem" }}
|
style={{ marginLeft: ".2rem" }}
|
||||||
|
|||||||
@@ -498,6 +498,12 @@ async function CheckTaxRates(estData, bodyshop) {
|
|||||||
) {
|
) {
|
||||||
estData.joblines.data[index].tax_part = jl.lbr_tax;
|
estData.joblines.data[index].tax_part = jl.lbr_tax;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Set markup lines and tax lines as taxable.
|
||||||
|
//900510 is a mark up. 900510 is a discount.
|
||||||
|
if (bodyshop.region_config === "CA_SK" && jl.db_ref === "900510") {
|
||||||
|
estData.joblines.data[index].tax_part = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -284,39 +284,54 @@ function CalculatePartsTotals(jobLines) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (!value.part_type) return acc;
|
if (
|
||||||
|
!value.part_type &&
|
||||||
|
value.db_ref !== "900510" &&
|
||||||
|
value.db_ref !== "900511"
|
||||||
|
)
|
||||||
|
return acc;
|
||||||
return {
|
return {
|
||||||
...acc,
|
...acc,
|
||||||
parts: {
|
parts: {
|
||||||
...acc.parts,
|
...acc.parts,
|
||||||
prt_dsmk_total: acc.parts.prt_dsmk_total.add(
|
prt_dsmk_total: acc.parts.prt_dsmk_total.add(
|
||||||
value.prt_dsmk_m && value.prt_dsmk_m !== 0
|
value.prt_dsmk_m && value.prt_dsmk_m !== 0
|
||||||
? Dinero({ amount: Math.round(value.prt_dsmk_m * 100) })
|
? Dinero({ amount: Math.round(value.prt_dsmk_m * 100) })
|
||||||
: Dinero({
|
: Dinero({
|
||||||
amount: Math.round(value.act_price * 100),
|
amount: Math.round(value.act_price * 100),
|
||||||
})
|
})
|
||||||
.multiply(value.part_qty || 0)
|
.multiply(value.part_qty || 0)
|
||||||
.percentage(Math.abs(value.prt_dsmk_p || 0))
|
.percentage(Math.abs(value.prt_dsmk_p || 0))
|
||||||
.multiply(value.prt_dsmk_p > 0 ? 1 : -1)
|
.multiply(value.prt_dsmk_p > 0 ? 1 : -1)
|
||||||
),
|
),
|
||||||
list: {
|
...(value.part_type
|
||||||
...acc.parts.list,
|
? {
|
||||||
[value.part_type]:
|
list: {
|
||||||
acc.parts.list[value.part_type] &&
|
...acc.parts.list,
|
||||||
acc.parts.list[value.part_type].total
|
[value.part_type]:
|
||||||
? {
|
acc.parts.list[value.part_type] &&
|
||||||
total: acc.parts.list[value.part_type].total.add(
|
acc.parts.list[value.part_type].total
|
||||||
Dinero({
|
? {
|
||||||
amount: Math.round((value.act_price || 0) * 100),
|
total: acc.parts.list[
|
||||||
}).multiply(value.part_qty || 0)
|
value.part_type
|
||||||
),
|
].total.add(
|
||||||
}
|
Dinero({
|
||||||
: {
|
amount: Math.round(
|
||||||
total: Dinero({
|
(value.act_price || 0) * 100
|
||||||
amount: Math.round((value.act_price || 0) * 100),
|
),
|
||||||
}).multiply(value.part_qty || 0),
|
}).multiply(value.part_qty || 0)
|
||||||
},
|
),
|
||||||
},
|
}
|
||||||
|
: {
|
||||||
|
total: Dinero({
|
||||||
|
amount: Math.round(
|
||||||
|
(value.act_price || 0) * 100
|
||||||
|
),
|
||||||
|
}).multiply(value.part_qty || 0),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
: {}),
|
||||||
subtotal: acc.parts.subtotal
|
subtotal: acc.parts.subtotal
|
||||||
.add(
|
.add(
|
||||||
Dinero({
|
Dinero({
|
||||||
@@ -325,13 +340,13 @@ function CalculatePartsTotals(jobLines) {
|
|||||||
)
|
)
|
||||||
.add(
|
.add(
|
||||||
value.prt_dsmk_m && value.prt_dsmk_m !== 0
|
value.prt_dsmk_m && value.prt_dsmk_m !== 0
|
||||||
? Dinero({ amount: Math.round(value.prt_dsmk_m * 100) })
|
? Dinero({ amount: Math.round(value.prt_dsmk_m * 100) })
|
||||||
: Dinero({
|
: Dinero({
|
||||||
amount: Math.round(value.act_price * 100),
|
amount: Math.round(value.act_price * 100),
|
||||||
})
|
})
|
||||||
.multiply(value.part_qty || 0)
|
.multiply(value.part_qty || 0)
|
||||||
.percentage(Math.abs(value.prt_dsmk_p || 0))
|
.percentage(Math.abs(value.prt_dsmk_p || 0))
|
||||||
.multiply(value.prt_dsmk_p > 0 ? 1 : -1)
|
.multiply(value.prt_dsmk_p > 0 ? 1 : -1)
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -465,13 +480,13 @@ function CalculateTaxesTotals(job, otherTotals) {
|
|||||||
.multiply(val.part_qty || 0)
|
.multiply(val.part_qty || 0)
|
||||||
.add(
|
.add(
|
||||||
val.prt_dsmk_m && val.prt_dsmk_m !== 0
|
val.prt_dsmk_m && val.prt_dsmk_m !== 0
|
||||||
? Dinero({ amount: Math.round(val.prt_dsmk_m * 100) })
|
? Dinero({ amount: Math.round(val.prt_dsmk_m * 100) })
|
||||||
: Dinero({
|
: Dinero({
|
||||||
amount: Math.round(val.act_price * 100),
|
amount: Math.round(val.act_price * 100),
|
||||||
})
|
})
|
||||||
.multiply(val.part_qty || 0)
|
.multiply(val.part_qty || 0)
|
||||||
.percentage(Math.abs(val.prt_dsmk_p || 0))
|
.percentage(Math.abs(val.prt_dsmk_p || 0))
|
||||||
.multiply(val.prt_dsmk_p > 0 ? 1 : -1)
|
.multiply(val.prt_dsmk_p > 0 ? 1 : -1)
|
||||||
)
|
)
|
||||||
.percentage(
|
.percentage(
|
||||||
((job.parts_tax_rates &&
|
((job.parts_tax_rates &&
|
||||||
@@ -481,6 +496,10 @@ function CalculateTaxesTotals(job, otherTotals) {
|
|||||||
val.part_type.startsWith("PAG") &&
|
val.part_type.startsWith("PAG") &&
|
||||||
BackupGlassTax &&
|
BackupGlassTax &&
|
||||||
BackupGlassTax.prt_tax_rt) ||
|
BackupGlassTax.prt_tax_rt) ||
|
||||||
|
(!val.part_type &&
|
||||||
|
val.db_ref === "900510" &&
|
||||||
|
job.parts_tax_rates["PAN"] &&
|
||||||
|
job.parts_tax_rates["PAN"].prt_tax_rt) ||
|
||||||
0) * 100
|
0) * 100
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user