From 107fde373803435eba978c3c256b06956086aaef Mon Sep 17 00:00:00 2001 From: venkataakhil Date: Wed, 8 Nov 2023 19:00:03 +0530 Subject: [PATCH] Kilometer mapping duplicat feature --- .../kilometer_mapping/kilometer_mapping.js | 136 ++++++++++++++++-- .../kilometer_mapping/kilometer_mapping.py | 16 +++ 2 files changed, 144 insertions(+), 8 deletions(-) diff --git a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js index 42bed99..9ae0979 100644 --- a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js +++ b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js @@ -17,8 +17,8 @@ frappe.ui.form.on('Kilometer Mapping', { $("a:contains(Copy to Clipboard)").css({ 'pointer-events': 'none' }), $("a:contains(Duplicate)").css({ 'pointer-events': 'none' }); }), - //IDX make read only - $('div[data-fieldname=config_kilometer]').find('div[class=form-grid]').find('div[class=grid-heading-row]').find('div[class="row-index sortable-handle col col-xs-1"]').find('input[class="grid-row-check pull-left"]').css({ 'visibility': 'hidden' }); + //IDX make read only + $('div[data-fieldname=config_kilometer]').find('div[class=form-grid]').find('div[class=grid-heading-row]').find('div[class="row-index sortable-handle col col-xs-1"]').find('input[class="grid-row-check pull-left"]').css({ 'visibility': 'hidden' }); frm.get_field('config_kilometer').grid.cannot_add_rows = true; frm.get_field("config_kilometer").grid.df.cannot_delete_rows = true; frm.get_field("config_kilometer").grid.df.cannot_delete_rows = true; @@ -56,6 +56,67 @@ frappe.ui.form.on('Kilometer Mapping', { }, validate: function (frm) { + // //custom button + // frm.add_custom_button(__("Duplicate Data"), function () { + // let d = new frappe.ui.Dialog({ + // title: 'Choose the variant', + // fields: [ + // { + // label: 'Variant', + // fieldname: 'variant', + // fieldtype: 'Link', + // options: "Kilometer Mapping" + // }, + // { + // label: '', + // fieldname: 'content_html', + // fieldtype: 'HTML', + // }, + // ], + // size: 'small', + // secondary_action_label: "No", + // primary_action_label: 'Yes', + // primary_action(values) { + // console.log(values); + // if (values) { + + // if (frm.doc.config_kilometer && frm.doc.config_kilometer.length > 0) { + // cur_frm.clear_table("config_kilometer"); + // cur_frm.refresh_fields('config_kilometer'); + // } + // cur_frm.refresh_fields("config_kilometer"); + // frappe.call({ + // "method": "smart_service.transactions.doctype.kilometer_mapping.kilometer_mapping.get_config_kilometer", + // "args": { + // "doc": values.variant, + // "docname": frm.doc.name + // }, + // callback: function (r) { + // if (r.message && r.message.length > 0) { + // cur_frm.refresh_fields("config_kilometer"); + // frm.save() + // frm.refresh() + // } + // } + // }) + // d.hide(); + + // } + + + // }, + // secondary_action(values) { + // d.hide(); + // } + // }); + + // d.show(); + // var res = $(d.fields_dict.content_html.wrapper).empty(); + // var ret = "

Upload the Kilometer

" + // res.append(ret) + // }).css({ "color": "#fff", "background-color": "red" });; + // //end + frm.doc.kilometer_filter = "All"; if (frm.doc.kilometer_filter == "All") { frm.get_field('config_kilometer').grid.static_rows = false; @@ -68,6 +129,65 @@ frappe.ui.form.on('Kilometer Mapping', { }, refresh: function (frm) { + //custom button + // frm.add_custom_button(__("Duplicate Data"), function () { + // let d = new frappe.ui.Dialog({ + // title: 'Choose the variant', + // fields: [ + // { + // label: 'Kilometer Mapping', + // fieldname: 'variant', + // fieldtype: 'Link', + // options: "Kilometer Mapping", + // reqd: 1 + // } + // ], + // size: 'small', + // secondary_action_label: "No", + // primary_action_label: 'Yes', + // primary_action(values) { + // console.log(values.variant); + // if (values.variant) { + // console.log("calling") + // cur_frm.refresh_fields("config_kilometer"); + // frappe.call({ + // "method": "smart_service.transactions.doctype.kilometer_mapping.kilometer_mapping.get_config_kilometer", + // "args": { + // "doc": values.variant, + // "docname": frm.doc.name + // }, + // callback: function (r) { + // if (r.message && r.message.length > 0) { + // cur_frm.refresh_fields("config_kilometer"); + // frm.save() + // frm.refresh() + // } + // } + // }) + // d.hide(); + // } + // else { + // d.hide() + // } + // }, + // secondary_action(values) { + // d.hide(); + // } + // }); + + // d.show(); + // setTimeout(function mysam() { + // console.log("jiiii", $('.modal-dialog').find('.custom-actions').html('

