IO-972 Parts & Sublet screen helpers.
This commit is contained in:
@@ -21733,6 +21733,200 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>plitooltips</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>billtotal</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>creditmemos</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>creditsnotreceived</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>discrep1</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>discrep2</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>discrep3</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>laboradj</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>partstotal</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>totalreturns</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>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>rates</name>
|
<name>rates</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -22011,6 +22205,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>returntotals</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>rosaletotal</name>
|
<name>rosaletotal</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Card, Space, Statistic } from "antd";
|
import { Card, Col, Row, Space, Statistic, Tooltip, Typography } from "antd";
|
||||||
import Dinero from "dinero.js";
|
import Dinero from "dinero.js";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
@@ -50,7 +50,7 @@ export default function JobBillsTotalComponent({
|
|||||||
} else {
|
} else {
|
||||||
billCms = billCms.add(
|
billCms = billCms.add(
|
||||||
Dinero({
|
Dinero({
|
||||||
amount: Math.round((il.actual_price || 0) * -100),
|
amount: Math.round((il.actual_price || 0) * 100),
|
||||||
}).multiply(il.quantity)
|
}).multiply(il.quantity)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -73,64 +73,166 @@ export default function JobBillsTotalComponent({
|
|||||||
|
|
||||||
const discrepWithLbrAdj = discrepancy.add(lbrAdjustments);
|
const discrepWithLbrAdj = discrepancy.add(lbrAdjustments);
|
||||||
|
|
||||||
const discrepWithCms = discrepWithLbrAdj.subtract(billCms);
|
const discrepWithCms = discrepWithLbrAdj.add(billCms);
|
||||||
const creditsNotReceived = totalReturns.add(billCms); //billCms is tracked as a negative number.
|
const creditsNotReceived = totalReturns.add(billCms); //billCms is tracked as a negative number.
|
||||||
return (
|
return (
|
||||||
<Card title={t("jobs.labels.jobtotals")}>
|
<Row gutter={16}>
|
||||||
<Space wrap size="large">
|
<Col span={18}>
|
||||||
<Statistic
|
<Card title={t("jobs.labels.jobtotals")} style={{ height: "100%" }}>
|
||||||
title={t("jobs.labels.rosaletotal")}
|
<Space wrap size="large">
|
||||||
value={totalPartsSublet.toFormat()}
|
<Tooltip
|
||||||
/>
|
title={
|
||||||
<Statistic
|
<div
|
||||||
title={t("bills.labels.retailtotal")}
|
dangerouslySetInnerHTML={{
|
||||||
value={billTotals.toFormat()}
|
__html: t("jobs.labels.plitooltips.partstotal"),
|
||||||
/>
|
}}
|
||||||
<Statistic
|
/>
|
||||||
title={t("bills.labels.discrepancy")}
|
}
|
||||||
valueStyle={{
|
>
|
||||||
color: discrepancy.getAmount() === 0 ? "green" : "red",
|
<Statistic
|
||||||
}}
|
title={t("jobs.labels.rosaletotal")}
|
||||||
value={discrepancy.toFormat()}
|
value={totalPartsSublet.toFormat()}
|
||||||
/>
|
/>
|
||||||
<Statistic
|
</Tooltip>
|
||||||
title={t("bills.labels.dedfromlbr")}
|
<Typography.Title>-</Typography.Title>
|
||||||
value={lbrAdjustments.toFormat()}
|
<Tooltip
|
||||||
/>
|
title={
|
||||||
<Statistic
|
<div
|
||||||
title={t("bills.labels.discrepwithlbradj")}
|
dangerouslySetInnerHTML={{
|
||||||
valueStyle={{
|
__html: t("jobs.labels.plitooltips.billtotal"),
|
||||||
color: discrepWithLbrAdj.getAmount() === 0 ? "green" : "red",
|
}}
|
||||||
}}
|
/>
|
||||||
value={discrepWithLbrAdj.toFormat()}
|
}
|
||||||
/>
|
>
|
||||||
<Statistic
|
<Statistic
|
||||||
title={t("bills.labels.billcmtotal")}
|
title={t("bills.labels.retailtotal")}
|
||||||
value={billCms.toFormat()}
|
value={billTotals.toFormat()}
|
||||||
/>
|
/>
|
||||||
<Statistic
|
</Tooltip>
|
||||||
title={t("bills.labels.discrepwithcms")}
|
<Typography.Title>=</Typography.Title>
|
||||||
valueStyle={{
|
<Tooltip
|
||||||
color: discrepWithCms.getAmount() === 0 ? "green" : "red",
|
title={
|
||||||
}}
|
<div
|
||||||
value={discrepWithCms.toFormat()}
|
dangerouslySetInnerHTML={{
|
||||||
/>
|
__html: t("jobs.labels.plitooltips.discrep1"),
|
||||||
<Statistic
|
}}
|
||||||
title={t("bills.labels.totalreturns")}
|
/>
|
||||||
value={totalReturns.toFormat()}
|
}
|
||||||
/>
|
>
|
||||||
<Statistic
|
<Statistic
|
||||||
title={t("bills.labels.creditsreceived")}
|
title={t("bills.labels.discrepancy")}
|
||||||
value={billCms.toFormat()}
|
valueStyle={{
|
||||||
/>
|
color: discrepancy.getAmount() === 0 ? "green" : "red",
|
||||||
<Statistic
|
}}
|
||||||
title={t("bills.labels.creditsnotreceived")}
|
value={discrepancy.toFormat()}
|
||||||
valueStyle={{
|
/>
|
||||||
color: creditsNotReceived.getAmount() === 0 ? "green" : "red",
|
</Tooltip>
|
||||||
}}
|
<Typography.Title>+</Typography.Title>
|
||||||
value={creditsNotReceived.toFormat()}
|
<Tooltip
|
||||||
/>
|
title={
|
||||||
</Space>
|
<div
|
||||||
</Card>
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.laboradj"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.dedfromlbr")}
|
||||||
|
value={lbrAdjustments.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
<Typography.Title>=</Typography.Title>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.discrep2"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.discrepancy")}
|
||||||
|
valueStyle={{
|
||||||
|
color: discrepWithLbrAdj.getAmount() === 0 ? "green" : "red",
|
||||||
|
}}
|
||||||
|
value={discrepWithLbrAdj.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
<Typography.Title>+</Typography.Title>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.creditmemos"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.billcmtotal")}
|
||||||
|
value={billCms.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
<Typography.Title>=</Typography.Title>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.discrep3"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.discrepancy")}
|
||||||
|
valueStyle={{
|
||||||
|
color: discrepWithCms.getAmount() === 0 ? "green" : "red",
|
||||||
|
}}
|
||||||
|
value={discrepWithCms.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
</Space>
|
||||||
|
</Card>
|
||||||
|
</Col>
|
||||||
|
<Col span={6}>
|
||||||
|
<Card title={t("jobs.labels.returntotals")} style={{ height: "100%" }}>
|
||||||
|
<Space wrap>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.totalreturns"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.totalreturns")}
|
||||||
|
value={totalReturns.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
<Tooltip
|
||||||
|
title={
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: t("jobs.labels.plitooltips.creditsnotreceived"),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Statistic
|
||||||
|
title={t("bills.labels.creditsnotreceived")}
|
||||||
|
valueStyle={{
|
||||||
|
color: creditsNotReceived.getAmount() === 0 ? "green" : "red",
|
||||||
|
}}
|
||||||
|
value={creditsNotReceived.toFormat()}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
</Space>
|
||||||
|
</Card>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -319,7 +319,7 @@ export function JobsDetailRatesParts({
|
|||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</LayoutFormRow>{" "}
|
</LayoutFormRow>
|
||||||
<LayoutFormRow header={t("joblines.fields.part_types.PAO")}>
|
<LayoutFormRow header={t("joblines.fields.part_types.PAO")}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("jobs.fields.parts_tax_rates.prt_discp")}
|
label={t("jobs.fields.parts_tax_rates.prt_discp")}
|
||||||
@@ -369,7 +369,7 @@ export function JobsDetailRatesParts({
|
|||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</LayoutFormRow>{" "}
|
</LayoutFormRow>
|
||||||
<LayoutFormRow header={t("joblines.fields.part_types.PAP")}>
|
<LayoutFormRow header={t("joblines.fields.part_types.PAP")}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("jobs.fields.parts_tax_rates.prt_discp")}
|
label={t("jobs.fields.parts_tax_rates.prt_discp")}
|
||||||
|
|||||||
@@ -139,11 +139,11 @@
|
|||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
"bill_lines": "Bill Lines",
|
"bill_lines": "Bill Lines",
|
||||||
"bill_total": "Bill Total Amount",
|
"bill_total": "Bill Total Amount",
|
||||||
"billcmtotal": "Retail Total of Credit Memos",
|
"billcmtotal": "Credit Memos",
|
||||||
"bills": "Bills",
|
"bills": "Bills",
|
||||||
"creditsnotreceived": "Credits Not Received",
|
"creditsnotreceived": "Credits Not Received",
|
||||||
"creditsreceived": "Credits Received",
|
"creditsreceived": "Credits Received",
|
||||||
"dedfromlbr": "Deducted from Labor",
|
"dedfromlbr": "Labor Adjustments",
|
||||||
"deleteconfirm": "Are you sure you want to delete this bill? It cannot be undone. If this bill has deductions from labors, manual changes may be required.",
|
"deleteconfirm": "Are you sure you want to delete this bill? It cannot be undone. If this bill has deductions from labors, manual changes may be required.",
|
||||||
"discrepancy": "Discrepancy",
|
"discrepancy": "Discrepancy",
|
||||||
"discrepwithcms": "Discrepancy including Credit Memos",
|
"discrepwithcms": "Discrepancy including Credit Memos",
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
"local_tax": "Local Tax",
|
"local_tax": "Local Tax",
|
||||||
"new": "New Bill",
|
"new": "New Bill",
|
||||||
"noneselected": "No bill selected.",
|
"noneselected": "No bill selected.",
|
||||||
"retailtotal": "Retail Total of Bill (Ex. Taxes)",
|
"retailtotal": "Bills Retail Total",
|
||||||
"state_tax": "State Tax",
|
"state_tax": "State Tax",
|
||||||
"subtotal": "Subtotal",
|
"subtotal": "Subtotal",
|
||||||
"totalreturns": "Total Returns"
|
"totalreturns": "Total Returns"
|
||||||
@@ -1293,6 +1293,17 @@
|
|||||||
"partsfilter": "Parts Only",
|
"partsfilter": "Parts Only",
|
||||||
"partssubletstotal": "Parts & Sublets Total",
|
"partssubletstotal": "Parts & Sublets Total",
|
||||||
"partstotal": "Parts Total (ex. Taxes)",
|
"partstotal": "Parts Total (ex. Taxes)",
|
||||||
|
"plitooltips": {
|
||||||
|
"billtotal": "The total amount of all bill lines that have been posted against this RO (not including credits, taxes, or labor adjustments).",
|
||||||
|
"creditmemos": "The total amount of all credit memos entered. This amount does not reflect any parts returns created.",
|
||||||
|
"creditsnotreceived": "The total amount of returns created for this job that do not have a corresponding credit memo posted. An amount greater than $0 indicates that vendors have not provided requested credit memos.",
|
||||||
|
"discrep1": "If the discrepancy is not $0, you may have one of the following: <br/><br/>\n\n<ul>\n<li>Too many bills/bill lines that have been posted against this RO. Check to make sure every bill posted on this RO is correctly posted and assigned.</li>\n<li>You do not have the latest supplement imported, or, a supplement must be submitted and then imported.</li>\n<li>You have posted a bill line to labor.</li>\n</ul>\n<br/>\n<i>There may be additional issues not listed above that prevent this job from reconciling.</i>",
|
||||||
|
"discrep2": "If the discrepancy is not $0, you may have one of the following: <br/><br/>\n\n<ul>\n<li>Used an incorrect rate when deducting from labor.</li>\n<li>An outstanding imbalance higher in the reconciliation process.</li>\n</ul>\n<br/>\n<i>There may be additional issues not listed above that prevent this job from reconciling.</i>",
|
||||||
|
"discrep3": "If the discrepancy is not $0, you may have one of the following: <br/><br/>\n\n<ul>\n<li>Credit memos that have not been received or posted.</li>\n<li>An outstanding imbalance higher in the reconciliation process.</li>\n</ul>\n<br/>\n<i>There may be additional issues not listed above that prevent this job from reconciling.</i>",
|
||||||
|
"laboradj": "The sum of all bill lines that deducted from labor hours, rather than part prices.",
|
||||||
|
"partstotal": "This is the total of all parts and sublet amounts on the vehicle (some of these may require an in-house invoice).<br/>\nItems such as shop and paint materials, labor online lines, etc. are not included in this total.",
|
||||||
|
"totalreturns": "The total amount of returns created for this job."
|
||||||
|
},
|
||||||
"rates": "Rates",
|
"rates": "Rates",
|
||||||
"rates_subtotal": "All Rates Subtotal",
|
"rates_subtotal": "All Rates Subtotal",
|
||||||
"reconciliation": {
|
"reconciliation": {
|
||||||
@@ -1308,7 +1319,8 @@
|
|||||||
"removedpartsstrikethrough": "Strike through lines represent parts that have been removed from the estimate. They are included for completeness of reconciliation."
|
"removedpartsstrikethrough": "Strike through lines represent parts that have been removed from the estimate. They are included for completeness of reconciliation."
|
||||||
},
|
},
|
||||||
"reconciliationheader": "Parts & Sublet Reconciliation",
|
"reconciliationheader": "Parts & Sublet Reconciliation",
|
||||||
"rosaletotal": "Total RO Sale",
|
"returntotals": "Return Totals",
|
||||||
|
"rosaletotal": "RO Parts Total",
|
||||||
"sale_labor": "Sales - Labor",
|
"sale_labor": "Sales - Labor",
|
||||||
"sale_parts": "Sales - Parts & Sublet",
|
"sale_parts": "Sales - Parts & Sublet",
|
||||||
"sales": "Sales",
|
"sales": "Sales",
|
||||||
|
|||||||
@@ -1293,6 +1293,17 @@
|
|||||||
"partsfilter": "",
|
"partsfilter": "",
|
||||||
"partssubletstotal": "",
|
"partssubletstotal": "",
|
||||||
"partstotal": "",
|
"partstotal": "",
|
||||||
|
"plitooltips": {
|
||||||
|
"billtotal": "",
|
||||||
|
"creditmemos": "",
|
||||||
|
"creditsnotreceived": "",
|
||||||
|
"discrep1": "",
|
||||||
|
"discrep2": "",
|
||||||
|
"discrep3": "",
|
||||||
|
"laboradj": "",
|
||||||
|
"partstotal": "",
|
||||||
|
"totalreturns": ""
|
||||||
|
},
|
||||||
"rates": "Tarifas",
|
"rates": "Tarifas",
|
||||||
"rates_subtotal": "",
|
"rates_subtotal": "",
|
||||||
"reconciliation": {
|
"reconciliation": {
|
||||||
@@ -1308,6 +1319,7 @@
|
|||||||
"removedpartsstrikethrough": ""
|
"removedpartsstrikethrough": ""
|
||||||
},
|
},
|
||||||
"reconciliationheader": "",
|
"reconciliationheader": "",
|
||||||
|
"returntotals": "",
|
||||||
"rosaletotal": "",
|
"rosaletotal": "",
|
||||||
"sale_labor": "",
|
"sale_labor": "",
|
||||||
"sale_parts": "",
|
"sale_parts": "",
|
||||||
|
|||||||
@@ -1293,6 +1293,17 @@
|
|||||||
"partsfilter": "",
|
"partsfilter": "",
|
||||||
"partssubletstotal": "",
|
"partssubletstotal": "",
|
||||||
"partstotal": "",
|
"partstotal": "",
|
||||||
|
"plitooltips": {
|
||||||
|
"billtotal": "",
|
||||||
|
"creditmemos": "",
|
||||||
|
"creditsnotreceived": "",
|
||||||
|
"discrep1": "",
|
||||||
|
"discrep2": "",
|
||||||
|
"discrep3": "",
|
||||||
|
"laboradj": "",
|
||||||
|
"partstotal": "",
|
||||||
|
"totalreturns": ""
|
||||||
|
},
|
||||||
"rates": "Les taux",
|
"rates": "Les taux",
|
||||||
"rates_subtotal": "",
|
"rates_subtotal": "",
|
||||||
"reconciliation": {
|
"reconciliation": {
|
||||||
@@ -1308,6 +1319,7 @@
|
|||||||
"removedpartsstrikethrough": ""
|
"removedpartsstrikethrough": ""
|
||||||
},
|
},
|
||||||
"reconciliationheader": "",
|
"reconciliationheader": "",
|
||||||
|
"returntotals": "",
|
||||||
"rosaletotal": "",
|
"rosaletotal": "",
|
||||||
"sale_labor": "",
|
"sale_labor": "",
|
||||||
"sale_parts": "",
|
"sale_parts": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user