diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel
index 6d11973f7..93c5af532 100644
--- a/bodyshop_translations.babel
+++ b/bodyshop_translations.babel
@@ -2250,6 +2250,27 @@
+
+ mod_lbr_adjustment
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
other
false
@@ -2349,6 +2370,27 @@
actions
+
+ deductallhours
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
edit
false
@@ -32420,6 +32462,27 @@
+
+ total_sales_tax
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
totals
false
diff --git a/client/src/components/job-totals-table/job-totals.table.totals.component.jsx b/client/src/components/job-totals-table/job-totals.table.totals.component.jsx
index 8b0106c7a..ee9645bc5 100644
--- a/client/src/components/job-totals-table/job-totals.table.totals.component.jsx
+++ b/client/src/components/job-totals-table/job-totals.table.totals.component.jsx
@@ -32,42 +32,105 @@ export function JobTotalsTableTotals({ bodyshop, job }) {
...(job.job_totals.totals.us_sales_tax_breakdown
? [
{
- key:
+ key: `${
bodyshop.md_responsibility_centers.taxes.tax_ty1?.tax_type1 ||
- "T1",
+ "T1"
+ } - ${[
+ job.cieca_pft.ty1_rate1,
+ job.cieca_pft.ty1_rate2,
+ job.cieca_pft.ty1_rate3,
+ job.cieca_pft.ty1_rate4,
+ job.cieca_pft.ty1_rate5,
+ ]
+ .filter((i) => i > 0)
+ .join(", ")}%`,
total: job.job_totals.totals.us_sales_tax_breakdown.ty1Tax,
},
{
- key:
+ key: `${
bodyshop.md_responsibility_centers.taxes.tax_ty2?.tax_type2 ||
- "T2",
+ "T2"
+ } - ${[
+ job.cieca_pft.ty2_rate1,
+ job.cieca_pft.ty2_rate2,
+ job.cieca_pft.ty2_rate3,
+ job.cieca_pft.ty2_rate4,
+ job.cieca_pft.ty2_rate5,
+ ]
+ .filter((i) => i > 0)
+ .join(", ")}%`,
total: job.job_totals.totals.us_sales_tax_breakdown.ty2Tax,
},
{
- key:
+ key: `${
bodyshop.md_responsibility_centers.taxes.tax_ty3?.tax_type3 ||
- "T3",
+ "T3"
+ } - ${[
+ job.cieca_pft.ty3_rate1,
+ job.cieca_pft.ty3_rate2,
+ job.cieca_pft.ty3_rate3,
+ job.cieca_pft.ty3_rate4,
+ job.cieca_pft.ty3_rate5,
+ ]
+ .filter((i) => i > 0)
+ .join(", ")}%`,
total: job.job_totals.totals.us_sales_tax_breakdown.ty3Tax,
},
{
- key:
+ key: `${
bodyshop.md_responsibility_centers.taxes.tax_ty4?.tax_type4 ||
- "T4",
+ "T4"
+ } - ${[
+ job.cieca_pft.ty4_rate1,
+ job.cieca_pft.ty4_rate2,
+ job.cieca_pft.ty4_rate3,
+ job.cieca_pft.ty4_rate4,
+ job.cieca_pft.ty4_rate5,
+ ]
+ .filter((i) => i > 0)
+ .join(", ")}%`,
total: job.job_totals.totals.us_sales_tax_breakdown.ty4Tax,
},
{
- key:
+ key: `${
bodyshop.md_responsibility_centers.taxes.tax_ty5?.tax_type5 ||
- "T5",
+ "TT"
+ } - ${[
+ job.cieca_pft.ty5_rate1,
+ job.cieca_pft.ty5_rate2,
+ job.cieca_pft.ty5_rate3,
+ job.cieca_pft.ty5_rate4,
+ job.cieca_pft.ty5_rate5,
+ ]
+ .filter((i) => i > 0)
+ .join(", ")}%`,
total: job.job_totals.totals.us_sales_tax_breakdown.ty5Tax,
},
- ]
+ {
+ key: t("jobs.labels.total_sales_tax"),
+ bold: true,
+ total: Dinero(job.job_totals.totals.us_sales_tax_breakdown.ty1Tax)
+ .add(
+ Dinero(job.job_totals.totals.us_sales_tax_breakdown.ty2Tax)
+ )
+ .add(
+ Dinero(job.job_totals.totals.us_sales_tax_breakdown.ty3Tax)
+ )
+ .add(
+ Dinero(job.job_totals.totals.us_sales_tax_breakdown.ty4Tax)
+ )
+ .add(
+ Dinero(job.job_totals.totals.us_sales_tax_breakdown.ty5Tax)
+ ).toJSON(),
+ },
+ ].filter((item) => item.total.amount !== 0)
: [
{
key: t("jobs.labels.state_tax_amt"),
total: job.job_totals.totals.state_tax,
},
]),
+
{
key: t("jobs.labels.total_repairs"),
total: job.job_totals.totals.total_repairs,
@@ -101,7 +164,7 @@ export function JobTotalsTableTotals({ bodyshop, job }) {
bold: true,
},
];
- }, [job.job_totals, t, bodyshop.md_responsibility_centers]);
+ }, [job.job_totals, job.cieca_pft, t, bodyshop.md_responsibility_centers]);
const columns = [
{
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index ecd1e183e..1db4aae83 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -145,6 +145,7 @@
"deductedfromlbr": "Deduct from Labor?",
"entered": "Entered",
"from": "From",
+ "mod_lbr_adjustment": "",
"other": "-- Not On Estimate --",
"reconciled": "Reconciled!",
"unreconciled": "Unreconciled"
@@ -155,6 +156,7 @@
},
"bills": {
"actions": {
+ "deductallhours": "",
"edit": "Edit",
"receive": "Receive Part",
"return": "Return Items"
@@ -1890,6 +1892,7 @@
"total_cust_payable": "Total Customer Amount Payable",
"total_repairs": "Total Repairs",
"total_sales": "Total Sales",
+ "total_sales_tax": "Total Sales Tax",
"totals": "Totals",
"unvoidnote": "This job was unvoided.",
"vehicle_info": "Vehicle",
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index 6ca073170..cdc049ce3 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -145,6 +145,7 @@
"deductedfromlbr": "",
"entered": "",
"from": "",
+ "mod_lbr_adjustment": "",
"other": "",
"reconciled": "",
"unreconciled": ""
@@ -155,6 +156,7 @@
},
"bills": {
"actions": {
+ "deductallhours": "",
"edit": "",
"receive": "",
"return": ""
@@ -1890,6 +1892,7 @@
"total_cust_payable": "",
"total_repairs": "",
"total_sales": "",
+ "total_sales_tax": "",
"totals": "",
"unvoidnote": "",
"vehicle_info": "Vehículo",
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index a65bef325..26d8ef275 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -145,6 +145,7 @@
"deductedfromlbr": "",
"entered": "",
"from": "",
+ "mod_lbr_adjustment": "",
"other": "",
"reconciled": "",
"unreconciled": ""
@@ -155,6 +156,7 @@
},
"bills": {
"actions": {
+ "deductallhours": "",
"edit": "",
"receive": "",
"return": ""
@@ -1890,6 +1892,7 @@
"total_cust_payable": "",
"total_repairs": "",
"total_sales": "",
+ "total_sales_tax": "",
"totals": "",
"unvoidnote": "",
"vehicle_info": "Véhicule",