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 24b5abc..faefb7b 100644 --- a/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json +++ b/aumms/aumms/doctype/jewellery_item_receipt/jewellery_item_receipt.json @@ -68,7 +68,7 @@ { "fieldname": "net_weight", "fieldtype": "Float", - "label": "Total Weight", + "label": "Gross Weight", "read_only": 1 }, { @@ -105,7 +105,7 @@ "read_only": 1 }, { - "default": "0", + "default": "1", "fieldname": "has_stone", "fieldtype": "Check", "label": "Has Stone" @@ -233,7 +233,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2025-01-20 12:56:15.072112", + "modified": "2025-01-22 09:21:41.168582", "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 249f5e3..edbcde2 100644 --- a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js +++ b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.js @@ -107,28 +107,46 @@ frappe.ui.form.on("Jewellery Receipt", { if (quantity < cur_items_len) { frm.doc.item_details.splice(quantity); } else { - for (var i = cur_items_len; i < quantity; i++) { - let row = frm.add_child("item_details", { - item_category: frm.doc.item_category, - item_type: frm.doc.item_type, - item_group: frm.doc.item_group, - purity: frm.doc.purity, - board_rate: frm.doc.board_rate, + frappe.db + .get_value( + "Item Sub Category", + frm.doc.item_sub_category, + "making_charge_in_percentage" + ) + .then((r) => { + console.log("here1"); + console.log(cur_items_len); + console.log(quantity); + + + for (var i = cur_items_len; i < quantity; i++) { + console.log("loop"); + + frm.add_child("item_details", { + item_category: frm.doc.item_category, + item_type: frm.doc.item_type, + item_group: frm.doc.item_group, + purity: frm.doc.purity, + board_rate: frm.doc.board_rate, + making_chargein_percentage: r.message.making_charge_in_percentage, + }); + frm.refresh_fields() + } }); - } + } frm.refresh_field("item_details"); }, }); frappe.ui.form.on("Jewellery Item Receipt", { - form_render: function (frm, cdt, cdn) { - let d = locals[cdt][cdn]; - if (d.has_stone) { - let net_weight = d.gold_weight + d.stone_weight; - frappe.model.set_value(cdt, cdn, "net_weight", net_weight); - } - }, + // form_render: function (frm, cdt, cdn) { + // let d = locals[cdt][cdn]; + // if (d.has_stone) { + // let net_weight = d.gold_weight + d.stone_weight; + // frappe.model.set_value(cdt, cdn, "net_weight", net_weight); + // } + // }, kept for future reference stone_weight: function (frm, cdt, cdn) { let d = locals[cdt][cdn]; if (d.single_stone) { @@ -154,7 +172,7 @@ frappe.ui.form.on("Jewellery Item Receipt", { }, gold_weight: function (frm, cdt, cdn) { let d = locals[cdt][cdn]; - if (!d.has_stone) { + if (!d.has_stone || !d.stone_charge) { let net_weight = d.gold_weight; frappe.model.set_value(cdt, cdn, "net_weight", net_weight); let amount_without_making_charge = d.gold_weight * frm.doc.board_rate; @@ -170,6 +188,7 @@ frappe.ui.form.on("Jewellery Item Receipt", { d.amount_without_making_charge * (d.making_chargein_percentage / 100); frappe.model.set_value(cdt, cdn, "making_charge", making_charge); } + frm.call("calculate_item_details") }, making_chargein_percentage: function (frm, cdt, cdn) { let d = locals[cdt][cdn]; @@ -219,13 +238,17 @@ frappe.ui.form.on("Jewellery Item Receipt", { else row.stone_charge = row.rate * row.stone_weight; row.stone = ""; - row.stone_uom = ""; + row.stone_uom = "Gram"; row.stone_weight = ""; row.rate = ""; frm.refresh_field("item_wise_stone_details"); frm.refresh_field("item_details"); + frm.call("calculate_item_details") }, + board_rate: function(frm) { + frm.call("calculate_item_details") + } }); let create_multi_stone = function (frm, cdt, cdn) { diff --git a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json index 373408c..2b4881c 100644 --- a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json +++ b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.json @@ -18,6 +18,7 @@ "board_rate", "date", "quantity", + "total_gold_weight", "section_break_vxux", "item_details", "item_wise_stone_details", @@ -130,12 +131,19 @@ "label": "Item Sub Category", "options": "Item Sub Category", "reqd": 1 + }, + { + "fieldname": "total_gold_weight", + "fieldtype": "Float", + "label": "Total Gold Weight", + "precision": "2", + "read_only": 1 } ], "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2025-01-20 14:25:31.637164", + "modified": "2025-01-22 09:17:51.048655", "modified_by": "Administrator", "module": "AuMMS", "name": "Jewellery Receipt", diff --git a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.py b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.py index 5c4d7b8..f798b7a 100644 --- a/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.py +++ b/aumms/aumms/doctype/jewellery_receipt/jewellery_receipt.py @@ -19,6 +19,12 @@ def autoname(self): def validate(self): self.validate_date() + + def before_save(self): + total_gold_weight = 0 + for item in self.item_details: + total_gold_weight += item.gold_weight + self.total_gold_weight = total_gold_weight def on_submit(self): self.create_item() @@ -90,6 +96,7 @@ def create_purchase_receipt(self): purchase_receipt.submit() frappe.msgprint('Purchase Receipt created.', indicator="green", alert=1) + @frappe.whitelist() def calculate_item_details(self): for item_detail in self.get("item_details"): board_rate = self.board_rate or 0