From cc9e4740ded6b626fc11f712b767dbabbc862e23 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 17 Oct 2025 14:56:44 -0700 Subject: [PATCH 1/4] IO-3407 Resolve quantity required for QBD sales tax adj. --- server/accounting/qb-receivables-lines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js index a7ecc30ec..a4b5d607e 100644 --- a/server/accounting/qb-receivables-lines.js +++ b/server/accounting/qb-receivables-lines.js @@ -919,7 +919,7 @@ exports.default = function ({ bodyshop, jobs_by_pk, qbo = false, items, taxCodes FullName: responsibilityCenters.ttl_tax_adjustment?.accountitem }, Desc: "Tax Adjustment", - Quantity: 1, + //Quantity: 1, Amount: Dinero(jobs_by_pk.job_totals.totals?.ttl_tax_adjustment).toFormat(DineroQbFormat), SalesTaxCodeRef: InstanceManager({ imex: { From 68be8670b4157e16be369c89377dc4cac9583d1b Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 17 Oct 2025 15:06:58 -0700 Subject: [PATCH 2/4] IO-3407 Remove tax code ref for adjustment as well. --- server/accounting/qb-receivables-lines.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js index a4b5d607e..ff14936cd 100644 --- a/server/accounting/qb-receivables-lines.js +++ b/server/accounting/qb-receivables-lines.js @@ -921,14 +921,14 @@ exports.default = function ({ bodyshop, jobs_by_pk, qbo = false, items, taxCodes Desc: "Tax Adjustment", //Quantity: 1, Amount: Dinero(jobs_by_pk.job_totals.totals?.ttl_tax_adjustment).toFormat(DineroQbFormat), - SalesTaxCodeRef: InstanceManager({ - imex: { - FullName: "E" - }, - rome: { - FullName: bodyshop.md_responsibility_centers.taxes.itemexemptcode || "NON" - } - }) + // SalesTaxCodeRef: InstanceManager({ + // imex: { + // FullName: "E" + // }, + // rome: { + // FullName: bodyshop.md_responsibility_centers.taxes.itemexemptcode || "NON" + // } + // }) }); } } From b337309f94233ba6c6d9408166a1e3c2f429dc94 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Thu, 23 Oct 2025 09:17:15 -0700 Subject: [PATCH 3/4] IO-3412 Resolve tax rate typo in job costing. --- server/job/job-costing.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/job/job-costing.js b/server/job/job-costing.js index d1fe8b3d7..2e8d7d417 100644 --- a/server/job/job-costing.js +++ b/server/job/job-costing.js @@ -405,7 +405,7 @@ function GenerateCostingData(job) { ) { const discountRate = Math.abs(job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp) > 1 - ? job.parts_tax_rates_rates[val.part_type.toUpperCase()].prt_discp + ? job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp : job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp * 100; const disc = partsAmount.percentage(discountRate).multiply(-1); partsAmount = partsAmount.add(disc); From 1fd9b683200802f7425a891dc16a2e07a7a6d83c Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Thu, 23 Oct 2025 11:48:35 -0700 Subject: [PATCH 4/4] IO-3398 Bill line search select will now show price in select value. --- .../bill-form/bill-form.lines.component.jsx | 19 +++++---- .../bill-line-search-select.component.jsx | 42 ++++++++++--------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx index 994169302..d1a2c12a8 100644 --- a/client/src/components/bill-form/bill-form.lines.component.jsx +++ b/client/src/components/bill-form/bill-form.lines.component.jsx @@ -45,7 +45,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.jobline"), dataIndex: "joblineid", editable: true, - width: "20rem", + minWidth: "10rem", formItemProps: (field) => { return { key: `${field.index}joblinename`, @@ -71,9 +71,9 @@ export function BillEnterModalLinesComponent({ disabled={disabled} options={lineData} style={{ - width: "20rem", - maxWidth: "20rem", - minWidth: "10rem", + //width: "10rem", + // maxWidth: "20rem", + minWidth: "20rem", whiteSpace: "normal", height: "auto", minHeight: "32px" // default height of Ant Design inputs @@ -110,7 +110,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.line_desc"), dataIndex: "line_desc", editable: true, - width: "20rem", + minWidth: "10rem", formItemProps: (field) => { return { key: `${field.index}line_desc`, @@ -232,7 +232,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.actual_cost"), dataIndex: "actual_cost", editable: true, - width: "8rem", + width: "10rem", formItemProps: (field) => { return { @@ -357,6 +357,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.labels.deductedfromlbr"), dataIndex: "deductedfromlbr", editable: true, + width: "40px", formItemProps: (field) => { return { valuePropName: "checked", @@ -464,7 +465,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.federal_tax_applicable"), dataIndex: "applicable_taxes.federal", editable: true, - + width: "40px", formItemProps: (field) => { return { key: `${field.index}fedtax`, @@ -485,7 +486,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.state_tax_applicable"), dataIndex: "applicable_taxes.state", editable: true, - + width: "40px", formItemProps: (field) => { return { key: `${field.index}statetax`, @@ -503,7 +504,7 @@ export function BillEnterModalLinesComponent({ title: t("billlines.fields.local_tax_applicable"), dataIndex: "applicable_taxes.local", editable: true, - + width: "40px", formItemProps: (field) => { return { key: `${field.index}localtax`, diff --git a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx index ac97c8e81..40ae46c9e 100644 --- a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx +++ b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx @@ -39,30 +39,32 @@ const BillLineSearchSelect = ({ options, disabled, allowRemoved, ...restProps }, style: { ...(item.removed ? { textDecoration: "line-through" } : {}) }, - name: `${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${ - item.oem_partno ? ` - ${item.oem_partno}` : "" - }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim(), - label: ( -
- - {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${ - item.oem_partno ? ` - ${item.oem_partno}` : "" - }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()} - - {InstanceRenderMgr({ - rome: item.act_price === 0 && item.mod_lb_hrs > 0 && ( - {`${item.mod_lb_hrs} units`} - ) - })} - - {item.act_price ? `$${item.act_price && item.act_price.toFixed(2)}` : ``} - -
- ) + name: generateLineName(item), + label: generateLineName(item) })) ]} {...restProps} > ); }; + +function generateLineName(item) { + return ( +
+ + {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${ + item.oem_partno ? ` - ${item.oem_partno}` : "" + }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()} + + {InstanceRenderMgr({ + rome: item.act_price === 0 && item.mod_lb_hrs > 0 && ( + {`${item.mod_lb_hrs} units`} + ) + })} + + {item.act_price ? `$${item.act_price && item.act_price.toFixed(2)}` : ``} + +
+ ); +} export default forwardRef(BillLineSearchSelect);