Merged in test (pull request #92)

Test
This commit is contained in:
Patrick Fic
2021-06-01 21:58:40 +00:00
13 changed files with 6779 additions and 6696 deletions

View File

@@ -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>

View File

@@ -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>
) : (
<></>
)}
</>
),

View File

@@ -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>

View File

@@ -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>

View File

@@ -967,6 +967,7 @@
},
"profitcenter_labor": "Profit Center: Labor",
"profitcenter_part": "Profit Center: Part",
"prt_dsmk_p": "Line Markup %",
"status": "Status",
"total": "Total",
"unq_seq": "Seq #"
@@ -1139,6 +1140,7 @@
"ownr_ea": "Email",
"ownr_ph1": "Phone 1",
"paa": "Aftermarket",
"pac": "Rechromed",
"pae": "Existing",
"pag": "Glass",
"pal": "LKQ",
@@ -1876,10 +1878,10 @@
"gsr_by_delivery_date": "Gross Sales by Delivery Date",
"gsr_by_estimator": "Gross Sales by Estimator",
"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_referral": "Gross Sales by Referral Source",
"gsr_by_ro": "Gross Sales by RO",
"gsr_by_ins_co": "Gross Sales by Insurance Company'",
"gsr_labor_only": "Gross Sales - Labor Only",
"hours_sold_detail_closed": "Hours Sold Detail - Closed",
"hours_sold_detail_closed_ins_co": "Hours Sold Detail - Closed by Source",

View File

@@ -967,6 +967,7 @@
},
"profitcenter_labor": "",
"profitcenter_part": "",
"prt_dsmk_p": "",
"status": "Estado",
"total": "",
"unq_seq": "Seq #"
@@ -1139,6 +1140,7 @@
"ownr_ea": "Email",
"ownr_ph1": "Teléfono 1",
"paa": "",
"pac": "",
"pae": "",
"pag": "",
"pal": "",
@@ -1876,10 +1878,10 @@
"gsr_by_delivery_date": "",
"gsr_by_estimator": "",
"gsr_by_exported_date": "",
"gsr_by_ins_co": "",
"gsr_by_make": "",
"gsr_by_referral": "",
"gsr_by_ro": "",
"gsr_by_ins_co": "",
"gsr_labor_only": "",
"hours_sold_detail_closed": "",
"hours_sold_detail_closed_ins_co": "",

View File

@@ -967,6 +967,7 @@
},
"profitcenter_labor": "",
"profitcenter_part": "",
"prt_dsmk_p": "",
"status": "Statut",
"total": "",
"unq_seq": "Seq #"
@@ -1139,6 +1140,7 @@
"ownr_ea": "Email",
"ownr_ph1": "Téléphone 1",
"paa": "",
"pac": "",
"pae": "",
"pag": "",
"pal": "",
@@ -1876,10 +1878,10 @@
"gsr_by_delivery_date": "",
"gsr_by_estimator": "",
"gsr_by_exported_date": "",
"gsr_by_ins_co": "",
"gsr_by_make": "",
"gsr_by_referral": "",
"gsr_by_ro": "",
"gsr_by_ins_co": "",
"gsr_labor_only": "",
"hours_sold_detail_closed": "",
"hours_sold_detail_closed_ins_co": "",

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1 @@
[]

View File

@@ -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

View File

@@ -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])

View File

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