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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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