From 6f96bcfa7ec8b2fd7c4262fc4e855846b58cb6f0 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 8 Jan 2021 11:40:32 -0800 Subject: [PATCH] Refactored how in house invoices are created IO-460 --- .../bill-enter-modal.container.jsx | 5 +- .../bill-form/bill-form.component.jsx | 12 ++- .../bill-form/bill-form.container.jsx | 9 ++- .../parts-order-modal.component.jsx | 1 + .../parts-order-modal.container.jsx | 78 ++++++++++--------- client/src/graphql/jobs-lines.queries.js | 1 + .../down.yaml | 5 ++ .../up.yaml | 5 ++ .../down.yaml | 40 ++++++++++ .../up.yaml | 41 ++++++++++ .../down.yaml | 41 ++++++++++ .../up.yaml | 42 ++++++++++ .../down.yaml | 40 ++++++++++ .../up.yaml | 41 ++++++++++ hasura/migrations/metadata.yaml | 3 + 15 files changed, 323 insertions(+), 41 deletions(-) create mode 100644 hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/down.yaml create mode 100644 hasura/migrations/1610131746926_alter_table_public_parts_order_lines_add_column_part_type/up.yaml create mode 100644 hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/down.yaml create mode 100644 hasura/migrations/1610131757812_update_permission_user_public_table_parts_order_lines/up.yaml create mode 100644 hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/down.yaml create mode 100644 hasura/migrations/1610131767244_update_permission_user_public_table_parts_order_lines/up.yaml create mode 100644 hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/down.yaml create mode 100644 hasura/migrations/1610131775615_update_permission_user_public_table_parts_order_lines/up.yaml 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