diff --git a/smart_service/fixtures/client_script.json b/smart_service/fixtures/client_script.json index 11e53ff..ac565d7 100644 --- a/smart_service/fixtures/client_script.json +++ b/smart_service/fixtures/client_script.json @@ -17,12 +17,12 @@ "doctype": "Client Script", "dt": "Procedure", "enabled": 1, - "modified": "2022-02-17 11:54:25.903907", + "modified": "2022-02-21 19:05:33.320634", "name": "Procedure-Form", "parent": null, "parentfield": null, "parenttype": null, - "script": "var trigger = true;\n\ncur_frm.fields_dict['variant_mapping'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.variant\",};\n};\ncur_frm.fields_dict['sub_systems'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.sub_systems\",};\n};\n\nfrappe.ui.form.on('Procedure', {\n onload: function (frm) {\n if (frm.doc.workflow_state == 'Publish Ready'){\n frm.set_read_only();\n }\n },\n refresh: function (frm) {\n var previous_procedure_name = \"\";\n var previous_step_name = \"\";\n $(\"select[data-fieldname='procedure_filter']\").empty();\n $(\"select[data-fieldname='procedure_filter']\").append(new Option(\"All\", \"All\"));\n //console.log(frm.fields_dict.procedure_details);\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n if (row.doc.procedure_name)\n fn_addProceduretolist(row.doc.procedure_name);\n //console.log(row.doc.procedure_name, previous_procedure_name);\n if (row.doc.procedure_name == previous_procedure_name){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"procedure_name\"]').find('a[data-doctype=\"Procedure Name\"]').css({'color': '#EDEDED'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'background-color': '#FFFFFF'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'border-bottom': '1px Solid #ebeef0'});\n }else{\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"procedure_name\"]').find('a[data-doctype=\"Procedure Name\"]').css({'color': '#000000'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'background-color': '#EDEDED'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'border-bottom': '1px Solid #7b7c7c'});\n }\n previous_procedure_name = row.doc.procedure_name;\n \n \n if (row.doc.step_name == previous_step_name){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"step_name\"]').find('a[data-doctype=\"Procedure Step Name\"]').css({'color': '#DFDFDF'});\n }else{\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"step_name\"]').find('a[data-doctype=\"Procedure Step Name\"]').css({'color': '#000000'});\n }\n previous_step_name = row.doc.step_name;\n let id = row.doc.idx;\n\n });\n\n if (frm.doc.workflow_state == \"Publish Ready\" && frappe.user_roles.indexOf(\"_Admin\") > 0){\n frm.add_custom_button(__('Revoke Publish'), function(){\n //get all system mapping with the procedure linked\n frappe.db.get_list('System Mapping_Sub System', {\n fields: ['parent', 'procedure', 'procedure_status'],\n filters: {\n procedure: frm.doc.name\n }\n }).then(records => {\n var html = \"

\";\n $.each(records, function(index, row){\n html = html + \"\" +\"\";\n });\n html = html + \"
\" + row.parent + \"\" + row.procedure + \"
\";\n frappe.warn('Are you sure you want to Revoke?',\n 'Since there are System Mappings attached to it!!! ' + html,\n () => {\n frm.set_value(\"workflow_state\",\"Draft\");\n frm.save();\n // action to perform if Continue is selected\n },\n 'Continue', false // Sets dialog as minimizable\n );\n });\n });\n }\n },\n procedure_filter: function (frm) {\n //if (!trigger){ trigger = true; return;}\n if (frm.doc.procedure_filter ==\"All\"){\n frm.get_field('procedure_details').grid.static_rows = false;\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').show();\n });\n } else {\n frm.get_field('procedure_details').grid.static_rows = false;\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n if (row.doc.procedure_name != frm.doc.procedure_filter){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').hide();\n } else {\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').show();\n }\n });\n }\n //frm.refresh();\n },\n before_workflow_action: (frm) => {\n console.log(frm.doc.workflow_state);\n console.log(frm.selected_workflow_action);\n if ((frm.doc.workflow_state == 'Review Pending' || frm.doc.workflow_state == 'Publish Ready') && (frm.selected_workflow_action == 'Revoke')){\n //frappe.throw(\"Any connected Publish Planning will get affected. Please check!\");\n frappe.call({\n \"method\": \"smart_service.transactions.doctype.procedure.procedure.get_publish_details\",\n \"args\": {\n \"procedure_name\": frm.doc.name,\n \"status\":'Published1',\n \t},\n \tfreeze: true,\n \tasync:false,\n \tcallback:function(r){\n \t var publish_list = r.message;\n \t console.log(publish_list);\n \t if (publish_list.length){\n \t var html = \"This Procedure is linked with the following Publish Docs:
    \";\n \t publish_list.forEach((array_row) => {\n \t html = html + \"
  1. \" + array_row + \"
  2. \";\n \t });\n \t html = html + \"
