IO-3065 All manual toggle to include $0 line in part status count.

This commit is contained in:
Patrick Fic
2025-01-14 13:49:38 -08:00
parent 8c737ff0ae
commit 9f46f8ec31
16 changed files with 523 additions and 172 deletions

View File

@@ -6369,6 +6369,27 @@
<folder_node>
<name>md_parts_scan</name>
<children>
<concept_node>
<name>caseInsensitive</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>
<name>expression</name>
<definition_loaded>false</definition_loaded>
@@ -6390,6 +6411,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>field</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>
<name>flags</name>
<definition_loaded>false</definition_loaded>
@@ -6411,6 +6453,48 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>operation</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>
<name>value</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>
</folder_node>
<concept_node>
@@ -11987,6 +12071,158 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>operations</name>
<children>
<concept_node>
<name>contains</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>
<name>ends_with</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>
<name>equals</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>
<name>greater_than</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>
<name>less_than</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>
<name>not_equals</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>
<name>starts_with</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>
</folder_node>
<folder_node>
<name>successes</name>
<children>
@@ -23131,6 +23367,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>alt_partno</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>
<name>amount</name>
<definition_loaded>false</definition_loaded>
@@ -23236,6 +23493,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>include_in_part_cnt</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>
<folder_node>
<name>lbr_types</name>
<children>

View File

