Resolve deduct from labor calculations.
This commit is contained in:
@@ -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
|
||||||
@@ -2349,6 +2349,27 @@
|
|||||||
<folder_node>
|
<folder_node>
|
||||||
<name>actions</name>
|
<name>actions</name>
|
||||||
<children>
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>deductallhours</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>edit</name>
|
<name>edit</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
billid,
|
billid,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { setFieldsValue, getFieldsValue, getFieldValue } = form;
|
const { setFieldsValue, getFieldsValue, getFieldValue, setFieldValue } = form;
|
||||||
const { Simple_Inventory } = useTreatments(
|
const { Simple_Inventory } = useTreatments(
|
||||||
["Simple_Inventory"],
|
["Simple_Inventory"],
|
||||||
{},
|
{},
|
||||||
@@ -376,9 +376,43 @@ export function BillEnterModalLinesComponent({
|
|||||||
"rate",
|
"rate",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const billline = getFieldValue(["billlines", record.name]);
|
||||||
|
|
||||||
|
const jobline = lineData.find(
|
||||||
|
(line) => line.id === billline?.joblineid
|
||||||
|
);
|
||||||
|
|
||||||
|
const employeeTeamName = bodyshop.employee_teams.find(
|
||||||
|
(team) => team.id === jobline?.assigned_team
|
||||||
|
);
|
||||||
|
|
||||||
if (getFieldValue(["billlines", record.name, "deductedfromlbr"]))
|
if (getFieldValue(["billlines", record.name, "deductedfromlbr"]))
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
<Space>
|
||||||
|
{t("joblines.fields.assigned_team", {
|
||||||
|
name: employeeTeamName?.name,
|
||||||
|
})}
|
||||||
|
{`${jobline.mod_lb_hrs} units`}
|
||||||
|
<Button
|
||||||
|
onClick={() => {
|
||||||
|
const applicableRate =
|
||||||
|
billline.actual_price / jobline.mod_lb_hrs;
|
||||||
|
|
||||||
|
setFieldValue(
|
||||||
|
[
|
||||||
|
"billlines",
|
||||||
|
record.name,
|
||||||
|
"lbr_adjustment",
|
||||||
|
"rate",
|
||||||
|
],
|
||||||
|
applicableRate
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t("bills.actions.deductallhours")}
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("joblines.fields.mod_lbr_ty")}
|
label={t("joblines.fields.mod_lbr_ty")}
|
||||||
key={`${index}modlbrty`}
|
key={`${index}modlbrty`}
|
||||||
@@ -448,9 +482,11 @@ export function BillEnterModalLinesComponent({
|
|||||||
>
|
>
|
||||||
<InputNumber precision={2} min={0.01} />
|
<InputNumber precision={2} min={0.01} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{price &&
|
<Space>
|
||||||
adjustmentRate &&
|
{price &&
|
||||||
`${(price / adjustmentRate).toFixed(1)} hrs`}
|
adjustmentRate &&
|
||||||
|
`${(price / adjustmentRate).toFixed(1)} hrs`}
|
||||||
|
</Space>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
return <></>;
|
return <></>;
|
||||||
|
|||||||
@@ -63,6 +63,12 @@ const BillLineSearchSelect = (
|
|||||||
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
||||||
}${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
|
}${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
|
||||||
</span>
|
</span>
|
||||||
|
{item.act_price === 0 && item.mod_lb_hrs > 0 && (
|
||||||
|
<span style={{ float: "right", paddingleft: "1rem" }}>
|
||||||
|
{`${item.mod_lb_hrs} units`}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
|
||||||
<span style={{ float: "right", paddingleft: "1rem" }}>
|
<span style={{ float: "right", paddingleft: "1rem" }}>
|
||||||
{item.act_price
|
{item.act_price
|
||||||
? `$${item.act_price && item.act_price.toFixed(2)}`
|
? `$${item.act_price && item.act_price.toFixed(2)}`
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ export function PayrollLaborAllocationsTable({
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
if (response.data.success) {
|
if (response.data.success !== false) {
|
||||||
notification.open({
|
notification.open({
|
||||||
type: "success",
|
type: "success",
|
||||||
message: t("timetickets.successes.payall"),
|
message: t("timetickets.successes.payall"),
|
||||||
|
|||||||
@@ -274,6 +274,7 @@ export const GET_JOB_LINES_TO_ENTER_BILL = gql`
|
|||||||
lbr_amt
|
lbr_amt
|
||||||
op_code_desc
|
op_code_desc
|
||||||
alt_partno
|
alt_partno
|
||||||
|
assigned_team
|
||||||
}
|
}
|
||||||
jobs_by_pk(id: $id) {
|
jobs_by_pk(id: $id) {
|
||||||
id
|
id
|
||||||
|
|||||||
@@ -155,6 +155,7 @@
|
|||||||
},
|
},
|
||||||
"bills": {
|
"bills": {
|
||||||
"actions": {
|
"actions": {
|
||||||
|
"deductallhours": "Deduct all",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"receive": "Receive Part",
|
"receive": "Receive Part",
|
||||||
"return": "Return Items"
|
"return": "Return Items"
|
||||||
@@ -1242,7 +1243,7 @@
|
|||||||
"fields": {
|
"fields": {
|
||||||
"act_price": "Retail Price",
|
"act_price": "Retail Price",
|
||||||
"ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)",
|
"ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)",
|
||||||
"assigned_team": "Team",
|
"assigned_team": "Team {{name}}",
|
||||||
"db_price": "List Price",
|
"db_price": "List Price",
|
||||||
"lbr_types": {
|
"lbr_types": {
|
||||||
"LA1": "LA1",
|
"LA1": "LA1",
|
||||||
@@ -1753,7 +1754,7 @@
|
|||||||
"closejob": "Close Job {{ro_number}}",
|
"closejob": "Close Job {{ro_number}}",
|
||||||
"closingperiod": "This Invoice Date is outside of the Closing Period.",
|
"closingperiod": "This Invoice Date is outside of the Closing Period.",
|
||||||
"contracts": "CC Contracts",
|
"contracts": "CC Contracts",
|
||||||
"convertedtolabor": "Lines Converted to Labor",
|
"convertedtolabor": "Labor Line Adjustments",
|
||||||
"cost": "Cost",
|
"cost": "Cost",
|
||||||
"cost_Additional": "Cost - Additional",
|
"cost_Additional": "Cost - Additional",
|
||||||
"cost_labor": "Cost - Labor",
|
"cost_labor": "Cost - Labor",
|
||||||
|
|||||||
@@ -155,6 +155,7 @@
|
|||||||
},
|
},
|
||||||
"bills": {
|
"bills": {
|
||||||
"actions": {
|
"actions": {
|
||||||
|
"deductallhours": "",
|
||||||
"edit": "",
|
"edit": "",
|
||||||
"receive": "",
|
"receive": "",
|
||||||
"return": ""
|
"return": ""
|
||||||
|
|||||||
@@ -155,6 +155,7 @@
|
|||||||
},
|
},
|
||||||
"bills": {
|
"bills": {
|
||||||
"actions": {
|
"actions": {
|
||||||
|
"deductallhours": "",
|
||||||
"edit": "",
|
"edit": "",
|
||||||
"receive": "",
|
"receive": "",
|
||||||
"return": ""
|
"return": ""
|
||||||
|
|||||||
Reference in New Issue
Block a user