\";\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'green',\n message: __(html)\n });\n \t }\n \t}\n });\n }\n },\n mat:function(frm){\n if (!frm.is_new()){\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'green',\n message: __('Updating MAT will impact its connected System Mapping and so with Kilometer Mapping. Please Check!')\n });\n }\n }\n});\n\nfrappe.ui.form.on('Procedure_Details', {\n procedure_name: function (frm,cdt,cdn) {\n frm.refresh();\n },\n step_name: function (frm,cdt,cdn) {\n frm.refresh();\n },\n content_type: function (frm,cdt,cdn) {\n var df;\n let d = locals[cdt][cdn];\n var id = d.idx;\n id = id-1;\n let row = frm.fields_dict.procedure_details.grid.grid_rows[id];\n if (d.content_type == 'Link'){\n let d = new frappe.ui.Dialog({\n title: 'Select a Procedure',\n fields:[\n {\n label: 'Procedure',\n fieldname: 'procedure_map',\n fieldtype: 'Link',\n options:'Procedure'\n }\n ],\n primary_action_label: 'Select',\n primary_action(values) {\n // row.doc.content = values.procedure_map;\n var url = window.location.host;\n var content = values.procedure_map;\n row.doc.content1 = values.procedure_map;\n row.doc.content = content.link(\"http://\" + url + \"/app/procedure/\" + content);\n // row.doc.content = '' + content + '';\n d.hide();\n frm.refresh();\n }\n });\n d.show();\n } else {\n d.content = d.content1;\n }\n },\n procedure_details_move: function (frm,cdt,cdn) {\n frm.refresh();\n },\n procedure_details_add: function(frm,cdt,cdn) {\n \tvar d = locals[cdt][cdn];\n \tvar id = d.idx;\n id = id-1;\n var row = frm.fields_dict.procedure_details.grid.grid_rows[id];\n var prevrow = frm.fields_dict.procedure_details.grid.grid_rows[id-1];\n if (frm.doc.procedure_filter == \"All\"){\n if (prevrow !== undefined) row.doc.procedure_name = prevrow.doc.procedure_name;\n }else{\n row.doc.procedure_name = frm.doc.procedure_filter;\n }\n refresh_field(\"procedure_filter\");\n },\n});\n\nfunction fn_addProceduretolist(value){\n if (value === \"\") {return;}\n if ($(\"select[data-fieldname='procedure_filter'] option[value='\" + value + \"']\").length === 0){\n $(\"select[data-fieldname='procedure_filter']\").append(new Option(value, value));\n }\n}", + "script": "var trigger = true;\n\ncur_frm.fields_dict['variant_mapping'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.variant\",};\n};\ncur_frm.fields_dict['sub_systems'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.sub_systems\",};\n};\n\nfrappe.ui.form.on('Procedure', {\n onload: function (frm) {\n if (frm.doc.workflow_state == 'Publish Ready'){\n frm.set_read_only();\n }\n },\n \tprocedure_details_on_form_rendered: function(frm,cdt,cdn){\n\t\tcur_frm.cscript.highlight_row(frm.open_grid_row());\n\t},\n\n refresh: function (frm) {\n var previous_procedure_name = \"\";\n var previous_step_name = \"\";\n $(\"select[data-fieldname='procedure_filter']\").empty();\n $(\"select[data-fieldname='procedure_filter']\").append(new Option(\"All\", \"All\"));\n //console.log(frm.fields_dict.procedure_details);\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n if (row.doc.procedure_name)\n fn_addProceduretolist(row.doc.procedure_name);\n //console.log(row.doc.procedure_name, previous_procedure_name);\n if (row.doc.procedure_name == previous_procedure_name){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"procedure_name\"]').find('a[data-doctype=\"Procedure Name\"]').css({'color': '#EDEDED'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'background-color': '#FFFFFF'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'border-bottom': '1px Solid #ebeef0'});\n }else{\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"procedure_name\"]').find('a[data-doctype=\"Procedure Name\"]').css({'color': '#000000'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'background-color': '#EDEDED'});\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').css({'border-bottom': '1px Solid #7b7c7c'});\n }\n previous_procedure_name = row.doc.procedure_name;\n \n \n if (row.doc.step_name == previous_step_name){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"step_name\"]').find('a[data-doctype=\"Procedure Step Name\"]').css({'color': '#DFDFDF'});\n }else{\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').find('div.col[data-fieldname=\"step_name\"]').find('a[data-doctype=\"Procedure Step Name\"]').css({'color': '#000000'});\n }\n previous_step_name = row.doc.step_name;\n let id = row.doc.idx;\n\n });\n\n if (frm.doc.workflow_state == \"Publish Ready\" && frappe.user_roles.indexOf(\"_Admin\") > 0){\n frm.add_custom_button(__('Revoke Publish'), function(){\n //get all system mapping with the procedure linked\n frappe.db.get_list('System Mapping_Sub System', {\n fields: ['parent', 'procedure', 'procedure_status'],\n filters: {\n procedure: frm.doc.name\n }\n }).then(records => {\n var html = \"

