diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
index 916587174..d92c7226c 100644
--- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
+++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
@@ -183,7 +183,10 @@ function BillEnterModalContainer({
0,
}}
>
-
+
);
diff --git a/client/src/components/bill-form/bill-form.component.jsx b/client/src/components/bill-form/bill-form.component.jsx
index 2b67ce8cc..adf573c5a 100644
--- a/client/src/components/bill-form/bill-form.component.jsx
+++ b/client/src/components/bill-form/bill-form.component.jsx
@@ -39,6 +39,7 @@ export function BillFormComponent({
responsibilityCenters,
loadLines,
billEdit,
+ disableInvNumber,
}) {
const { t } = useTranslation();
const client = useApolloClient();
@@ -142,7 +143,15 @@ export function BillFormComponent({
}),
]}
>
-
+
+
+
+
-
+
({
setEmailOptions: (e) => dispatch(setEmailOptions(e)),
toggleModalVisible: () => dispatch(toggleModalVisible("partsOrder")),
+ setBillEnterContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "billEnter" })),
});
export function PartsOrderModalContainer({
@@ -42,6 +46,7 @@ export function PartsOrderModalContainer({
currentUser,
bodyshop,
setEmailOptions,
+ setBillEnterContext,
}) {
const { t } = useTranslation();
@@ -68,7 +73,6 @@ export function PartsOrderModalContainer({
const [insertPartOrder] = useMutation(INSERT_NEW_PARTS_ORDERS);
const [updateJobLines] = useMutation(UPDATE_JOB_LINE_STATUS);
- const [insertBill] = useMutation(INSERT_NEW_BILL);
const handleFinish = async (values) => {
logImEXEvent("parts_order_insert");
@@ -113,37 +117,37 @@ export function PartsOrderModalContainer({
});
if (values.vendorid === bodyshop.inhousevendorid) {
- logImEXEvent("parts_order_inhouse_invoice");
-
- let invoiceToPost = {
- vendorid: bodyshop.inhousevendorid,
- isinhouse: true,
- jobid: jobId,
- total: 0,
- invoice_number: "ih",
- federal_tax_rate: bodyshop.bill_tax_rates.federal_tax_rate || 0,
- state_tax_rate: bodyshop.bill_tax_rates.state_tax_rate || 0,
- local_tax_rate: bodyshop.bill_tax_rates.local_tax_rate || 0,
- billlines: {
- data: values.parts_order_lines.data.map((p) => {
- return {
- joblineid: p.job_line_id,
- actual_price: p.act_price,
- actual_cost: p.act_price,
- line_desc: p.line_desc,
- line_remarks: p.line_remarks,
- quantity: p.quantity || 1,
- cost_center:
- bodyshop.md_responsibility_centers.defaults.costs.PAO ||
- "Other*",
- };
- }),
+ setBillEnterContext({
+ actions: { refetch: refetch },
+ context: {
+ disableInvNumber: true,
+ job: { id: jobId },
+ bill: {
+ vendorid: bodyshop.inhousevendorid,
+ invoice_number: "ih",
+ isinhouse: true,
+ date: new moment(),
+ billlines: values.parts_order_lines.data.map((p) => {
+ return {
+ joblineid: p.job_line_id,
+ actual_price: p.act_price,
+ actual_cost: p.act_price,
+ line_desc: p.line_desc,
+ line_remarks: p.line_remarks,
+ part_type: p.part_type,
+ quantity: p.quantity || 1,
+ applicable_taxes: {
+ local: false,
+ state: p.tax_part,
+ federal: true,
+ },
+ };
+ }),
+ },
},
- };
-
- await insertBill({
- variables: { bill: invoiceToPost },
});
+ toggleModalVisible();
+ return;
}
if (refetch) refetch();
diff --git a/client/src/graphql/jobs-lines.queries.js b/client/src/graphql/jobs-lines.queries.js
index 37d31ad98..54da42982 100644
--- a/client/src/graphql/jobs-lines.queries.js
+++ b/client/src/graphql/jobs-lines.queries.js
@@ -22,6 +22,7 @@ export const GET_JOB_LINES_BY_PK = gql`
status
notes
location
+ tax_part
parts_order_lines {
id
parts_order {
diff --git a/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/down.yaml b/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/down.yaml
new file mode 100644
index 000000000..9e28cd02e
--- /dev/null
+++ b/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/down.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: ALTER TABLE "public"."parts_order_lines" DROP COLUMN "part_type";
+ type: run_sql
diff --git a/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/up.yaml b/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/up.yaml
new file mode 100644
index 000000000..0f41a529c
--- /dev/null
+++ b/hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: ALTER TABLE "public"."parts_order_lines" ADD COLUMN "part_type" text NULL;
+ type: run_sql
diff --git a/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/down.yaml b/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/down.yaml
new file mode 100644
index 000000000..f30db5ad8
--- /dev/null
+++ b/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/down.yaml
@@ -0,0 +1,40 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_insert_permission
+- args:
+ permission:
+ check:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - quantity
+ - status
+ - updated_at
+ set: {}
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_insert_permission
diff --git a/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/up.yaml b/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/up.yaml
new file mode 100644
index 000000000..03a2bc485
--- /dev/null
+++ b/hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/up.yaml
@@ -0,0 +1,41 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_insert_permission
+- args:
+ permission:
+ check:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - part_type
+ - quantity
+ - status
+ - updated_at
+ set: {}
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_insert_permission
diff --git a/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/down.yaml b/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/down.yaml
new file mode 100644
index 000000000..609697074
--- /dev/null
+++ b/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/down.yaml
@@ -0,0 +1,41 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_select_permission
+- args:
+ permission:
+ allow_aggregations: false
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - quantity
+ - status
+ - updated_at
+ computed_fields: []
+ filter:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_select_permission
diff --git a/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/up.yaml b/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/up.yaml
new file mode 100644
index 000000000..9d5d7c6a7
--- /dev/null
+++ b/hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/up.yaml
@@ -0,0 +1,42 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_select_permission
+- args:
+ permission:
+ allow_aggregations: false
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - part_type
+ - quantity
+ - status
+ - updated_at
+ computed_fields: []
+ filter:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_select_permission
diff --git a/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/down.yaml b/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/down.yaml
new file mode 100644
index 000000000..09f99df03
--- /dev/null
+++ b/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/down.yaml
@@ -0,0 +1,40 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_update_permission
+- args:
+ permission:
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - quantity
+ - status
+ - updated_at
+ filter:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ set: {}
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_update_permission
diff --git a/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/up.yaml b/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/up.yaml
new file mode 100644
index 000000000..1277d7f95
--- /dev/null
+++ b/hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/up.yaml
@@ -0,0 +1,41 @@
+- args:
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: drop_update_permission
+- args:
+ permission:
+ columns:
+ - act_price
+ - backordered_eta
+ - backordered_on
+ - created_at
+ - db_price
+ - id
+ - job_line_id
+ - line_desc
+ - line_remarks
+ - oem_partno
+ - orderid
+ - part_type
+ - quantity
+ - status
+ - updated_at
+ filter:
+ parts_order:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ set: {}
+ role: user
+ table:
+ name: parts_order_lines
+ schema: public
+ type: create_update_permission
diff --git a/hasura/migrations/metadata.yaml b/hasura/migrations/metadata.yaml
index 5fa5c5632..bf03167eb 100644
--- a/hasura/migrations/metadata.yaml
+++ b/hasura/migrations/metadata.yaml
@@ -3241,6 +3241,7 @@ tables:
- line_remarks
- oem_partno
- orderid
+ - part_type
- quantity
- status
- updated_at
@@ -3259,6 +3260,7 @@ tables:
- line_remarks
- oem_partno
- orderid
+ - part_type
- quantity
- status
- updated_at
@@ -3288,6 +3290,7 @@ tables:
- line_remarks
- oem_partno
- orderid
+ - part_type
- quantity
- status
- updated_at