diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel
index 95f87f121..03e5170f6 100644
--- a/bodyshop_translations.babel
+++ b/bodyshop_translations.babel
@@ -34539,6 +34539,27 @@
+
+ order_type
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
orderhistory
false
@@ -34560,6 +34581,27 @@
+
+ parts_order
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
parts_orders
false
@@ -34665,6 +34707,27 @@
+
+ sublet_order
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
@@ -37474,6 +37537,27 @@
+
+ sublet_order
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
supplement_request
false
@@ -38090,6 +38174,27 @@
+
+ sublet_order
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
diff --git a/client/src/components/parts-order-modal/parts-order-modal.component.jsx b/client/src/components/parts-order-modal/parts-order-modal.component.jsx
index 49c3350cd..8cdd40c8a 100644
--- a/client/src/components/parts-order-modal/parts-order-modal.component.jsx
+++ b/client/src/components/parts-order-modal/parts-order-modal.component.jsx
@@ -134,6 +134,18 @@ export function PartsOrderModalComponent({
)}
+
+
+
+ {t("parts_orders.labels.parts_order")}
+
+ {t("parts_orders.labels.sublet")}
+
+
{t("parts_orders.labels.inthisorder")}
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 643d39200..0f30012a3 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
@@ -94,6 +94,7 @@ export function PartsOrderModalContainer({
const [updateJob] = useMutation(UPDATE_JOB);
const handleFinish = async ({
+ order_type,
removefrompartsqueue,
is_quote,
...values
@@ -102,47 +103,46 @@ export function PartsOrderModalContainer({
setSaving(true);
let insertResult;
- insertResult = await insertPartOrder({
- variables: {
- po: [
- {
- ...values,
- order_date: moment().format("YYYY-MM-DD"),
- orderedby: currentUser.email,
- jobid: jobId,
- user_email: currentUser.email,
- return: isReturn,
- status: is_quote
- ? bodyshop.md_order_statuses.default_quote || "Quote"
- : bodyshop.md_order_statuses.default_ordered || "Ordered*",
- },
- ],
- },
- refetchQueries: ["QUERY_PARTS_BILLS_BY_JOBID"],
+ insertResult = await insertPartOrder({
+ variables: {
+ po: [
+ {
+ ...values,
+ order_date: moment().format("YYYY-MM-DD"),
+ orderedby: currentUser.email,
+ jobid: jobId,
+ user_email: currentUser.email,
+ return: isReturn,
+ status: is_quote
+ ? bodyshop.md_order_statuses.default_quote || "Quote"
+ : bodyshop.md_order_statuses.default_ordered || "Ordered*",
+ },
+ ],
+ },
+ refetchQueries: ["QUERY_PARTS_BILLS_BY_JOBID"],
+ });
+ if (!!insertResult.errors) {
+ notification["error"]({
+ message: t("parts_orders.errors.creating"),
+ description: JSON.stringify(insertResult.errors),
});
- if (!!insertResult.errors) {
- notification["error"]({
- message: t("parts_orders.errors.creating"),
- description: JSON.stringify(insertResult.errors),
- });
- return;
- }
- notification["success"]({
- message: values.isReturn
- ? t("parts_orders.successes.return_created")
- : t("parts_orders.successes.created"),
- });
- insertAuditTrail({
- jobid: jobId,
- operation: isReturn
- ? AuditTrailMapping.jobspartsreturn(
- insertResult.data.insert_parts_orders.returning[0].order_number
- )
- : AuditTrailMapping.jobspartsorder(
- insertResult.data.insert_parts_orders.returning[0].order_number
- ),
- });
-
+ return;
+ }
+ notification["success"]({
+ message: values.isReturn
+ ? t("parts_orders.successes.return_created")
+ : t("parts_orders.successes.created"),
+ });
+ insertAuditTrail({
+ jobid: jobId,
+ operation: isReturn
+ ? AuditTrailMapping.jobspartsreturn(
+ insertResult.data.insert_parts_orders.returning[0].order_number
+ )
+ : AuditTrailMapping.jobspartsorder(
+ insertResult.data.insert_parts_orders.returning[0].order_number
+ ),
+ });
const jobLinesResult = await updateJobLines({
variables: {
@@ -228,7 +228,9 @@ export function PartsOrderModalContainer({
{
name: isReturn
? Templates.parts_return_slip.key
- : Templates.parts_order.key,
+ : order_type === "parts_order"
+ ? Templates.parts_order.key
+ : Templates.sublet_order.key,
variables: {
id: insertResult.data.insert_parts_orders.returning[0].id,
},
@@ -238,7 +240,9 @@ export function PartsOrderModalContainer({
replyTo: bodyshop.email,
subject: isReturn
? Templates.parts_return_slip.subject
- : Templates.parts_order.subject,
+ : order_type === "parts_order"
+ ? Templates.parts_order.subject
+ : Templates.sublet_order.subject,
},
"e",
jobId
@@ -248,7 +252,9 @@ export function PartsOrderModalContainer({
{
name: isReturn
? Templates.parts_return_slip.key
- : Templates.parts_order.key,
+ : order_type === "parts_order"
+ ? Templates.parts_order.key
+ : Templates.sublet_order.key,
variables: {
id: insertResult.data.insert_parts_orders.returning[0].id,
},
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index dbb32683d..e5f80d58d 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -2042,12 +2042,15 @@
"newpartsorder": "New Parts Order",
"notyetordered": "This part has not yet been ordered.",
"oec": "Order via OEC",
+ "order_type": "Order Type",
"orderhistory": "Order History",
+ "parts_order": "Parts Order",
"parts_orders": "Parts Orders",
"print": "Show Printed Form",
"receive": "Receive Parts Order",
"removefrompartsqueue": "Remove from Parts Queue?",
- "returnpartsorder": "Return Parts Order"
+ "returnpartsorder": "Return Parts Order",
+ "sublet_order": "Sublet Order"
},
"successes": {
"created": "Parts order created successfully. ",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "SGI - Certificate of Repairs",
"sgi_windshield_auth": "SGI - Windshield Authorization",
"stolen_recovery_checklist": "Stolen Recovery Checklist",
+ "sublet_order": "Sublet Order",
"supplement_request": "Supplement Request",
"thank_you_ro": "Thank You Letter",
"thirdpartypayer": "Third Party Payer",
@@ -2255,7 +2259,8 @@
},
"subjects": {
"jobs": {
- "parts_order": "Parts Order PO: {{ro_number}} - {{name}}"
+ "parts_order": "Parts Order PO: {{ro_number}} - {{name}}",
+ "sublet_order": "Sublet Order PO: {{ro_number}} - {{name}}"
}
},
"vendors": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index d1da1e8fc..5e509315e 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -2042,12 +2042,15 @@
"newpartsorder": "",
"notyetordered": "",
"oec": "",
+ "order_type": "",
"orderhistory": "Historial de pedidos",
+ "parts_order": "",
"parts_orders": "",
"print": "Mostrar formulario impreso",
"receive": "",
"removefrompartsqueue": "",
- "returnpartsorder": ""
+ "returnpartsorder": "",
+ "sublet_order": ""
},
"successes": {
"created": "Pedido de piezas creado con éxito.",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "",
"sgi_windshield_auth": "",
"stolen_recovery_checklist": "",
+ "sublet_order": "",
"supplement_request": "",
"thank_you_ro": "",
"thirdpartypayer": "",
@@ -2255,7 +2259,8 @@
},
"subjects": {
"jobs": {
- "parts_order": ""
+ "parts_order": "",
+ "sublet_order": ""
}
},
"vendors": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index 8535cca1b..11d7a18be 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -2042,12 +2042,15 @@
"newpartsorder": "",
"notyetordered": "",
"oec": "",
+ "order_type": "",
"orderhistory": "Historique des commandes",
+ "parts_order": "",
"parts_orders": "",
"print": "Afficher le formulaire imprimé",
"receive": "",
"removefrompartsqueue": "",
- "returnpartsorder": ""
+ "returnpartsorder": "",
+ "sublet_order": ""
},
"successes": {
"created": "Commande de pièces créée avec succès.",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "",
"sgi_windshield_auth": "",
"stolen_recovery_checklist": "",
+ "sublet_order": "",
"supplement_request": "",
"thank_you_ro": "",
"thirdpartypayer": "",
@@ -2255,7 +2259,8 @@
},
"subjects": {
"jobs": {
- "parts_order": ""
+ "parts_order": "",
+ "sublet_order": ""
}
},
"vendors": {
diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js
index 2b3f5dc76..69da361ef 100644
--- a/client/src/utils/TemplateConstants.js
+++ b/client/src/utils/TemplateConstants.js
@@ -551,6 +551,20 @@ export const TemplateList = (type, context) => {
}),
disabled: false,
},
+ sublet_order: {
+ title: i18n.t("printcenter.jobs.sublet_order"),
+ description: "Parts Order",
+ key: "sublet_order",
+ subject: i18n.t("printcenter.subjects.jobs.sublet_order", {
+ ro_number: context && context.job && context.job.ro_number,
+ name: (
+ (context && context.job && context.job.ownr_ln) ||
+ (context && context.job && context.job.ownr_co_nm) ||
+ ""
+ ).trim(),
+ }),
+ disabled: false,
+ },
parts_return_slip: {
title: i18n.t("printcenter.jobs.parts_return_slip"),
subject: i18n.t("printcenter.jobs.parts_return_slip"),