Added multiple labor rates to employees

IO-548
This commit is contained in:
Patrick Fic
2021-01-21 10:45:59 -08:00
parent 4b75f2eccd
commit 6d1dbe5f63
21 changed files with 429 additions and 70 deletions

View File

@@ -13,7 +13,6 @@ export default function TimeTicketModalComponent({
employeeAutoCompleteOptions,
loadLineTicketData,
lineTicketData,
responsibilityCenters,
}) {
const { t } = useTranslation();
@@ -92,21 +91,38 @@ export default function TimeTicketModalComponent({
>
<InputNumber min={0} precision={1} />
</Form.Item>
<Form.Item
name="cost_center"
label={t("timetickets.fields.cost_center")}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
shouldUpdate={(prev, cur) => prev.employeeid !== cur.employeeid}
>
<Select>
{responsibilityCenters.costs.map((item) => (
<Select.Option key={item.name}>{item.name}</Select.Option>
))}
</Select>
{() => {
const employeeId = form.getFieldValue("employeeid");
const emps =
employeeAutoCompleteOptions &&
employeeAutoCompleteOptions.filter((e) => e.id === employeeId)[0];
return (
<Form.Item
name="cost_center"
label={t("timetickets.fields.cost_center")}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
>
<Select>
{emps &&
emps.rates.map((item) => (
<Select.Option key={item.cost_center}>
{item.cost_center}
</Select.Option>
))}
</Select>
</Form.Item>
);
}}
</Form.Item>
<Form.Item
name="ciecacode"

View File

@@ -44,24 +44,42 @@ export function TimeTicketModalContainer({
);
const handleFinish = (values) => {
const emps = EmployeeAutoCompleteData.employees.filter(
(e) => e.id === values.employeeid
);
if (timeTicketModal.context.id) {
updateTicket({
variables: {
timeticketId: timeTicketModal.context.id,
timeticket: values,
timeticket: {
...values,
rate:
emps.length === 1
? emps[0].rates.filter(
(r) => r.cost_center === values.cost_center
)[0].rate
: null,
},
},
})
.then(handleMutationSuccess)
.catch(handleMutationError);
} else {
//Get selected employee rate.
const rate = EmployeeAutoCompleteData.employees.filter(
(i) => i.id === values.employeeid
)[0].base_rate;
insertTicket({
variables: {
timeTicketInput: [{ ...values, rate, bodyshopid: bodyshop.id }],
timeTicketInput: [
{
...values,
rate:
emps.length === 1
? emps[0].rates.filter(
(r) => r.cost_center === values.cost_center
)[0].rate
: null,
bodyshopid: bodyshop.id,
},
],
},
})
.then(handleMutationSuccess)
@@ -196,7 +214,6 @@ export function TimeTicketModalContainer({
employeeAutoCompleteOptions={
EmployeeAutoCompleteData && EmployeeAutoCompleteData.employees
}
responsibilityCenters={bodyshop.md_responsibility_centers || null}
loadLineTicketData={loadLineTicketData}
lineTicketData={
lineTicketData ? lineTicketData : { joblines: [], timetickets: [] }