Merged in release/2021-10-08 (pull request #242)

release/2021-10-08

Approved-by: Patrick Fic
This commit is contained in:
Patrick Fic
2021-10-05 23:20:08 +00:00
14 changed files with 55 additions and 8 deletions

View File

@@ -16920,6 +16920,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>tax_part</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>total</name> <name>total</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -124,3 +124,7 @@
z-index: 2 !important; z-index: 2 !important;
} }
} }
.react-kanban-column {
background-color: #ddd !important;
}

View File

@@ -1,4 +1,4 @@
import { Form, Input, InputNumber, Modal, Select } from "antd"; import { Form, Input, InputNumber, Modal, Select, Switch } from "antd";
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import InputCurrency from "../form-items-formatted/currency-form-item.component"; import InputCurrency from "../form-items-formatted/currency-form-item.component";
@@ -184,9 +184,9 @@ export default function JobLinesUpsertModalComponent({
> >
<InputNumber precision={0} min={0} /> <InputNumber precision={0} min={0} />
</Form.Item> </Form.Item>
<Form.Item label={t("joblines.fields.db_price")} name="db_price"> {/* <Form.Item label={t("joblines.fields.db_price")} name="db_price">
<InputCurrency precision={2} min={0} /> <InputCurrency precision={2} min={0} />
</Form.Item> </Form.Item> */}
<Form.Item <Form.Item
label={t("joblines.fields.act_price")} label={t("joblines.fields.act_price")}
name="act_price" name="act_price"
@@ -222,6 +222,13 @@ export default function JobLinesUpsertModalComponent({
> >
<InputNumber precision={0} min={0} max={100} /> <InputNumber precision={0} min={0} max={100} />
</Form.Item> </Form.Item>
<Form.Item
label={t("joblines.fields.tax_part")}
name="tax_part"
valuePropName="checked"
>
<Switch />
</Form.Item>
</LayoutFormRow> </LayoutFormRow>
</Form> </Form>
</Modal> </Modal>

View File

@@ -44,6 +44,7 @@ function JobLinesUpsertModalContainer({
}, },
], ],
}, },
refetchQueries: ["GET_LINE_TICKET_BY_PK"],
}); });
if (!r.errors) { if (!r.errors) {
await Axios.post("/job/totalsssu", { await Axios.post("/job/totalsssu", {
@@ -69,6 +70,7 @@ function JobLinesUpsertModalContainer({
lineId: jobLineEditModal.context.id, lineId: jobLineEditModal.context.id,
line: values, line: values,
}, },
refetchQueries: ["GET_LINE_TICKET_BY_PK"],
}); });
if (!r.errors) { if (!r.errors) {
notification["success"]({ notification["success"]({

View File

@@ -108,6 +108,9 @@ export default function JobReconciliationBillsTable({
rowSelection={{ rowSelection={{
onChange: handleOnRowClick, onChange: handleOnRowClick,
selectedRowKeys: selectedLines, selectedRowKeys: selectedLines,
getCheckboxProps: (record) => {
return { disabled: record.deductedfromlbr };
},
}} }}
/> />
</div> </div>

View File

@@ -11,7 +11,7 @@ export const reconcileByAssocLine = (
const [selectedJobLines, setSelectedJobLines] = jobLineState; const [selectedJobLines, setSelectedJobLines] = jobLineState;
const allJoblinesFromBills = billLines const allJoblinesFromBills = billLines
.filter((bl) => bl.joblineid && !(bl.jobline && bl.jobline.removed)) .filter((bl) => bl.joblineid && bl.jobline && !bl.jobline.removed)
.map((bl) => bl.joblineid); .map((bl) => bl.joblineid);
const duplicatedJobLinesbyInvoiceId = _.filter( const duplicatedJobLinesbyInvoiceId = _.filter(

View File

@@ -38,6 +38,7 @@ export function ProductionBoardFilters({
}} }}
/> />
<EmployeeSearchSelectComponent <EmployeeSearchSelectComponent
style={{ minWidth: "20rem" }}
options={bodyshop.employees.filter((e) => e.active)} options={bodyshop.employees.filter((e) => e.active)}
value={filter.employeeId} value={filter.employeeId}
placeholder={t("production.labels.employeesearch")} placeholder={t("production.labels.employeesearch")}

View File

@@ -50,7 +50,9 @@ export function TechClockInComponent({ form, bodyshop, technician }) {
{emps && {emps &&
emps.rates.map((item) => ( emps.rates.map((item) => (
<Select.Option key={item.cost_center}> <Select.Option key={item.cost_center}>
{item.cost_center} {item.cost_center === "timetickets.labels.shift"
? t(item.cost_center)
: item.cost_center}
</Select.Option> </Select.Option>
))} ))}
</Select> </Select>

View File

@@ -139,7 +139,9 @@ export function TechClockOffButton({
emps && emps &&
emps.rates.map((item) => ( emps.rates.map((item) => (
<Select.Option key={item.cost_center}> <Select.Option key={item.cost_center}>
{item.cost_center} {item.cost_center === "timetickets.labels.shift"
? t(item.cost_center)
: item.cost_center}
</Select.Option> </Select.Option>
)) ))
)} )}

View File

@@ -83,7 +83,9 @@ export function TechClockedInList({ technician }) {
<DateTimeFormatter>{ticket.clockon}</DateTimeFormatter> <DateTimeFormatter>{ticket.clockon}</DateTimeFormatter>
</DataLabel> </DataLabel>
<DataLabel label={t("timetickets.fields.cost_center")}> <DataLabel label={t("timetickets.fields.cost_center")}>
{ticket.cost_center} {ticket.cost_center === "timetickets.labels.shift"
? t(ticket.cost_center)
: ticket.cost_center}
</DataLabel> </DataLabel>
</Card> </Card>
</List.Item> </List.Item>

View File

@@ -630,7 +630,7 @@ export const GET_JOB_RECONCILIATION_BY_PK = gql`
is_credit_memo is_credit_memo
isinhouse isinhouse
exported exported
billlines { billlines(where: { deductedfromlbr: { _eq: false } }) {
actual_price actual_price
quantity quantity
actual_cost actual_cost

View File

@@ -1055,6 +1055,7 @@
"profitcenter_part": "Profit Center: Part", "profitcenter_part": "Profit Center: Part",
"prt_dsmk_p": "Line Markup %", "prt_dsmk_p": "Line Markup %",
"status": "Status", "status": "Status",
"tax_part": "Tax Part",
"total": "Total", "total": "Total",
"unq_seq": "Seq #" "unq_seq": "Seq #"
}, },

View File

@@ -1055,6 +1055,7 @@
"profitcenter_part": "", "profitcenter_part": "",
"prt_dsmk_p": "", "prt_dsmk_p": "",
"status": "Estado", "status": "Estado",
"tax_part": "",
"total": "", "total": "",
"unq_seq": "Seq #" "unq_seq": "Seq #"
}, },

View File

@@ -1055,6 +1055,7 @@
"profitcenter_part": "", "profitcenter_part": "",
"prt_dsmk_p": "", "prt_dsmk_p": "",
"status": "Statut", "status": "Statut",
"tax_part": "",
"total": "", "total": "",
"unq_seq": "Seq #" "unq_seq": "Seq #"
}, },