IO-1981 Add Sublet Order.

This commit is contained in:
Patrick Fic
2022-08-31 13:04:36 -07:00
parent cb0c4d55df
commit 5ec5be0852
7 changed files with 201 additions and 49 deletions

View File

@@ -34539,6 +34539,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>order_type</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>orderhistory</name> <name>orderhistory</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -34560,6 +34581,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>parts_order</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>parts_orders</name> <name>parts_orders</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -34665,6 +34707,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>sublet_order</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> </children>
</folder_node> </folder_node>
<folder_node> <folder_node>
@@ -37474,6 +37537,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>sublet_order</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>supplement_request</name> <name>supplement_request</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -38090,6 +38174,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>sublet_order</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> </children>
</folder_node> </folder_node>
</children> </children>

View File

@@ -134,6 +134,18 @@ export function PartsOrderModalComponent({
<Checkbox /> <Checkbox />
</Form.Item> </Form.Item>
)} )}
<Form.Item
name="order_type"
initialValue="parts_order"
label={t("parts_orders.labels.order_type")}
>
<Radio.Group>
<Radio value={"parts_order"}>
{t("parts_orders.labels.parts_order")}
</Radio>
<Radio value={"sublet"}>{t("parts_orders.labels.sublet")}</Radio>
</Radio.Group>
</Form.Item>
</LayoutFormRow> </LayoutFormRow>
<Divider orientation="left"> <Divider orientation="left">
{t("parts_orders.labels.inthisorder")} {t("parts_orders.labels.inthisorder")}

View File

