diff --git a/aumms/aumms/doctype/item_sub_category/__init__.py b/aumms/aumms/doctype/item_sub_category/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/aumms/aumms/doctype/item_sub_category/item_sub_category.js b/aumms/aumms/doctype/item_sub_category/item_sub_category.js new file mode 100644 index 0000000..a3a751a --- /dev/null +++ b/aumms/aumms/doctype/item_sub_category/item_sub_category.js @@ -0,0 +1,8 @@ +// Copyright (c) 2025, efeone and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Item Sub Category", { +// refresh(frm) { + +// }, +// }); diff --git a/aumms/aumms/doctype/item_sub_category/item_sub_category.json b/aumms/aumms/doctype/item_sub_category/item_sub_category.json new file mode 100644 index 0000000..a0a05b4 --- /dev/null +++ b/aumms/aumms/doctype/item_sub_category/item_sub_category.json @@ -0,0 +1,69 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:sub_category_name", + "creation": "2025-01-20 13:04:50.821764", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "sub_category_name", + "item_category", + "column_break_rsms", + "making_charge_in_percentage" + ], + "fields": [ + { + "fieldname": "sub_category_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Sub Category Name", + "reqd": 1, + "unique": 1 + }, + { + "fieldname": "item_category", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Item Category", + "options": "Item Category", + "reqd": 1 + }, + { + "fieldname": "making_charge_in_percentage", + "fieldtype": "Percent", + "in_list_view": 1, + "label": "Making Charge in Percentage", + "precision": "2", + "reqd": 1 + }, + { + "fieldname": "column_break_rsms", + "fieldtype": "Column Break" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-01-20 13:06:33.275060", + "modified_by": "Administrator", + "module": "AuMMS", + "name": "Item Sub Category", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/aumms/aumms/doctype/item_sub_category/item_sub_category.py b/aumms/aumms/doctype/item_sub_category/item_sub_category.py new file mode 100644 index 0000000..7c7a510 --- /dev/null +++ b/aumms/aumms/doctype/item_sub_category/item_sub_category.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, efeone and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class ItemSubCategory(Document): + pass diff --git a/aumms/aumms/doctype/item_sub_category/test_item_sub_category.py b/aumms/aumms/doctype/item_sub_category/test_item_sub_category.py new file mode 100644 index 0000000..66485a2 --- /dev/null +++ b/aumms/aumms/doctype/item_sub_category/test_item_sub_category.py @@ -0,0 +1,9 @@ +# Copyright (c) 2025, efeone and Contributors +# See license.txt + +# import frappe +from frappe.tests.utils import FrappeTestCase + + +class TestItemSubCategory(FrappeTestCase): + pass diff --git a/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json b/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json index c216041..24b5abc 100644 --- a/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json +++ b/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json @@ -54,7 +54,7 @@ "fieldname": "gold_weight", "fieldtype": "Float", "in_list_view": 1, - "label": "Gold Weight", + "label": "Net Weight", "precision": "3", "reqd": 1 }, @@ -68,7 +68,7 @@ { "fieldname": "net_weight", "fieldtype": "Float", - "label": "Net Weight", + "label": "Total Weight", "read_only": 1 }, { @@ -233,7 +233,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2024-11-07 14:25:09.197843", + "modified": "2025-01-20 12:56:15.072112", "modified_by": "Administrator", "module": "AuMMS", "name": "Jewellery Item Receipt", diff --git a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js index c631223..249f5e3 100644 --- a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js +++ b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js @@ -16,8 +16,13 @@ frappe.ui.form.on("Jewellery Receipt", { }, }; }); + set_sub_category_filter(frm); + }, + item_sub_category: function (frm) { + frm.events.update_item_details_table(frm); }, item_category: function (frm) { + set_sub_category_filter(frm); frm.events.update_item_details_table(frm); }, item_type: function (frm) { @@ -40,49 +45,58 @@ frappe.ui.form.on("Jewellery Receipt", { if (frm.doc.item_details) { let making_charge = 0; - const updateItems = () => { - frm.doc.item_details.forEach(function (item) { - frappe.model.set_value( - item.doctype, - item.name, - "item_category", - frm.doc.item_category - ); - frappe.model.set_value( - item.doctype, - item.name, - "item_type", - frm.doc.item_type - ); - frappe.model.set_value( - item.doctype, - item.name, - "item_group", - frm.doc.item_group - ); - frappe.model.set_value( - item.doctype, - item.name, - "purity", - frm.doc.purity - ); - frappe.model.set_value( - item.doctype, - item.name, - "board_rate", - frm.doc.board_rate - ); - frappe.model.set_value( - item.doctype, - item.name, - "making_chargein_percentage", - making_charge - ); - }); - frm.refresh_fields(); - }; + frappe.db + .get_value( + "Item Sub Category", + frm.doc.item_sub_category, + "making_charge_in_percentage" + ) + .then((r) => { + making_charge = r.message.making_charge_in_percentage; + const updateItems = () => { + frm.doc.item_details.forEach(function (item) { + frappe.model.set_value( + item.doctype, + item.name, + "item_category", + frm.doc.item_category + ); + frappe.model.set_value( + item.doctype, + item.name, + "item_type", + frm.doc.item_type + ); + frappe.model.set_value( + item.doctype, + item.name, + "item_group", + frm.doc.item_group + ); + frappe.model.set_value( + item.doctype, + item.name, + "purity", + frm.doc.purity + ); + frappe.model.set_value( + item.doctype, + item.name, + "board_rate", + frm.doc.board_rate + ); + frappe.model.set_value( + item.doctype, + item.name, + "making_chargein_percentage", + making_charge + ); + }); + frm.refresh_fields(); + }; - updateItems(); + updateItems(); + }); } }, @@ -188,23 +202,21 @@ frappe.ui.form.on("Jewellery Item Receipt", { }, add_stone: function (frm, cdt, cdn) { let row = locals[cdt][cdn]; - if (frm.is_new()) { - frm.add_child("item_wise_stone_details", { - reference: row.idx, - stone: row.stone, - uom: row.stone_uom, - stone_weight: row.stone_weight, - rate: row.rate, - amount: row.rate * row.stone_weight, - }); + frm.add_child("item_wise_stone_details", { + reference: row.idx, + stone: row.stone, + uom: row.stone_uom, + stone_weight: row.stone_weight, + rate: row.rate, + amount: row.rate * row.stone_weight, + }); - if (row.stone_weight_gold_weight_uom) - row.stone_weight_gold_weight_uom += row.stone_weight; - else row.stone_weight_gold_weight_uom = row.stone_weight; - row.net_weight += row.stone_weight; - if (row.stone_charge) row.stone_charge += row.rate * row.stone_weight; - else row.stone_charge = row.rate * row.stone_weight; - } + if (row.stone_weight_gold_weight_uom) + row.stone_weight_gold_weight_uom += row.stone_weight; + else row.stone_weight_gold_weight_uom = row.stone_weight; + row.net_weight += row.stone_weight; + if (row.stone_charge) row.stone_charge += row.rate * row.stone_weight; + else row.stone_charge = row.rate * row.stone_weight; row.stone = ""; row.stone_uom = ""; @@ -383,3 +395,13 @@ function item_group_filters(frm) { }; }); } + +function set_sub_category_filter(frm) { + frm.set_query("item_sub_category", () => { + return { + filters: { + item_category: frm.doc.item_category, + }, + }; + }); +} diff --git a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json index d019ef0..373408c 100644 --- a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json +++ b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json @@ -8,6 +8,7 @@ "field_order": [ "section_break_urwi", "item_category", + "item_sub_category", "item_type", "item_group", "supplier", @@ -122,12 +123,19 @@ "label": "Item Wise Stone Details", "options": "Item Wise Stone Details", "read_only": 1 + }, + { + "fieldname": "item_sub_category", + "fieldtype": "Link", + "label": "Item Sub Category", + "options": "Item Sub Category", + "reqd": 1 } ], "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2024-08-20 10:13:09.368757", + "modified": "2025-01-20 14:25:31.637164", "modified_by": "Administrator", "module": "AuMMS", "name": "Jewellery Receipt",