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",