\";\n $.each(records, function(index, row){\n html = html + \"\" +\"\";\n });\n html = html + \"
\" + row.parent + \"\" + row.procedure + \"
\";\n frappe.warn('Are you sure you want to Revoke?',\n 'Since there are System Mappings attached to it!!! ' + html,\n () => {\n frm.set_value(\"workflow_state\",\"Draft\");\n frm.save();\n // action to perform if Continue is selected\n },\n 'Continue', false // Sets dialog as minimizable\n );\n });\n });\n }\n },\n procedure_filter: function (frm) {\n //if (!trigger){ trigger = true; return;}\n if (frm.doc.procedure_filter ==\"All\"){\n frm.get_field('procedure_details').grid.static_rows = false;\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').show();\n });\n } else {\n frm.get_field('procedure_details').grid.static_rows = false;\n frm.fields_dict.procedure_details.grid.grid_rows.forEach((row) => {\n if (row.doc.procedure_name != frm.doc.procedure_filter){\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').hide();\n } else {\n $(\"div[data-fieldname=procedure_details]\").find('div.grid-row[data-idx=\"'+ row.doc.idx + '\"]').show();\n }\n });\n }\n //frm.refresh();\n },\n before_workflow_action: (frm) => {\n console.log(frm.doc.workflow_state);\n console.log(frm.selected_workflow_action);\n if ((frm.doc.workflow_state == 'Review Pending' || frm.doc.workflow_state == 'Publish Ready') && (frm.selected_workflow_action == 'Revoke')){\n //frappe.throw(\"Any connected Publish Planning will get affected. Please check!\");\n frappe.call({\n \"method\": \"smart_service.transactions.doctype.procedure.procedure.get_publish_details\",\n \"args\": {\n \"procedure_name\": frm.doc.name,\n \"status\":'Published1',\n \t},\n \tfreeze: true,\n \tasync:false,\n \tcallback:function(r){\n \t var publish_list = r.message;\n \t console.log(publish_list);\n \t if (publish_list.length){\n \t var html = \"This Procedure is linked with the following Publish Docs:
    \";\n \t publish_list.forEach((array_row) => {\n \t html = html + \"
  1. \" + array_row + \"
  2. \";\n \t });\n \t html = html + \"
