diff --git a/AGENTS.md b/AGENTS.md index b373f66..a83f4cd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Service Factory — ERPNext Custom App Project -> **Current Version: V0.1.0013** — Each completed prompt/step increments the patch number by 1 (V0.1.0000 → V0.1.0001 → V0.1.0002…). The agent automatically commits and pushes after every step. +> **Current Version: V0.1.0014** — Each completed prompt/step increments the patch number by 1 (V0.1.0000 → V0.1.0001 → V0.1.0002…). The agent automatically commits and pushes after every step. ## Project Overview diff --git a/service_factory/service_factory/fixtures/engagement_card_type.json b/service_factory/service_factory/fixtures/engagement_card_type.json new file mode 100644 index 0000000..d3893bc --- /dev/null +++ b/service_factory/service_factory/fixtures/engagement_card_type.json @@ -0,0 +1,22 @@ +[ + { + "name": "SE", + "card_type_name": "SE", + "doctype": "Engagement Card Type" + }, + { + "name": "PS", + "card_type_name": "PS", + "doctype": "Engagement Card Type" + }, + { + "name": "MS", + "card_type_name": "MS", + "doctype": "Engagement Card Type" + }, + { + "name": "Support", + "card_type_name": "Support", + "doctype": "Engagement Card Type" + } +] diff --git a/service_factory/service_factory/hooks.py b/service_factory/service_factory/hooks.py index 40c6466..474fbbd 100644 --- a/service_factory/service_factory/hooks.py +++ b/service_factory/service_factory/hooks.py @@ -173,6 +173,7 @@ doctype_js = {"Engagement Card" : "doctype/engagement_card/engagement_card.js"} # ----------------------------------------- fixtures = [ {"dt": "Engagement Task Type"}, + {"dt": "Engagement Card Type"}, ] # Recreate Service Factory Desktop Icon after each migrate diff --git a/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.js b/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.js index 73df545..a109a95 100644 --- a/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.js +++ b/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.js @@ -64,19 +64,13 @@ frappe.ui.form.on("Engagement Card", { // Filter opportunities by selected customer customer: function (frm) { - if (frm.doc.customer) { - frm.set_query("opportunity", function () { - return { - filters: { - customer: frm.doc.customer, - }, - }; - }); - // Clear opportunity if it doesn't match the new customer - frm.set_value("opportunity", null); - } else { - frm.set_query("opportunity", null); - } + frm.set_query("opportunity", function () { + let filters = {}; + if (frm.doc.customer) { + filters.customer = frm.doc.customer; + } + return { filters: filters }; + }); }, }); diff --git a/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.json b/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.json index 8b685af..93fa15b 100644 --- a/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.json +++ b/service_factory/service_factory/service_factory/doctype/engagement_card/engagement_card.json @@ -58,11 +58,11 @@ }, { "fieldname": "card_type", - "fieldtype": "Select", + "fieldtype": "Link", "in_list_view": 1, "in_standard_filter": 1, "label": "Card Type", - "options": "SE\nPS\nMS\nSupport", + "options": "Engagement Card Type", "reqd": 1 }, { diff --git a/service_factory/service_factory/service_factory/doctype/engagement_card_type/__init__.py b/service_factory/service_factory/service_factory/doctype/engagement_card_type/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.json b/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.json new file mode 100644 index 0000000..c2305b5 --- /dev/null +++ b/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.json @@ -0,0 +1,61 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:card_type_name", + "creation": "2026-07-16 12:00:00.000000", + "doctype": "DocType", + "document_type": "Setup", + "engine": "InnoDB", + "field_order": [ + "card_type_name" + ], + "fields": [ + { + "fieldname": "card_type_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Card Type Name", + "reqd": 1, + "unique": 1 + } + ], + "links": [], + "modified": "2026-07-16 12:00:00.000000", + "modified_by": "Administrator", + "module": "Service Factory", + "name": "Engagement Card Type", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 1, + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.py b/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.py new file mode 100644 index 0000000..26f92f1 --- /dev/null +++ b/service_factory/service_factory/service_factory/doctype/engagement_card_type/engagement_card_type.py @@ -0,0 +1,8 @@ +# Copyright (c) 2026, cclohmar and contributors +# For license information, please see license.txt + +from frappe.model.document import Document + + +class EngagementCardType(Document): + pass