@@ -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
|
||||
@@ -15331,6 +15331,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</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>
|
||||
<name>status</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
@@ -18647,6 +18668,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</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>
|
||||
<name>pae</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
@@ -31201,6 +31243,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</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>
|
||||
<name>gsr_by_make</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
@@ -31264,27 +31327,6 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</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>
|
||||
<name>gsr_labor_only</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
|
||||
@@ -160,10 +160,12 @@ export function JobLinesComponent({
|
||||
render: (text, record) => (
|
||||
<>
|
||||
<CurrencyFormatter>{record.act_price}</CurrencyFormatter>
|
||||
{record.prt_dsmk_p !== 0 && (
|
||||
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
||||
<span
|
||||
style={{ marginLeft: ".2rem" }}
|
||||
>{`(${record.prt_dsmk_p}%)`}</span>
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
</>
|
||||
),
|
||||
|
||||
@@ -210,6 +210,13 @@ export default function JobLinesUpsertModalComponent({
|
||||
>
|
||||
<InputCurrency precision={2} min={0} />
|
||||
</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>
|
||||
</Form>
|
||||
</Modal>
|
||||
|
||||
@@ -36,8 +36,11 @@ export function JobsDetailRates({ jobRO, form, job }) {
|
||||
<CurrencyInput
|
||||
disabled={jobRO}
|
||||
max={
|
||||
((job.job_totals && job.job_totals.totals.federal_tax.amount) ||
|
||||
0) / 100
|
||||
Math.round(
|
||||
(job.job_totals &&
|
||||
job.job_totals.totals.federal_tax.amount) ||
|
||||
0
|
||||
) / 100
|
||||
}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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),
|
||||
})
|
||||
.multiply(val.part_qty || 0)
|
||||
.percentage(val.prt_dsmk_p)
|
||||
.percentage(val.prt_dsmk_p || 0)
|
||||
);
|
||||
if (!acc.parts[partsProfitCenter])
|
||||
acc.parts[partsProfitCenter] = Dinero();
|
||||
@@ -343,7 +343,7 @@ function GenerateCostingData(job) {
|
||||
amount: Math.round((val.act_price || 0) * 100),
|
||||
})
|
||||
.multiply(val.part_qty || 0)
|
||||
.percentage(val.prt_dsmk_p)
|
||||
.percentage(val.prt_dsmk_p || 0)
|
||||
);
|
||||
|
||||
if (!acc.parts[partsProfitCenter])
|
||||
|
||||
@@ -217,7 +217,7 @@ function CalculatePartsTotals(jobLines) {
|
||||
amount: Math.round((value.act_price || 0) * 100),
|
||||
})
|
||||
.multiply(value.part_qty || 0)
|
||||
.percentage(value.prt_dsmk_p)
|
||||
.percentage(value.prt_dsmk_p || 0)
|
||||
),
|
||||
list: {
|
||||
...acc.parts.list,
|
||||
@@ -248,7 +248,7 @@ function CalculatePartsTotals(jobLines) {
|
||||
amount: Math.round((value.act_price || 0) * 100),
|
||||
})
|
||||
.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),
|
||||
})
|
||||
.multiply(val.part_qty || 0)
|
||||
.percentage(val.prt_dsmk_p)
|
||||
.percentage(val.prt_dsmk_p || 0)
|
||||
)
|
||||
.percentage(
|
||||
((job.parts_tax_rates &&
|
||||
@@ -425,12 +425,18 @@ function CalculateTaxesTotals(job, otherTotals) {
|
||||
.add(ret.state_tax)
|
||||
.add(ret.local_tax);
|
||||
|
||||
console.log(
|
||||
"Checking GST",
|
||||
job.ca_customer_gst !== 0,
|
||||
job.ca_customer_gst !== null
|
||||
);
|
||||
|
||||
ret.custPayable = {
|
||||
deductible: Dinero({ amount: (job.ded_amt || 0) * 100 }) || 0,
|
||||
federal_tax: job.ca_gst_registrant
|
||||
? job.ca_customer_gst !== 0
|
||||
? Dinero({ amount: job.ca_customer_gst * 100 })
|
||||
: ret.federal_tax
|
||||
? job.ca_customer_gst === 0 || job.ca_customer_gst === null
|
||||
? ret.federal_tax
|
||||
: Dinero({ amount: Math.round(job.ca_customer_gst * 100) })
|
||||
: Dinero(),
|
||||
other_customer_amount: Dinero({
|
||||
amount: (job.other_amount_payable || 0) * 100,
|
||||
|
||||
Reference in New Issue
Block a user