@@ -94,6 +94,7 @@ export function PartsOrderModalContainer({
const [updateJob] = useMutation(UPDATE_JOB); const [updateJob] = useMutation(UPDATE_JOB);
const handleFinish = async ({ const handleFinish = async ({
order_type,
removefrompartsqueue, removefrompartsqueue,
is_quote, is_quote,
...values ...values
@@ -102,47 +103,46 @@ export function PartsOrderModalContainer({
setSaving(true); setSaving(true);
let insertResult; let insertResult;
insertResult = await insertPartOrder({ insertResult = await insertPartOrder({
variables: { variables: {
po: [ po: [
{ {
...values, ...values,
order_date: moment().format("YYYY-MM-DD"), order_date: moment().format("YYYY-MM-DD"),
orderedby: currentUser.email, orderedby: currentUser.email,
jobid: jobId, jobid: jobId,
user_email: currentUser.email, user_email: currentUser.email,
return: isReturn, return: isReturn,
status: is_quote status: is_quote
? bodyshop.md_order_statuses.default_quote || "Quote" ? bodyshop.md_order_statuses.default_quote || "Quote"
: bodyshop.md_order_statuses.default_ordered || "Ordered*", : bodyshop.md_order_statuses.default_ordered || "Ordered*",
}, },
], ],
}, },
refetchQueries: ["QUERY_PARTS_BILLS_BY_JOBID"], 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) { return;
notification["error"]({ }
message: t("parts_orders.errors.creating"), notification["success"]({
description: JSON.stringify(insertResult.errors), message: values.isReturn
}); ? t("parts_orders.successes.return_created")
return; : t("parts_orders.successes.created"),
} });
notification["success"]({ insertAuditTrail({
message: values.isReturn jobid: jobId,
? t("parts_orders.successes.return_created") operation: isReturn
: t("parts_orders.successes.created"), ? AuditTrailMapping.jobspartsreturn(
}); insertResult.data.insert_parts_orders.returning[0].order_number
insertAuditTrail({ )
jobid: jobId, : AuditTrailMapping.jobspartsorder(
operation: isReturn insertResult.data.insert_parts_orders.returning[0].order_number
? 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({ const jobLinesResult = await updateJobLines({
variables: { variables: {
@@ -228,7 +228,9 @@ export function PartsOrderModalContainer({
{ {
name: isReturn name: isReturn
? Templates.parts_return_slip.key ? Templates.parts_return_slip.key
: Templates.parts_order.key, : order_type === "parts_order"
? Templates.parts_order.key
: Templates.sublet_order.key,
variables: { variables: {
id: insertResult.data.insert_parts_orders.returning[0].id, id: insertResult.data.insert_parts_orders.returning[0].id,
}, },
@@ -238,7 +240,9 @@ export function PartsOrderModalContainer({
replyTo: bodyshop.email, replyTo: bodyshop.email,
subject: isReturn subject: isReturn
? Templates.parts_return_slip.subject ? Templates.parts_return_slip.subject
: Templates.parts_order.subject, : order_type === "parts_order"
? Templates.parts_order.subject
: Templates.sublet_order.subject,
}, },
"e", "e",
jobId jobId
@@ -248,7 +252,9 @@ export function PartsOrderModalContainer({
{ {
name: isReturn name: isReturn
? Templates.parts_return_slip.key ? Templates.parts_return_slip.key
: Templates.parts_order.key, : order_type === "parts_order"
? Templates.parts_order.key
: Templates.sublet_order.key,
variables: { variables: {
id: insertResult.data.insert_parts_orders.returning[0].id, id: insertResult.data.insert_parts_orders.returning[0].id,
}, },

View File

@@ -2042,12 +2042,15 @@
"newpartsorder": "New Parts Order", "newpartsorder": "New Parts Order",
"notyetordered": "This part has not yet been ordered.", "notyetordered": "This part has not yet been ordered.",
"oec": "Order via OEC", "oec": "Order via OEC",
"order_type": "Order Type",
"orderhistory": "Order History", "orderhistory": "Order History",
"parts_order": "Parts Order",
"parts_orders": "Parts Orders", "parts_orders": "Parts Orders",
"print": "Show Printed Form", "print": "Show Printed Form",
"receive": "Receive Parts Order", "receive": "Receive Parts Order",
"removefrompartsqueue": "Remove from Parts Queue?", "removefrompartsqueue": "Remove from Parts Queue?",
"returnpartsorder": "Return Parts Order" "returnpartsorder": "Return Parts Order",
"sublet_order": "Sublet Order"
}, },
"successes": { "successes": {
"created": "Parts order created successfully. ", "created": "Parts order created successfully. ",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "SGI - Certificate of Repairs", "sgi_certificate_of_repairs": "SGI - Certificate of Repairs",
"sgi_windshield_auth": "SGI - Windshield Authorization", "sgi_windshield_auth": "SGI - Windshield Authorization",
"stolen_recovery_checklist": "Stolen Recovery Checklist", "stolen_recovery_checklist": "Stolen Recovery Checklist",
"sublet_order": "Sublet Order",
"supplement_request": "Supplement Request", "supplement_request": "Supplement Request",
"thank_you_ro": "Thank You Letter", "thank_you_ro": "Thank You Letter",
"thirdpartypayer": "Third Party Payer", "thirdpartypayer": "Third Party Payer",
@@ -2255,7 +2259,8 @@
}, },
"subjects": { "subjects": {
"jobs": { "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": { "vendors": {

View File

@@ -2042,12 +2042,15 @@
"newpartsorder": "", "newpartsorder": "",
"notyetordered": "", "notyetordered": "",
"oec": "", "oec": "",
"order_type": "",
"orderhistory": "Historial de pedidos", "orderhistory": "Historial de pedidos",
"parts_order": "",
"parts_orders": "", "parts_orders": "",
"print": "Mostrar formulario impreso", "print": "Mostrar formulario impreso",
"receive": "", "receive": "",
"removefrompartsqueue": "", "removefrompartsqueue": "",
"returnpartsorder": "" "returnpartsorder": "",
"sublet_order": ""
}, },
"successes": { "successes": {
"created": "Pedido de piezas creado con éxito.", "created": "Pedido de piezas creado con éxito.",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "", "sgi_certificate_of_repairs": "",
"sgi_windshield_auth": "", "sgi_windshield_auth": "",
"stolen_recovery_checklist": "", "stolen_recovery_checklist": "",
"sublet_order": "",
"supplement_request": "", "supplement_request": "",
"thank_you_ro": "", "thank_you_ro": "",
"thirdpartypayer": "", "thirdpartypayer": "",
@@ -2255,7 +2259,8 @@
}, },
"subjects": { "subjects": {
"jobs": { "jobs": {
"parts_order": "" "parts_order": "",
"sublet_order": ""
} }
}, },
"vendors": { "vendors": {

View File

@@ -2042,12 +2042,15 @@
"newpartsorder": "", "newpartsorder": "",
"notyetordered": "", "notyetordered": "",
"oec": "", "oec": "",
"order_type": "",
"orderhistory": "Historique des commandes", "orderhistory": "Historique des commandes",
"parts_order": "",
"parts_orders": "", "parts_orders": "",
"print": "Afficher le formulaire imprimé", "print": "Afficher le formulaire imprimé",
"receive": "", "receive": "",
"removefrompartsqueue": "", "removefrompartsqueue": "",
"returnpartsorder": "" "returnpartsorder": "",
"sublet_order": ""
}, },
"successes": { "successes": {
"created": "Commande de pièces créée avec succès.", "created": "Commande de pièces créée avec succès.",
@@ -2217,6 +2220,7 @@
"sgi_certificate_of_repairs": "", "sgi_certificate_of_repairs": "",
"sgi_windshield_auth": "", "sgi_windshield_auth": "",
"stolen_recovery_checklist": "", "stolen_recovery_checklist": "",
"sublet_order": "",
"supplement_request": "", "supplement_request": "",
"thank_you_ro": "", "thank_you_ro": "",
"thirdpartypayer": "", "thirdpartypayer": "",
@@ -2255,7 +2259,8 @@
}, },
"subjects": { "subjects": {
"jobs": { "jobs": {
"parts_order": "" "parts_order": "",
"sublet_order": ""
} }
}, },
"vendors": { "vendors": {

View File

@@ -551,6 +551,20 @@ export const TemplateList = (type, context) => {
}), }),
disabled: false, 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: { parts_return_slip: {
title: i18n.t("printcenter.jobs.parts_return_slip"), title: i18n.t("printcenter.jobs.parts_return_slip"),
subject: i18n.t("printcenter.jobs.parts_return_slip"), subject: i18n.t("printcenter.jobs.parts_return_slip"),