Are you sure to update the kilometer mapping?

')) + // $('.modal-dialog').find('.custom-actions').html('

Are you sure to update the kilometer mapping?

') + // } + // , 300); + + // // var res = $(d.fields_dict.content_html.wrapper).empty(); + // // var ret="

Are you sure to update the kilometer mapping ?

" + // // res.append(ret) + // }).css({ "color": "#fff", "background-color": "red" });; + //end + if (frm.doc.kilometer_filter == "All") { frm.get_field('config_kilometer').grid.static_rows = false; frm.fields_dict.config_kilometer.grid.grid_rows.forEach((row) => { @@ -133,7 +253,7 @@ frappe.ui.form.on('Kilometer Mapping', { kilometer_set.push(kmsrow.service_kilometers); }); frm.set_df_property('kilometer_filter', 'options', kilometer_set); - $.each(kmrecord, function (index, kmrow) { + $.each(kmrecord, function (index, kmrow) { frappe.call({ "method": "smart_service.transactions.doctype.kilometer_mapping.kilometer_mapping.get_system", @@ -186,13 +306,13 @@ frappe.ui.form.on('Kilometer Mapping', { } if (frm.doc.sub_system_filter == "All" && frm.doc.kilometer_filter == "All") { - frm.get_field('config_kilometer').grid.static_rows = false; - frm.fields_dict.config_kilometer.grid.grid_rows.forEach((row) => { + frm.get_field('config_kilometer').grid.static_rows = false; + frm.fields_dict.config_kilometer.grid.grid_rows.forEach((row) => { $("div[data-fieldname=config_kilometer]").find('div.grid-row[data-idx="' + row.doc.idx + '"]').show(); }); } else { - frm.get_field('config_kilometer').grid.static_rows = false; - frm.fields_dict.config_kilometer.grid.grid_rows.forEach((row) => { + frm.get_field('config_kilometer').grid.static_rows = false; + frm.fields_dict.config_kilometer.grid.grid_rows.forEach((row) => { if (row.doc.kilometer == frm.doc.kilometer_filter && row.doc.sub_systems == frm.doc.sub_system_filter) { $("div[data-fieldname=config_kilometer]").find('div.grid-row[data-idx="' + row.doc.idx + '"]').show(); } else if (row.doc.kilometer == frm.doc.kilometer_filter && frm.doc.sub_system_filter == "All") { @@ -218,7 +338,7 @@ frappe.ui.form.on('Kilometer Mapping', { item.idx = idx++; }); if (frm.doc.temp_field == "Set") { frm.set_value("temp_field", "Not Set"); } else { frm.set_value("temp_field", "Set"); } - refresh_field("config_kilometer"); + refresh_field("config_kilometer"); } }); diff --git a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py index f3566f2..951f168 100644 --- a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py +++ b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py @@ -34,3 +34,19 @@ def get_subsystem(doc): doc = frappe.get_doc("System Mapping",s.name) sub_system = frappe.db.sql("""select sub_systems,mat,idx from {0}.`tabSystem Mapping_Sub System` where parent = '{1}' and procedure_is_published = '0'""".format(current_db_name,s.name),as_dict=True) return sub_system + + + + +@frappe.whitelist() +def get_config_kilometer(doc,docname): + res = frappe.db.sql(f"""select kilometer,mat,sub_systems,applicable,row_name from `tabKilometer Mapping_Items` where parent='{doc}'""",as_dict=1) + ress = frappe.get_doc("Kilometer Mapping",docname) + ress.config_kilometer = [] + for d in res: + ress.append("config_kilometer",d) + ress.add_comment(text=_("data added"+str(res))) + ress.save() + frappe.db.commit() + return {"status":"success"} +