@@ -192,6 +192,23 @@ export function JobLinesUpsertModalComponent({ bodyshop, open, jobLine, handleCa
<Form.Item label={t("joblines.fields.tax_part")} name="tax_part" valuePropName="checked" initialValue={true}>
<Switch />
</Form.Item>
<Form.Item dependencies={[["act_price"]]} noStyle>
{() => {
if (form.getFieldValue("act_price") === 0) {
return (
<Form.Item
label={t("joblines.fields.include_in_part_cnt")}
name="include_in_part_cnt"
valuePropName="checked"
>
<Switch />
</Form.Item>
);
} else {
return null;
}
}}
</Form.Item>
</LayoutFormRow>
</Form>
</Modal>

View File

@@ -238,6 +238,7 @@ export const UPDATE_JOB_LINE = gql`
convertedtolbr
convertedtolbr_data
assigned_team
include_in_part_cnt
}
}
}

View File

@@ -581,6 +581,7 @@ export const GET_JOB_BY_PK = gql`
status
tax_part
unq_seq
include_in_part_cnt
}
kmin
kmout

View File

@@ -256,15 +256,6 @@
}
},
"bodyshop": {
"operations": {
"starts_with": "Starts With",
"contains": "Contains",
"ends_with": "Ends With",
"equals": "Equals",
"not_equals": "Not Equals",
"greater_than": "Greater Than",
"less_than": "Less Than"
},
"actions": {
"add_task_preset": "Add Task Preset",
"addapptcolor": "Add Appointment Color",
@@ -388,10 +379,12 @@
"md_lost_sale_reasons": "Lost Sale Reasons",
"md_parts_order_comment": "Parts Orders Comments",
"md_parts_scan": {
"caseInsensitive": "Case Insensitive",
"expression": "",
"field": "Field",
"flags": "",
"operation": "Operation",
"value": "Value",
"caseInsensitive": "Case Insensitive"
"value": "Value"
},
"md_payment_types": "Payment Types",
"md_referral_sources": "Referral Sources",
@@ -721,6 +714,15 @@
"task-presets": "Task Presets",
"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": {
"areyousure": "Are you sure you want to continue?",
"defaultviewcreated": "Default view created successfully.",
@@ -1434,11 +1436,13 @@
"act_price_before_ppc": "Original Part Price",
"adjustment": "Adjustment",
"ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)",
"alt_partno": "Alt Part #",
"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": {
"LA1": "LA1",
"LA2": "LA2",
@@ -1463,7 +1467,6 @@
"mod_lbr_ty": "Labor Type",
"notes": "Notes",
"oem_partno": "OEM Part #",
"alt_partno": "Alt Part #",
"op_code_desc": "Op Code Description",
"part_qty": "Qty.",
"part_type": "Part Type",

View File

@@ -256,15 +256,6 @@
}
},
"bodyshop": {
"operations": {
"starts_with": "",
"contains": "",
"ends_with": "",
"equals": "",
"not_equals": "",
"greater_than": "",
"less_than": ""
},
"actions": {
"add_task_preset": "",
"addapptcolor": "",
@@ -388,10 +379,12 @@
"md_lost_sale_reasons": "",
"md_parts_order_comment": "",
"md_parts_scan": {
"caseInsensitive": "",
"expression": "",
"field": "",
"flags": "",
"operation": "",
"value": "",
"caseInsensitive": ""
"value": ""
},
"md_payment_types": "",
"md_referral_sources": "",
@@ -721,6 +714,15 @@
"task-presets": "",
"workingdays": ""
},
"operations": {
"contains": "",
"ends_with": "",
"equals": "",
"greater_than": "",
"less_than": "",
"not_equals": "",
"starts_with": ""
},
"successes": {
"areyousure": "",
"defaultviewcreated": "",
@@ -1434,11 +1436,13 @@
"act_price_before_ppc": "",
"adjustment": "",
"ah_detail_line": "",
"alt_partno": "",
"amount": "",
"assigned_team": "",
"assigned_team_name": "",
"create_ppc": "",
"db_price": "Precio de base de datos",
"include_in_part_cnt": "",
"lbr_types": {
"LA1": "",
"LA2": "",
@@ -1463,7 +1467,6 @@
"mod_lbr_ty": "Tipo de trabajo",
"notes": "",
"oem_partno": "OEM parte #",
"alt_partno": "",
"op_code_desc": "",
"part_qty": "",
"part_type": "Tipo de parte",

View File

@@ -256,15 +256,6 @@
}
},
"bodyshop": {
"operations": {
"starts_with": "",
"contains": "",
"ends_with": "",
"equals": "",
"not_equals": "",
"greater_than": "",
"less_than": ""
},
"actions": {
"add_task_preset": "",
"addapptcolor": "",
@@ -388,10 +379,12 @@
"md_lost_sale_reasons": "",
"md_parts_order_comment": "",
"md_parts_scan": {
"caseInsensitive": "",
"expression": "",
"field": "",
"flags": "",
"operation": "",
"value": "",
"caseInsensitive": ""
"value": ""
},
"md_payment_types": "",
"md_referral_sources": "",
@@ -721,6 +714,15 @@
"task-presets": "",
"workingdays": ""
},
"operations": {
"contains": "",
"ends_with": "",
"equals": "",
"greater_than": "",
"less_than": "",
"not_equals": "",
"starts_with": ""
},
"successes": {
"areyousure": "",
"defaultviewcreated": "",
@@ -1434,11 +1436,13 @@
"act_price_before_ppc": "",
"adjustment": "",
"ah_detail_line": "",
"alt_partno": "",
"amount": "",
"assigned_team": "",
"assigned_team_name": "",
"create_ppc": "",
"db_price": "Prix de la base de données",
"include_in_part_cnt": "",
"lbr_types": {
"LA1": "",
"LA2": "",
@@ -1463,7 +1467,6 @@
"mod_lbr_ty": "Type de travail",
"notes": "",
"oem_partno": "Pièce OEM #",
"alt_partno": "",
"op_code_desc": "",
"part_qty": "",
"part_type": "Type de pièce",

View File

@@ -2997,6 +2997,7 @@
- est_seq
- glass_flag
- id
- include_in_part_cnt
- ioucreated
- jobid
- lbr_amt
@@ -3066,6 +3067,7 @@
- est_seq
- glass_flag
- id
- include_in_part_cnt
- ioucreated
- jobid
- lbr_amt
@@ -3146,6 +3148,7 @@
- est_seq
- glass_flag
- id
- include_in_part_cnt
- ioucreated
- jobid
- lbr_amt

View File

@@ -0,0 +1,4 @@
-- Could not auto-generate a down migration.
-- Please write an appropriate down migration for the SQL below:
-- alter table "public"."joblines" add column "include_in_part_cnt" boolean
-- not null default 'false';

View File

@@ -0,0 +1,2 @@
alter table "public"."joblines" add column "include_in_part_cnt" boolean
not null default 'false';

View File

@@ -0,0 +1,10 @@
-- Could not auto-generate a down migration.
-- Please write an appropriate down migration for the SQL below:
-- CREATE OR REPLACE VIEW "public"."joblines_status" AS
-- SELECT j.jobid,
-- j.status,
-- count(1) AS count,
-- j.part_type
-- FROM joblines j
-- WHERE ((j.part_type IS NOT NULL) AND (j.part_type <> 'PAE'::text) AND (j.part_type <> 'PAS'::text) AND (j.part_type <> 'PASL'::text) AND ((j.part_qty)::numeric <> (0)::numeric) AND ((j.act_price <> (0)::numeric) OR (j.include_in_part_cnt is TRUE))AND (j.removed IS FALSE))
-- GROUP BY j.jobid, j.status, j.part_type;

View File

@@ -0,0 +1,8 @@
CREATE OR REPLACE VIEW "public"."joblines_status" AS
SELECT j.jobid,
j.status,
count(1) AS count,
j.part_type
FROM joblines j
WHERE ((j.part_type IS NOT NULL) AND (j.part_type <> 'PAE'::text) AND (j.part_type <> 'PAS'::text) AND (j.part_type <> 'PASL'::text) AND ((j.part_qty)::numeric <> (0)::numeric) AND ((j.act_price <> (0)::numeric) OR (j.include_in_part_cnt is TRUE))AND (j.removed IS FALSE))
GROUP BY j.jobid, j.status, j.part_type;

View File

@@ -0,0 +1,10 @@
-- Could not auto-generate a down migration.
-- Please write an appropriate down migration for the SQL below:
-- CREATE OR REPLACE VIEW "public"."joblines_status" AS
-- SELECT j.jobid,
-- j.status,
-- count(1) AS count,
-- j.part_type
-- FROM joblines j
-- WHERE ((j.part_type IS NOT NULL) AND (j.part_type <> 'PAE'::text) AND (j.part_type <> 'PAS'::text) AND (j.part_type <> 'PASL'::text) AND ((j.part_qty)::numeric <> (0)::numeric) AND ((j.act_price <> (0)::numeric) OR (j.include_in_part_cnt is TRUE))AND (j.removed IS FALSE))
-- GROUP BY j.jobid, j.status, j.part_type;

View File

@@ -0,0 +1,8 @@
CREATE OR REPLACE VIEW "public"."joblines_status" AS
SELECT j.jobid,
j.status,
count(1) AS count,
j.part_type
FROM joblines j
WHERE ((j.part_type IS NOT NULL) AND (j.part_type <> 'PAE'::text) AND (j.part_type <> 'PAS'::text) AND (j.part_type <> 'PASL'::text) AND ((j.part_qty)::numeric <> (0)::numeric) AND ((j.act_price <> (0)::numeric) OR (j.include_in_part_cnt is TRUE))AND (j.removed IS FALSE))
GROUP BY j.jobid, j.status, j.part_type;