+
{t("parts_orders.labels.orderhistory")}
+ {record.parts_order_lines.map(item => (
+
+ {`${item.parts_order.order_number || ""} from `}
+
+ {item.parts_order.vendor.name || ""}
+
+ {` on ${item.parts_order.order_date || ""}`}
+
+ ))}
+
+ )}
pagination={{ position: "top", defaultPageSize: 25 }}
rowSelection={{
// selectedRowKeys: selectedLines,
diff --git a/client/src/components/parts-order-modal/parts-order-modal.container.jsx b/client/src/components/parts-order-modal/parts-order-modal.container.jsx
index bd775f8f4..3200890dc 100644
--- a/client/src/components/parts-order-modal/parts-order-modal.container.jsx
+++ b/client/src/components/parts-order-modal/parts-order-modal.container.jsx
@@ -5,6 +5,7 @@ import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { INSERT_NEW_PARTS_ORDERS } from "../../graphql/parts-orders.queries";
+import { UPDATE_JOB_LINE_STATUS } from "../../graphql/jobs-lines.queries";
import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries";
import {
selectBodyshop,
@@ -26,7 +27,8 @@ export default connect(
linesToOrder,
jobId,
currentUser,
- bodyshop
+ bodyshop,
+ refetch
}) {
const { t } = useTranslation();
const [modalVisible, setModalVisible] = partsOrderModalVisible;
@@ -40,7 +42,7 @@ export default connect(
db_price: value.db_price,
act_price: value.act_price,
line_remarks: "Alalala",
- joblineid: value.joblineid,
+ job_line_id: value.id,
status: bodyshop.md_order_statuses.default_ordered || "Ordered*"
});
return acc;
@@ -61,6 +63,7 @@ export default connect(
skip: !modalVisible
});
const [insertPartOrder] = useMutation(INSERT_NEW_PARTS_ORDERS);
+ const [updateJobLines] = useMutation(UPDATE_JOB_LINE_STATUS);
const handleOk = () => {
insertPartOrder({
@@ -77,10 +80,25 @@ export default connect(
}
})
.then(r => {
- notification["success"]({
- message: t("parts_orders.successes.created")
- });
- setModalVisible(false);
+ updateJobLines({
+ variables: {
+ ids: linesToOrder.map(item => item.id),
+ status: bodyshop.md_order_statuses.default_ordered || "Ordered*"
+ }
+ })
+ .then(response => {
+ notification["success"]({
+ message: t("parts_orders.successes.created")
+ });
+ if (refetch) refetch();
+ setModalVisible(false);
+ })
+ .catch(error => {
+ notification["error"]({
+ message: t("parts_orders.errors.creating"),
+ description: error.message
+ });
+ });
})
.catch(error => {
notification["error"]({
diff --git a/client/src/graphql/jobs-lines.queries.js b/client/src/graphql/jobs-lines.queries.js
index 5efd5ccd0..ea3c2f9dc 100644
--- a/client/src/graphql/jobs-lines.queries.js
+++ b/client/src/graphql/jobs-lines.queries.js
@@ -18,6 +18,20 @@ export const GET_JOB_LINES_BY_PK = gql`
lbr_op
lbr_amt
op_code_desc
+ status
+ parts_order_lines {
+ id
+ parts_order {
+ id
+ order_number
+ order_date
+ user_email
+ vendor {
+ id
+ name
+ }
+ }
+ }
allocations {
id
hours
@@ -30,3 +44,11 @@ export const GET_JOB_LINES_BY_PK = gql`
}
}
`;
+
+export const UPDATE_JOB_LINE_STATUS = gql`
+ mutation UPDATE_JOB_LINE_STATUS($ids: [uuid!]!, $status: String!) {
+ update_joblines(where: { id: { _in: $ids } }, _set: { status: $status }) {
+ affected_rows
+ }
+ }
+`;
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index f8df11c07..ea981ec14 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -135,6 +135,7 @@
"mod_lb_hrs": "Labor Hours",
"oem_partno": "OEM Part #",
"part_type": "Part Type",
+ "status": "Status",
"unq_seq": "Seq #"
}
},
@@ -391,6 +392,7 @@
"labels": {
"email": "Send by Email",
"inthisorder": "Parts in this Order",
+ "orderhistory": "Order History",
"print": "Show Printed Form"
},
"successes": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index e93c6be9e..5b473a6b1 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -135,6 +135,7 @@
"mod_lb_hrs": "Horas laborales",
"oem_partno": "OEM parte #",
"part_type": "Tipo de parte",
+ "status": "Estado",
"unq_seq": "Seq #"
}
},
@@ -391,6 +392,7 @@
"labels": {
"email": "Enviar por correo electrónico",
"inthisorder": "Partes en este pedido",
+ "orderhistory": "Historial de pedidos",
"print": "Mostrar formulario impreso"
},
"successes": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index e37f04001..df963678b 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -135,6 +135,7 @@
"mod_lb_hrs": "Heures de travail",
"oem_partno": "Pièce OEM #",
"part_type": "Type de pièce",
+ "status": "Statut",
"unq_seq": "Seq #"
}
},
@@ -391,6 +392,7 @@
"labels": {
"email": "Envoyé par email",
"inthisorder": "Pièces dans cette commande",
+ "orderhistory": "Historique des commandes",
"print": "Afficher le formulaire imprimé"
},
"successes": {
diff --git a/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/down.yaml b/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/down.yaml
new file mode 100644
index 000000000..2c4cd87c3
--- /dev/null
+++ b/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/down.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: ALTER TABLE "public"."joblines" DROP COLUMN "status";
+ type: run_sql
diff --git a/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/up.yaml b/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/up.yaml
new file mode 100644
index 000000000..428023a4c
--- /dev/null
+++ b/hasura/migrations/1582224710136_alter_table_public_joblines_add_column_status/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: ALTER TABLE "public"."joblines" ADD COLUMN "status" text NULL;
+ type: run_sql
diff --git a/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/down.yaml
new file mode 100644
index 000000000..3d0722715
--- /dev/null
+++ b/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/down.yaml
@@ -0,0 +1,75 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_insert_permission
+- args:
+ permission:
+ check:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ columns:
+ - id
+ - created_at
+ - updated_at
+ - jobid
+ - unq_seq
+ - line_ind
+ - line_desc
+ - part_type
+ - oem_partno
+ - est_seq
+ - db_ref
+ - line_ref
+ - tax_part
+ - db_price
+ - act_price
+ - part_qty
+ - alt_partno
+ - mod_lbr_ty
+ - db_hrs
+ - mod_lb_hrs
+ - lbr_op
+ - lbr_amt
+ - glass_flag
+ - price_inc
+ - alt_part_i
+ - price_j
+ - cert_part
+ - alt_co_id
+ - alt_overrd
+ - alt_partm
+ - prt_dsmk_p
+ - prt_dsmk_m
+ - lbr_inc
+ - lbr_hrs_j
+ - lbr_typ_j
+ - lbr_op_j
+ - paint_stg
+ - paint_tone
+ - lbr_tax
+ - misc_amt
+ - misc_sublt
+ - misc_tax
+ - bett_type
+ - bett_pctg
+ - bett_amt
+ - bett_tax
+ - op_code_desc
+ localPresets:
+ - key: ""
+ value: ""
+ set: {}
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_insert_permission
diff --git a/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/up.yaml
new file mode 100644
index 000000000..df8b59464
--- /dev/null
+++ b/hasura/migrations/1582224725146_update_permission_user_public_table_joblines/up.yaml
@@ -0,0 +1,76 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_insert_permission
+- args:
+ permission:
+ check:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ columns:
+ - id
+ - created_at
+ - updated_at
+ - jobid
+ - unq_seq
+ - line_ind
+ - line_desc
+ - part_type
+ - oem_partno
+ - est_seq
+ - db_ref
+ - line_ref
+ - tax_part
+ - db_price
+ - act_price
+ - part_qty
+ - alt_partno
+ - mod_lbr_ty
+ - db_hrs
+ - mod_lb_hrs
+ - lbr_op
+ - lbr_amt
+ - glass_flag
+ - price_inc
+ - alt_part_i
+ - price_j
+ - cert_part
+ - alt_co_id
+ - alt_overrd
+ - alt_partm
+ - prt_dsmk_p
+ - prt_dsmk_m
+ - lbr_inc
+ - lbr_hrs_j
+ - lbr_typ_j
+ - lbr_op_j
+ - paint_stg
+ - paint_tone
+ - lbr_tax
+ - misc_amt
+ - misc_sublt
+ - misc_tax
+ - bett_type
+ - bett_pctg
+ - bett_amt
+ - bett_tax
+ - op_code_desc
+ - status
+ localPresets:
+ - key: ""
+ value: ""
+ set: {}
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_insert_permission
diff --git a/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/down.yaml
new file mode 100644
index 000000000..32c4e42a2
--- /dev/null
+++ b/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/down.yaml
@@ -0,0 +1,73 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_select_permission
+- args:
+ permission:
+ allow_aggregations: false
+ columns:
+ - alt_overrd
+ - alt_part_i
+ - bett_tax
+ - cert_part
+ - glass_flag
+ - lbr_hrs_j
+ - lbr_inc
+ - lbr_op_j
+ - lbr_tax
+ - lbr_typ_j
+ - misc_sublt
+ - misc_tax
+ - price_inc
+ - price_j
+ - tax_part
+ - est_seq
+ - paint_stg
+ - paint_tone
+ - part_qty
+ - unq_seq
+ - act_price
+ - bett_amt
+ - bett_pctg
+ - db_hrs
+ - db_price
+ - lbr_amt
+ - line_ref
+ - misc_amt
+ - mod_lb_hrs
+ - prt_dsmk_m
+ - prt_dsmk_p
+ - alt_co_id
+ - alt_partm
+ - alt_partno
+ - bett_type
+ - db_ref
+ - lbr_op
+ - line_desc
+ - line_ind
+ - mod_lbr_ty
+ - oem_partno
+ - op_code_desc
+ - part_type
+ - created_at
+ - updated_at
+ - id
+ - jobid
+ computed_fields: []
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_select_permission
diff --git a/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/up.yaml
new file mode 100644
index 000000000..c639e07f8
--- /dev/null
+++ b/hasura/migrations/1582224730652_update_permission_user_public_table_joblines/up.yaml
@@ -0,0 +1,74 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_select_permission
+- args:
+ permission:
+ allow_aggregations: false
+ columns:
+ - alt_overrd
+ - alt_part_i
+ - bett_tax
+ - cert_part
+ - glass_flag
+ - lbr_hrs_j
+ - lbr_inc
+ - lbr_op_j
+ - lbr_tax
+ - lbr_typ_j
+ - misc_sublt
+ - misc_tax
+ - price_inc
+ - price_j
+ - tax_part
+ - est_seq
+ - paint_stg
+ - paint_tone
+ - part_qty
+ - unq_seq
+ - act_price
+ - bett_amt
+ - bett_pctg
+ - db_hrs
+ - db_price
+ - lbr_amt
+ - line_ref
+ - misc_amt
+ - mod_lb_hrs
+ - prt_dsmk_m
+ - prt_dsmk_p
+ - alt_co_id
+ - alt_partm
+ - alt_partno
+ - bett_type
+ - db_ref
+ - lbr_op
+ - line_desc
+ - line_ind
+ - mod_lbr_ty
+ - oem_partno
+ - op_code_desc
+ - part_type
+ - status
+ - created_at
+ - updated_at
+ - id
+ - jobid
+ computed_fields: []
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_select_permission
diff --git a/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/down.yaml
new file mode 100644
index 000000000..befcc2bb7
--- /dev/null
+++ b/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/down.yaml
@@ -0,0 +1,75 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_update_permission
+- args:
+ permission:
+ columns:
+ - alt_overrd
+ - alt_part_i
+ - bett_tax
+ - cert_part
+ - glass_flag
+ - lbr_hrs_j
+ - lbr_inc
+ - lbr_op_j
+ - lbr_tax
+ - lbr_typ_j
+ - misc_sublt
+ - misc_tax
+ - price_inc
+ - price_j
+ - tax_part
+ - est_seq
+ - paint_stg
+ - paint_tone
+ - part_qty
+ - unq_seq
+ - act_price
+ - bett_amt
+ - bett_pctg
+ - db_hrs
+ - db_price
+ - lbr_amt
+ - line_ref
+ - misc_amt
+ - mod_lb_hrs
+ - prt_dsmk_m
+ - prt_dsmk_p
+ - alt_co_id
+ - alt_partm
+ - alt_partno
+ - bett_type
+ - db_ref
+ - lbr_op
+ - line_desc
+ - line_ind
+ - mod_lbr_ty
+ - oem_partno
+ - op_code_desc
+ - part_type
+ - created_at
+ - updated_at
+ - id
+ - jobid
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ localPresets:
+ - key: ""
+ value: ""
+ set: {}
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_update_permission
diff --git a/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/up.yaml
new file mode 100644
index 000000000..a04baffe3
--- /dev/null
+++ b/hasura/migrations/1582224737046_update_permission_user_public_table_joblines/up.yaml
@@ -0,0 +1,76 @@
+- args:
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: drop_update_permission
+- args:
+ permission:
+ columns:
+ - alt_overrd
+ - alt_part_i
+ - bett_tax
+ - cert_part
+ - glass_flag
+ - lbr_hrs_j
+ - lbr_inc
+ - lbr_op_j
+ - lbr_tax
+ - lbr_typ_j
+ - misc_sublt
+ - misc_tax
+ - price_inc
+ - price_j
+ - tax_part
+ - est_seq
+ - paint_stg
+ - paint_tone
+ - part_qty
+ - unq_seq
+ - act_price
+ - bett_amt
+ - bett_pctg
+ - db_hrs
+ - db_price
+ - lbr_amt
+ - line_ref
+ - misc_amt
+ - mod_lb_hrs
+ - prt_dsmk_m
+ - prt_dsmk_p
+ - alt_co_id
+ - alt_partm
+ - alt_partno
+ - bett_type
+ - db_ref
+ - lbr_op
+ - line_desc
+ - line_ind
+ - mod_lbr_ty
+ - oem_partno
+ - op_code_desc
+ - part_type
+ - status
+ - created_at
+ - updated_at
+ - id
+ - jobid
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ localPresets:
+ - key: ""
+ value: ""
+ set: {}
+ role: user
+ table:
+ name: joblines
+ schema: public
+ type: create_update_permission