Added bucket config to shop screen BOD-174

This commit is contained in:
Patrick Fic
2020-06-24 11:39:46 -07:00
parent 997ea6cbcf
commit dab34aef49
9 changed files with 396 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
<babeledit_project be_version="2.6.1" version="1.2"> <babeledit_project version="1.2" be_version="2.6.1">
<!-- <!--
BabelEdit project file BabelEdit project file
@@ -802,6 +802,27 @@
<folder_node> <folder_node>
<name>actions</name> <name>actions</name>
<children> <children>
<concept_node>
<name>addbucket</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>addtemplate</name> <name>addtemplate</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -1867,6 +1888,116 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<folder_node>
<name>ssbuckets</name>
<children>
<concept_node>
<name>gte</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>id</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>label</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>lt</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>target</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>state</name> <name>state</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -2512,6 +2643,27 @@
</concept_node> </concept_node>
</children> </children>
</folder_node> </folder_node>
<concept_node>
<name>scheduling</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>shopinfo</name> <name>shopinfo</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next";
import ShopInfoROStatusComponent from "./shop-info.rostatus.component"; import ShopInfoROStatusComponent from "./shop-info.rostatus.component";
import ShopInfoOrderStatusComponent from "./shop-info.orderstatus.component"; import ShopInfoOrderStatusComponent from "./shop-info.orderstatus.component";
import ShopInfoResponsibilityCenterComponent from "./shop-info.responsibilitycenters.component"; import ShopInfoResponsibilityCenterComponent from "./shop-info.responsibilitycenters.component";
import ShopInfoSchedulingComponent from "./shop-info.scheduling.component";
export default function ShopInfoComponent({ form }) { export default function ShopInfoComponent({ form }) {
const { t } = useTranslation(); const { t } = useTranslation();
@@ -146,6 +147,12 @@ export default function ShopInfoComponent({ form }) {
> >
<ShopInfoROStatusComponent form={form} /> <ShopInfoROStatusComponent form={form} />
</Collapse.Panel> </Collapse.Panel>
<Collapse.Panel
key="scheduling"
header={t("bodyshop.labels.scheduling")}
>
<ShopInfoSchedulingComponent form={form} />
</Collapse.Panel>
<Collapse.Panel <Collapse.Panel
key="orderStatus" key="orderStatus"
header={t("bodyshop.labels.orderstatuses")} header={t("bodyshop.labels.orderstatuses")}

View File

@@ -0,0 +1,113 @@
import { DeleteFilled } from "@ant-design/icons";
import { Button, Form, Input, InputNumber, Select, Row, Col } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
//TODO Fix up styles.
export default function ShopInfoSchedulingComponent({ form }) {
const { t } = useTranslation();
return (
<div>
<strong>{t("bodyshop.labels.orderstatuses")}</strong>
<Row>
<Col span={24}>
<Form.List name={["ssbuckets"]}>
{(fields, { add, remove }) => {
return (
<div>
{fields.map((field, index) => (
<Form.Item
key={field.key}
style={{ padding: 0, margin: 2 }}
>
<div className="imex-flex-row">
<Form.Item
label={t("bodyshop.fields.ssbuckets.id")}
key={`${index}id`}
name={[field.name, "id"]}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
>
<Input />
</Form.Item>
<Form.Item
label={t("bodyshop.fields.ssbuckets.label")}
key={`${index}label`}
name={[field.name, "label"]}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
>
<Input />
</Form.Item>
<Form.Item
label={t("bodyshop.fields.ssbuckets.gte")}
key={`${index}gte`}
name={[field.name, "gte"]}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
>
<InputNumber />
</Form.Item>
<Form.Item
label={t("bodyshop.fields.ssbuckets.lt")}
key={`${index}lt`}
name={[field.name, "lt"]}
>
<InputNumber />
</Form.Item>
<Form.Item
label={t("bodyshop.fields.ssbuckets.target")}
key={`${index}target`}
name={[field.name, "target"]}
rules={[
{
required: true,
message: t("general.validation.required"),
},
]}
>
<InputNumber />
</Form.Item>
<DeleteFilled
onClick={() => {
remove(field.name);
}}
/>
</div>
</Form.Item>
))}
<Form.Item>
<Button
type="dashed"
onClick={() => {
add();
}}
style={{ width: "100%" }}
>
{t("bodyshop.actions.addbucket")}
</Button>
</Form.Item>
</div>
);
}}
</Form.List>
</Col>
</Row>
</div>
);
}

View File

@@ -69,6 +69,7 @@
}, },
"bodyshop": { "bodyshop": {
"actions": { "actions": {
"addbucket": "Add Bucket",
"addtemplate": "Add Template", "addtemplate": "Add Template",
"newstatus": "Add Status" "newstatus": "Add Status"
}, },
@@ -125,6 +126,13 @@
"tow": "Towing" "tow": "Towing"
}, },
"shopname": "Shop Name", "shopname": "Shop Name",
"ssbuckets": {
"gte": "Greater Than/Equal to (hrs)",
"id": "ID",
"label": "Label",
"lt": "Less than (hrs)",
"target": "Target (count)"
},
"state": "State/Province", "state": "State/Province",
"state_tax_id": "State Tax ID (PST, QST)", "state_tax_id": "State Tax ID (PST, QST)",
"status": "Status Label", "status": "Status Label",
@@ -161,6 +169,7 @@
"profits": "Profit Centers", "profits": "Profit Centers",
"title": "Responsibility Centers" "title": "Responsibility Centers"
}, },
"scheduling": "SMART Scheduling",
"shopinfo": "Shop Information" "shopinfo": "Shop Information"
}, },
"successes": { "successes": {

View File

@@ -69,6 +69,7 @@
}, },
"bodyshop": { "bodyshop": {
"actions": { "actions": {
"addbucket": "",
"addtemplate": "", "addtemplate": "",
"newstatus": "" "newstatus": ""
}, },
@@ -125,6 +126,13 @@
"tow": "" "tow": ""
}, },
"shopname": "", "shopname": "",
"ssbuckets": {
"gte": "",
"id": "",
"label": "",
"lt": "",
"target": ""
},
"state": "", "state": "",
"state_tax_id": "", "state_tax_id": "",
"status": "", "status": "",
@@ -161,6 +169,7 @@
"profits": "", "profits": "",
"title": "" "title": ""
}, },
"scheduling": "",
"shopinfo": "" "shopinfo": ""
}, },
"successes": { "successes": {

View File

@@ -69,6 +69,7 @@
}, },
"bodyshop": { "bodyshop": {
"actions": { "actions": {
"addbucket": "",
"addtemplate": "", "addtemplate": "",
"newstatus": "" "newstatus": ""
}, },
@@ -125,6 +126,13 @@
"tow": "" "tow": ""
}, },
"shopname": "", "shopname": "",
"ssbuckets": {
"gte": "",
"id": "",
"label": "",
"lt": "",
"target": ""
},
"state": "", "state": "",
"state_tax_id": "", "state_tax_id": "",
"status": "", "status": "",
@@ -161,6 +169,7 @@
"profits": "", "profits": "",
"title": "" "title": ""
}, },
"scheduling": "",
"shopinfo": "" "shopinfo": ""
}, },
"successes": { "successes": {

View File

@@ -0,0 +1,47 @@
- args:
role: user
table:
name: bodyshops
schema: public
type: drop_update_permission
- args:
permission:
columns:
- accountingconfig
- address1
- address2
- appt_length
- city
- country
- created_at
- email
- federal_tax_id
- id
- inhousevendorid
- insurance_vendor_id
- intakechecklist
- invoice_tax_rates
- logo_img_path
- md_order_statuses
- md_responsibility_centers
- md_ro_statuses
- production_config
- shopname
- shoprates
- state
- state_tax_id
- updated_at
- zip_post
filter:
associations:
bodyshop:
associations:
user:
authid:
_eq: X-Hasura-User-Id
set: {}
role: user
table:
name: bodyshops
schema: public
type: create_update_permission

View File

@@ -0,0 +1,48 @@
- args:
role: user
table:
name: bodyshops
schema: public
type: drop_update_permission
- args:
permission:
columns:
- accountingconfig
- address1
- address2
- appt_length
- city
- country
- created_at
- email
- federal_tax_id
- id
- inhousevendorid
- insurance_vendor_id
- intakechecklist
- invoice_tax_rates
- logo_img_path
- md_order_statuses
- md_responsibility_centers
- md_ro_statuses
- production_config
- shopname
- shoprates
- ssbuckets
- state
- state_tax_id
- updated_at
- zip_post
filter:
associations:
bodyshop:
associations:
user:
authid:
_eq: X-Hasura-User-Id
set: {}
role: user
table:
name: bodyshops
schema: public
type: create_update_permission

View File

@@ -511,6 +511,7 @@ tables:
- production_config - production_config
- shopname - shopname
- shoprates - shoprates
- ssbuckets
- state - state
- state_tax_id - state_tax_id
- updated_at - updated_at