@@ -1,4 +1,4 @@
|
|||||||
<babeledit_project be_version="2.7.1" version="1.2">
|
<babeledit_project version="1.2" be_version="2.7.1">
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BabelEdit project file
|
BabelEdit project file
|
||||||
@@ -15331,6 +15331,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>prt_dsmk_p</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>status</name>
|
<name>status</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -18647,6 +18668,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>pac</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>pae</name>
|
<name>pae</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -31201,6 +31243,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>gsr_by_ins_co</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>gsr_by_make</name>
|
<name>gsr_by_make</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -31264,27 +31327,6 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
<concept_node>
|
|
||||||
<name>gsr_by_ins_co</name>
|
|
||||||
<definition_loaded>false</definition_loaded>
|
|
||||||
<description></description>
|
|
||||||
<comment></comment>
|
|
||||||
<default_text></default_text>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-MX</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-CA</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>gsr_labor_only</name>
|
<name>gsr_labor_only</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -160,10 +160,12 @@ export function JobLinesComponent({
|
|||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<>
|
<>
|
||||||
<CurrencyFormatter>{record.act_price}</CurrencyFormatter>
|
<CurrencyFormatter>{record.act_price}</CurrencyFormatter>
|
||||||
{record.prt_dsmk_p !== 0 && (
|
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
||||||
<span
|
<span
|
||||||
style={{ marginLeft: ".2rem" }}
|
style={{ marginLeft: ".2rem" }}
|
||||||
>{`(${record.prt_dsmk_p}%)`}</span>
|
>{`(${record.prt_dsmk_p}%)`}</span>
|
||||||
|
) : (
|
||||||
|
<></>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -210,6 +210,13 @@ export default function JobLinesUpsertModalComponent({
|
|||||||
>
|
>
|
||||||
<InputCurrency precision={2} min={0} />
|
<InputCurrency precision={2} min={0} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("joblines.fields.prt_dsmk_p")}
|
||||||
|
name="prt_dsmk_p"
|
||||||
|
initialValue={0}
|
||||||
|
>
|
||||||
|
<InputNumber precision={0} min={0} max={100} />
|
||||||
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|||||||
@@ -36,8 +36,11 @@ export function JobsDetailRates({ jobRO, form, job }) {
|
|||||||
<CurrencyInput
|
<CurrencyInput
|
||||||
disabled={jobRO}
|
disabled={jobRO}
|
||||||
max={
|
max={
|
||||||
((job.job_totals && job.job_totals.totals.federal_tax.amount) ||
|
Math.round(
|
||||||
0) / 100
|
(job.job_totals &&
|
||||||
|
job.job_totals.totals.federal_tax.amount) ||
|
||||||
|
0
|
||||||
|
) / 100
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|||||||
@@ -967,6 +967,7 @@
|
|||||||
},
|
},
|
||||||
"profitcenter_labor": "Profit Center: Labor",
|
"profitcenter_labor": "Profit Center: Labor",
|
||||||
"profitcenter_part": "Profit Center: Part",
|
"profitcenter_part": "Profit Center: Part",
|
||||||
|
"prt_dsmk_p": "Line Markup %",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"total": "Total",
|
"total": "Total",
|
||||||
"unq_seq": "Seq #"
|
"unq_seq": "Seq #"
|
||||||
@@ -1139,6 +1140,7 @@
|
|||||||
"ownr_ea": "Email",
|
"ownr_ea": "Email",
|
||||||
"ownr_ph1": "Phone 1",
|
"ownr_ph1": "Phone 1",
|
||||||
"paa": "Aftermarket",
|
"paa": "Aftermarket",
|
||||||
|
"pac": "Rechromed",
|
||||||
"pae": "Existing",
|
"pae": "Existing",
|
||||||
"pag": "Glass",
|
"pag": "Glass",
|
||||||
"pal": "LKQ",
|
"pal": "LKQ",
|
||||||
@@ -1876,10 +1878,10 @@
|
|||||||
"gsr_by_delivery_date": "Gross Sales by Delivery Date",
|
"gsr_by_delivery_date": "Gross Sales by Delivery Date",
|
||||||
"gsr_by_estimator": "Gross Sales by Estimator",
|
"gsr_by_estimator": "Gross Sales by Estimator",
|
||||||
"gsr_by_exported_date": "Gross Sales by Export Date",
|
"gsr_by_exported_date": "Gross Sales by Export Date",
|
||||||
|
"gsr_by_ins_co": "Gross Sales by Insurance Company'",
|
||||||
"gsr_by_make": "Gross Sales by Vehicle Make",
|
"gsr_by_make": "Gross Sales by Vehicle Make",
|
||||||
"gsr_by_referral": "Gross Sales by Referral Source",
|
"gsr_by_referral": "Gross Sales by Referral Source",
|
||||||
"gsr_by_ro": "Gross Sales by RO",
|
"gsr_by_ro": "Gross Sales by RO",
|
||||||
"gsr_by_ins_co": "Gross Sales by Insurance Company'",
|
|
||||||
"gsr_labor_only": "Gross Sales - Labor Only",
|
"gsr_labor_only": "Gross Sales - Labor Only",
|
||||||
"hours_sold_detail_closed": "Hours Sold Detail - Closed",
|
"hours_sold_detail_closed": "Hours Sold Detail - Closed",
|
||||||
"hours_sold_detail_closed_ins_co": "Hours Sold Detail - Closed by Source",
|
"hours_sold_detail_closed_ins_co": "Hours Sold Detail - Closed by Source",
|
||||||
|
|||||||
@@ -967,6 +967,7 @@
|
|||||||
},
|
},
|
||||||
"profitcenter_labor": "",
|
"profitcenter_labor": "",
|
||||||
"profitcenter_part": "",
|
"profitcenter_part": "",
|
||||||
|
"prt_dsmk_p": "",
|
||||||
"status": "Estado",
|
"status": "Estado",
|
||||||
"total": "",
|
"total": "",
|
||||||
"unq_seq": "Seq #"
|
"unq_seq": "Seq #"
|
||||||
@@ -1139,6 +1140,7 @@
|
|||||||
"ownr_ea": "Email",
|
"ownr_ea": "Email",
|
||||||
"ownr_ph1": "Teléfono 1",
|
"ownr_ph1": "Teléfono 1",
|
||||||
"paa": "",
|
"paa": "",
|
||||||
|
"pac": "",
|
||||||
"pae": "",
|
"pae": "",
|
||||||
"pag": "",
|
"pag": "",
|
||||||
"pal": "",
|
"pal": "",
|
||||||
@@ -1876,10 +1878,10 @@
|
|||||||
"gsr_by_delivery_date": "",
|
"gsr_by_delivery_date": "",
|
||||||
"gsr_by_estimator": "",
|
"gsr_by_estimator": "",
|
||||||
"gsr_by_exported_date": "",
|
"gsr_by_exported_date": "",
|
||||||
|
"gsr_by_ins_co": "",
|
||||||
"gsr_by_make": "",
|
"gsr_by_make": "",
|
||||||
"gsr_by_referral": "",
|
"gsr_by_referral": "",
|
||||||
"gsr_by_ro": "",
|
"gsr_by_ro": "",
|
||||||
"gsr_by_ins_co": "",
|
|
||||||
"gsr_labor_only": "",
|
"gsr_labor_only": "",
|
||||||
"hours_sold_detail_closed": "",
|
"hours_sold_detail_closed": "",
|
||||||
"hours_sold_detail_closed_ins_co": "",
|
"hours_sold_detail_closed_ins_co": "",
|
||||||
|
|||||||
@@ -967,6 +967,7 @@
|
|||||||
},
|
},
|
||||||
"profitcenter_labor": "",
|
"profitcenter_labor": "",
|
||||||
"profitcenter_part": "",
|
"profitcenter_part": "",
|
||||||
|
"prt_dsmk_p": "",
|
||||||
"status": "Statut",
|
"status": "Statut",
|
||||||
"total": "",
|
"total": "",
|
||||||
"unq_seq": "Seq #"
|
"unq_seq": "Seq #"
|
||||||
@@ -1139,6 +1140,7 @@
|
|||||||
"ownr_ea": "Email",
|
"ownr_ea": "Email",
|
||||||
"ownr_ph1": "Téléphone 1",
|
"ownr_ph1": "Téléphone 1",
|
||||||
"paa": "",
|
"paa": "",
|
||||||
|
"pac": "",
|
||||||
"pae": "",
|
"pae": "",
|
||||||
"pag": "",
|
"pag": "",
|
||||||
"pal": "",
|
"pal": "",
|
||||||
@@ -1876,10 +1878,10 @@
|
|||||||
"gsr_by_delivery_date": "",
|
"gsr_by_delivery_date": "",
|
||||||
"gsr_by_estimator": "",
|
"gsr_by_estimator": "",
|
||||||
"gsr_by_exported_date": "",
|
"gsr_by_exported_date": "",
|
||||||
|
"gsr_by_ins_co": "",
|
||||||
"gsr_by_make": "",
|
"gsr_by_make": "",
|
||||||
"gsr_by_referral": "",
|
"gsr_by_referral": "",
|
||||||
"gsr_by_ro": "",
|
"gsr_by_ro": "",
|
||||||
"gsr_by_ins_co": "",
|
|
||||||
"gsr_labor_only": "",
|
"gsr_labor_only": "",
|
||||||
"hours_sold_detail_closed": "",
|
"hours_sold_detail_closed": "",
|
||||||
"hours_sold_detail_closed_ins_co": "",
|
"hours_sold_detail_closed_ins_co": "",
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE ONLY "public"."joblines" ALTER COLUMN "prt_dsmk_p" DROP DEFAULT;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE ONLY "public"."joblines" ALTER COLUMN "prt_dsmk_p" SET DEFAULT
|
||||||
|
0;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: "update joblines \nset prt_dsmk_p = 0 where joblines.prt_dsmk_p is null;"
|
||||||
|
type: run_sql
|
||||||
@@ -314,7 +314,7 @@ function GenerateCostingData(job) {
|
|||||||
amount: Math.round((val.act_price || 0) * 100),
|
amount: Math.round((val.act_price || 0) * 100),
|
||||||
})
|
})
|
||||||
.multiply(val.part_qty || 0)
|
.multiply(val.part_qty || 0)
|
||||||
.percentage(val.prt_dsmk_p)
|
.percentage(val.prt_dsmk_p || 0)
|
||||||
);
|
);
|
||||||
if (!acc.parts[partsProfitCenter])
|
if (!acc.parts[partsProfitCenter])
|
||||||
acc.parts[partsProfitCenter] = Dinero();
|
acc.parts[partsProfitCenter] = Dinero();
|
||||||
@@ -343,7 +343,7 @@ function GenerateCostingData(job) {
|
|||||||
amount: Math.round((val.act_price || 0) * 100),
|
amount: Math.round((val.act_price || 0) * 100),
|
||||||
})
|
})
|
||||||
.multiply(val.part_qty || 0)
|
.multiply(val.part_qty || 0)
|
||||||
.percentage(val.prt_dsmk_p)
|
.percentage(val.prt_dsmk_p || 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!acc.parts[partsProfitCenter])
|
if (!acc.parts[partsProfitCenter])
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ function CalculatePartsTotals(jobLines) {
|
|||||||
amount: Math.round((value.act_price || 0) * 100),
|
amount: Math.round((value.act_price || 0) * 100),
|
||||||
})
|
})
|
||||||
.multiply(value.part_qty || 0)
|
.multiply(value.part_qty || 0)
|
||||||
.percentage(value.prt_dsmk_p)
|
.percentage(value.prt_dsmk_p || 0)
|
||||||
),
|
),
|
||||||
list: {
|
list: {
|
||||||
...acc.parts.list,
|
...acc.parts.list,
|
||||||
@@ -248,7 +248,7 @@ function CalculatePartsTotals(jobLines) {
|
|||||||
amount: Math.round((value.act_price || 0) * 100),
|
amount: Math.round((value.act_price || 0) * 100),
|
||||||
})
|
})
|
||||||
.multiply(value.part_qty || 0)
|
.multiply(value.part_qty || 0)
|
||||||
.percentage(value.prt_dsmk_p)
|
.percentage(value.prt_dsmk_p || 0)
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -382,7 +382,7 @@ function CalculateTaxesTotals(job, otherTotals) {
|
|||||||
amount: Math.round((val.act_price || 0) * 100),
|
amount: Math.round((val.act_price || 0) * 100),
|
||||||
})
|
})
|
||||||
.multiply(val.part_qty || 0)
|
.multiply(val.part_qty || 0)
|
||||||
.percentage(val.prt_dsmk_p)
|
.percentage(val.prt_dsmk_p || 0)
|
||||||
)
|
)
|
||||||
.percentage(
|
.percentage(
|
||||||
((job.parts_tax_rates &&
|
((job.parts_tax_rates &&
|
||||||
@@ -425,12 +425,18 @@ function CalculateTaxesTotals(job, otherTotals) {
|
|||||||
.add(ret.state_tax)
|
.add(ret.state_tax)
|
||||||
.add(ret.local_tax);
|
.add(ret.local_tax);
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
"Checking GST",
|
||||||
|
job.ca_customer_gst !== 0,
|
||||||
|
job.ca_customer_gst !== null
|
||||||
|
);
|
||||||
|
|
||||||
ret.custPayable = {
|
ret.custPayable = {
|
||||||
deductible: Dinero({ amount: (job.ded_amt || 0) * 100 }) || 0,
|
deductible: Dinero({ amount: (job.ded_amt || 0) * 100 }) || 0,
|
||||||
federal_tax: job.ca_gst_registrant
|
federal_tax: job.ca_gst_registrant
|
||||||
? job.ca_customer_gst !== 0
|
? job.ca_customer_gst === 0 || job.ca_customer_gst === null
|
||||||
? Dinero({ amount: job.ca_customer_gst * 100 })
|
? ret.federal_tax
|
||||||
: ret.federal_tax
|
: Dinero({ amount: Math.round(job.ca_customer_gst * 100) })
|
||||||
: Dinero(),
|
: Dinero(),
|
||||||
other_customer_amount: Dinero({
|
other_customer_amount: Dinero({
|
||||||
amount: (job.other_amount_payable || 0) * 100,
|
amount: (job.other_amount_payable || 0) * 100,
|
||||||
|
|||||||
Reference in New Issue
Block a user