\";\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'green',\n message: __(html)\n });\n \t }\n \t}\n });\n }\n },\n mat:function(frm){\n if (!frm.is_new()){\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'green',\n message: __('Updating MAT will impact its connected System Mapping and so with Kilometer Mapping. Please Check!')\n });\n }\n }\n});\n\nfrappe.ui.form.on('Procedure_Details', {\n procedure_name: function (frm,cdt,cdn) {\n frm.refresh();\n },\n step_name: function (frm,cdt,cdn) {\n frm.refresh();\n },\n content_type: function (frm,cdt,cdn) {\n var df;\n let d = locals[cdt][cdn];\n var id = d.idx;\n id = id-1;\n let row = frm.fields_dict.procedure_details.grid.grid_rows[id];\n if (d.content_type == 'Link'){\n let d = new frappe.ui.Dialog({\n title: 'Select a Procedure',\n fields:[\n {\n label: 'Procedure',\n fieldname: 'procedure_map',\n fieldtype: 'Link',\n options:'Procedure'\n }\n ],\n primary_action_label: 'Select',\n primary_action(values) {\n // row.doc.content = values.procedure_map;\n var url = window.location.host;\n var content = values.procedure_map;\n row.doc.content1 = values.procedure_map;\n row.doc.content = content.link(\"http://\" + url + \"/app/procedure/\" + content);\n // row.doc.content = '' + content + '';\n d.hide();\n frm.refresh();\n }\n });\n d.show();\n } else {\n d.content = d.content1;\n }\n },\n procedure_details_move: function (frm,cdt,cdn) {\n frm.refresh();\n },\n procedure_details_add: function(frm,cdt,cdn) {\n \tvar d = locals[cdt][cdn];\n \tvar id = d.idx;\n id = id-1;\n var row = frm.fields_dict.procedure_details.grid.grid_rows[id];\n var prevrow = frm.fields_dict.procedure_details.grid.grid_rows[id-1];\n if (frm.doc.procedure_filter == \"All\"){\n if (prevrow !== undefined) row.doc.procedure_name = prevrow.doc.procedure_name;\n }else{\n row.doc.procedure_name = frm.doc.procedure_filter;\n }\n refresh_field(\"procedure_filter\");\n },\n});\n\nfunction fn_addProceduretolist(value){\n if (value === \"\") {return;}\n if ($(\"select[data-fieldname='procedure_filter'] option[value='\" + value + \"']\").length === 0){\n $(\"select[data-fieldname='procedure_filter']\").append(new Option(value, value));\n }\n}\n\n\tcur_frm.cscript.highlight_row = function(grid_row){\n\t\t var idx = grid_row.doc.idx;\n\t\t cur_frm.fields_dict[\"procedure_details\"].$wrapper.find('.grid-body .rows').find(\".grid-row\").each(function(i, item) {\n\t\t\tlet d = locals[cur_frm.fields_dict[\"procedure_details\"].grid.doctype][$(item).attr('data-name')];\n\t\t\tif(d[\"idx\"] === idx){\n\t\t\t\t$(item).find('.grid-static-col').css({'background-color': '#808080'});\n\t\t\t}\n\t\t\telse{\n\t\t\t\t$(item).find('.grid-static-col').css({'background-color': '#FFFFFF'});\n\t\t\t}\n });\n\t\t}\n", "view": "Form" }, { @@ -82,12 +82,12 @@ "doctype": "Client Script", "dt": "Publish", "enabled": 1, - "modified": "2022-02-16 18:12:57.533152", + "modified": "2022-02-18 19:18:40.597501", "name": "Publish-Form", "parent": null, "parentfield": null, "parenttype": null, - "script": "cur_frm.fields_dict['variant_mapping'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.variant\",};\n};\n\ncur_frm.fields_dict['vehicle'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.masters.doctype.vehicle.vehicle.vehicle_filter\",};\n};\n\nvar lang_set_first_time = true;\n\nfrappe.ui.form.on('Publish', {\n onload: function(frm) {\n lang_set_first_time = true;\n frm.get_field('publish_documents').grid.cannot_add_rows = true;\n },\n refresh: function(frm) {\n if(frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish'){\n frm.add_custom_button(__('Publish'), function(){\n frappe.confirm('Are you sure you want to Publish?',\n () => {\n // action to perform if Yes is selected\n if(frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish'){\n frappe.call({\n method: \"smart_service.apis.publish_api.api_procedure\",\n async:false,\n args: {\n \"args\":frm.doc.name,\n \"vehicle\": frm.doc.vehicle,\n \"language\":frm.doc.language,\n \"version\":frm.doc.version\n },\n callback: function(r) {\n frm.set_value('publish_status','Published');\n frm.set_value('actual_published_date',frappe.datetime.nowdate());\n // frm.set_value('published_link',r.message)\n frappe.msgprint(__());\n frappe.msgprint({\n title: __('Notification'),\n message: __('Successfully Published' + r.message),\n primary_action:{\n action(values) {\n frm.save('Update');\n }\n }\n });\n \n }\n });\n }\n }, () => {\n // action to perform if No is selected\n }); \n }).addClass(\"btn-warning\").css({'background-color':'#f5b0cd', 'color':'black'});\n } else if(frm.doc.publish_status == 'Published'){\n frm.set_read_only();\n frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1);\n }\n \n frm.get_field('system_mapping').grid.add_custom_button(__('Add to Publish'), function() {\n\t var added = 0;\n\t var topublish = [];\n if (frm.doc.publish_type =='Global'){topublish = ['Publish Ready'];}else{topublish = ['Review Pending','Publish Ready'];}\n frm.doc.system_mapping.forEach(row => {\n if (topublish.indexOf(row.procedure_status) > -1){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && \n row.systems == publishrow.system && \n row.sub_systems == publishrow.sub_system && row.procedure == publishrow.procedure_link){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.system = row.systems;\n child.sub_system = row.sub_systems;\n child.procedure_link = row.procedure;\n child.procedure_status = row.procedure_status;\n child.item_category = \"System Mapping\";\n refresh_field(\"publish_documents\");\n added += 1;\n }\n }\n });\n if (added){frappe.msgprint(__(added + \" Doc(s) Added\"));}\n else{frappe.msgprint(__(\"No Doc Added\"));}\n });\n \n frm.fields_dict.system_mapping.grid.grid_buttons.find('.btn-custom').removeClass('btn-default').addClass('btn-primary');\n\n\t frm.get_field('variant_mapping_assets').grid.add_custom_button(__('Add to Publish'), function() {\n\t var added = 0;\n\t var topublish = [];\n frm.doc.variant_mapping_assets.forEach(row => {\n if (row.active_status == \"Active\"){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && \n row.category == publishrow.asset_category){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.asset_category = row.category;\n child.item_category = \"Variant Mapping Assets\";\n refresh_field(\"publish_documents\");\n added += 1;\n }\n }\n });\n if (added){frappe.msgprint(__(added + \" Doc(s) Added\"));}\n else{frappe.msgprint(__(\"No Doc Added\"));}\n });\n \n frm.fields_dict.variant_mapping_assets.grid.grid_buttons.find('.btn-custom').removeClass('btn-default').addClass('btn-primary');\n\t},\n\tvalidate: function(frm) {\n\t \n\t if (frm.fields_dict.publish_documents.grid.grid_rows.length === 0){\n\t frappe.msgprint(__(\"No item selected to Publish\"));\n\t frappe.validated = false;\n\t }\n if (frm.doc.planned_publish_date < frappe.datetime.get_today()) {\n frappe.msgprint(__(\"Planned Publish Date: You can not select past date\"));\n frappe.validated = false;\n }\n },\n before_save: function(frm) {\n //frm.set_value('variant_mapping',null);\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n },\n before_cancel: function(frm) {\n if (frm.doc.publish_status == 'Published'){\n //frappe.throw(__('You can not cancel a Published Document!'));\n //frappe.validated = false;\n }\n },\n\tvariant_mapping:function(frm){\n if (frm.doc.variant_mapping === undefined) {return;}\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n frappe.db.exists('Kilometer Mapping', frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-KM\")\n .then(exists => {\n if (exists){\n frm.set_value(\"kilometer_mapping\",frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-KM\");\n } else {\n // frm.set_value(\"kilometer_mapping\",null);\n frm.set_value(\"km_active_status\",\"Not Configured!\");\n console.log(frm.doc.km_active_status);\n console.log(\"KM\" + frm.doc.kilometer_mapping)\n }\n });\n\t},\n\tkm_active_status:function(frm){\n\t console.log(\"Siva '\" + frm.doc.km_active_status + \"'\");\n \tif(frm.doc.km_active_status === \"\" || frm.doc.km_active_status === null) {return;}\n var filter = frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-SM\";\n if (frm.doc.variant_mapping_status == \"Active\" && frm.doc.km_active_status == \"Active\") {\n frappe.db.get_list('System Mapping_Sub System', {\n fields: ['systems', 'sub_systems','active_status','symptom','component','estimated_time','rts','mat','procedure','procedure_status'],\n filters: { parent: filter }\n }).then(records => {\n //frm.set_value('system_mapping', null);\n var child;\n $.each(records, function(index, row){\n child = cur_frm.add_child(\"system_mapping\");\n child.systems = row.systems;\n child.sub_systems = row.sub_systems;\n child.active_status = row.active_status;\n child.symptom = row.symptom;\n child.component = row.component;\n child.estimated_time = row.estimated_time;\n child.rts = row.rts;\n child.mat = row.mat;\n //child.cover_image = row.cover_image;\n child.procedure = row.procedure;\n child.procedure_status = row.procedure_status;\n if (row.procedure) {\n frappe.call({\n \"method\": \"smart_service.transactions.doctype.procedure.procedure.get_doc_status\",\n \"args\": {\n \"docname\": row.procedure,\n \t},\n \tasync:false,\n \tcallback:function(r){\n child.procedure_status = r.message; //doc.workflow_state;\n if (r.message == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (r.message == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n //refresh_field(\"system_mapping\");\n \t}\n });\n /*frappe.db.get_doc('Procedure', row.procedure)\n .then(doc => {\n \n child.procedure_status = doc.workflow_state;\n if (doc.workflow_state == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (doc.workflow_state == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n frm.refresh_field(\"system_mapping\");\n });*/\n }\n });\n frm.refresh_field('system_mapping');\n });\n \n frappe.db.get_list('Variant Mapping_Assets', {\n fields: ['category', 'language','active_status','attach_file'],\n filters: {\n parent: frm.doc.variant_mapping, \n language: frm.doc.language\n }\n }).then(assets => {\n var child;\n $.each(assets, function(index, row){\n child = cur_frm.add_child(\"variant_mapping_assets\");\n child.category = row.category;\n child.language = row.language;\n child.attach_file = row.attach_file;\n child.active_status = row.active_status;\n /*if (row.procedure) {\n frappe.db.get_doc('Procedure', row.procedure)\n .then(doc => {\n child.procedure_status = doc.workflow_state;\n if (doc.workflow_state == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (doc.workflow_state == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n refresh_field(\"system_mapping\");\n });\n }*/\n });\n cur_frm.refresh_field('variant_mapping_assets');\n });\n } else {\n if (frm.doc.variant_mapping_status != null){\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'red',\n message: __('System Mapping & Assets not loaded as the selected Variant/Kilometer Mapping is Inactive or not configured')\n });\n }\n }\t\n\t},\n\tadd_variant_mapping_to_publish:function(frm){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && publishrow.systems === undefined && publishrow.sub_systems === undefined && publishrow.procedure === undefined){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.item_category = \"Variant Mapping\";\n refresh_field(\"publish_documents\");\n frappe.msgprint(__(frm.doc.variant_mapping + \" Added\"));\n }\n\t},\n\tvehicle:function(frm){\n\t if (frm.doc.vehicle === undefined || frm.doc.vehicle === null) {return;}\n\t frm.trigger(\"auto_version_update\");\n var filter = frm.doc.vehicle;\n filter = \"%\"+filter+\"%\";\n frm.set_query(\"variant_mapping\", function() {\n return {\n \"filters\": {\n \"name\": [\"like\",filter]\n }\n };\n });\n $(\"[data-fieldname=variant_mapping]\").focus();\n frm.set_df_property('vehicle', 'read_only', 1);\n\t},\n\tlanguage:function(frm){\n if (!lang_set_first_time){\n frappe.confirm('This will clear all the data, are you sure you want to proceed?',\n () => {\n // action to perform if Yes is selected\n frm.set_value('variant_mapping',null);\n frm.set_value('variant_mapping_status',null);\n frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1);\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n frm.set_value('publish_documents', null);\n lang_set_first_time = false;\n }, () => {\n // action to perform if No is selected\n });\n } else {lang_set_first_time = false;}\n\t},\n\tauto_version_update:function(frm){\n \tif(frm.doc.vehicle && frm.doc.language && frm.doc.publish_type){\n \t\n \t\treturn frappe.call({\n method: 'smart_service.transactions.doctype.publish.publish.cal_ver',\n args: {\n vehicle: frm.doc.vehicle,\n lang:frm.doc.language,\n publish_type:frm.doc.publish_type\n },\n callback: (r) => {\n frm.set_value('version',r.message);\n },\n error: (r) => {\n // on error\n }\n });\n \t}\n\t},\n});", + "script": "cur_frm.fields_dict['variant_mapping'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.transactions.doctype.procedure.procedure.variant\",};\n};\n\ncur_frm.fields_dict['vehicle'].get_query = function(doc, cdt, cdn) {\n return {query:\"smart_service.masters.doctype.vehicle.vehicle.vehicle_filter\",};\n};\n\nvar lang_set_first_time = true;\n\nfrappe.ui.form.on('Publish', {\n onload: function(frm) {\n lang_set_first_time = true;\n frm.get_field('publish_documents').grid.cannot_add_rows = true;\n },\n refresh: function(frm) {\n if(frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish'){\n frm.add_custom_button(__('Publish'), function(){\n frappe.confirm('Are you sure you want to Publish?',\n () => {\n // action to perform if Yes is selected\n if(frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish'){\n frappe.call({\n method: \"smart_service.apis.publish_api.api_procedure\",\n async:false,\n args: {\n \"args\":frm.doc.name,\n \"vehicle\": frm.doc.vehicle,\n \"language\":frm.doc.language,\n \"version\":frm.doc.version\n },\n callback: function(r) {\n frm.set_value('publish_status','Published');\n frm.set_value('actual_published_date',frappe.datetime.nowdate());\n // frm.set_value('published_link',r.message)\n frappe.msgprint(__());\n frappe.msgprint({\n title: __('Notification'),\n message: __('Successfully Published' + r.message),\n primary_action:{\n action(values) {\n frm.save('Update');\n }\n }\n });\n \n }\n });\n }\n }, () => {\n // action to perform if No is selected\n }); \n }).addClass(\"btn-warning\").css({'background-color':'#f5b0cd', 'color':'black'});\n } else if(frm.doc.publish_status == 'Published'){\n frm.set_read_only();\n frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1);\n }\n \n frm.get_field('system_mapping').grid.add_custom_button(__('Add to Publish'), function() {\n\t var added = 0;\n\t var topublish = [];\n if (frm.doc.publish_type =='Global'){topublish = ['Publish Ready'];}else{topublish = ['Review Pending','Publish Ready'];}\n frm.doc.system_mapping.forEach(row => {\n if (topublish.indexOf(row.procedure_status) > -1){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && \n row.systems == publishrow.system && \n row.sub_systems == publishrow.sub_system && row.procedure == publishrow.procedure_link){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.system = row.systems;\n child.sub_system = row.sub_systems;\n child.procedure_link = row.procedure;\n child.procedure_status = row.procedure_status;\n child.item_category = \"System Mapping\";\n refresh_field(\"publish_documents\");\n added += 1;\n }\n }\n });\n if (added){frappe.msgprint(__(added + \" Doc(s) Added\"));}\n else{frappe.msgprint(__(\"No Doc Added\"));}\n });\n \n frm.fields_dict.system_mapping.grid.grid_buttons.find('.btn-custom').removeClass('btn-default').addClass('btn-primary');\n\n\t frm.get_field('variant_mapping_assets').grid.add_custom_button(__('Add to Publish'), function() {\n\t var added = 0;\n\t var topublish = [];\n frm.doc.variant_mapping_assets.forEach(row => {\n if (row.active_status == \"Active\"){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && \n row.category == publishrow.asset_category){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.asset_category = row.category;\n child.item_category = \"Variant Mapping Assets\";\n refresh_field(\"publish_documents\");\n added += 1;\n }\n }\n });\n if (added){frappe.msgprint(__(added + \" Doc(s) Added\"));}\n else{frappe.msgprint(__(\"No Doc Added\"));}\n });\n \n frm.fields_dict.variant_mapping_assets.grid.grid_buttons.find('.btn-custom').removeClass('btn-default').addClass('btn-primary');\n\t},\n\tvalidate: function(frm) {\n\t \n\t if (frm.fields_dict.publish_documents.grid.grid_rows.length === 0){\n\t frappe.msgprint(__(\"No item selected to Publish\"));\n\t frappe.validated = false;\n\t }\n if (frm.doc.planned_publish_date < frappe.datetime.get_today()) {\n frappe.msgprint(__(\"Planned Publish Date: You can not select past date\"));\n frappe.validated = false;\n }\n },\n before_save: function(frm) {\n //frm.set_value('variant_mapping',null);\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n },\n before_cancel: function(frm) {\n if (frm.doc.publish_status == 'Published'){\n //frappe.throw(__('You can not cancel a Published Document!'));\n //frappe.validated = false;\n }\n },\n\tvariant_mapping:function(frm){\n if (frm.doc.variant_mapping === undefined) {return;}\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n frappe.db.exists('Kilometer Mapping', frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-KM\")\n .then(exists => {\n if (exists){\n frm.set_value(\"kilometer_mapping\",frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-KM\");\n } else {\n // frm.set_value(\"kilometer_mapping\",null);\n frm.set_value(\"km_active_status\",\"Not Configured!\");\n }\n });\n\t},\n\tkm_active_status:function(frm){\n \tif(frm.doc.km_active_status === \"\" || frm.doc.km_active_status === null) {return;}\n var filter = frm.doc.variant_mapping + \"-\" + frm.doc.language + \"-SM\";\n if (frm.doc.variant_mapping_status == \"Active\" && frm.doc.km_active_status == \"Active\") {\n frappe.db.get_list('System Mapping_Sub System', {\n fields: ['systems', 'sub_systems','active_status','symptom','component','estimated_time','rts','mat','procedure','procedure_status'],\n filters: { parent: filter }\n }).then(records => {\n //frm.set_value('system_mapping', null);\n var child;\n $.each(records, function(index, row){\n child = cur_frm.add_child(\"system_mapping\");\n child.systems = row.systems;\n child.sub_systems = row.sub_systems;\n child.active_status = row.active_status;\n child.symptom = row.symptom;\n child.component = row.component;\n child.estimated_time = row.estimated_time;\n child.rts = row.rts;\n child.mat = row.mat;\n //child.cover_image = row.cover_image;\n child.procedure = row.procedure;\n child.procedure_status = row.procedure_status;\n if (row.procedure) {\n frappe.call({\n \"method\": \"smart_service.transactions.doctype.procedure.procedure.get_doc_status\",\n \"args\": {\n \"docname\": row.procedure,\n \t},\n \tasync:false,\n \tcallback:function(r){\n child.procedure_status = r.message; //doc.workflow_state;\n if (r.message == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (r.message == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n //refresh_field(\"system_mapping\");\n \t}\n });\n /*frappe.db.get_doc('Procedure', row.procedure)\n .then(doc => {\n \n child.procedure_status = doc.workflow_state;\n if (doc.workflow_state == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (doc.workflow_state == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n frm.refresh_field(\"system_mapping\");\n });*/\n }\n });\n frm.refresh_field('system_mapping');\n });\n \n frappe.db.get_list('Variant Mapping_Assets', {\n fields: ['category', 'language','active_status','attach_file'],\n filters: {\n parent: frm.doc.variant_mapping, \n language: frm.doc.language\n }\n }).then(assets => {\n var child;\n $.each(assets, function(index, row){\n child = cur_frm.add_child(\"variant_mapping_assets\");\n child.category = row.category;\n child.language = row.language;\n child.attach_file = row.attach_file;\n child.active_status = row.active_status;\n /*if (row.procedure) {\n frappe.db.get_doc('Procedure', row.procedure)\n .then(doc => {\n child.procedure_status = doc.workflow_state;\n if (doc.workflow_state == 'Review Pending'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#ffa243'});}\n else if (doc.workflow_state == 'Publish Ready'){$(\"div[data-fieldname=system_mapping]\").find('div.grid-row[data-idx=\"'+ child.idx + '\"]').find('div.col[data-fieldname=\"procedure_status\"]').css({'background-color': '#cfffcf'});}\n refresh_field(\"system_mapping\");\n });\n }*/\n });\n frappe.db.get_list('System Mapping_System Assets', {\n fields: ['systems', 'language','active_status','system_asset'],\n filters: {\n parent: filter,\n \n }\n }).then(asset => {\n var child_row;\n $.each(asset, function(index, row){\n child_row = cur_frm.add_child(\"variant_mapping_assets\");\n child_row.category = row.systems;\n child_row.language = row.language;\n child_row.attach_file = row.system_asset;\n child_row.active_status = row.active_status;\n });\n cur_frm.refresh_field('variant_mapping_assets');\n })\n \n });\n } else {\n if (frm.doc.variant_mapping_status != null){\n frappe.msgprint({\n title: __('Notification'),\n indicator: 'red',\n message: __('System Mapping & Assets not loaded as the selected Variant/Kilometer Mapping is Inactive or not configured')\n });\n }\n }\t\n\t},\n\tadd_variant_mapping_to_publish:function(frm){\n var dulicate = false;\n if (frm.doc.publish_documents){\n frm.doc.publish_documents.forEach(publishrow => {\n if (frm.doc.variant_mapping == publishrow.variant_mapping && publishrow.systems === undefined && publishrow.sub_systems === undefined && publishrow.procedure === undefined){\n dulicate = true;\n }\n });\n }\n if (dulicate === false){\n var child = cur_frm.add_child(\"publish_documents\");\n child.variant_mapping = frm.doc.variant_mapping;\n child.item_category = \"Variant Mapping\";\n refresh_field(\"publish_documents\");\n frappe.msgprint(__(frm.doc.variant_mapping + \" Added\"));\n }\n\t},\n\tvehicle:function(frm){\n\t if (frm.doc.vehicle === undefined || frm.doc.vehicle === null) {return;}\n\t frm.trigger(\"auto_version_update\");\n var filter = frm.doc.vehicle;\n filter = \"%\"+filter+\"%\";\n frm.set_query(\"variant_mapping\", function() {\n return {\n \"filters\": {\n \"name\": [\"like\",filter]\n }\n };\n });\n $(\"[data-fieldname=variant_mapping]\").focus();\n frm.set_df_property('vehicle', 'read_only', 1);\n\t},\n\tlanguage:function(frm){\n if (!lang_set_first_time){\n frappe.confirm('This will clear all the data, are you sure you want to proceed?',\n () => {\n // action to perform if Yes is selected\n frm.set_value('variant_mapping',null);\n frm.set_value('variant_mapping_status',null);\n frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1);\n frm.set_value('system_mapping', null);\n frm.set_value('variant_mapping_assets', null);\n frm.set_value('publish_documents', null);\n lang_set_first_time = false;\n }, () => {\n // action to perform if No is selected\n });\n } else {lang_set_first_time = false;}\n\t},\n\tauto_version_update:function(frm){\n \tif(frm.doc.vehicle && frm.doc.language && frm.doc.publish_type){\n \t\n \t\treturn frappe.call({\n method: 'smart_service.transactions.doctype.publish.publish.cal_ver',\n args: {\n vehicle: frm.doc.vehicle,\n lang:frm.doc.language,\n publish_type:frm.doc.publish_type\n },\n callback: (r) => {\n frm.set_value('version',r.message);\n },\n error: (r) => {\n // on error\n }\n });\n \t}\n\t},\n});", "view": "Form" }, { diff --git a/smart_service/transactions/doctype/procedure/procedure.json b/smart_service/transactions/doctype/procedure/procedure.json index b983dce..0f86cd1 100644 --- a/smart_service/transactions/doctype/procedure/procedure.json +++ b/smart_service/transactions/doctype/procedure/procedure.json @@ -100,7 +100,7 @@ "in_list_view": 1, "in_standard_filter": 1, "label": "Workflow State", - "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked" + "options": "Draft\nReview Pending\nApproval Pending\nPublish Ready\nPublished\nRevoked" }, { "fieldname": "column_break_8", @@ -214,7 +214,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-02-18 11:49:34.257934", + "modified": "2022-02-18 15:42:51.656023", "modified_by": "Administrator", "module": "Transactions", "name": "Procedure", diff --git a/smart_service/transactions/doctype/procedure_details/procedure_details.json b/smart_service/transactions/doctype/procedure_details/procedure_details.json index 5434e91..2a53fb0 100644 --- a/smart_service/transactions/doctype/procedure_details/procedure_details.json +++ b/smart_service/transactions/doctype/procedure_details/procedure_details.json @@ -65,6 +65,7 @@ "read_only_depends_on": "eval: doc.content_type != \"File\"" }, { + "depends_on": "eval:doc.file", "fieldname": "preview", "fieldtype": "Image", "label": "Preview", @@ -74,7 +75,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-02-18 11:20:32.565428", + "modified": "2022-02-21 10:20:11.732503", "modified_by": "Administrator", "module": "Transactions", "name": "Procedure_Details", diff --git a/smart_service/transactions/doctype/publish/publish.json b/smart_service/transactions/doctype/publish/publish.json index b0c3d4f..1f00dc2 100644 --- a/smart_service/transactions/doctype/publish/publish.json +++ b/smart_service/transactions/doctype/publish/publish.json @@ -136,7 +136,7 @@ { "fieldname": "variant_mapping_assets", "fieldtype": "Table", - "label": "Variant Mapping Assets", + "label": "Assets", "options": "Publish_Variant Mapping Assets", "read_only": 1 }, @@ -225,7 +225,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2022-02-16 19:06:38.344491", + "modified": "2022-02-18 19:28:34.325727", "modified_by": "Administrator", "module": "Transactions", "name": "Publish", diff --git a/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json b/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json index de31539..960434a 100644 --- a/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json +++ b/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json @@ -45,14 +45,15 @@ }, { "fieldname": "system_asset", - "fieldtype": "Attach Image", + "fieldtype": "Attach", + "in_list_view": 1, "label": "System Asset" } ], "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-02-17 15:53:14.930623", + "modified": "2022-02-18 13:21:07.329144", "modified_by": "Administrator", "module": "Transactions", "name": "System Mapping_System Assets",