From cbc723fa385e351b6368cd6f2d6cf86802b88e40 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Thu, 23 Jan 2025 12:05:35 -0800 Subject: [PATCH 1/7] IO-3108 Job Totals USA PASL Signed-off-by: Allan Carr --- server/job/job-totals-USA.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/job/job-totals-USA.js b/server/job/job-totals-USA.js index 356636c36..4e889a658 100644 --- a/server/job/job-totals-USA.js +++ b/server/job/job-totals-USA.js @@ -818,6 +818,7 @@ function CalculateTaxesTotals(job, otherTotals) { PAG: Dinero(), PAO: Dinero(), PAS: Dinero(), + PASL: Dinero(), PAP: Dinero(), PAM: Dinero(), From 11e2f5d83d2e37803f561c241729125192c98517 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Thu, 23 Jan 2025 12:57:10 -0800 Subject: [PATCH 2/7] feature/IO-3108-Job-Totals-USA-PASL - Fix submit button for Product Fruits reasons, to go into hotfix --- .../jobs-convert-button.component.jsx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx index 941de644b..bc4d28f59 100644 --- a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx +++ b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx @@ -1,7 +1,8 @@ import { useMutation } from "@apollo/client"; import { Button, Form, Input, notification, Popover, Select, Space, Switch } from "antd"; import axios from "axios"; -import React, { useState } from "react"; +import { some } from "lodash"; +import React, { useCallback, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -18,7 +19,14 @@ const mapStateToProps = createStructuredSelector({ jobRO: selectJobReadOnly }); const mapDispatchToProps = (dispatch) => ({ - insertAuditTrail: ({ jobid, operation, type }) => dispatch(insertAuditTrail({ jobid, operation, type })) + insertAuditTrail: ({ jobid, operation, type }) => + dispatch( + insertAuditTrail({ + jobid, + operation, + type + }) + ) }); export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTrail, parentFormIsFieldsTouched }) { @@ -27,6 +35,7 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr const [mutationConvertJob] = useMutation(CONVERT_JOB_TO_RO); const { t } = useTranslation(); const [form] = Form.useForm(); + const allFormValues = Form.useWatch([], form); const handleConvert = async ({ employee_csr, category, ...values }) => { if (parentFormIsFieldsTouched()) { @@ -69,6 +78,8 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr setLoading(false); }; + const submitDisabled = useCallback(() => some(allFormValues, (v) => v === undefined), [allFormValues]); + const popMenu = (
- From 4c737371e3266836a5646c73f6cc85ad0d44ef58 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Thu, 23 Jan 2025 14:49:51 -0800 Subject: [PATCH 3/7] IO-3108 Adjust Initial Values Signed-off-by: Allan Carr --- .../jobs-convert-button/jobs-convert-button.component.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx index bc4d28f59..a4b045acb 100644 --- a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx +++ b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx @@ -91,7 +91,9 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr towin: job.towin, ca_gst_registrant: job.ca_gst_registrant, employee_csr: job.employee_csr, - category: job.category + category: job.category, + referralsource: job.referralsource, + referral_source_extra: job.referral_source_extra ? job.referral_source_extra : "" }} > Date: Thu, 23 Jan 2025 15:19:33 -0800 Subject: [PATCH 4/7] IO-3108 Adjust Initial Values/FieldValues Signed-off-by: Allan Carr --- .../jobs-convert-button.component.jsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx index a4b045acb..9e1fbd979 100644 --- a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx +++ b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx @@ -36,6 +36,7 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr const { t } = useTranslation(); const [form] = Form.useForm(); const allFormValues = Form.useWatch([], form); + console.log("allFormValues", allFormValues, "towin", job.towin); const handleConvert = async ({ employee_csr, category, ...values }) => { if (parentFormIsFieldsTouched()) { @@ -92,8 +93,8 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr ca_gst_registrant: job.ca_gst_registrant, employee_csr: job.employee_csr, category: job.category, - referralsource: job.referralsource, - referral_source_extra: job.referral_source_extra ? job.referral_source_extra : "" + referral_source: job.referral_source, + referral_source_extra: job.referral_source_extra ?? "" }} > { setOpen(true); - form.setFieldsValue({ - driveable: true, - towin: false, - employee_csr: job.employee_csr - }); }} > {t("jobs.actions.convert")} From 5ec032d8d61f13dbfa51171539b604cf933bde42 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Thu, 23 Jan 2025 15:21:10 -0800 Subject: [PATCH 5/7] IO-3108 Remove Console Log Signed-off-by: Allan Carr --- .../jobs-convert-button/jobs-convert-button.component.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx index 9e1fbd979..dc6f38168 100644 --- a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx +++ b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx @@ -36,7 +36,6 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr const { t } = useTranslation(); const [form] = Form.useForm(); const allFormValues = Form.useWatch([], form); - console.log("allFormValues", allFormValues, "towin", job.towin); const handleConvert = async ({ employee_csr, category, ...values }) => { if (parentFormIsFieldsTouched()) { From f186d9f8be32604e4c7fe5cf47b67a0da8ca9325 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Fri, 24 Jan 2025 14:07:09 -0800 Subject: [PATCH 6/7] IO-2676 Target Date to Schedule Completion Translation Adjustment Signed-off-by: Allan Carr --- client/src/translations/en_us/common.json | 37 ++++++++++++----------- client/src/translations/es/common.json | 32 ++++++++++---------- client/src/translations/fr/common.json | 32 ++++++++++---------- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 2f03dded6..ce321517d 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -380,11 +380,11 @@ "md_parts_order_comment": "Parts Orders Comments", "md_parts_scan": { "caseInsensitive": "Case Insensitive", - "expression": "", - "field": "Field", - "flags": "", - "operation": "Operation", - "value": "Value" + "expression": "", + "field": "Field", + "flags": "", + "operation": "Operation", + "value": "Value" }, "md_payment_types": "Payment Types", "md_referral_sources": "Referral Sources", @@ -715,15 +715,15 @@ "workingdays": "Working Days" }, "operations": { - "contains": "Contains", - "ends_with": "Ends With", - "equals": "Equals", - "greater_than": "Greater Than", - "less_than": "Less Than", - "not_equals": "Not Equals", - "starts_with": "Starts With" - }, - "successes": { + "contains": "Contains", + "ends_with": "Ends With", + "equals": "Equals", + "greater_than": "Greater Than", + "less_than": "Less Than", + "not_equals": "Not Equals", + "starts_with": "Starts With" + }, + "successes": { "areyousure": "Are you sure you want to continue?", "defaultviewcreated": "Default view created successfully.", "save": "Shop configuration saved successfully. ", @@ -1437,13 +1437,13 @@ "adjustment": "Adjustment", "ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)", "alt_partno": "Alt Part #", - "amount": "Amount", + "amount": "Amount", "assigned_team": "Team", "assigned_team_name": "Team {{name}}", "create_ppc": "Create PPC?", "db_price": "List Price", "include_in_part_cnt": "Include in Parts Status Count", - "lbr_types": { + "lbr_types": { "LA1": "LA1", "LA2": "LA2", "LA3": "LA3", @@ -3071,7 +3071,7 @@ "production_by_repair_status": "Production by Status", "production_by_repair_status_one": "Production filtered by Status", "production_by_ro": "Production by RO", - "production_by_target_date": "Production by Target Date", + "production_by_target_date": "Production by Scheduled Completion", "production_by_technician": "Production by Technician", "production_by_technician_one": "Production filtered by Technician", "production_not_production_status": "Production not in Production Status", @@ -3081,7 +3081,8 @@ "purchase_return_ratio_grouped_by_vendor_detail": "Purchase & Return Ratio by Vendor (Detail)", "purchase_return_ratio_grouped_by_vendor_summary": "Purchase & Return Ratio by Vendor (Summary)", "purchases_by_cost_center_detail": "Purchases by Cost Center (Detail)", - "purchases_by_cost_center_summary": "Purchases by Cost Center (Summary)","purchases_by_date_excel": "Purchases by Date - Excel", + "purchases_by_cost_center_summary": "Purchases by Cost Center (Summary)", + "purchases_by_date_excel": "Purchases by Date - Excel", "purchases_by_date_range_detail": "Purchases by Date - Detail", "purchases_by_date_range_summary": "Purchases by Date - Summary", "purchases_by_ro_detail_date": "Purchases by RO - Detail", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index c39122001..5b06b1d6f 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -380,11 +380,11 @@ "md_parts_order_comment": "", "md_parts_scan": { "caseInsensitive": "", - "expression": "", - "field": "", + "expression": "", + "field": "", "flags": "", - "operation": "", - "value": "" + "operation": "", + "value": "" }, "md_payment_types": "", "md_referral_sources": "", @@ -715,15 +715,15 @@ "workingdays": "" }, "operations": { - "contains": "", - "ends_with": "", - "equals": "", - "greater_than": "", - "less_than": "", - "not_equals": "", - "starts_with": "" - }, - "successes": { + "contains": "", + "ends_with": "", + "equals": "", + "greater_than": "", + "less_than": "", + "not_equals": "", + "starts_with": "" + }, + "successes": { "areyousure": "", "defaultviewcreated": "", "save": "", @@ -1437,13 +1437,13 @@ "adjustment": "", "ah_detail_line": "", "alt_partno": "", - "amount": "", + "amount": "", "assigned_team": "", "assigned_team_name": "", "create_ppc": "", "db_price": "Precio de base de datos", "include_in_part_cnt": "", - "lbr_types": { + "lbr_types": { "LA1": "", "LA2": "", "LA3": "", @@ -3082,7 +3082,7 @@ "purchase_return_ratio_grouped_by_vendor_summary": "", "purchases_by_cost_center_detail": "", "purchases_by_cost_center_summary": "", - "purchases_by_date_excel": "", + "purchases_by_date_excel": "", "purchases_by_date_range_detail": "", "purchases_by_date_range_summary": "", "purchases_by_ro_detail_date": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index 0fd5d7cfa..faf2d46d7 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -380,11 +380,11 @@ "md_parts_order_comment": "", "md_parts_scan": { "caseInsensitive": "", - "expression": "", - "field": "", + "expression": "", + "field": "", "flags": "", - "operation": "", - "value": "" + "operation": "", + "value": "" }, "md_payment_types": "", "md_referral_sources": "", @@ -715,15 +715,15 @@ "workingdays": "" }, "operations": { - "contains": "", - "ends_with": "", - "equals": "", - "greater_than": "", - "less_than": "", - "not_equals": "", - "starts_with": "" - }, - "successes": { + "contains": "", + "ends_with": "", + "equals": "", + "greater_than": "", + "less_than": "", + "not_equals": "", + "starts_with": "" + }, + "successes": { "areyousure": "", "defaultviewcreated": "", "save": "", @@ -1437,13 +1437,13 @@ "adjustment": "", "ah_detail_line": "", "alt_partno": "", - "amount": "", + "amount": "", "assigned_team": "", "assigned_team_name": "", "create_ppc": "", "db_price": "Prix de la base de données", "include_in_part_cnt": "", - "lbr_types": { + "lbr_types": { "LA1": "", "LA2": "", "LA3": "", @@ -3082,7 +3082,7 @@ "purchase_return_ratio_grouped_by_vendor_summary": "", "purchases_by_cost_center_detail": "", "purchases_by_cost_center_summary": "", - "purchases_by_date_excel": "", + "purchases_by_date_excel": "", "purchases_by_date_range_detail": "", "purchases_by_date_range_summary": "", "purchases_by_ro_detail_date": "", From 42660a7dd1cd1eb76128195f656eb12dce0a9058 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 27 Jan 2025 11:05:42 -0500 Subject: [PATCH 7/7] release/2025-01-31 - Add ID to tasks upsert modal title --- .../task-upsert-modal/task-upsert-modal.container.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx index 6fa023352..3d7acd06a 100644 --- a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx +++ b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx @@ -1,6 +1,6 @@ import { useMutation, useQuery } from "@apollo/client"; import { Form, Modal } from "antd"; -import React, { useEffect, useState } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -255,9 +255,13 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to } }; + const taskTitle = useMemo(() => { + return existingTask ? t("tasks.actions.edit") : t("tasks.actions.new"); + }, [existingTask, t]); + return ( {taskTitle}} open={open} okText={t("general.actions.save")} width="50%"