commit 9c2df3b0ef8f4fd50d36e674590e90b1f2dfb91c Author: hns Date: Tue Dec 28 15:45:48 2021 +0530 First commit diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..94f3f84 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,18 @@ +include MANIFEST.in +include requirements.txt +include *.json +include *.md +include *.py +include *.txt +recursive-include smart_service *.css +recursive-include smart_service *.csv +recursive-include smart_service *.html +recursive-include smart_service *.ico +recursive-include smart_service *.js +recursive-include smart_service *.json +recursive-include smart_service *.md +recursive-include smart_service *.png +recursive-include smart_service *.py +recursive-include smart_service *.svg +recursive-include smart_service *.txt +recursive-exclude smart_service *.pyc \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7304fb5 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +## Mahindra Smart Service + +Mahindra Smart Service (Formarly: Guided Repair Manual) + +#### License + +MIT \ No newline at end of file diff --git a/__pycache__/setup.cpython-38.pyc b/__pycache__/setup.cpython-38.pyc new file mode 100644 index 0000000..49175a1 Binary files /dev/null and b/__pycache__/setup.cpython-38.pyc differ diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..2fdf7c7 --- /dev/null +++ b/license.txt @@ -0,0 +1 @@ +License: MIT \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7668191 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +# frappe -- https://github.com/frappe/frappe is installed via 'bench init' \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..e3131af --- /dev/null +++ b/setup.py @@ -0,0 +1,19 @@ +from setuptools import setup, find_packages + +with open("requirements.txt") as f: + install_requires = f.read().strip().split("\n") + +# get version from __version__ variable in smart_service/__init__.py +from smart_service import __version__ as version + +setup( + name="smart_service", + version=version, + description="Mahindra Smart Service (Formarly: Guided Repair Manual)", + author="Hard n Soft Technologies Pvt Ltd", + author_email="siva@hnsonline.com", + packages=find_packages(), + zip_safe=False, + include_package_data=True, + install_requires=install_requires +) diff --git a/smart_service.egg-info/PKG-INFO b/smart_service.egg-info/PKG-INFO new file mode 100644 index 0000000..d40f4d2 --- /dev/null +++ b/smart_service.egg-info/PKG-INFO @@ -0,0 +1,12 @@ +Metadata-Version: 2.1 +Name: smart-service +Version: 0.0.1 +Summary: Mahindra Smart Service (Formarly: Guided Repair Manual) +Home-page: UNKNOWN +Author: Hard n Soft Technologies Pvt Ltd +Author-email: siva@hnsonline.com +License: UNKNOWN +Platform: UNKNOWN + +UNKNOWN + diff --git a/smart_service.egg-info/SOURCES.txt b/smart_service.egg-info/SOURCES.txt new file mode 100644 index 0000000..cb92419 --- /dev/null +++ b/smart_service.egg-info/SOURCES.txt @@ -0,0 +1,282 @@ +MANIFEST.in +README.md +license.txt +requirements.txt +setup.py +smart_service/__init__.py +smart_service/hooks.py +smart_service/modules.txt +smart_service/patches.txt +smart_service.egg-info/PKG-INFO +smart_service.egg-info/SOURCES.txt +smart_service.egg-info/dependency_links.txt +smart_service.egg-info/not-zip-safe +smart_service.egg-info/top_level.txt +smart_service/add_ons/__init__.py +smart_service/add_ons/doctype/__init__.py +smart_service/add_ons/doctype/app_users/__init__.py +smart_service/add_ons/doctype/app_users/app_users.js +smart_service/add_ons/doctype/app_users/app_users.json +smart_service/add_ons/doctype/app_users/app_users.py +smart_service/add_ons/doctype/app_users/test_app_users.py +smart_service/add_ons/doctype/circular/__init__.py +smart_service/add_ons/doctype/circular/circular.js +smart_service/add_ons/doctype/circular/circular.json +smart_service/add_ons/doctype/circular/circular.py +smart_service/add_ons/doctype/circular/test_circular.py +smart_service/add_ons/doctype/user_feedback/__init__.py +smart_service/add_ons/doctype/user_feedback/test_user_feedback.py +smart_service/add_ons/doctype/user_feedback/user_feedback.js +smart_service/add_ons/doctype/user_feedback/user_feedback.json +smart_service/add_ons/doctype/user_feedback/user_feedback.py +smart_service/add_ons/doctype/user_feedback_types/__init__.py +smart_service/add_ons/doctype/user_feedback_types/test_user_feedback_types.py +smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.js +smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.json +smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.py +smart_service/add_ons/doctype/user_manual/__init__.py +smart_service/add_ons/doctype/user_manual/test_user_manual.py +smart_service/add_ons/doctype/user_manual/user_manual.js +smart_service/add_ons/doctype/user_manual/user_manual.json +smart_service/add_ons/doctype/user_manual/user_manual.py +smart_service/apis/addon_api.py +smart_service/apis/master_api.py +smart_service/apis/publish_api.py +smart_service/config/__init__.py +smart_service/config/desktop.py +smart_service/config/docs.py +smart_service/json_files/procedurePublish.json +smart_service/mahindra_smart_service/__init__.py +smart_service/mahindra_smart_service/doctype/__init__.py +smart_service/mahindra_smart_service/doctype/release/__init__.py +smart_service/mahindra_smart_service/doctype/release/release.js +smart_service/mahindra_smart_service/doctype/release/release.json +smart_service/mahindra_smart_service/doctype/release/release.py +smart_service/mahindra_smart_service/doctype/release/test_release.py +smart_service/mahindra_smart_service/doctype/release_docs/__init__.py +smart_service/mahindra_smart_service/doctype/release_docs/release_docs.json +smart_service/mahindra_smart_service/doctype/release_docs/release_docs.py +smart_service/mahindra_smart_service/report/__init__.py +smart_service/mahindra_smart_service/report/_drive_translation/__init__.py +smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.js +smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.json +smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.py +smart_service/mahindra_smart_service/report/_file_structure/__init__.py +smart_service/mahindra_smart_service/report/_file_structure/_file_structure.js +smart_service/mahindra_smart_service/report/_file_structure/_file_structure.json +smart_service/mahindra_smart_service/report/_file_structure/_file_structure.py +smart_service/mahindra_smart_service/report/_fuel_translation/__init__.py +smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.js +smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.json +smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.py +smart_service/mahindra_smart_service/report/_procedure_report/__init__.py +smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.js +smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.json +smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.py +smart_service/mahindra_smart_service/report/_sub_systems_translation/__init__.py +smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.js +smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.json +smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.py +smart_service/mahindra_smart_service/report/_systems_translation/__init__.py +smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.js +smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.json +smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.py +smart_service/mahindra_smart_service/report/_transmission_translation/__init__.py +smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.js +smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.json +smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.py +smart_service/mahindra_smart_service/report/_variant_translation/__init__.py +smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.js +smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.json +smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.py +smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__init__.py +smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.js +smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.json +smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.py +smart_service/mahindra_smart_service/report/_vehicle_translation/__init__.py +smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.js +smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.json +smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.py +smart_service/masters/__init__.py +smart_service/masters/doctype/__init__.py +smart_service/masters/doctype/app_labels/__init__.py +smart_service/masters/doctype/app_labels/app_labels.js +smart_service/masters/doctype/app_labels/app_labels.json +smart_service/masters/doctype/app_labels/app_labels.py +smart_service/masters/doctype/app_labels/test_app_labels.py +smart_service/masters/doctype/app_labels_data/__init__.py +smart_service/masters/doctype/app_labels_data/app_labels_data.json +smart_service/masters/doctype/app_labels_data/app_labels_data.py +smart_service/masters/doctype/custom_languages/__init__.py +smart_service/masters/doctype/custom_languages/custom_languages.js +smart_service/masters/doctype/custom_languages/custom_languages.json +smart_service/masters/doctype/custom_languages/custom_languages.py +smart_service/masters/doctype/custom_languages/test_custom_languages.py +smart_service/masters/doctype/drive/__init__.py +smart_service/masters/doctype/drive/drive.js +smart_service/masters/doctype/drive/drive.json +smart_service/masters/doctype/drive/drive.py +smart_service/masters/doctype/drive/test_drive.py +smart_service/masters/doctype/fuel/__init__.py +smart_service/masters/doctype/fuel/fuel.js +smart_service/masters/doctype/fuel/fuel.json +smart_service/masters/doctype/fuel/fuel.py +smart_service/masters/doctype/fuel/test_fuel.py +smart_service/masters/doctype/service_kilometers/__init__.py +smart_service/masters/doctype/service_kilometers/service_kilometers.js +smart_service/masters/doctype/service_kilometers/service_kilometers.json +smart_service/masters/doctype/service_kilometers/service_kilometers.py +smart_service/masters/doctype/service_kilometers/test_service_kilometers.py +smart_service/masters/doctype/sub_systems/__init__.py +smart_service/masters/doctype/sub_systems/sub_systems.js +smart_service/masters/doctype/sub_systems/sub_systems.json +smart_service/masters/doctype/sub_systems/sub_systems.py +smart_service/masters/doctype/sub_systems/test_sub_systems.py +smart_service/masters/doctype/systems/__init__.py +smart_service/masters/doctype/systems/systems.js +smart_service/masters/doctype/systems/systems.json +smart_service/masters/doctype/systems/systems.py +smart_service/masters/doctype/systems/test_systems.py +smart_service/masters/doctype/transmission/__init__.py +smart_service/masters/doctype/transmission/test_transmission.py +smart_service/masters/doctype/transmission/transmission.js +smart_service/masters/doctype/transmission/transmission.json +smart_service/masters/doctype/transmission/transmission.py +smart_service/masters/doctype/variant/__init__.py +smart_service/masters/doctype/variant/test_variant.py +smart_service/masters/doctype/variant/variant.js +smart_service/masters/doctype/variant/variant.json +smart_service/masters/doctype/variant/variant.py +smart_service/masters/doctype/vehi/__init__.py +smart_service/masters/doctype/vehi/test_vehi.py +smart_service/masters/doctype/vehi/vehi.js +smart_service/masters/doctype/vehi/vehi.json +smart_service/masters/doctype/vehi/vehi.py +smart_service/masters/doctype/vehi_master/__init__.py +smart_service/masters/doctype/vehi_master/test_vehi_master.py +smart_service/masters/doctype/vehi_master/vehi_master.js +smart_service/masters/doctype/vehi_master/vehi_master.json +smart_service/masters/doctype/vehi_master/vehi_master.py +smart_service/masters/doctype/vehicle/__init__.py +smart_service/masters/doctype/vehicle/test_vehicle.py +smart_service/masters/doctype/vehicle/vehicle.js +smart_service/masters/doctype/vehicle/vehicle.json +smart_service/masters/doctype/vehicle/vehicle.py +smart_service/masters/doctype/vehicle_segment/__init__.py +smart_service/masters/doctype/vehicle_segment/test_vehicle_segment.py +smart_service/masters/doctype/vehicle_segment/vehicle_segment.js +smart_service/masters/doctype/vehicle_segment/vehicle_segment.json +smart_service/masters/doctype/vehicle_segment/vehicle_segment.py +smart_service/masters/doctype/vehicle_sk/__init__.py +smart_service/masters/doctype/vehicle_sk/vehicle_sk.json +smart_service/masters/doctype/vehicle_sk/vehicle_sk.py +smart_service/masters/report/__init__.py +smart_service/masters/report/_fuel_translation/__init__.py +smart_service/masters/report/_fuel_translation/_fuel_translation.js +smart_service/masters/report/_fuel_translation/_fuel_translation.json +smart_service/masters/report/_fuel_translation/_fuel_translation.py +smart_service/public/api.py +smart_service/public/build.json +smart_service/public/css/smart_service.css +smart_service/public/icons/dot.png +smart_service/public/icons/outline_description_black_24dp.png +smart_service/public/icons/outline_directions_car_black_24dp.png +smart_service/public/icons/outline_engineering_black_24dp.png +smart_service/public/icons/outline_folder_open_black_24dp.png +smart_service/public/icons/outline_manage_accounts_black_24dp.png +smart_service/public/icons/outline_stairs_black_24dp.png +smart_service/public/images/Mahindra_Newlogo.png +smart_service/public/images/Mahindra_title.png +smart_service/public/images/mahindra_splash_logo.png +smart_service/public/images/mahindra_splash_logo.svg +smart_service/reports/__init__.py +smart_service/templates/__init__.py +smart_service/templates/includes/login/_login.js +smart_service/templates/pages/__init__.py +smart_service/transactions/__init__.py +smart_service/transactions/doctype/__init__.py +smart_service/transactions/doctype/config_kilometer/__init__.py +smart_service/transactions/doctype/config_kilometer/config_kilometer.js +smart_service/transactions/doctype/config_kilometer/config_kilometer.json +smart_service/transactions/doctype/config_kilometer/config_kilometer.py +smart_service/transactions/doctype/config_kilometer/test_config_kilometer.py +smart_service/transactions/doctype/kilometer_mapping/__init__.py +smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js +smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.json +smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py +smart_service/transactions/doctype/kilometer_mapping/test_kilometer_mapping.py +smart_service/transactions/doctype/kilometer_mapping_items/__init__.py +smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.json +smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.py +smart_service/transactions/doctype/kilometer_mapping_items_temp/__init__.py +smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.json +smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.py +smart_service/transactions/doctype/pro/__init__.py +smart_service/transactions/doctype/pro/pro.js +smart_service/transactions/doctype/pro/pro.json +smart_service/transactions/doctype/pro/pro.py +smart_service/transactions/doctype/pro/test_pro.py +smart_service/transactions/doctype/procedure/__init__.py +smart_service/transactions/doctype/procedure/procedure.js +smart_service/transactions/doctype/procedure/procedure.json +smart_service/transactions/doctype/procedure/procedure.py +smart_service/transactions/doctype/procedure/test_procedure.py +smart_service/transactions/doctype/procedure_details/__init__.py +smart_service/transactions/doctype/procedure_details/procedure_details.json +smart_service/transactions/doctype/procedure_details/procedure_details.py +smart_service/transactions/doctype/procedure_name/__init__.py +smart_service/transactions/doctype/procedure_name/procedure_name.js +smart_service/transactions/doctype/procedure_name/procedure_name.json +smart_service/transactions/doctype/procedure_name/procedure_name.py +smart_service/transactions/doctype/procedure_name/test_procedure_name.py +smart_service/transactions/doctype/procedure_procedure_list/__init__.py +smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.json +smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.py +smart_service/transactions/doctype/procedure_step_name/__init__.py +smart_service/transactions/doctype/procedure_step_name/procedure_step_name.js +smart_service/transactions/doctype/procedure_step_name/procedure_step_name.json +smart_service/transactions/doctype/procedure_step_name/procedure_step_name.py +smart_service/transactions/doctype/procedure_step_name/test_procedure_step_name.py +smart_service/transactions/doctype/publish/__init__.py +smart_service/transactions/doctype/publish/publish.js +smart_service/transactions/doctype/publish/publish.json +smart_service/transactions/doctype/publish/publish.py +smart_service/transactions/doctype/publish/test_publish.py +smart_service/transactions/doctype/publish/jsonData/procedurePublish.json +smart_service/transactions/doctype/publish/jsonData/vech.json +smart_service/transactions/doctype/publish_docs/__init__.py +smart_service/transactions/doctype/publish_docs/publish_docs.json +smart_service/transactions/doctype/publish_docs/publish_docs.py +smart_service/transactions/doctype/publish_temp_doc/__init__.py +smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.json +smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.py +smart_service/transactions/doctype/publish_variant_mapping_assets/__init__.py +smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.js +smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.json +smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.py +smart_service/transactions/doctype/publish_variant_mapping_assets/test_publish_variant_mapping_assets.py +smart_service/transactions/doctype/system_mapping/__init__.py +smart_service/transactions/doctype/system_mapping/system_mapping.js +smart_service/transactions/doctype/system_mapping/system_mapping.json +smart_service/transactions/doctype/system_mapping/system_mapping.py +smart_service/transactions/doctype/system_mapping/test_system_mapping.py +smart_service/transactions/doctype/system_mapping_sub_system/__init__.py +smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.json +smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.py +smart_service/transactions/doctype/system_mapping_system_assets/__init__.py +smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json +smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.py +smart_service/transactions/doctype/variant_mapping/__init__.py +smart_service/transactions/doctype/variant_mapping/test_variant_mapping.py +smart_service/transactions/doctype/variant_mapping/variant_mapping.js +smart_service/transactions/doctype/variant_mapping/variant_mapping.json +smart_service/transactions/doctype/variant_mapping/variant_mapping.py +smart_service/transactions/doctype/variant_mapping_assets/__init__.py +smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.json +smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.py +smart_service/transactions/doctype/variant_mapping_sk/__init__.py +smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.json +smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.py +smart_service/www/demofile2.txt +smart_service/www/login.html +smart_service/www/login.py \ No newline at end of file diff --git a/smart_service.egg-info/dependency_links.txt b/smart_service.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/smart_service.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/smart_service.egg-info/not-zip-safe b/smart_service.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/smart_service.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/smart_service.egg-info/top_level.txt b/smart_service.egg-info/top_level.txt new file mode 100644 index 0000000..99d013d --- /dev/null +++ b/smart_service.egg-info/top_level.txt @@ -0,0 +1 @@ +smart_service diff --git a/smart_service/__init__.py b/smart_service/__init__.py new file mode 100644 index 0000000..7a0660b --- /dev/null +++ b/smart_service/__init__.py @@ -0,0 +1,3 @@ + +__version__ = '0.0.1' + diff --git a/smart_service/__pycache__/__init__.cpython-38.pyc b/smart_service/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..b58926a Binary files /dev/null and b/smart_service/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/__pycache__/hooks.cpython-38.pyc b/smart_service/__pycache__/hooks.cpython-38.pyc new file mode 100644 index 0000000..b7c6220 Binary files /dev/null and b/smart_service/__pycache__/hooks.cpython-38.pyc differ diff --git a/smart_service/add_ons/__init__.py b/smart_service/add_ons/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..33222d4 Binary files /dev/null and b/smart_service/add_ons/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/__init__.py b/smart_service/add_ons/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..0078574 Binary files /dev/null and b/smart_service/add_ons/doctype/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/app_users/__init__.py b/smart_service/add_ons/doctype/app_users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/app_users/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/app_users/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..27c3332 Binary files /dev/null and b/smart_service/add_ons/doctype/app_users/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/app_users/__pycache__/app_users.cpython-38.pyc b/smart_service/add_ons/doctype/app_users/__pycache__/app_users.cpython-38.pyc new file mode 100644 index 0000000..ceaef36 Binary files /dev/null and b/smart_service/add_ons/doctype/app_users/__pycache__/app_users.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/app_users/__pycache__/test_app_users.cpython-38.pyc b/smart_service/add_ons/doctype/app_users/__pycache__/test_app_users.cpython-38.pyc new file mode 100644 index 0000000..30a1e2f Binary files /dev/null and b/smart_service/add_ons/doctype/app_users/__pycache__/test_app_users.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/app_users/app_users.js b/smart_service/add_ons/doctype/app_users/app_users.js new file mode 100644 index 0000000..721202a --- /dev/null +++ b/smart_service/add_ons/doctype/app_users/app_users.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('App Users', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/add_ons/doctype/app_users/app_users.json b/smart_service/add_ons/doctype/app_users/app_users.json new file mode 100644 index 0000000..bfddd03 --- /dev/null +++ b/smart_service/add_ons/doctype/app_users/app_users.json @@ -0,0 +1,75 @@ +{ + "actions": [], + "autoname": "I-.####", + "creation": "2021-11-08 17:49:56.262550", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "device_id", + "user_name", + "user_type", + "last_login", + "last_sync" + ], + "fields": [ + { + "fieldname": "user_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "User Name", + "reqd": 1 + }, + { + "fieldname": "user_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "User Type", + "options": "Global\nInternal\nBoth", + "reqd": 1 + }, + { + "fieldname": "device_id", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Device ID", + "reqd": 1 + }, + { + "fieldname": "last_login", + "fieldtype": "Datetime", + "in_list_view": 1, + "label": "Last Login", + "reqd": 1 + }, + { + "fieldname": "last_sync", + "fieldtype": "Datetime", + "label": "Last Sync" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-23 12:24:01.677576", + "modified_by": "Administrator", + "module": "Add Ons", + "name": "App Users", + "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", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/add_ons/doctype/app_users/app_users.py b/smart_service/add_ons/doctype/app_users/app_users.py new file mode 100644 index 0000000..733975b --- /dev/null +++ b/smart_service/add_ons/doctype/app_users/app_users.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class AppUsers(Document): + pass diff --git a/smart_service/add_ons/doctype/app_users/test_app_users.py b/smart_service/add_ons/doctype/app_users/test_app_users.py new file mode 100644 index 0000000..8b83fe8 --- /dev/null +++ b/smart_service/add_ons/doctype/app_users/test_app_users.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestAppUsers(unittest.TestCase): + pass diff --git a/smart_service/add_ons/doctype/circular/__init__.py b/smart_service/add_ons/doctype/circular/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/circular/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/circular/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..9daf7ea Binary files /dev/null and b/smart_service/add_ons/doctype/circular/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/circular/__pycache__/circular.cpython-38.pyc b/smart_service/add_ons/doctype/circular/__pycache__/circular.cpython-38.pyc new file mode 100644 index 0000000..c2da72d Binary files /dev/null and b/smart_service/add_ons/doctype/circular/__pycache__/circular.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/circular/__pycache__/test_circular.cpython-38.pyc b/smart_service/add_ons/doctype/circular/__pycache__/test_circular.cpython-38.pyc new file mode 100644 index 0000000..ca73529 Binary files /dev/null and b/smart_service/add_ons/doctype/circular/__pycache__/test_circular.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/circular/circular.js b/smart_service/add_ons/doctype/circular/circular.js new file mode 100644 index 0000000..1fd4980 --- /dev/null +++ b/smart_service/add_ons/doctype/circular/circular.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Circular', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/add_ons/doctype/circular/circular.json b/smart_service/add_ons/doctype/circular/circular.json new file mode 100644 index 0000000..cd16d28 --- /dev/null +++ b/smart_service/add_ons/doctype/circular/circular.json @@ -0,0 +1,101 @@ +{ + "actions": [], + "autoname": "Circular.####", + "creation": "2021-11-08 16:35:38.322741", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "column_break_2", + "status", + "valid_till", + "section_break_4", + "description", + "amended_from" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1 + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "in_list_view": 1, + "label": "Description", + "reqd": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Circular", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "fieldname": "valid_till", + "fieldtype": "Date", + "label": "Valid Till" + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2021-11-17 12:44:50.899725", + "modified_by": "Administrator", + "module": "Add Ons", + "name": "Circular", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "search_fields": "description, status", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "title", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/add_ons/doctype/circular/circular.py b/smart_service/add_ons/doctype/circular/circular.py new file mode 100644 index 0000000..7126e4a --- /dev/null +++ b/smart_service/add_ons/doctype/circular/circular.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Circular(Document): + pass diff --git a/smart_service/add_ons/doctype/circular/test_circular.py b/smart_service/add_ons/doctype/circular/test_circular.py new file mode 100644 index 0000000..793309c --- /dev/null +++ b/smart_service/add_ons/doctype/circular/test_circular.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestCircular(unittest.TestCase): + pass diff --git a/smart_service/add_ons/doctype/user_feedback/__init__.py b/smart_service/add_ons/doctype/user_feedback/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/user_feedback/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..69ffda2 Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback/__pycache__/test_user_feedback.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback/__pycache__/test_user_feedback.cpython-38.pyc new file mode 100644 index 0000000..7542ced Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback/__pycache__/test_user_feedback.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback/__pycache__/user_feedback.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback/__pycache__/user_feedback.cpython-38.pyc new file mode 100644 index 0000000..93732fa Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback/__pycache__/user_feedback.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback/test_user_feedback.py b/smart_service/add_ons/doctype/user_feedback/test_user_feedback.py new file mode 100644 index 0000000..6608b76 --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback/test_user_feedback.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestUserFeedback(unittest.TestCase): + pass diff --git a/smart_service/add_ons/doctype/user_feedback/user_feedback.js b/smart_service/add_ons/doctype/user_feedback/user_feedback.js new file mode 100644 index 0000000..8b4271e --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback/user_feedback.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('User Feedback', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/add_ons/doctype/user_feedback/user_feedback.json b/smart_service/add_ons/doctype/user_feedback/user_feedback.json new file mode 100644 index 0000000..9d9a33c --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback/user_feedback.json @@ -0,0 +1,114 @@ +{ + "actions": [], + "autoname": "format:{subject}", + "creation": "2021-11-08 16:59:12.277597", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "subject", + "feedback_type", + "attachment", + "column_break_2", + "user_name", + "status", + "date", + "section_break_8", + "description" + ], + "fields": [ + { + "fieldname": "subject", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Subject", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "user_name", + "fieldtype": "Link", + "in_list_view": 1, + "label": "User Name", + "options": "App Users" + }, + { + "fieldname": "feedback_type", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Feedback Type", + "options": "User Feedback_Types", + "reqd": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Status", + "options": "Open\nClosed\nReopened", + "reqd": 1 + }, + { + "fieldname": "attachment", + "fieldtype": "Attach", + "label": "Attachment" + }, + { + "fieldname": "section_break_8", + "fieldtype": "Section Break" + }, + { + "fieldname": "description", + "fieldtype": "Text Editor", + "label": "Description" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Date", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-30 10:52:58.715538", + "modified_by": "Administrator", + "module": "Add Ons", + "name": "User Feedback", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/add_ons/doctype/user_feedback/user_feedback.py b/smart_service/add_ons/doctype/user_feedback/user_feedback.py new file mode 100644 index 0000000..7e0c2ff --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback/user_feedback.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class UserFeedback(Document): + pass diff --git a/smart_service/add_ons/doctype/user_feedback_types/__init__.py b/smart_service/add_ons/doctype/user_feedback_types/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/user_feedback_types/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..d2f8a00 Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback_types/__pycache__/test_user_feedback_types.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/test_user_feedback_types.cpython-38.pyc new file mode 100644 index 0000000..8273f9e Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/test_user_feedback_types.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback_types/__pycache__/user_feedback_types.cpython-38.pyc b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/user_feedback_types.cpython-38.pyc new file mode 100644 index 0000000..b7cd0f8 Binary files /dev/null and b/smart_service/add_ons/doctype/user_feedback_types/__pycache__/user_feedback_types.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_feedback_types/test_user_feedback_types.py b/smart_service/add_ons/doctype/user_feedback_types/test_user_feedback_types.py new file mode 100644 index 0000000..1c16aba --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback_types/test_user_feedback_types.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestUserFeedback_Types(unittest.TestCase): + pass diff --git a/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.js b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.js new file mode 100644 index 0000000..d1108d6 --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('User Feedback_Types', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.json b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.json new file mode 100644 index 0000000..bde8dad --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.json @@ -0,0 +1,65 @@ +{ + "actions": [], + "autoname": "format:{feedback_type}", + "creation": "2021-11-08 16:50:12.082948", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "feedback_type", + "status" + ], + "fields": [ + { + "fieldname": "feedback_type", + "fieldtype": "Data", + "label": "Feedback Type", + "reqd": 1 + }, + { + "fieldname": "status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Status", + "options": "Active\nInactive", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-08 17:10:06.584852", + "modified_by": "Administrator", + "module": "Add Ons", + "name": "User Feedback_Types", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "search_fields": "status", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "feedback_type", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.py b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.py new file mode 100644 index 0000000..0d86e6f --- /dev/null +++ b/smart_service/add_ons/doctype/user_feedback_types/user_feedback_types.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class UserFeedback_Types(Document): + pass diff --git a/smart_service/add_ons/doctype/user_manual/__init__.py b/smart_service/add_ons/doctype/user_manual/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/add_ons/doctype/user_manual/__pycache__/__init__.cpython-38.pyc b/smart_service/add_ons/doctype/user_manual/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..8429be0 Binary files /dev/null and b/smart_service/add_ons/doctype/user_manual/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_manual/__pycache__/test_user_manual.cpython-38.pyc b/smart_service/add_ons/doctype/user_manual/__pycache__/test_user_manual.cpython-38.pyc new file mode 100644 index 0000000..92e3b46 Binary files /dev/null and b/smart_service/add_ons/doctype/user_manual/__pycache__/test_user_manual.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_manual/__pycache__/user_manual.cpython-38.pyc b/smart_service/add_ons/doctype/user_manual/__pycache__/user_manual.cpython-38.pyc new file mode 100644 index 0000000..3a0e719 Binary files /dev/null and b/smart_service/add_ons/doctype/user_manual/__pycache__/user_manual.cpython-38.pyc differ diff --git a/smart_service/add_ons/doctype/user_manual/test_user_manual.py b/smart_service/add_ons/doctype/user_manual/test_user_manual.py new file mode 100644 index 0000000..5bd006a --- /dev/null +++ b/smart_service/add_ons/doctype/user_manual/test_user_manual.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestUserManual(unittest.TestCase): + pass diff --git a/smart_service/add_ons/doctype/user_manual/user_manual.js b/smart_service/add_ons/doctype/user_manual/user_manual.js new file mode 100644 index 0000000..6c4fb6f --- /dev/null +++ b/smart_service/add_ons/doctype/user_manual/user_manual.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('User Manual', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/add_ons/doctype/user_manual/user_manual.json b/smart_service/add_ons/doctype/user_manual/user_manual.json new file mode 100644 index 0000000..486668f --- /dev/null +++ b/smart_service/add_ons/doctype/user_manual/user_manual.json @@ -0,0 +1,65 @@ +{ + "actions": [], + "autoname": "format:{title}", + "creation": "2021-11-08 17:06:43.108947", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "title", + "description", + "manual" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Title", + "reqd": 1 + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Description", + "reqd": 1 + }, + { + "fieldname": "manual", + "fieldtype": "Attach", + "label": "Manual" + } + ], + "index_web_pages_for_search": 1, + "issingle": 1, + "links": [], + "modified": "2021-11-08 17:09:22.249843", + "modified_by": "Administrator", + "module": "Add Ons", + "name": "User Manual", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "email": 1, + "print": 1, + "read": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/add_ons/doctype/user_manual/user_manual.py b/smart_service/add_ons/doctype/user_manual/user_manual.py new file mode 100644 index 0000000..661c664 --- /dev/null +++ b/smart_service/add_ons/doctype/user_manual/user_manual.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class UserManual(Document): + pass diff --git a/smart_service/apis/__pycache__/addon_api.cpython-38.pyc b/smart_service/apis/__pycache__/addon_api.cpython-38.pyc new file mode 100644 index 0000000..7887e4c Binary files /dev/null and b/smart_service/apis/__pycache__/addon_api.cpython-38.pyc differ diff --git a/smart_service/apis/__pycache__/master_api.cpython-38.pyc b/smart_service/apis/__pycache__/master_api.cpython-38.pyc new file mode 100644 index 0000000..2426b7b Binary files /dev/null and b/smart_service/apis/__pycache__/master_api.cpython-38.pyc differ diff --git a/smart_service/apis/__pycache__/publish_api.cpython-38.pyc b/smart_service/apis/__pycache__/publish_api.cpython-38.pyc new file mode 100644 index 0000000..99b614e Binary files /dev/null and b/smart_service/apis/__pycache__/publish_api.cpython-38.pyc differ diff --git a/smart_service/apis/__pycache__/transaction_api.cpython-38.pyc b/smart_service/apis/__pycache__/transaction_api.cpython-38.pyc new file mode 100644 index 0000000..bbf73a6 Binary files /dev/null and b/smart_service/apis/__pycache__/transaction_api.cpython-38.pyc differ diff --git a/smart_service/apis/addon_api.py b/smart_service/apis/addon_api.py new file mode 100644 index 0000000..a29fc77 --- /dev/null +++ b/smart_service/apis/addon_api.py @@ -0,0 +1,15 @@ +import frappe +from frappe.model.document import Document +import json + +@frappe.whitelist() +def addon(args): + if args == "Circular": + api = frappe.db.get_list('Circular',fields=['name','title','status','description','valid_till']) + elif args == "user feedback types": + api = frappe.db.get_list('User Feedback_Types',fields=['name','feedback_type','status']) + elif args == "User Feedback": + api = frappe.db.get_list('User Feedback',fields=['name','status','feedback_type','date','user_name']) + else: + api = "Not found" + return api \ No newline at end of file diff --git a/smart_service/apis/master_api.py b/smart_service/apis/master_api.py new file mode 100644 index 0000000..a537ad2 --- /dev/null +++ b/smart_service/apis/master_api.py @@ -0,0 +1,74 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +import json + + +@frappe.whitelist() +def masters(args): + + + + if args == "Vehicle": + api = frappe.db.get_list('Vehicle', fields=[ + 'vehicle', 'vehicle_segment', 'vehicle_segment_id', 'active_status', 'display_order', 'myid as vechile_id', 'display_order']) + elif args == "Variant": + api = frappe.db.get_list('Variant', fields=[ + 'vehicle', 'vehicle_segment', 'variant', 'active_status', 'vehicle_id']) + elif args == "Vehicle Segment": + api = frappe.db.get_list('Vehicle Segment', fields=[ + 'vehicle_segment', 'active_status', 'display_order', 'myid as vehicle_segment_id']) + elif args == "Transmission": + api = frappe.db.get_list('Transmission', fields=[ + 'transmission', 'active_status', 'myid as transmission_id']) + elif args == "Drive": + api = frappe.db.get_list( + 'Drive', fields=['drive', 'active_status', 'myid as drive_id']) + elif args == "Fuel": + api = frappe.db.get_list( + 'Fuel', fields=['fuel', 'active_status', 'myid as fuel_id']) + elif args == "Systems": + api = frappe.db.get_list('Systems', fields=[ + 'system_name', 'active_status', 'icon_file', 'myid as system_id']) + elif args == "Sub Systems": + api = frappe.db.get_list('Sub Systems', fields=[ + 'sub_system_name', 'active_status', 'myid as sub_system_id']) + elif args == "Service Kilometers": + api = frappe.db.get_list('Service Kilometers', fields=[ + 'kilometer', 'active_status', 'myid as service_kilometers_id']) + elif args == "Custom Languages": + api = frappe.db.get_list('Custom Languages', fields=[ + 'lang_name', 'lang_code', 'active_status', 'display_order','myid as lang_id']) + elif args == "Translation": + api = frappe.db.get_list('Translation', fields=[ + 'language', 'source_text', 'translated_text']) + elif args == "App Labels": + api = labels_json() + return api + +def labels_json(): + labels_lst = frappe.db.sql("""SELECT `tabApp Labels`.name as name,`tabApp Labels`.page_name as menu_type, `tabApp Labels`.english_label as element, `tabApp Labels`.language as lang, `tabApp Labels`.label as label, `tabApp Labels`.parent_app_labels as parent FROM _d6463952657fa86c.`tabApp Labels` order by name asc""", as_dict=1) + # final = [] + # labels = set() + # for i in labels_lst: + # if i['name'] != None: + # labels.add(i['element']) + # for j in labels: + # temp_lst = [] + # temp_dict = [] + # for k in labels_lst: + # if j == k['element'] and k['lang'] == 'en': + # temp = k + # elif j == k['element'] and k['lang'] != 'en': + # temp_lst.append(k) + # temp['Translations'] = temp_lst + # temp_dict.append(temp) + # final.append(temp) + # # x = json.dumps(final) + # # frappe.msgprint(str(final)) + return labels_lst + +def print(inputText): + frappe.msgprint(str(inputText)) diff --git a/smart_service/apis/publish_api.py b/smart_service/apis/publish_api.py new file mode 100644 index 0000000..f371370 --- /dev/null +++ b/smart_service/apis/publish_api.py @@ -0,0 +1,150 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +import json + + +class Publish(Document): + pass + + +list1 = [] + + +def getParentMapData(input_list, parameter): + parentChildMap = {} + for b in input_list: + parentChildMap.setdefault(b[parameter] or None, []).append(b) + return parentChildMap + + +@frappe.whitelist() +def api_procedure(args): + x = jsonGrouping(args) + docs_child = frappe.db.get_list('Publish_Docs', filters={'parent': args}, fields=[ + 'variant_mapping', 'system', 'sub_system', 'procedure_status', 'procedure_link']) + for d in docs_child: + if d['procedure_link'] != None: + docs_children = frappe.db.get_list('Procedure_Details', filters={'parent': d['procedure_link']}, fields=[ + 'procedure_name', 'step_name', 'content_type', 'content', 'file', 'idx as display_order'], order_by='idx') + daa = getParentMapData(docs_children, 'procedure_name') + d['ProcedureDetails'] = daa + list1.append(d) + # print(list1) + + with open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/json_files/procedurePublish.json", 'w') as f: + json.dump(x, f) + return json.dumps(x) + + +def print(inputText): + frappe.msgprint(str(inputText)) + + +def jsonGrouping(args): + docs_child = frappe.db.get_list('Publish_Docs', filters={'parent': args,'procedure_status': 'Publish Ready'}, fields=[ + 'variant_mapping', 'system', 'sub_system', 'procedure_status', 'procedure_link']) + lang = frappe.db.get_list('Publish', filters={'name': args}, fields=[ + 'language']) + lang = lang[0] + # print(docs_child) + # print(docs_child) + variant = set() + system = {} + subsystem = {} + for i in docs_child: + variant.add(i['variant_mapping']) + + for i in variant: + temp = set() + for j in docs_child: + if j['variant_mapping'] == i: + temp.add(j['system']) + system[i] = temp + + for i in variant: + temp_set = {} + for j in system[i]: + temp = set() + for k in docs_child: + if i == k['variant_mapping'] and j == k['system']: + temp.add(k['sub_system']) + temp_set[j] = temp + subsystem[i] = temp_set + + print(variant) + print(system) + print(subsystem) + final = [] + final_count={} + count=0 + for d in variant: + variant_out = {} + # print(d) + + + vari = frappe.db.get_list('Variant Mapping', filters={'name': d}, fields=[ + 'name', 'variant', 'vehicle', 'family_code', 'vehicle_segment', 'active_status', 'fuel', 'transmission', 'drive']) + sk = frappe.db.get_list('Variant Mapping_SK', filters={'parent': d}, fields=[ + 'service_kilometers', 'idx'], order_by='service_kilometers asc') + var_asset = frappe.db.sql('''SELECT category, attach_file as file, active_status FROM _d6463952657fa86c.`tabVariant Mapping_Assets` where category<>'Technical Manual' and parent='%s' and language='%s';''' %(d, lang['language']), as_dict=True) + vari = vari[0] + vari['Assets'] = var_asset + vari['Service Kilometres'] = sk + variant_out['Variant'] = vari + + system_out = [] + for i in system[d]: + + sys = frappe.db.sql('''SELECT min(`tabSystem Mapping_Sub System`.idx) as systemdisplayorder,tabSystems.system_name,tabSystems.active_status,tabSystems.icon_file,tabSystems.myid FROM _d6463952657fa86c.tabSystems + inner join _d6463952657fa86c.`tabSystem Mapping_Sub System` on tabSystems.system_name = `tabSystem Mapping_Sub System`.systems where system_name = '%s' group by system_name ;''' %i, as_dict=True) + sys = sys[0] + sysassets = frappe.db.sql('''SELECT idx as systemdisplayorder, system_asset FROM _d6463952657fa86c.`tabSystem Mapping_System Assets` where parent like '{0}%' and language='{1}' and systems='{2}';''' .format(d, lang['language'], i), as_dict=True) + # print(sysassets) + sys['Assets']=sysassets + + # print(sys) + subsystem_out=[] + for j in subsystem[d][i]: + # subsys = frappe.db.get_list('Sub Systems', filters={'name': j}, fields=[ + # 'name','active_status']) + subsys=frappe.db.sql('''select `tabSystem Mapping_Sub System`.idx as subSystemdisplayorder, systems,sub_systems, symptom, component, estimated_time, rts, mat, cover_image, `tabSystem Mapping_Sub System`.active_status + from _d6463952657fa86c.`tabSystem Mapping_Sub System` inner join _d6463952657fa86c.`tabSub Systems` on `tabSystem Mapping_Sub System`.sub_systems = `tabSub Systems`.name + where `tabSystem Mapping_Sub System`.parent like '{0}-{3}%' and systems='{1}' and sub_systems='{2}';'''.format(d, i, j,lang['language']), as_dict=True) + subsys=subsys[0] + kms=frappe.db.sql( + '''SELECT kilometer as kilometer_name, idx as kilometer_IDX, applicable as kilometers_applicable FROM _d6463952657fa86c.`tabKilometer Mapping_Items` where sub_systems='%s';''' %j, as_dict=True) + subsys['Config Kilometer']=kms + for k in docs_child: + if k['variant_mapping'] == d and k['system'] == i and k['sub_system'] == j: + proc_details=frappe.db.get_list('Procedure_Details', filters={'parent': k['procedure_link']}, fields=[ + 'procedure_name', 'step_name', 'content_type', 'content', 'file', 'idx as display_order'], order_by='idx') + temp_data=getParentMapData(proc_details, 'procedure_name') + k['ProcedureDetails']=temp_data + subsys['procedure_status']=k['procedure_status'] + subsys['procedure_link']=k['procedure_link'] + subsys['ProcedureDetails']=k['ProcedureDetails'] + stepcount=frappe.db.sql('''SELECT count(*) as Stepcount FROM _d6463952657fa86c.tabProcedure_Details where parent='{0}';'''.format(k['procedure_link']), as_dict=True) + stepcount=stepcount[0] + count=count+int(stepcount['Stepcount']) + + subsystem_out.append(subsys) + sys['Subsystems']=subsystem_out + system_out.append(sys) + + # print(subsys) + + variant_out['Variant']['Systems']=system_out + + + + final.append(variant_out) + final_count['StepCount'] = count + final.append(final_count) + + frappe.db.sql(""" UPDATE _d6463952657fa86c.tabPublish SET publish_status = '%s' where name = '%s' """%('Published',args)) + frappe.db.commit() + + return final diff --git a/smart_service/apis/transaction_api.py b/smart_service/apis/transaction_api.py new file mode 100644 index 0000000..291e934 --- /dev/null +++ b/smart_service/apis/transaction_api.py @@ -0,0 +1,12 @@ +import frappe +from frappe.model.document import Document +import json + +@frappe.whitelist() +def get_repair_manual(vehicle,variant,fuel,transmission,drive): + key_dict = frappe.db.sql('''SELECT name as variantkey, vehicle, variant, fuel, transmission, drive FROM _d6463952657fa86c.`tabVariant Mapping` where vehicle='{0}' and variant='{1}' and fuel='{2}' and transmission='{3}' and drive='{4}';'''.format(vehicle,variant,fuel,transmission,drive), as_dict=True) + key_dict=key_dict[0] + variantkey=key_dict['variantkey'] + manual_out=frappe.db.sql('''SELECT parent as variant, language, attach_file as file FROM _d6463952657fa86c.`tabVariant Mapping_Assets` where parent='{0}' and category='Technical Manual' and parentfield = 'assets';'''.format(variantkey), as_dict=True) + + return manual_out \ No newline at end of file diff --git a/smart_service/config/__init__.py b/smart_service/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/config/__pycache__/__init__.cpython-38.pyc b/smart_service/config/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..02086ae Binary files /dev/null and b/smart_service/config/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/config/__pycache__/desktop.cpython-38.pyc b/smart_service/config/__pycache__/desktop.cpython-38.pyc new file mode 100644 index 0000000..db71d12 Binary files /dev/null and b/smart_service/config/__pycache__/desktop.cpython-38.pyc differ diff --git a/smart_service/config/__pycache__/docs.cpython-38.pyc b/smart_service/config/__pycache__/docs.cpython-38.pyc new file mode 100644 index 0000000..d847be2 Binary files /dev/null and b/smart_service/config/__pycache__/docs.cpython-38.pyc differ diff --git a/smart_service/config/desktop.py b/smart_service/config/desktop.py new file mode 100644 index 0000000..cf83ddf --- /dev/null +++ b/smart_service/config/desktop.py @@ -0,0 +1,12 @@ +from frappe import _ + +def get_data(): + return [ + { + "module_name": "Mahindra Smart Service", + "color": "grey", + "icon": "oction octicon-tools", + "type": "module", + "label": _("Mahindra Smart Service") + } + ] diff --git a/smart_service/config/docs.py b/smart_service/config/docs.py new file mode 100644 index 0000000..c964454 --- /dev/null +++ b/smart_service/config/docs.py @@ -0,0 +1,11 @@ +""" +Configuration for docs +""" + +# source_link = "https://github.com/[org_name]/smart_service" +# docs_base_url = "https://[org_name].github.io/smart_service" +# headline = "App that does everything" +# sub_heading = "Yes, you got that right the first time, everything" + +def get_context(context): + context.brand_html = "Mahindra Smart Service" diff --git a/smart_service/hooks.py b/smart_service/hooks.py new file mode 100644 index 0000000..d63c836 --- /dev/null +++ b/smart_service/hooks.py @@ -0,0 +1,187 @@ +from . import __version__ as app_version + +app_name = "smart_service" +app_title = "Mahindra Smart Service" +app_publisher = "Hard n Soft Technologies Pvt Ltd" +app_description = "Mahindra Smart Service (Formarly: Guided Repair Manual)" +app_icon = "" +app_color = "#E31A37" +app_email = "siva@hnsonline.com" +app_license = "MIT" +app_logo_url = "/assets/smart_service/images/Mahindra_Newlogo.png" + +# for desk css +app_include_css = ["/assets/css/smart_service.min.css"] +# for web css +web_include_css = ["/assets/css/smart_service.min.css"] + +# Icons +website_context = { +"favicon": "/assets/smart_service/images/Mahindra_title.png", +"splash_image": "/assets/smart_service/images/Mahindra_Newlogo.png", +"app_name" : "smart service" +} +# Includes in +# ------------------ + +# include js, css files in header of desk.html +# app_include_css = "/assets/smart_service/css/smart_service.css" +# app_include_js = "/assets/smart_service/js/smart_service.js" + +# include js, css files in header of web template +# web_include_css = "/assets/smart_service/css/smart_service.css" +# web_include_js = "/assets/smart_service/js/smart_service.js" + +# include custom scss in every website theme (without file extension ".scss") +# website_theme_scss = "smart_service/public/scss/website" + +# include js, css files in header of web form +# webform_include_js = {"doctype": "public/js/doctype.js"} +# webform_include_css = {"doctype": "public/css/doctype.css"} + +# include js in page +# page_js = {"page" : "public/js/file.js"} + +# include js in doctype views +# doctype_js = {"doctype" : "public/js/doctype.js"} +# doctype_list_js = {"doctype" : "public/js/doctype_list.js"} +# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} +# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} + +# Home Pages +# ---------- + +# application home page (will override Website Settings) +# home_page = "login" + +# website user home page (by Role) +# role_home_page = { +# "Role": "home_page" +# } + +# Generators +# ---------- + +# automatically create page for each record of this doctype +# website_generators = ["Web Page"] + +# Installation +# ------------ + +# before_install = "smart_service.install.before_install" +# after_install = "smart_service.install.after_install" + +# Desk Notifications +# ------------------ +# See frappe.core.notifications.get_notification_config + +# notification_config = "smart_service.notifications.get_notification_config" + +# Permissions +# ----------- +# Permissions evaluated in scripted ways + +# permission_query_conditions = { +# "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", +# } +# +# has_permission = { +# "Event": "frappe.desk.doctype.event.event.has_permission", +# } + +# DocType Class +# --------------- +# Override standard doctype classes + +# override_doctype_class = { +# "ToDo": "custom_app.overrides.CustomToDo" +# } + +# Document Events +# --------------- +# Hook on document methods and events + +# doc_events = { +# "*": { +# "on_update": "method", +# "on_cancel": "method", +# "on_trash": "method" +# } +# } + +# Scheduled Tasks +# --------------- + +# scheduler_events = { +# "all": [ +# "smart_service.tasks.all" +# ], +# "daily": [ +# "smart_service.tasks.daily" +# ], +# "hourly": [ +# "smart_service.tasks.hourly" +# ], +# "weekly": [ +# "smart_service.tasks.weekly" +# ] +# "monthly": [ +# "smart_service.tasks.monthly" +# ] +# } + +# Testing +# ------- + +# before_tests = "smart_service.install.before_tests" + +# Overriding Methods +# ------------------------------ +# +# override_whitelisted_methods = { +# "frappe.desk.doctype.event.event.get_events": "smart_service.event.get_events" +# } +# +# each overriding function accepts a `data` argument; +# generated from the base implementation of the doctype dashboard, +# along with any modifications made in other Frappe apps +# override_doctype_dashboards = { +# "Task": "smart_service.task.get_dashboard_data" +# } + +# exempt linked doctypes from being automatically cancelled +# +# auto_cancel_exempted_doctypes = ["Auto Repeat"] + + +# User Data Protection +# -------------------- + +user_data_fields = [ + { + "doctype": "{doctype_1}", + "filter_by": "{filter_by}", + "redact_fields": ["{field_1}", "{field_2}"], + "partial": 1, + }, + { + "doctype": "{doctype_2}", + "filter_by": "{filter_by}", + "partial": 1, + }, + { + "doctype": "{doctype_3}", + "strict": False, + }, + { + "doctype": "{doctype_4}" + } +] + +# Authentication and authorization +# -------------------------------- + +# auth_hooks = [ +# "smart_service.auth.validate" +# ] + diff --git a/smart_service/json_files/procedurePublish.json b/smart_service/json_files/procedurePublish.json new file mode 100644 index 0000000..854cf67 --- /dev/null +++ b/smart_service/json_files/procedurePublish.json @@ -0,0 +1 @@ +[{"Variant": {"name": "Thar.AX-0311", "variant": "Thar.AX", "vehicle": "Thar", "family_code": "J08", "vehicle_segment": "Personal", "active_status": "Active", "fuel": "DSL", "transmission": "MT", "drive": "4WD", "Assets": [{"category": "TSB", "file": "/files/Mahindra.jpg", "active_status": "Active"}, {"category": "Tekalert", "file": "/files/Air-Filter-Element-Clean_ico.jpg", "active_status": "Active"}, {"category": "FSA", "file": "/files/Air-Filter-Element-Clean_ico.jpg", "active_status": "Active"}], "Service Kilometres": [{"service_kilometers": "1000", "idx": 1}, {"service_kilometers": "10000", "idx": 2}, {"service_kilometers": "100000", "idx": 11}, {"service_kilometers": "20000", "idx": 3}, {"service_kilometers": "30000", "idx": 4}, {"service_kilometers": "40000", "idx": 5}, {"service_kilometers": "50000", "idx": 6}, {"service_kilometers": "60000", "idx": 7}, {"service_kilometers": "70000", "idx": 8}, {"service_kilometers": "80000", "idx": 9}, {"service_kilometers": "90000", "idx": 10}], "Systems": [{"systemdisplayorder": 1, "system_name": "Air Intake", "active_status": "Active", "icon_file": null, "myid": "1000", "Assets": [], "Subsystems": [{"subSystemdisplayorder": 2, "systems": "Air Intake", "sub_systems": "Air Filter Element Replace", "symptom": 0, "component": 0, "estimated_time": null, "rts": null, "mat": "Show", "cover_image": "", "active_status": "Active", "Config Kilometer": [{"kilometer_name": "90000", "kilometer_IDX": 29, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 11, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 8, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 26, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 17, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 32, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 5, "kilometers_applicable": 1}, {"kilometer_name": "40000", "kilometer_IDX": 14, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 2, "kilometers_applicable": 1}, {"kilometer_name": "60000", "kilometer_IDX": 20, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 23, "kilometers_applicable": 1}], "procedure_status": "Publish Ready", "procedure_link": "Thar.AX-0311-Air Filter Element Replace-en", "ProcedureDetails": {"Overview": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 2}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 3}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Description", "content": "", "file": "", "display_order": 4}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Notice", "content": "", "file": "", "display_order": 5}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on flat work bay.
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": "", "display_order": 6}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "display_order": 7}], "Removal": [{"procedure_name": "Removal", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 8}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 9}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Caution", "content": "", "file": "", "display_order": 10}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Description", "content": "", "file": "", "display_order": 11}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "display_order": 12}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "display_order": 13}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "Description", "content": "", "file": "", "display_order": 14}], "Installation": [{"procedure_name": "Installation", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 15}, {"procedure_name": "Installation", "step_name": "Step-1", "content_type": "Description", "content": "", "file": "", "display_order": 16}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "display_order": 17}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Description", "content": "", "file": "", "display_order": 18}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Caution", "content": "", "file": "", "display_order": 19}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Caution", "content": "", "file": "", "display_order": 20}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "display_order": 21}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "Description", "content": "", "file": "", "display_order": 22}]}}]}, {"systemdisplayorder": 6, "system_name": "Fuel System", "active_status": "Active", "icon_file": null, "myid": "1002", "Assets": [], "Subsystems": [{"subSystemdisplayorder": 7, "systems": "Fuel System", "sub_systems": "Water In Fuel Filter - Clean", "symptom": 0, "component": 0, "estimated_time": null, "rts": null, "mat": "Show", "cover_image": null, "active_status": "Active", "Config Kilometer": [{"kilometer_name": "60000", "kilometer_IDX": 14, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 12, "kilometers_applicable": 1}, {"kilometer_name": "90000", "kilometer_IDX": 20, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 33, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 4, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 6, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 2, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 6, "kilometers_applicable": 1}, {"kilometer_name": "40000", "kilometer_IDX": 15, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 16, "kilometers_applicable": 1}, {"kilometer_name": "90000", "kilometer_IDX": 30, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 8, "kilometers_applicable": 1}, {"kilometer_name": "60000", "kilometer_IDX": 21, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 3, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 12, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 27, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 24, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 18, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 18, "kilometers_applicable": 1}, {"kilometer_name": "40000", "kilometer_IDX": 10, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 22, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 9, "kilometers_applicable": 1}], "procedure_status": "Publish Ready", "procedure_link": "Thar.AX-0311-Water In Fuel Filter - Clean-en", "ProcedureDetails": {"Overview": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 2}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on level work bay.
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": "", "display_order": 3}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "display_order": 4}], "Sediment Draining": [{"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 5}, {"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "Description", "content": "
Connect the transparent pipe to the drain \u00a0plug outlet of the fuel filter assembly
", "file": "", "display_order": 6}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "display_order": 7}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Description", "content": "", "file": "", "display_order": 8}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Caution", "content": "", "file": "", "display_order": 9}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "display_order": 10}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "Description", "content": "", "file": "", "display_order": 11}, {"procedure_name": "Sediment Draining", "step_name": "Step-4", "content_type": "Description", "content": "", "file": "", "display_order": 12}]}}]}]}}, {"Variant": {"name": "Thar.AX-0328", "variant": "Thar.AX", "vehicle": "Thar", "family_code": "J09", "vehicle_segment": "Personal", "active_status": "Active", "fuel": "DSL", "transmission": "AT", "drive": "4WD", "Assets": [], "Service Kilometres": [{"service_kilometers": "1000", "idx": 1}, {"service_kilometers": "10000", "idx": 2}, {"service_kilometers": "100000", "idx": 11}, {"service_kilometers": "20000", "idx": 3}, {"service_kilometers": "30000", "idx": 4}, {"service_kilometers": "40000", "idx": 5}, {"service_kilometers": "50000", "idx": 6}, {"service_kilometers": "60000", "idx": 7}, {"service_kilometers": "70000", "idx": 8}, {"service_kilometers": "80000", "idx": 9}, {"service_kilometers": "90000", "idx": 10}], "Systems": [{"systemdisplayorder": 1, "system_name": "Brakes", "active_status": "Active", "icon_file": null, "myid": "1016", "Assets": [{"systemdisplayorder": 1, "system_asset": "/files/Mahindra.jpg"}], "Subsystems": [{"subSystemdisplayorder": 2, "systems": "Brakes", "sub_systems": "Inter cooler", "symptom": 0, "component": 0, "estimated_time": null, "rts": null, "mat": "mat", "cover_image": null, "active_status": "Active", "Config Kilometer": [{"kilometer_name": "40000", "kilometer_IDX": 9, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 21, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 11, "kilometers_applicable": 1}, {"kilometer_name": "90000", "kilometer_IDX": 19, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 3, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 5, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 15, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 17, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 1, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 7, "kilometers_applicable": 1}, {"kilometer_name": "60000", "kilometer_IDX": 13, "kilometers_applicable": 1}], "procedure_status": "Publish Ready", "procedure_link": "Thar.AX-0328-Inter cooler-en", "ProcedureDetails": {"Overview": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "display_order": 2}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Description", "content": "The intercooler typically an air-to-air heat exchanger. Intercooler cools the air compressed by the turbocharger by reducing its temperature and increasing the density of the air supplied to the engine and thus improving the volumetric efficiency by increasing intake air charge density through nearly isobaric (constant pressure) cooling. The cooled air density improves, helping in increasing the power output and improving the fuel consumption.", "file": "", "display_order": 3}], "Removal and Installation": [{"procedure_name": "Removal and Installation", "step_name": "Step-1", "content_type": "Description", "content": "Using 10 mm socket spanner, Loosen battery negative terminal mounting nut and disconnect the terminal.", "file": "", "display_order": 4}, {"procedure_name": "Removal and Installation", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 5}, {"procedure_name": "Removal and Installation", "step_name": "Step-1", "content_type": "Caution", "content": "Should not remove the battery connection when the EWP is ON, Ensure to disconnect only when the EWP is off, Failing to do may affect the dozing module performance.Before disconnecting the battery, check for the audible sound of EWP \u00a0ON.", "file": "", "display_order": 6}, {"procedure_name": "Removal and Installation", "step_name": "Step-1", "content_type": "Torque Value", "content": "Torque : 6.0\u00b10.6 Nm", "file": "", "display_order": 7}, {"procedure_name": "Removal and Installation", "step_name": "Step-2", "content_type": "Description", "content": "Using 7 mm socket spanner, Loosen the intercooler inlet hose clip and disconnect the hose intercooler end.", "file": "", "display_order": 8}, {"procedure_name": "Removal and Installation", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "display_order": 9}, {"procedure_name": "Removal and Installation", "step_name": "Step-2", "content_type": "Torque Value", "content": "Torque : 6.5\u00b10.6 Nm", "file": "", "display_order": 10}, {"procedure_name": "Removal and Installation", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "display_order": 11}, {"procedure_name": "Removal and Installation", "step_name": "Step-3", "content_type": "Description", "content": "Using 7 mm socket spanner, Loosen the intercooler outlet hose clip and disconnect the hose intercooler end.", "file": "", "display_order": 12}, {"procedure_name": "Removal and Installation", "step_name": "Step-3", "content_type": "Torque Value", "content": "Torque : 6.5\u00b10.6 Nm", "file": "", "display_order": 13}, {"procedure_name": "Removal and Installation", "step_name": "Step-4", "content_type": "File", "content": "", "file": "", "display_order": 14}, {"procedure_name": "Removal and Installation", "step_name": "Step-4", "content_type": "Description", "content": "Using 10 mm socket spanner, remove boost pressure sensor mounting bolt and detach it.", "file": "", "display_order": 15}, {"procedure_name": "Removal and Installation", "step_name": "Step-4", "content_type": "Torque Value", "content": "Torque : 2.5 \u00b1 0.5 Nm", "file": "", "display_order": 16}, {"procedure_name": "Removal and Installation", "step_name": "Step-5", "content_type": "File", "content": "", "file": "", "display_order": 17}, {"procedure_name": "Removal and Installation", "step_name": "Step-5", "content_type": "Description", "content": "Disconnect the boost pressure sensor electrical connector.", "file": "", "display_order": 18}, {"procedure_name": "Removal and Installation", "step_name": "Step-6", "content_type": "File", "content": "", "file": "", "display_order": 19}, {"procedure_name": "Removal and Installation", "step_name": "Step-6", "content_type": "Description", "content": "Using 10 mm socket spanner, Unscrew degassing tank mounting bolts and partially detach it.", "file": "", "display_order": 20}, {"procedure_name": "Removal and Installation", "step_name": "Step-6", "content_type": "Torque Value", "content": "Torque : 4.5\u00b10.5 Nm", "file": "", "display_order": 21}, {"procedure_name": "Removal and Installation", "step_name": "Step-7", "content_type": "File", "content": "", "file": "", "display_order": 22}, {"procedure_name": "Removal and Installation", "step_name": "Step-7", "content_type": "Description", "content": "Using 13 mm Socket Spanner, Unscrew the Intercooler mounting bolts.", "file": "", "display_order": 23}, {"procedure_name": "Removal and Installation", "step_name": "Step-7", "content_type": "Torque Value", "content": "Torque : 12.5 \u00b1 1.5 Nm", "file": "", "display_order": 24}, {"procedure_name": "Removal and Installation", "step_name": "Step-8", "content_type": "File", "content": "", "file": "", "display_order": 25}, {"procedure_name": "Removal and Installation", "step_name": "Step-8", "content_type": "File", "content": "", "file": "", "display_order": 26}, {"procedure_name": "Removal and Installation", "step_name": "Step-8", "content_type": "Description", "content": "Carefully remove the intercooler from vehicle.", "file": "", "display_order": 27}, {"procedure_name": "Removal and Installation", "step_name": "Step-9", "content_type": "Description", "content": "Install in the reverse order of removal.", "file": "", "display_order": 28}], "Inspection": [{"procedure_name": "Inspection", "step_name": "Step-1", "content_type": "Description", "content": "Check for the external damage. If found replace it.Check for any oil seepage ,if found please inspect the turbocharger for any oil leakage.Inspect intercooler hoses for any damage. Replace if found any.Inspect intercooler rubber Isolators for any damage. Replace if found any.", "file": "", "display_order": 29}], "Summary": [{"procedure_name": "Summary", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "display_order": 30}, {"procedure_name": "Summary", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "display_order": 31}]}}, {"subSystemdisplayorder": 1, "systems": "Brakes", "sub_systems": "Water In Fuel Filter - Clean", "symptom": 0, "component": 0, "estimated_time": null, "rts": null, "mat": "mat", "cover_image": null, "active_status": "Active", "Config Kilometer": [{"kilometer_name": "60000", "kilometer_IDX": 14, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 12, "kilometers_applicable": 1}, {"kilometer_name": "90000", "kilometer_IDX": 20, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 33, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 4, "kilometers_applicable": 1}, {"kilometer_name": "10000", "kilometer_IDX": 6, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 2, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 6, "kilometers_applicable": 1}, {"kilometer_name": "40000", "kilometer_IDX": 15, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 16, "kilometers_applicable": 1}, {"kilometer_name": "90000", "kilometer_IDX": 30, "kilometers_applicable": 1}, {"kilometer_name": "30000", "kilometer_IDX": 8, "kilometers_applicable": 1}, {"kilometer_name": "60000", "kilometer_IDX": 21, "kilometers_applicable": 1}, {"kilometer_name": "1000", "kilometer_IDX": 3, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 12, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 27, "kilometers_applicable": 1}, {"kilometer_name": "70000", "kilometer_IDX": 24, "kilometers_applicable": 1}, {"kilometer_name": "80000", "kilometer_IDX": 18, "kilometers_applicable": 1}, {"kilometer_name": "50000", "kilometer_IDX": 18, "kilometers_applicable": 1}, {"kilometer_name": "40000", "kilometer_IDX": 10, "kilometers_applicable": 1}, {"kilometer_name": "100000", "kilometer_IDX": 22, "kilometers_applicable": 1}, {"kilometer_name": "20000", "kilometer_IDX": 9, "kilometers_applicable": 1}], "procedure_status": "Publish Ready", "procedure_link": "Thar.AX-0328-Water In Fuel Filter - Clean-en", "ProcedureDetails": {"Overview": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": null, "display_order": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": null, "display_order": 2}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on level work bay.
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": null, "display_order": 3}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": null, "display_order": 4}], "Sediment Draining": [{"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "File", "content": "", "file": null, "display_order": 5}, {"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "Description", "content": "
Connect the transparent pipe to the drain \u00a0plug outlet of the fuel filter assembly
", "file": null, "display_order": 6}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "File", "content": "", "file": null, "display_order": 7}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Description", "content": "", "file": null, "display_order": 8}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Caution", "content": "", "file": null, "display_order": 9}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "File", "content": "", "file": null, "display_order": 10}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "Description", "content": "", "file": null, "display_order": 11}, {"procedure_name": "Sediment Draining", "step_name": "Step-4", "content_type": "Description", "content": "", "file": null, "display_order": 12}]}}]}]}}, {"StepCount": 77}] \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/__init__.py b/smart_service/mahindra_smart_service/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..0bbb251 Binary files /dev/null and b/smart_service/mahindra_smart_service/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/__init__.py b/smart_service/mahindra_smart_service/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/doctype/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..b434d19 Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release/__init__.py b/smart_service/mahindra_smart_service/doctype/release/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/doctype/release/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/release/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..f43e951 Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/release/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release/__pycache__/release.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/release/__pycache__/release.cpython-38.pyc new file mode 100644 index 0000000..b73891e Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/release/__pycache__/release.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release/__pycache__/test_release.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/release/__pycache__/test_release.cpython-38.pyc new file mode 100644 index 0000000..f163809 Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/release/__pycache__/test_release.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release/release.js b/smart_service/mahindra_smart_service/doctype/release/release.js new file mode 100644 index 0000000..3e6b89c --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release/release.js @@ -0,0 +1,7 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Release', { + // refresh: function(frm) { + // } +}); diff --git a/smart_service/mahindra_smart_service/doctype/release/release.json b/smart_service/mahindra_smart_service/doctype/release/release.json new file mode 100644 index 0000000..64517f5 --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release/release.json @@ -0,0 +1,75 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "Ver.####", + "creation": "2021-11-01 12:28:45.623316", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "planned_release_date", + "actual_release_date", + "column_break_3", + "release_description", + "section_break_5", + "docs" + ], + "fields": [ + { + "fieldname": "planned_release_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Planned Release Date", + "reqd": 1 + }, + { + "fieldname": "actual_release_date", + "fieldtype": "Date", + "label": "Actual Release Date", + "read_only": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "release_description", + "fieldtype": "Small Text", + "label": "Release Description" + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break" + }, + { + "fieldname": "docs", + "fieldtype": "Table", + "label": "Docs", + "options": "Release_Docs" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-01 12:53:41.695352", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "Release", + "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", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/doctype/release/release.py b/smart_service/mahindra_smart_service/doctype/release/release.py new file mode 100644 index 0000000..677a61b --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release/release.py @@ -0,0 +1,20 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document +import frappe +import json +class Release(Document): + pass + + + +@frappe.whitelist() +def api_vehicle_map(): + doc = frappe.get_doc('Systems','Reverse Parking Assistance System') +# doc = frappe.get_doc({ +# 'doctype': 'Procedure', +# 'name': 'Thar-AX-0001-Air Filter Element Clean-en' +# }) + return doc \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/doctype/release/test_release.py b/smart_service/mahindra_smart_service/doctype/release/test_release.py new file mode 100644 index 0000000..7ea7557 --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release/test_release.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestRelease(unittest.TestCase): + pass diff --git a/smart_service/mahindra_smart_service/doctype/release_docs/__init__.py b/smart_service/mahindra_smart_service/doctype/release_docs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..482e9c8 Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/release_docs.cpython-38.pyc b/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/release_docs.cpython-38.pyc new file mode 100644 index 0000000..c45082e Binary files /dev/null and b/smart_service/mahindra_smart_service/doctype/release_docs/__pycache__/release_docs.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.json b/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.json new file mode 100644 index 0000000..f99feac --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.json @@ -0,0 +1,39 @@ +{ + "actions": [], + "creation": "2021-11-01 12:27:23.263495", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "doc_type", + "doc_id" + ], + "fields": [ + { + "fieldname": "doc_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Doc Type", + "options": "DocType" + }, + { + "fieldname": "doc_id", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Doc ID", + "options": "doc_type" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-01 12:29:04.655386", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "Release_Docs", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.py b/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.py new file mode 100644 index 0000000..3855f59 --- /dev/null +++ b/smart_service/mahindra_smart_service/doctype/release_docs/release_docs.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Release_Docs(Document): + pass diff --git a/smart_service/mahindra_smart_service/report/__init__.py b/smart_service/mahindra_smart_service/report/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..76f80b3 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/__init__.py b/smart_service/mahindra_smart_service/report/_drive_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..f7d8fce Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/_drive_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/_drive_translation.cpython-38.pyc new file mode 100644 index 0000000..4c88ff8 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_drive_translation/__pycache__/_drive_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.js b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.js new file mode 100644 index 0000000..dbe4eaf --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.js @@ -0,0 +1,20 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Drive Translation"] = { + "filters": [ + + ], + + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.json b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.json new file mode 100644 index 0000000..8879706 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.json @@ -0,0 +1,32 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-29 12:15:09.820884", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-29 12:15:09.820884", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Drive Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Drive", + "report_name": "_Drive Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "_Admin" + }, + { + "role": "System Manager" + }, + { + "role": "_Master Read" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.py b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.py new file mode 100644 index 0000000..d7ba14e --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_drive_translation/_drive_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabDrive`.modified as "Modified On", + `tabDrive`.active_status as "Status", + `tabDrive`.drive as 'Drive' + + + %s + From _d6463952657fa86c.`tabDrive` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabDrive`.drive = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabDrive`.drive = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabDrive Segment`.modified as "Modified On", + # `tabDrive Segment`.active_status as "Status", + # `tabDrive Segment`.drive_segment as 'drive Segment' , + # `tabDrive Segment`.drive_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabDrive Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabDrive Segment`.drive_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabDrive Segment`.drive_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Drive") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabDrive Segment`.modified as "Modified On", +# `tabDrive Segment`.active_status as "Status", +# `tabDrive Segment`.drive_segment as 'drive Segment' , +# `tabDrive Segment`.drive_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabDrive Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabDrive Segment`.drive_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabDrive Segment`.drive_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_file_structure/__init__.py b/smart_service/mahindra_smart_service/report/_file_structure/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..4771ef9 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/_file_structure.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/_file_structure.cpython-38.pyc new file mode 100644 index 0000000..3014780 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_file_structure/__pycache__/_file_structure.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.js b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.js new file mode 100644 index 0000000..1e8f844 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.js @@ -0,0 +1,229 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +const pictures = ['jpg','jpeg','png','tif','tiff','ico','bmp','gif','eps','raw']; +const videos = ['avi','mp4','mov','wmv','webm','mkv','3gp']; +const pdfs = ['pdf']; +const documents =['doc','docx','txt','odt','ppt','pptx']; +const spreadsheets=['ods','xls','xlsx']; + + + + +frappe.query_reports["_File Structure"] = { + "filters": [ + + ], + + "formatter": function (value, row, column, data, default_formatter) { + if(data && column.fieldname=="filename" && data.folder==0){ + if(data.private==1){ + if(pictures.includes(data.fileformat)){ + // console.log(data); + value = `

+ + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(pdfs.includes(data.fileformat)){ + value = `

+ + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(spreadsheets.includes(data.fileformat)){ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(documents.includes(data.fileformat)){ + value = `

+ + + + + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(videos.includes(data.fileformat)){ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else{ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + } + + } else if(data.private==0){ + if(pictures.includes(data.fileformat)){ + // console.log(data); + value = `

+ + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(pdfs.includes(data.fileformat)){ + value = `

+ + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(spreadsheets.includes(data.fileformat)){ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(documents.includes(data.fileformat)){ + value = `

+ + + + + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else if(videos.includes(data.fileformat)){ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + }else{ + value = `

+ + + + + + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_file(" + JSON.stringify(data.filename) + ")" + } + } + } + else if(data && column.fieldname=="filename" && data.folder==1) { + if(data.private==1){ + value = `

+ + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_folder(" + JSON.stringify(data.filename) + ")" + }else if(data.private==0){ + value = `

+ + + + +       ${value}

` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_folder(" + JSON.stringify(data.filename) + ")" + } + }else{ + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_folder(" + JSON.stringify(data.filename) + ")" + } + if(data && column.fieldname=="private" ){ + if(data.private==1){ + column.align='left'; + value = ` Private ` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_folder(" + JSON.stringify(data.filename) + ")" + }else if(data.private==0){ + column.align='left'; + value = ` Public   ` + column.link_onclick = "frappe.query_reports['_File Structure'].set_route_to_folder(" + JSON.stringify(data.filename) + ")" + } + } + if(data && column.fieldname=="path" ){ + column.align='left'; + } + if(data && column.fieldname=="attached_to" ){ + column.align='left'; + } + if(data && column.fieldname=="modified" ){ + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + }, + + "set_route_to_file": function (data) { + // console.log(data); + // window.open("http://ss.hnsonline.com:81/files/" + data); + window.open("http://192.168.1.58:81/files/" + data); + }, + + "set_route_to_folder": function (data) { + // console.log(data); + // window.open("http://ss.hnsonline.com:81/files/" + data); + + }, + "tree": true, + "name_field": "filename", + "parent_field": "", + "initial_depth": 0 +}; diff --git a/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.json b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.json new file mode 100644 index 0000000..d9b754d --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.json @@ -0,0 +1,43 @@ +{ + "add_total_row": 0, + "columns": [ + { + "fieldname": "filename", + "fieldtype": "Dynamic Link", + "label": "Files and Folders", + "width": 300 + }, + { + "fieldname": "attached_to", + "fieldtype": "Dynamic Link", + "label": "Attached To", + "width": 0 + } + ], + "creation": "2021-11-03 16:08:49.650166", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "json": "{}", + "modified": "2021-11-10 15:06:12.308461", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_File Structure", + "owner": "mahibaalana@hnsonline.com", + "prepared_report": 0, + "ref_doctype": "File", + "report_name": "_File Structure", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "All" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.py b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.py new file mode 100644 index 0000000..2a58413 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_file_structure/_file_structure.py @@ -0,0 +1,168 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +import datetime + + +def execute(filters=None): + data = files_tree() + columns = get_columns() + return columns, data + + + +#Import data, process and return tree +def files_tree(): + # files_list = [{'filename': 'Air Filter Element - Clean.mp4', 'modified': datetime.datetime(2021, 11, 2, 15, 26, 40, 660271), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'Attachments', 'modified': datetime.datetime(2021, 10, 28, 10, 5, 31, 64495), 'path': 'Home', 'folder': 1, 'home': 0, 'attached_to': None}, {'filename': 'Home', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 515878), 'path': None, 'folder': 1, 'home': 1, 'attached_to': None}, {'filename': 'HR', 'modified': datetime.datetime(2021, 10, 29, 18, 38, 4, 699706), 'path': 'Home', 'folder': 1, 'home': 0, 'attached_to': None}, {'filename': 'HR-EMP-00014.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 37, 30, 841175), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'chitra@hnsonlie.com'}, {'filename': 'HR-EMP-00014.jpg', 'modified': datetime.datetime(2021, 10, 30, 11, 59, 55, 430869), 'path': 'Home/Attachments', 'folder': 0, 'home': 0, 'attached_to': 'chitra@hnsonline.com'}, {'filename': 'HR-EMP-00027.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 37, 30, 831552), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'radhika@hnsonline.com'}, {'filename': 'HR-EMP-00123.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 37, 30, 850617), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'lincy@hnsoline.com'}, {'filename': 'HR-EMP-00123.jpg', 'modified': datetime.datetime(2021, 10, 30, 11, 52, 41, 949433), 'path': 'Home/Attachments', 'folder': 0, 'home': 0, 'attached_to': 'lincy@hnsonline.com'}, {'filename': 'HR-EMP-00198.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 37, 30, 810586), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'mahibaalana@hnsonline.com'}, {'filename': 'HR-EMP-00265.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 38, 4, 670057), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'new-procedure-2'}, {'filename': 'HR-EMP-00265.jpg', 'modified': datetime.datetime(2021, 10, 29, 18, 37, 30, 859817), 'path': 'Home/HR', 'folder': 0, 'home': 0, 'attached_to': 'mohammedmusthaqr@hnsonline.com'}, {'filename': 'Mahindra-1-insights.jpg', 'modified': datetime.datetime(2021, 11, 8, 18, 33, 4, 881826), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Administrator'}, {'filename': 'MAN-00968_Repair Manual THAR mHAWK130 Diesel MT AT_Rev5 - HI.pdf', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 492050), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001'}, {'filename': 'MAN-00968_Repair Manual THAR mHAWK130 Diesel MT AT_Rev5.pdf', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 505751), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001'}, {'filename': 'Sub_Systems.xlsx', 'modified': datetime.datetime(2021, 10, 29, 16, 40, 22, 424448), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Sub Systems Import on 2021-10-29 16:35:38.714291'}, {'filename': 'TestFile1', 'modified': datetime.datetime(2021, 10, 28, 10, 5, 31, 64495), 'path': 'Home/THAR/TestFolder/TestFolder1', 'folder': 0, 'home': 0, 'attached_to': None}, {'filename': 'TestFolder1', 'modified': datetime.datetime(2021, 10, 28, 10, 5, 31, 64495), 'path': 'Home/THAR/TestFolder', 'folder': 1, 'home': 0, 'attached_to': None}, {'filename': 'TestFile', 'modified': datetime.datetime(2021, 10, 28, 10, 5, 31, 64495), 'path': 'Home/THAR/TestFolder', 'folder': 0, 'home': 0, 'attached_to': None}, {'filename': 'TestFolder', 'modified': datetime.datetime(2021, 10, 28, 10, 5, 31, 64495), 'path': 'Home/THAR', 'folder': 1, 'home': 0, 'attached_to': None}, {'filename': 'THAR', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 521651), 'path': 'Home', 'folder': 1, 'home': 0, 'attached_to': None}, {'filename': 'Variant_Mapping_upload.xlsx', 'modified': datetime.datetime(2021, 10, 29, 17, 37, 5, 497102), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Variant Mapping Import on 2021-10-29 17:35:30.519107'}, {'filename': 'W1A140025.jpg', 'modified': datetime.datetime(2021, 11, 2, 18, 8, 34, 893967), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'new-system-mapping-2'}, {'filename': 'W4A020008.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 456818), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'new-procedure-1'}, {'filename': 'W4A020008b09d62.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 446269), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'new-procedure-2'}, {'filename': 'W4A020008b09d62.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 436281), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'new-procedure-2'}, {'filename': 'W4A020011.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 359736), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020012.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 331649), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020012.jpg', 'modified': datetime.datetime(2021, 11, 3, 11, 24, 18, 934831), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Chassis System'}, {'filename': 'W4A020012.jpg', 'modified': datetime.datetime(2021, 11, 3, 11, 15, 38, 753147), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Ignition System'}, {'filename': 'W4A020013.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 373176), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020016.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 399755), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020017.jpg', 'modified': datetime.datetime(2021, 11, 8, 17, 0, 34, 563139), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'new-user-feedback-1'}, {'filename': 'W4A020017.jpg', 'modified': datetime.datetime(2021, 11, 2, 13, 0, 7, 947262), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020123.jpg', 'modified': datetime.datetime(2021, 11, 8, 17, 8, 21, 37288), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'User Manual'}, {'filename': 'W4A020123.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 425834), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020123a3a61c.jpg', 'modified': datetime.datetime(2021, 11, 2, 13, 1, 44, 612418), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020123a3a61c.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 412820), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020124.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 55, 26, 386603), 'path': 'Home/THAR', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}, {'filename': 'W4A020124f5c6bd.jpg', 'modified': datetime.datetime(2021, 11, 2, 12, 59, 23, 383773), 'path': 'Home', 'folder': 0, 'home': 0, 'attached_to': 'Thar-AX-0001-Air Filter Element Clean'}] + files_lst = frappe.db.sql("""SELECT tabFile.file_name as filename, tabFile.modified as modified, tabFile.is_private as private, tabFile.folder as path, tabFile.is_folder as folder, tabFile.is_home_folder as home, + tabFile.attached_to_name as attached_to FROM tabFile order by filename asc""", as_dict=1) + classified = classification(files_lst) + indented = indentation(classified) + tree = arrangement(indented) + return tree + +#Classification of Files, folders and root folder +def classification(files_list): + b = [] + for i in files_list: + if i['folder'] == 0 and i['home'] == 0: + # print('File:',i['filename']) + # print('Path:',i['path']) + Path_items = i['path'].split('/') + fileformat = i['filename'].split('.') + length = Path_items.__len__() + i['Depth'] = length + i['type'] = 'file' + i['Path_items']=Path_items + i['fileformat']=fileformat[-1] + # print(Path) + # print(Path.__len__()) + + elif i['folder'] == 1 and i['home'] == 0: + # print('Folder:',i['filename']) + # print('Path:',i['path']) + Path_items = i['path'].split('/') + length = Path_items.__len__() + i['Depth'] = length + i['type'] = 'folder' + i['Path_items']=Path_items + i['fileformat']='folder' + # print(Path) + # print(Path.__len__()) + # print(Path[-1]) + elif i['folder'] == 1 and i['home'] == 1: + # print('Root:',i['filename']) + # print('Path:',i['path']) + length = 0 + i['Depth'] = length + i['type'] = 'root' + i['fileformat']='home' + # print(len) + b.append(i) + return b + + +#Adding Indents based on their depth +def indentation(b): + c = {} + for i in b: + if i['folder'] == 1 and i['home'] == 1: + i['indent'] = 0 + lst = [] + lst.append(i) + c['root'] = lst + + elif i['folder'] == 1 and i['home'] == 0: + lst = [] + temp1=[] + temp2=[] + for j in b: + pathinfo = 'Home' + indent = pathinfo.count('/') + if pathinfo == j['path']: + j['indent'] = indent+1 + if j['folder']==1: + temp1.append(j) + elif j['folder']==0: + temp2.append(j) + for k in temp1: + lst.append(k) + for l in temp2: + lst.append(l) + c[pathinfo] = lst + lst = [] + temp1=[] + temp2=[] + for j in b: + pathinfo = i['path']+'/'+i['filename'] + indent = pathinfo.count('/') + if pathinfo == j['path']: + j['indent'] = indent+1 + if j['folder']==1: + temp1.append(j) + elif j['folder']==0: + temp2.append(j) + for k in temp1: + lst.append(k) + for l in temp2: + lst.append(l) + c[pathinfo] = lst + return c + +#Arranging them to the required order for frappe +def arrangement(c): + out=[] + temp=c['root'] + out.append(temp[0]) + temp1= 'Home' + def repeating_method(temp2,c): + for x in c[temp2]: + out.append(x) + if x['folder']==1 and x['home']==0: + temp3=x['path']+'/'+x['filename'] + repeating_method(temp3,c) + repeating_method(temp1,c) + return out + + +#Columns to be displayed in tree view +def get_columns(): + return [ + { + "fieldname": "filename", + "label": _("Files and Folders"), + "fieldtype": 'Dynamic Link', + "options": "", + "width": 550 + }, + { + "fieldname": "private", + "label": _("Permission"), + "fieldtype": 'Data', + "options": "", + "width": 96 + }, + { + "fieldname": "path", + "label": _("Path"), + "fieldtype": "Data", + "options": "", + "width": 175 + }, + { + "fieldname": "attached_to", + "label": _("Attached to"), + "fieldtype": 'Dynamic Link', + "options": "", + "width": 175 + }, + { + "fieldname": "modified", + "label": _("Modified On"), + "fieldtype": "Data", + "options": "", + "width": 220 + } + ] diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/__init__.py b/smart_service/mahindra_smart_service/report/_fuel_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..10c5209 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc new file mode 100644 index 0000000..725a1fa Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.js b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.js new file mode 100644 index 0000000..59cb1c4 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Fuel Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.json b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.json new file mode 100644 index 0000000..22a589c --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-24 16:55:09.198495", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-26 17:08:23.995237", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Fuel Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Fuel", + "report_name": "_Fuel Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Admin" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.py b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.py new file mode 100644 index 0000000..f4f1184 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_fuel_translation/_fuel_translation.py @@ -0,0 +1,145 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM `tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabFuel`.modified as "Modified On", + `tabFuel`.active_status as "Status", + `tabFuel`.fuel as 'Fuel' + + %s + From `tabFuel` + LEFT JOIN `tabTranslation` as tabTrans + ON `tabFuel`.fuel = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,tabTranslation.source_text as sourceText + , tabTranslation.translated_text as translated_text + %s + From tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM tabLanguage as tanLang) as tabLang + ON tabTranslation.language = tabLang.languageCode) as tabTranslation + ON `tabFuel`.fuel = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Fuel") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/__init__.py b/smart_service/mahindra_smart_service/report/_procedure_report/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..5213704 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/_procedure_report.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/_procedure_report.cpython-38.pyc new file mode 100644 index 0000000..b363c37 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_procedure_report/__pycache__/_procedure_report.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.js b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.js new file mode 100644 index 0000000..feacaf7 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.js @@ -0,0 +1,157 @@ +// Copyright (c) 2016, Frappe Technologies and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Procedure Report"] = { + "filters": [ + { + "fieldname": "variant_mapping", + "label": __("Variant Mapping"), + "fieldtype": "Link", + "options": "Variant Mapping", + }, + ], + + "formatter": function (value, row, column, data, default_formatter) { + + // if (data && column.fieldname == "procedure_name") { + // if (data.indent != 0 && data.indent != 1) { + // column.link_onclick = "frappe.query_reports['_Procedure Report'].set_route(" + JSON.stringify(data.parent) + ")" + // } + // else { + // column.link_onclick = " " + // } + // } + + if (data && column.fieldname == "procedure_name") { + switch (data.indent) { + case 3: + value = `

+ + + + + + + + + + +    ${value}

` + break; + case 2: + value = `

+ + + + + + + +   ${value}

` + break; + case 1: + value = `

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   ${value}

` + break; + case 0: + value = `

  ${value}

` + break; + default: + value = `

   + + + + + + + +    ${value}

` + break; + } + } + if (data && column.fieldname == "length") { + column.align = 'center'; + switch (data.indent) { + case 2: + value = ` ${value} Procedures` + break; + case 3: + value = ` ${value} Steps` + break; + } + } + if (data && column.fieldname == "active_status") { + column.align = 'center'; + switch (value) { + case "Active": + value = ` ${value} ` + break; + + case "Inactive": + value = ` ${value} ` + break; + } + } + + if (data && column.fieldname == "workflow_state") { + column.link_onclick = "frappe.query_reports['_Procedure Report'].set_route(" + JSON.stringify(data.procedure) + ")" + } + + value = default_formatter(value, row, column, data); + return value; + }, + "set_route": function (data) { + console.log(data) + frappe.set_route("Form", "Procedure", data) + }, + // "set_route_to_procedure": function (data) { + // da = "http://192.168.1.58:81/printview?doctype=Procedure&name=" + data + "&format=Standard&no_letterhead=1&letterhead=No%20Letterhead&settings=%7B%7D&_lang=en" + // window.open(da); + // }, + "tree": true, + "name_field": "procedure_name", + "parent_field": "", + "initial_depth": 2 +}; diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.json b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.json new file mode 100644 index 0000000..1a908bc --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.json @@ -0,0 +1,38 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-10 12:27:31.252097", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [ + { + "fieldname": "Variant Mapping", + "fieldtype": "Link", + "label": "Variant Mapping", + "mandatory": 1, + "options": "Variant Mapping", + "wildcard_filter": 0 + } + ], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-11 14:30:33.952027", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Procedure Report", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Procedure", + "report_name": "_Procedure Report", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Author" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.py b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.py new file mode 100644 index 0000000..8e928a4 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_procedure_report/_procedure_report.py @@ -0,0 +1,222 @@ +# # Copyright (c) 2013, Frappe Technologies and contributors +# # License: MIT. See LICENSE +from __future__ import unicode_literals +import functools +import frappe +from frappe import _ + + +def execute(filters=None): + validate_filters(filters) + data = get_data(filters) + columns = get_columns() + return columns, data + +def validate_filters(filters): + return + +def get_data(filters): + fil = None + if(filters.variant_mapping!=None): + fil = filters.variant_mapping + "%" + + data = frappe.db.sql( + """ + select `tabSystem Mapping_Sub System`.parent,`tabSystem Mapping_Sub System`.systems,`tabSystem Mapping_Sub System`.sub_systems,`tabSystem Mapping_Sub System`.`procedure` , + `tabProcedure_Details`.idx ,`tabProcedure_Details`.procedure_name ,`tabProcedure_Details`.step_name, + `tabProcedure`.active_status,`tabProcedure`.workflow_state + from (`tabSystem Mapping_Sub System` + inner join tabProcedure_Details + on `tabSystem Mapping_Sub System`.`procedure` = `tabProcedure_Details`.parent ) + inner join tabProcedure + on `tabSystem Mapping_Sub System`.`procedure` = tabProcedure.name + where `tabSystem Mapping_Sub System`.parent LIKE %s + GROUP by `tabSystem Mapping_Sub System`.`procedure` ,tabProcedure_Details.procedure_name ,tabProcedure_Details.step_name + order by `tabSystem Mapping_Sub System`.systems ,`tabSystem Mapping_Sub System`.sub_systems,`procedure`,idx; + """,fil,as_dict=True) + + + filterData = filters.variant_mapping + if(filterData!=None and len(data) > 0): + data = modifyData(data,filterData) + return data + + +def modifyData(dataInput,filterParent): + list1 = [] + inputData = modifyChildData(dataInput, indent=4, header=0) + parentAppend = addParent(filterParent, indent=0, header=1) + list1.insert(0, parentAppend[0]) + + sMap, sSize = getParentMap(inputData, 'systems') + + for i in sMap: + sMap1, sSize1 = getParentMap(sMap[i], 'systems') + sMapAppend = appendToDic1(sMap1, filterParent, indent=1, header=0) + list1.append(sMapAppend[0]) + + ssMap, ssSize = getParentMap(sMap[i], 'sub_systems') + ssMapAppend = appendToDic2(ssMap, indent=2, header=1) + + for j in ssMapAppend: + val = j['procedure_name'] + procMap, procSize = getParentMap(ssMap[val], 'procedure_name') + procValuesDic = appendToDic3(procMap, procSize, j, indent=3, header = 0) + + j['length'] = len(procValuesDic) + list1.append(j) + + for d in procValuesDic: + list1.append(d) + pval = d['procedure_name'] + + for s in procMap[pval]: + s['procedure_name']= s['step_name'] + list1.append(s) + + appendData = addDuplicateData(list1) + appendData = removeDuplicateAndHeader(appendData) + return appendData + +def appendToDic1(mapData, parent, indent, header): + mapDataAppend = [] + for d in mapData: + active = mapData[d][0]['active_status'] + keyDict = { + 'systems': "", + 'sub_systems': "", + 'parent': d, + 'procedure_name': d, + 'active_status': active, + 'indent': indent, + 'header': header + } + mapDataAppend.append(keyDict) + return mapDataAppend + +def appendToDic2(mapData, indent, header): + mapDataAppend = [] + for d in mapData: + da = mapData[d][0] + keyDict = { + 'systems': da['systems'], + 'sub_systems': da['sub_systems'], + 'parent': da['parent'], + 'procedure_name': d, + 'active_status':da['active_status'], + 'indent': indent, + 'header': header, + 'workflow_state': da['workflow_state'], + 'procedure': da['procedure'], + } + mapDataAppend.append(keyDict) + return mapDataAppend + +def appendToDic3(mapData,procSize,j,indent,header): + mapDataAppend = [] + i = 0 + for u in mapData: + procDict = { + 'systems': mapData[u][0]['systems'], + 'sub_systems': mapData[u][0]['sub_systems'], + 'parent': j["parent"], + 'procedure_name': u, + 'active_status': "Active", + 'indent': indent, + 'header': header, + 'length': procSize[i] + } + i+=1 + mapDataAppend.append(procDict) + return mapDataAppend + + +def modifyChildData(childData, indent, header): + for a in childData: + a.update({'indent': indent}) + a.update({'header': header}) + return childData + +def addParent(variantParent, indent, header): + varParDict = [{ + 'systems': "", + 'sub_systems': "", + 'parent': variantParent, + 'procedure_name': variantParent, + 'indent': indent, + 'header':header + }] + return varParDict + +def getParentMap(input_list, parameter): + sizeList = [] + parentChildMap = {} + for b in input_list: + parentChildMap.setdefault(b[parameter] or None, []).append(b) + for c in parentChildMap: + sizeList.append(len(parentChildMap[c])) + return parentChildMap, sizeList + +def addDuplicateData(data1): + prevValue = "" + for i in data1: + if i['procedure_name'] == prevValue: + dup = {"duplicate": "yes"} + else: + dup = {"duplicate": "no"} + i.update(dup) + prevValue = i['procedure_name'] + return data1 + +def removeDuplicateAndHeader(data1): + for k in data1: + if k['header'] == 0: + k['active_status'] = "" + k['workflow_state'] = "" + return data1 + +def print(dataText): + frappe.msgprint(str(dataText)) + + +def get_columns(): + columns = [ + { + "fieldname": "procedure_name", + "label": _("Procedures"), + "fieldtype": "Data", + "width": 400 + }, + { + "fieldname": "active_status", + "label": _("Status"), + "fieldtype": "Data", + "options": "", + "width": 100 + }, + { + "fieldname":"length", + "label":"Elements Length", + "fieldtype":"Data", + "width": 150 + }, + { + "fieldname": "workflow_state", + "label": _("English"), + "fieldtype": "Link", + "options": "Procedure", + "width": 150 + } + ] + + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" """,as_dict=1) + lang=[] + for i in custom_lang: + langField = { + "fieldname": i['lang_name'], + "label": i['lang_name'], + "width": 150 + } + lang.append(langField) + columns += lang + return columns \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/__init__.py b/smart_service/mahindra_smart_service/report/_sub_systems_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..1d91e97 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/_sub_systems_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/_sub_systems_translation.cpython-38.pyc new file mode 100644 index 0000000..0da2b2a Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_sub_systems_translation/__pycache__/_sub_systems_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.js b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.js new file mode 100644 index 0000000..1f6f75c --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Sub Systems Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.json b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.json new file mode 100644 index 0000000..d9bb52c --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.json @@ -0,0 +1,30 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-03 17:06:30.300691", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-18 13:02:56.502032", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Sub Systems Translation", + "owner": "mahibaalana@hnsonline.com", + "prepared_report": 0, + "query": "Select `tabSub Systems`.modified as 'Modified On',`tabSub Systems`.active_status as 'Status', `tabSub Systems`.sub_system_name as 'Sub System' \n,\n`tabSub Systems`.sub_system_name as 'English', tabTranslation.gu as \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0, tabTranslation.hi as \u0939\u093f\u0902\u0926\u0940, tabTranslation.kn as \u0c95\u0ca8\u0ccd\u0ca8\u0ca1, tabTranslation.ml as \u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02, tabTranslation.mr as \u092e\u0930\u093e\u0920\u0940, tabTranslation.ta as \u0ba4\u0bae\u0bbf\u0bb4\u0bcd, tabTranslation.te as \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41\n\nFrom _d6463952657fa86c.`tabSub Systems`\nLEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans \nON _d6463952657fa86c.`tabSub Systems`.sub_system_name = tabTrans.source_text\n\nLEFT JOIN (Select tabLang.languageCode as languageCode\n,_d6463952657fa86c.tabTranslation.source_text as sourceText\n, _d6463952657fa86c.tabTranslation.translated_text as translated_text\n, (CASE WHEN tabLang.languageCode = \"en\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en\n, (CASE WHEN tabLang.languageCode = \"gu\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu\n, (CASE WHEN tabLang.languageCode = \"hi\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi\n, (CASE WHEN tabLang.languageCode = \"kn\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn\n, (CASE WHEN tabLang.languageCode = \"ml\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml\n, (CASE WHEN tabLang.languageCode = \"mr\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr\n, (CASE WHEN tabLang.languageCode = \"ta\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta\n, (CASE WHEN tabLang.languageCode = \"te\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te\nFrom _d6463952657fa86c.tabTranslation\nINNER JOIN (SELECT tanLang.language_name as language_name\n, tanLang.language_code as languageCode \nFROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang\nON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation\nON _d6463952657fa86c.`tabSub Systems`.sub_system_name = tabTranslation.sourceText;", + "ref_doctype": "Systems", + "report_name": "_Sub Systems Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Author" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.py b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.py new file mode 100644 index 0000000..24b90d4 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_sub_systems_translation/_sub_systems_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabSub Systems`.modified as "Modified On", + `tabSub Systems`.active_status as "Status", + `tabSub Systems`.sub_system_name as 'Vehicle Segment' + + + %s + From _d6463952657fa86c.`tabSub Systems` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabSub Systems`.sub_system_name = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabSub Systems`.sub_system_name = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Sub Systems") + ":Data/:300", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::300") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/__init__.py b/smart_service/mahindra_smart_service/report/_systems_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..94ea9aa Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/_systems_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/_systems_translation.cpython-38.pyc new file mode 100644 index 0000000..db1f8aa Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_systems_translation/__pycache__/_systems_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.js b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.js new file mode 100644 index 0000000..9086ba6 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Systems Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.json b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.json new file mode 100644 index 0000000..686d297 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.json @@ -0,0 +1,30 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-03 16:56:50.175508", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-18 12:55:26.914599", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Systems Translation", + "owner": "mahibaalana@hnsonline.com", + "prepared_report": 0, + "query": "Select tabSystems.modified as 'Modified On', tabSystems.active_status as 'Status' ,tabSystems.system_name as 'System Name'\n,\ntabSystems.system_name as 'English', tabTranslation.gu as \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0, tabTranslation.hi as \u0939\u093f\u0902\u0926\u0940, tabTranslation.kn as \u0c95\u0ca8\u0ccd\u0ca8\u0ca1, tabTranslation.ml as \u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02, tabTranslation.mr as \u092e\u0930\u093e\u0920\u0940, tabTranslation.ta as \u0ba4\u0bae\u0bbf\u0bb4\u0bcd, tabTranslation.te as \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41\n\nFrom _d6463952657fa86c.tabSystems\nLEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans \nON _d6463952657fa86c.tabSystems.system_name = tabTrans.source_text\n\nLEFT JOIN (Select tabLang.languageCode as languageCode\n,_d6463952657fa86c.tabTranslation.source_text as sourceText\n, _d6463952657fa86c.tabTranslation.translated_text as translated_text\n, (CASE WHEN tabLang.languageCode = \"en\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en\n, (CASE WHEN tabLang.languageCode = \"gu\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu\n, (CASE WHEN tabLang.languageCode = \"hi\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi\n, (CASE WHEN tabLang.languageCode = \"kn\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn\n, (CASE WHEN tabLang.languageCode = \"ml\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml\n, (CASE WHEN tabLang.languageCode = \"mr\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr\n, (CASE WHEN tabLang.languageCode = \"ta\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta\n, (CASE WHEN tabLang.languageCode = \"te\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te\nFrom _d6463952657fa86c.tabTranslation\nINNER JOIN (SELECT tanLang.language_name as language_name\n, tanLang.language_code as languageCode \nFROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang\nON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation\nON _d6463952657fa86c.tabSystems.system_name = tabTranslation.sourceText;", + "ref_doctype": "Systems", + "report_name": "_Systems Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Author" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.py b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.py new file mode 100644 index 0000000..a1c5059 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_systems_translation/_systems_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabSystems`.modified as "Modified On", + `tabSystems`.active_status as "Status", + `tabSystems`.system_name as 'Vehicle Segment' + + + %s + From _d6463952657fa86c.`tabSystems` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabSystems`.system_name = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabSystems`.system_name = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Systems") + ":Data/:300", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::300") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/__init__.py b/smart_service/mahindra_smart_service/report/_transmission_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..fcea61d Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/_transmission_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/_transmission_translation.cpython-38.pyc new file mode 100644 index 0000000..e588862 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_transmission_translation/__pycache__/_transmission_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.js b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.js new file mode 100644 index 0000000..3124715 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Transmission Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.json b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.json new file mode 100644 index 0000000..0ca425a --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.json @@ -0,0 +1,32 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-29 12:14:17.565403", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-29 12:14:17.565403", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Transmission Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Transmission", + "report_name": "_Transmission Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Admin" + }, + { + "role": "_Master Read" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.py b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.py new file mode 100644 index 0000000..a1f883c --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_transmission_translation/_transmission_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabTransmission`.modified as "Modified On", + `tabTransmission`.active_status as "Status", + `tabTransmission`.transmission as 'Transmission' + + + %s + From _d6463952657fa86c.`tabTransmission` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabTransmission`.transmission = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabTransmission`.transmission = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Transmission") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/__init__.py b/smart_service/mahindra_smart_service/report/_variant_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..c471722 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/_variant_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/_variant_translation.cpython-38.pyc new file mode 100644 index 0000000..2554baa Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_variant_translation/__pycache__/_variant_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.js b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.js new file mode 100644 index 0000000..d9e9cae --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.js @@ -0,0 +1,18 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Variant Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + } +}; diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.json b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.json new file mode 100644 index 0000000..e6c5e61 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.json @@ -0,0 +1,32 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-30 12:10:32.622816", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-30 12:10:32.622816", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Variant Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Variant", + "report_name": "_Variant Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "_Admin" + }, + { + "role": "System Manager" + }, + { + "role": "_Master Read" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.py b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.py new file mode 100644 index 0000000..3b046e9 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_variant_translation/_variant_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM `tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabVariant`.modified as "Modified On", + `tabVariant`.active_status as "Status", + `tabVariant`.vehicle as "Vehicle", + `tabVariant`.variant as 'Variant' + + %s + From `tabVariant` + LEFT JOIN `tabTranslation` as tabTrans + ON `tabVariant`.variant = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,tabTranslation.source_text as sourceText + , tabTranslation.translated_text as translated_text + %s + From tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM tabLanguage as tanLang) as tabLang + ON tabTranslation.language = tabLang.languageCode) as tabTranslation + ON `tabVariant`.variant = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Data/:240", _("Status") + ":Data/:100", _("Vehicle") + ":Data/:200",_("Variant") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__init__.py b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..fe6bc41 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/_vehicle_segment_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/_vehicle_segment_translation.cpython-38.pyc new file mode 100644 index 0000000..320cfbd Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/__pycache__/_vehicle_segment_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.js b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.js new file mode 100644 index 0000000..05fd3b5 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Vehicle Segment Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.json b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.json new file mode 100644 index 0000000..8aacc83 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.json @@ -0,0 +1,50 @@ +{ + "add_total_row": 0, + "columns": [ + { + "fieldname": "Modified On", + "fieldtype": "Datetime", + "label": "Modified On", + "width": 0 + }, + { + "fieldname": "Status", + "fieldtype": "Data", + "label": "Status", + "width": 0 + }, + { + "fieldname": "Vehicle Segment", + "fieldtype": "Data", + "label": "Vehicle Segment", + "width": 0 + } + ], + "creation": "2021-11-03 14:37:19.857975", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-16 15:10:52.636132", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Vehicle Segment Translation", + "owner": "mahibaalana@hnsonline.com", + "prepared_report": 0, + "query": "Select `tabVehicle Segment`.modified as 'Modified On',`tabVehicle Segment`.active_status as Status, `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , \r\n`tabVehicle Segment`.vehicle_segment as 'English', tabTranslation.gu as \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0, tabTranslation.hi as \u0939\u093f\u0902\u0926\u0940, tabTranslation.kn as \u0c95\u0ca8\u0ccd\u0ca8\u0ca1, tabTranslation.ml as \u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02, tabTranslation.mr as \u092e\u0930\u093e\u0920\u0940, tabTranslation.ta as \u0ba4\u0bae\u0bbf\u0bb4\u0bcd, tabTranslation.te as \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41\r\nFrom _d6463952657fa86c.`tabVehicle Segment` \r\nLEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans \r\nON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text\r\n\r\nLEFT JOIN (Select tabLang.languageCode as languageCode\r\n,_d6463952657fa86c.tabTranslation.source_text as sourceText\r\n, _d6463952657fa86c.tabTranslation.translated_text as translated_text\r\n, (CASE WHEN tabLang.languageCode = \"en\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en\r\n, (CASE WHEN tabLang.languageCode = \"gu\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu\r\n, (CASE WHEN tabLang.languageCode = \"hi\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi\r\n, (CASE WHEN tabLang.languageCode = \"kn\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn\r\n, (CASE WHEN tabLang.languageCode = \"ml\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml\r\n, (CASE WHEN tabLang.languageCode = \"mr\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr\r\n, (CASE WHEN tabLang.languageCode = \"ta\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta\r\n, (CASE WHEN tabLang.languageCode = \"te\" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te\r\nFrom _d6463952657fa86c.tabTranslation\r\nINNER JOIN (SELECT tanLang.language_name as language_name\r\n, tanLang.language_code as languageCode \r\nFROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang\r\nON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation\r\nON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;", + "ref_doctype": "Vehicle Segment", + "report_name": "_Vehicle Segment Translation", + "report_script": "\r\n columns = get_columns()\r\n data = [columns],[result]\r\n\r\n\r\n\r\ndef get_columns():\r\n\r\n\tcolumns = []\r\n\r\n\tcolumns += [\r\n\t\t_(\"Modified On\") + \":Datetime/Employee:120\", _(\"Status\") + \":Data/:120\", _(\"Vehicle Segment\")+ \":Data/:120\"\r\n\t]\r\n\t\r\n\tlang = frappe.db.get_list('Custom Languages')\r\n\t\r\n\tfor day in lang:\r\n\t\t\r\n\t\tcolumns.append(cstr(day)+\"::58\")\r\n\treturn columns\r\n\t\r\n\r\n", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Author" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.py b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.py new file mode 100644 index 0000000..ea5a09e --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_segment_translation/_vehicle_segment_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabVehicle Segment`.modified as "Modified On", + `tabVehicle Segment`.active_status as "Status", + `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' + + + %s + From _d6463952657fa86c.`tabVehicle Segment` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Vehicle Segment") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/__init__.py b/smart_service/mahindra_smart_service/report/_vehicle_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..9dedd8f Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/_vehicle_translation.cpython-38.pyc b/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/_vehicle_translation.cpython-38.pyc new file mode 100644 index 0000000..46d2916 Binary files /dev/null and b/smart_service/mahindra_smart_service/report/_vehicle_translation/__pycache__/_vehicle_translation.cpython-38.pyc differ diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.js b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.js new file mode 100644 index 0000000..72b0ed8 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.js @@ -0,0 +1,19 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Vehicle Translation"] = { + "filters": [ + + ], + "formatter": function (value, row, column, data, default_formatter) { + console.log(value) + if(value==null){ + value=' ' + column.align='left'; + } + value = default_formatter(value, row, column, data); + return value; + +} +}; diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.json b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.json new file mode 100644 index 0000000..833f0d6 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-24 16:56:50.600660", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-24 16:56:50.600660", + "modified_by": "Administrator", + "module": "Mahindra Smart Service", + "name": "_Vehicle Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Vehicle", + "report_name": "_Vehicle Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Admin" + } + ] +} \ No newline at end of file diff --git a/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.py b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.py new file mode 100644 index 0000000..d967737 --- /dev/null +++ b/smart_service/mahindra_smart_service/report/_vehicle_translation/_vehicle_translation.py @@ -0,0 +1,146 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +from __future__ import unicode_literals +import frappe +from frappe.utils import cstr, cint, getdate +from frappe import msgprint, _ + +def execute(filters=None): + columns, data = [], [] + columns,lang = get_columns() + data = get_data() + return columns, data + +def get_data(): + + custom_lang = frappe.db.sql("""SELECT lang_code FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_list=True) + + + queryAppendLang = "" + for d in custom_lang: + q = ", (CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" %(d[0],d[0]) + queryAppendLang += q + + sel = "" + for d in custom_lang: + r = ",tabTranslation.%s as %s"%(d[0],d[0]) + sel+= r + + + actualQuery = """Select + `tabVehicle`.modified as "Modified On", + `tabVehicle`.active_status as "Status", + `tabVehicle`.vehicle as 'Vehicle' + + + %s + From _d6463952657fa86c.`tabVehicle` + LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + ON _d6463952657fa86c.`tabVehicle`.vehicle = tabTrans.source_text + LEFT JOIN (Select tabLang.languageCode as languageCode + ,_d6463952657fa86c.tabTranslation.source_text as sourceText + , _d6463952657fa86c.tabTranslation.translated_text as translated_text + %s + From _d6463952657fa86c.tabTranslation + INNER JOIN (SELECT tanLang.language_name as language_name + , tanLang.language_code as languageCode + FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + ON _d6463952657fa86c.`tabVehicle`.vehicle = tabTranslation.sourceText;""" % (sel ,queryAppendLang) + + + data = frappe.db.sql(actualQuery,as_list=True) + + return data + + # data = frappe.db.sql( + # """Select + # `tabVehicle Segment`.modified as "Modified On", + # `tabVehicle Segment`.active_status as "Status", + # `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , + # `tabVehicle Segment`.vehicle_segment as 'English', + + # tabTranslation.hi as हिंदी, + # tabTranslation.ta as தமிழ், + # tabTranslation.gu as ગુજરાતી, + # tabTranslation.kn as ಕನ್ನಡ, + # tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు + # From _d6463952657fa86c.`tabVehicle Segment` + # LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + + # LEFT JOIN (Select tabLang.languageCode as languageCode + # ,_d6463952657fa86c.tabTranslation.source_text as sourceText + # , _d6463952657fa86c.tabTranslation.translated_text as translated_text + # , (CASE WHEN tabLang.languageCode = "en" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as en + # , (CASE WHEN tabLang.languageCode = "gu" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as gu + # , (CASE WHEN tabLang.languageCode = "hi" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as hi + # , (CASE WHEN tabLang.languageCode = "kn" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as kn + # , (CASE WHEN tabLang.languageCode = "ml" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ml + # , (CASE WHEN tabLang.languageCode = "mr" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as mr + # , (CASE WHEN tabLang.languageCode = "ta" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as ta + # , (CASE WHEN tabLang.languageCode = "te" THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as te + # From _d6463952657fa86c.tabTranslation + # INNER JOIN (SELECT tanLang.language_name as language_name + # , tanLang.language_code as languageCode + # FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang + # ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation + # ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""",as_list=True) + # return data + + +def get_columns(): + + columns = [] + columns += [ + _("Modified On") + ":Datetime/:200", _("Status") + ":Data/:100",_("Vehicle") + ":Data/:220", + ] + lang = [] + custom_lang = frappe.db.sql("""SELECT lang_code,lang_name,active_status FROM _d6463952657fa86c.`tabCustom Languages` where lang_code <> "en" order by lang_name""",as_dict=1) + # frappe.msgprint(str(custom_lang)) + for d in custom_lang: + lang.append(cstr(d["lang_name"])+ "::220") + # frappe.msgprint(str(lang)) + columns += lang + return columns,lang + + + + + +# customLang = ['en', 'hi', 'ta', 'te'] + +# queryAppendLang = [] +# for d in customLang: +# # print(d) +# query = " ,(CASE WHEN tabLang.languageCode = '%s' THEN _d6463952657fa86c.tabTranslation.translated_text ELSE null END) as %s" % (d, d) +# queryAppendLang.append(query) + +# actualQuery = """Select +# `tabVehicle Segment`.modified as "Modified On", +# `tabVehicle Segment`.active_status as "Status", +# `tabVehicle Segment`.vehicle_segment as 'Vehicle Segment' , +# `tabVehicle Segment`.vehicle_segment as 'English', + +# tabTranslation.hi as हिंदी, +# tabTranslation.ta as தமிழ், +# tabTranslation.gu as ગુજરાતી, +# tabTranslation.kn as ಕನ್ನಡ, +# tabTranslation.ml as മലയാളം, tabTranslation.mr as मराठी,tabTranslation.te as తెలుగు +# From _d6463952657fa86c.`tabVehicle Segment` +# LEFT JOIN _d6463952657fa86c.`tabTranslation` as tabTrans +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTrans.source_text + +# LEFT JOIN (Select tabLang.languageCode as languageCode +# ,_d6463952657fa86c.tabTranslation.source_text as sourceText +# , _d6463952657fa86c.tabTranslation.translated_text as translated_text %s From _d6463952657fa86c.tabTranslation +# INNER JOIN (SELECT tanLang.language_name as language_name +# , tanLang.language_code as languageCode +# FROM _d6463952657fa86c.tabLanguage as tanLang) as tabLang +# ON _d6463952657fa86c.tabTranslation.language = tabLang.languageCode) as tabTranslation +# ON _d6463952657fa86c.`tabVehicle Segment`.vehicle_segment = tabTranslation.sourceText;""" % (queryAppendLang[0]) + +# print(actualQuery) diff --git a/smart_service/masters/__init__.py b/smart_service/masters/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..dbdfeb3 Binary files /dev/null and b/smart_service/masters/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/__init__.py b/smart_service/masters/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..f070af1 Binary files /dev/null and b/smart_service/masters/doctype/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels/__init__.py b/smart_service/masters/doctype/app_labels/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/app_labels/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/app_labels/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..983501a Binary files /dev/null and b/smart_service/masters/doctype/app_labels/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels/__pycache__/app_labels.cpython-38.pyc b/smart_service/masters/doctype/app_labels/__pycache__/app_labels.cpython-38.pyc new file mode 100644 index 0000000..c0ece8e Binary files /dev/null and b/smart_service/masters/doctype/app_labels/__pycache__/app_labels.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels/__pycache__/test_app_labels.cpython-38.pyc b/smart_service/masters/doctype/app_labels/__pycache__/test_app_labels.cpython-38.pyc new file mode 100644 index 0000000..8feff1b Binary files /dev/null and b/smart_service/masters/doctype/app_labels/__pycache__/test_app_labels.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels/app_labels.js b/smart_service/masters/doctype/app_labels/app_labels.js new file mode 100644 index 0000000..2aafaad --- /dev/null +++ b/smart_service/masters/doctype/app_labels/app_labels.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('App Labels', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/app_labels/app_labels.json b/smart_service/masters/doctype/app_labels/app_labels.json new file mode 100644 index 0000000..710d14b --- /dev/null +++ b/smart_service/masters/doctype/app_labels/app_labels.json @@ -0,0 +1,121 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "AL-.####", + "creation": "2021-11-22 15:37:44.849837", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "english_label", + "is_group", + "page_name", + "parent_app_labels", + "column_break_2", + "language", + "label", + "lft", + "rgt", + "old_parent" + ], + "fields": [ + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Language", + "options": "Custom Languages", + "reqd": 1 + }, + { + "fieldname": "label", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Translated Label", + "reqd": 1 + }, + { + "fieldname": "english_label", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "English Label", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "fieldname": "lft", + "fieldtype": "Int", + "hidden": 1, + "label": "Left", + "no_copy": 1, + "read_only": 1 + }, + { + "fieldname": "rgt", + "fieldtype": "Int", + "hidden": 1, + "label": "Right", + "no_copy": 1, + "read_only": 1 + }, + { + "default": "0", + "fieldname": "is_group", + "fieldtype": "Check", + "label": "Is Group" + }, + { + "fieldname": "old_parent", + "fieldtype": "Link", + "hidden": 1, + "label": "Old Parent", + "options": "App Labels" + }, + { + "fieldname": "parent_app_labels", + "fieldtype": "Link", + "label": "Parent App Labels", + "options": "App Labels" + }, + { + "fieldname": "page_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Page Name", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "is_tree": 1, + "links": [], + "modified": "2021-12-22 12:07:54.181243", + "modified_by": "Administrator", + "module": "Masters", + "name": "App Labels", + "nsm_parent_field": "parent_app_labels", + "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", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/app_labels/app_labels.py b/smart_service/masters/doctype/app_labels/app_labels.py new file mode 100644 index 0000000..7b7c455 --- /dev/null +++ b/smart_service/masters/doctype/app_labels/app_labels.py @@ -0,0 +1,36 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document +import frappe +from frappe import _ +import datetime +import json + + +class AppLabels(Document): + pass + # def labels_json(): + # labels_lst = frappe.db.sql("""SELECT `tabApp Labels`.name as name, `tabApp Labels`.english_label as element, `tabApp Labels`.language as lang, `tabApp Labels`.label as label, `tabApp Labels`.parent as parent, `tabApp Labels`.is_group as is_group FROM _d6463952657fa86c.`tabApp Labels` order by name asc""", as_dict=1) + # final = [] + # labels = set() + # for i in labels_lst: + # if i['parent'] != None: + # labels.add(i['element']) + # for j in labels: + # temp_lst = [] + # temp_dict = {} + # for k in labels_lst: + # if j == k['element'] and k['lang']=='en': + # temp=k + # elif j == k['element'] and k['lang']!='en': + # temp_lst.append(k) + # for l in temp_lst: + # temp[l['name']]=l + # temp_dict[temp['name']]=temp + # final.append(temp_dict) + # # x = json.dumps(final) + # frappe.msgprint(str(final)) + # return final + # labels_json() diff --git a/smart_service/masters/doctype/app_labels/test_app_labels.py b/smart_service/masters/doctype/app_labels/test_app_labels.py new file mode 100644 index 0000000..423833d --- /dev/null +++ b/smart_service/masters/doctype/app_labels/test_app_labels.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestAppLabels(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/app_labels_data/__init__.py b/smart_service/masters/doctype/app_labels_data/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/app_labels_data/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/app_labels_data/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..7746eb6 Binary files /dev/null and b/smart_service/masters/doctype/app_labels_data/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels_data/__pycache__/app_labels_data.cpython-38.pyc b/smart_service/masters/doctype/app_labels_data/__pycache__/app_labels_data.cpython-38.pyc new file mode 100644 index 0000000..be603fb Binary files /dev/null and b/smart_service/masters/doctype/app_labels_data/__pycache__/app_labels_data.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/app_labels_data/app_labels_data.json b/smart_service/masters/doctype/app_labels_data/app_labels_data.json new file mode 100644 index 0000000..2372e19 --- /dev/null +++ b/smart_service/masters/doctype/app_labels_data/app_labels_data.json @@ -0,0 +1,48 @@ +{ + "actions": [], + "creation": "2021-11-03 13:00:16.647782", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "source_text", + "language", + "translated_text" + ], + "fields": [ + { + "fieldname": "source_text", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Source Text", + "reqd": 1 + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Language", + "reqd": 1 + }, + { + "fieldname": "translated_text", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Translated Text", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-14 09:21:59.807093", + "modified_by": "Administrator", + "module": "Masters", + "name": "App Labels_data", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/app_labels_data/app_labels_data.py b/smart_service/masters/doctype/app_labels_data/app_labels_data.py new file mode 100644 index 0000000..18b168a --- /dev/null +++ b/smart_service/masters/doctype/app_labels_data/app_labels_data.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class AppLabels_data(Document): + pass diff --git a/smart_service/masters/doctype/custom_languages/__init__.py b/smart_service/masters/doctype/custom_languages/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/custom_languages/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/custom_languages/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..ac05275 Binary files /dev/null and b/smart_service/masters/doctype/custom_languages/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/custom_languages/__pycache__/custom_languages.cpython-38.pyc b/smart_service/masters/doctype/custom_languages/__pycache__/custom_languages.cpython-38.pyc new file mode 100644 index 0000000..270d6a6 Binary files /dev/null and b/smart_service/masters/doctype/custom_languages/__pycache__/custom_languages.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/custom_languages/__pycache__/test_custom_languages.cpython-38.pyc b/smart_service/masters/doctype/custom_languages/__pycache__/test_custom_languages.cpython-38.pyc new file mode 100644 index 0000000..b40b02e Binary files /dev/null and b/smart_service/masters/doctype/custom_languages/__pycache__/test_custom_languages.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/custom_languages/custom_languages.js b/smart_service/masters/doctype/custom_languages/custom_languages.js new file mode 100644 index 0000000..8692c24 --- /dev/null +++ b/smart_service/masters/doctype/custom_languages/custom_languages.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Custom Languages', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/custom_languages/custom_languages.json b/smart_service/masters/doctype/custom_languages/custom_languages.json new file mode 100644 index 0000000..4fe51a2 --- /dev/null +++ b/smart_service/masters/doctype/custom_languages/custom_languages.json @@ -0,0 +1,87 @@ +{ + "actions": [], + "autoname": "format:{lang_code}", + "creation": "2021-11-13 13:41:13.235099", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "lang_code", + "active_status", + "column_break_2", + "lang_name", + "display_order", + "myid" + ], + "fields": [ + { + "fieldname": "lang_code", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Lang Code", + "options": "Language", + "reqd": 1 + }, + { + "fieldname": "column_break_2", + "fieldtype": "Column Break" + }, + { + "default": "-", + "fetch_from": "Language.language_code", + "fieldname": "lang_name", + "fieldtype": "Data", + "label": "Lang Name", + "read_only": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "display_order", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Display Order", + "reqd": 1 + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "in_list_view": 1, + "label": "myID", + "read_only": 1, + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-27 18:16:45.663974", + "modified_by": "Administrator", + "module": "Masters", + "name": "Custom Languages", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "search_fields": "lang_code,lang_name,active_status", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "lang_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/custom_languages/custom_languages.py b/smart_service/masters/doctype/custom_languages/custom_languages.py new file mode 100644 index 0000000..20dc91b --- /dev/null +++ b/smart_service/masters/doctype/custom_languages/custom_languages.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class CustomLanguages(Document): + pass diff --git a/smart_service/masters/doctype/custom_languages/test_custom_languages.py b/smart_service/masters/doctype/custom_languages/test_custom_languages.py new file mode 100644 index 0000000..39e59d2 --- /dev/null +++ b/smart_service/masters/doctype/custom_languages/test_custom_languages.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestCustomLanguages(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/drive/__init__.py b/smart_service/masters/doctype/drive/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/drive/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/drive/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..45bb17c Binary files /dev/null and b/smart_service/masters/doctype/drive/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/drive/__pycache__/drive.cpython-38.pyc b/smart_service/masters/doctype/drive/__pycache__/drive.cpython-38.pyc new file mode 100644 index 0000000..bfd1dde Binary files /dev/null and b/smart_service/masters/doctype/drive/__pycache__/drive.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/drive/__pycache__/test_drive.cpython-38.pyc b/smart_service/masters/doctype/drive/__pycache__/test_drive.cpython-38.pyc new file mode 100644 index 0000000..1eb9bc6 Binary files /dev/null and b/smart_service/masters/doctype/drive/__pycache__/test_drive.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/drive/drive.js b/smart_service/masters/doctype/drive/drive.js new file mode 100644 index 0000000..352aa3a --- /dev/null +++ b/smart_service/masters/doctype/drive/drive.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Drive', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/drive/drive.json b/smart_service/masters/doctype/drive/drive.json new file mode 100644 index 0000000..24e49fb --- /dev/null +++ b/smart_service/masters/doctype/drive/drive.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{drive}", + "creation": "2021-10-28 13:22:52.454082", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "drive", + "active_status", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "drive", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Drive", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-24 13:04:07.842822", + "modified_by": "Administrator", + "module": "Masters", + "name": "Drive", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "drive", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "drive", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/drive/drive.py b/smart_service/masters/doctype/drive/drive.py new file mode 100644 index 0000000..001c057 --- /dev/null +++ b/smart_service/masters/doctype/drive/drive.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Drive(Document): + pass diff --git a/smart_service/masters/doctype/drive/test_drive.py b/smart_service/masters/doctype/drive/test_drive.py new file mode 100644 index 0000000..116f6e3 --- /dev/null +++ b/smart_service/masters/doctype/drive/test_drive.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestDrive(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/fuel/__init__.py b/smart_service/masters/doctype/fuel/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/fuel/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/fuel/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..9489358 Binary files /dev/null and b/smart_service/masters/doctype/fuel/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/fuel/__pycache__/fuel.cpython-38.pyc b/smart_service/masters/doctype/fuel/__pycache__/fuel.cpython-38.pyc new file mode 100644 index 0000000..6b56059 Binary files /dev/null and b/smart_service/masters/doctype/fuel/__pycache__/fuel.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/fuel/__pycache__/test_fuel.cpython-38.pyc b/smart_service/masters/doctype/fuel/__pycache__/test_fuel.cpython-38.pyc new file mode 100644 index 0000000..0349608 Binary files /dev/null and b/smart_service/masters/doctype/fuel/__pycache__/test_fuel.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/fuel/fuel.js b/smart_service/masters/doctype/fuel/fuel.js new file mode 100644 index 0000000..0240aad --- /dev/null +++ b/smart_service/masters/doctype/fuel/fuel.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Fuel', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/fuel/fuel.json b/smart_service/masters/doctype/fuel/fuel.json new file mode 100644 index 0000000..5c03302 --- /dev/null +++ b/smart_service/masters/doctype/fuel/fuel.json @@ -0,0 +1,81 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format: {fuel}", + "creation": "2021-10-28 13:06:03.207653", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "fuel", + "active_status", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "bold": 1, + "fieldname": "fuel", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Fuel", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-24 12:57:32.534631", + "modified_by": "Administrator", + "module": "Masters", + "name": "Fuel", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "fuel", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "fuel", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/fuel/fuel.py b/smart_service/masters/doctype/fuel/fuel.py new file mode 100644 index 0000000..a2f1e9e --- /dev/null +++ b/smart_service/masters/doctype/fuel/fuel.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Fuel(Document): + pass diff --git a/smart_service/masters/doctype/fuel/test_fuel.py b/smart_service/masters/doctype/fuel/test_fuel.py new file mode 100644 index 0000000..662fe63 --- /dev/null +++ b/smart_service/masters/doctype/fuel/test_fuel.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestFuel(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/service_kilometers/__init__.py b/smart_service/masters/doctype/service_kilometers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/service_kilometers/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/service_kilometers/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..21bc158 Binary files /dev/null and b/smart_service/masters/doctype/service_kilometers/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/service_kilometers/__pycache__/service_kilometers.cpython-38.pyc b/smart_service/masters/doctype/service_kilometers/__pycache__/service_kilometers.cpython-38.pyc new file mode 100644 index 0000000..198e017 Binary files /dev/null and b/smart_service/masters/doctype/service_kilometers/__pycache__/service_kilometers.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/service_kilometers/__pycache__/test_service_kilometers.cpython-38.pyc b/smart_service/masters/doctype/service_kilometers/__pycache__/test_service_kilometers.cpython-38.pyc new file mode 100644 index 0000000..53eade3 Binary files /dev/null and b/smart_service/masters/doctype/service_kilometers/__pycache__/test_service_kilometers.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/service_kilometers/service_kilometers.js b/smart_service/masters/doctype/service_kilometers/service_kilometers.js new file mode 100644 index 0000000..5649292 --- /dev/null +++ b/smart_service/masters/doctype/service_kilometers/service_kilometers.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Service Kilometers', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/service_kilometers/service_kilometers.json b/smart_service/masters/doctype/service_kilometers/service_kilometers.json new file mode 100644 index 0000000..6cc0292 --- /dev/null +++ b/smart_service/masters/doctype/service_kilometers/service_kilometers.json @@ -0,0 +1,79 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{kilometer}", + "creation": "2021-10-28 12:12:04.983128", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "kilometer", + "active_status", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "kilometer", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Kilometer", + "reqd": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-24 12:09:50.241584", + "modified_by": "Administrator", + "module": "Masters", + "name": "Service Kilometers", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "kilometer", + "sort_field": "modified", + "sort_order": "ASC", + "title_field": "kilometer", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/service_kilometers/service_kilometers.py b/smart_service/masters/doctype/service_kilometers/service_kilometers.py new file mode 100644 index 0000000..1d9ffac --- /dev/null +++ b/smart_service/masters/doctype/service_kilometers/service_kilometers.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class ServiceKilometers(Document): + pass diff --git a/smart_service/masters/doctype/service_kilometers/test_service_kilometers.py b/smart_service/masters/doctype/service_kilometers/test_service_kilometers.py new file mode 100644 index 0000000..740109a --- /dev/null +++ b/smart_service/masters/doctype/service_kilometers/test_service_kilometers.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestServiceKilometers(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/sub_systems/__init__.py b/smart_service/masters/doctype/sub_systems/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/sub_systems/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/sub_systems/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..722cca3 Binary files /dev/null and b/smart_service/masters/doctype/sub_systems/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/sub_systems/__pycache__/sub_systems.cpython-38.pyc b/smart_service/masters/doctype/sub_systems/__pycache__/sub_systems.cpython-38.pyc new file mode 100644 index 0000000..49d9396 Binary files /dev/null and b/smart_service/masters/doctype/sub_systems/__pycache__/sub_systems.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/sub_systems/__pycache__/test_sub_systems.cpython-38.pyc b/smart_service/masters/doctype/sub_systems/__pycache__/test_sub_systems.cpython-38.pyc new file mode 100644 index 0000000..a03b134 Binary files /dev/null and b/smart_service/masters/doctype/sub_systems/__pycache__/test_sub_systems.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/sub_systems/sub_systems.js b/smart_service/masters/doctype/sub_systems/sub_systems.js new file mode 100644 index 0000000..5d37e10 --- /dev/null +++ b/smart_service/masters/doctype/sub_systems/sub_systems.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Sub Systems', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/sub_systems/sub_systems.json b/smart_service/masters/doctype/sub_systems/sub_systems.json new file mode 100644 index 0000000..cb57339 --- /dev/null +++ b/smart_service/masters/doctype/sub_systems/sub_systems.json @@ -0,0 +1,81 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{sub_system_name}", + "creation": "2021-10-28 13:38:29.929359", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "sub_system_name", + "active_status", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "sub_system_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Sub System Name", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-22 09:59:53.348542", + "modified_by": "Administrator", + "module": "Masters", + "name": "Sub Systems", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "sub_system_name", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "sub_system_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/sub_systems/sub_systems.py b/smart_service/masters/doctype/sub_systems/sub_systems.py new file mode 100644 index 0000000..a5b497a --- /dev/null +++ b/smart_service/masters/doctype/sub_systems/sub_systems.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class SubSystems(Document): + pass diff --git a/smart_service/masters/doctype/sub_systems/test_sub_systems.py b/smart_service/masters/doctype/sub_systems/test_sub_systems.py new file mode 100644 index 0000000..afb0a23 --- /dev/null +++ b/smart_service/masters/doctype/sub_systems/test_sub_systems.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestSubSystems(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/systems/__init__.py b/smart_service/masters/doctype/systems/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/systems/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/systems/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..e82365e Binary files /dev/null and b/smart_service/masters/doctype/systems/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/systems/__pycache__/systems.cpython-38.pyc b/smart_service/masters/doctype/systems/__pycache__/systems.cpython-38.pyc new file mode 100644 index 0000000..a921c88 Binary files /dev/null and b/smart_service/masters/doctype/systems/__pycache__/systems.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/systems/__pycache__/test_systems.cpython-38.pyc b/smart_service/masters/doctype/systems/__pycache__/test_systems.cpython-38.pyc new file mode 100644 index 0000000..5dd2b64 Binary files /dev/null and b/smart_service/masters/doctype/systems/__pycache__/test_systems.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/systems/systems.js b/smart_service/masters/doctype/systems/systems.js new file mode 100644 index 0000000..ee38deb --- /dev/null +++ b/smart_service/masters/doctype/systems/systems.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Systems', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/systems/systems.json b/smart_service/masters/doctype/systems/systems.json new file mode 100644 index 0000000..bf7d6ee --- /dev/null +++ b/smart_service/masters/doctype/systems/systems.json @@ -0,0 +1,98 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{system_name}", + "creation": "2021-10-28 13:30:53.639882", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "system_name", + "active_status", + "icon_file", + "icon_preview", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "bold": 1, + "fieldname": "system_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "System Name", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "icon_file", + "fieldtype": "Attach Image", + "in_preview": 1, + "label": "Icon File" + }, + { + "fieldname": "icon_preview", + "fieldtype": "Image", + "label": "Icon Preview", + "options": "icon_file" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-24 13:07:05.588097", + "modified_by": "Administrator", + "module": "Masters", + "name": "Systems", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "select": 1, + "share": 1, + "write": 1 + } + ], + "search_fields": "system_name", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "system_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/systems/systems.py b/smart_service/masters/doctype/systems/systems.py new file mode 100644 index 0000000..e576cf0 --- /dev/null +++ b/smart_service/masters/doctype/systems/systems.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Systems(Document): + pass diff --git a/smart_service/masters/doctype/systems/test_systems.py b/smart_service/masters/doctype/systems/test_systems.py new file mode 100644 index 0000000..45b4b4c --- /dev/null +++ b/smart_service/masters/doctype/systems/test_systems.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestSystems(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/transmission/__init__.py b/smart_service/masters/doctype/transmission/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/transmission/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/transmission/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..a970e17 Binary files /dev/null and b/smart_service/masters/doctype/transmission/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/transmission/__pycache__/test_transmission.cpython-38.pyc b/smart_service/masters/doctype/transmission/__pycache__/test_transmission.cpython-38.pyc new file mode 100644 index 0000000..dd1d894 Binary files /dev/null and b/smart_service/masters/doctype/transmission/__pycache__/test_transmission.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/transmission/__pycache__/transmission.cpython-38.pyc b/smart_service/masters/doctype/transmission/__pycache__/transmission.cpython-38.pyc new file mode 100644 index 0000000..45156b3 Binary files /dev/null and b/smart_service/masters/doctype/transmission/__pycache__/transmission.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/transmission/test_transmission.py b/smart_service/masters/doctype/transmission/test_transmission.py new file mode 100644 index 0000000..2240e19 --- /dev/null +++ b/smart_service/masters/doctype/transmission/test_transmission.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestTransmission(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/transmission/transmission.js b/smart_service/masters/doctype/transmission/transmission.js new file mode 100644 index 0000000..92b96f3 --- /dev/null +++ b/smart_service/masters/doctype/transmission/transmission.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Transmission', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/transmission/transmission.json b/smart_service/masters/doctype/transmission/transmission.json new file mode 100644 index 0000000..83af98f --- /dev/null +++ b/smart_service/masters/doctype/transmission/transmission.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{transmission}", + "creation": "2021-10-28 13:17:21.403818", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "transmission", + "active_status", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "transmission", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Transmission", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-24 13:01:53.341348", + "modified_by": "Administrator", + "module": "Masters", + "name": "Transmission", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "transmission", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "transmission", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/transmission/transmission.py b/smart_service/masters/doctype/transmission/transmission.py new file mode 100644 index 0000000..f4e87c2 --- /dev/null +++ b/smart_service/masters/doctype/transmission/transmission.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Transmission(Document): + pass diff --git a/smart_service/masters/doctype/variant/__init__.py b/smart_service/masters/doctype/variant/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/variant/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/variant/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..ad8ca93 Binary files /dev/null and b/smart_service/masters/doctype/variant/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/variant/__pycache__/test_variant.cpython-38.pyc b/smart_service/masters/doctype/variant/__pycache__/test_variant.cpython-38.pyc new file mode 100644 index 0000000..956138f Binary files /dev/null and b/smart_service/masters/doctype/variant/__pycache__/test_variant.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/variant/__pycache__/variant.cpython-38.pyc b/smart_service/masters/doctype/variant/__pycache__/variant.cpython-38.pyc new file mode 100644 index 0000000..9e03e60 Binary files /dev/null and b/smart_service/masters/doctype/variant/__pycache__/variant.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/variant/test_variant.py b/smart_service/masters/doctype/variant/test_variant.py new file mode 100644 index 0000000..62fccf8 --- /dev/null +++ b/smart_service/masters/doctype/variant/test_variant.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVariant(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/variant/variant.js b/smart_service/masters/doctype/variant/variant.js new file mode 100644 index 0000000..a070a50 --- /dev/null +++ b/smart_service/masters/doctype/variant/variant.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Variant', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/variant/variant.json b/smart_service/masters/doctype/variant/variant.json new file mode 100644 index 0000000..ae96eeb --- /dev/null +++ b/smart_service/masters/doctype/variant/variant.json @@ -0,0 +1,134 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format:{vehicle}.{variant}", + "creation": "2021-10-28 12:45:38.664344", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle", + "vehicle_id", + "variant", + "active_status", + "column_break_4", + "vehicle_segment", + "vehicle_segment_id", + "variant_image", + "preview", + "myid" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "vehicle", + "fieldtype": "Link", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Vehicle", + "options": "Vehicle", + "reqd": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "variant", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "label": "Variant", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fetch_from": "vehicle.vehicle_segment", + "fieldname": "vehicle_segment", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Vehicle Segment", + "read_only": 1 + }, + { + "fieldname": "variant_image", + "fieldtype": "Attach Image", + "label": "Variant Image" + }, + { + "fieldname": "preview", + "fieldtype": "Image", + "label": "Preview", + "options": "variant_image" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + }, + { + "fetch_from": "vehicle.vehicle_segment_id", + "fieldname": "vehicle_segment_id", + "fieldtype": "Data", + "hidden": 1, + "label": "Vehicle Segment ID", + "read_only": 1 + }, + { + "fetch_from": "vehicle.myid", + "fieldname": "vehicle_id", + "fieldtype": "Read Only", + "label": "Vehicle ID" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-15 14:10:12.114187", + "modified_by": "Administrator", + "module": "Masters", + "name": "Variant", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "variant,vehicle,vehicle_segment,active_status", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "variant", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/variant/variant.py b/smart_service/masters/doctype/variant/variant.py new file mode 100644 index 0000000..527e5eb --- /dev/null +++ b/smart_service/masters/doctype/variant/variant.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Variant(Document): + pass diff --git a/smart_service/masters/doctype/vehi/__init__.py b/smart_service/masters/doctype/vehi/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/vehi/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/vehi/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..79456f7 Binary files /dev/null and b/smart_service/masters/doctype/vehi/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi/__pycache__/test_vehi.cpython-38.pyc b/smart_service/masters/doctype/vehi/__pycache__/test_vehi.cpython-38.pyc new file mode 100644 index 0000000..bea4212 Binary files /dev/null and b/smart_service/masters/doctype/vehi/__pycache__/test_vehi.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi/__pycache__/vehi.cpython-38.pyc b/smart_service/masters/doctype/vehi/__pycache__/vehi.cpython-38.pyc new file mode 100644 index 0000000..8d3c94e Binary files /dev/null and b/smart_service/masters/doctype/vehi/__pycache__/vehi.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi/test_vehi.py b/smart_service/masters/doctype/vehi/test_vehi.py new file mode 100644 index 0000000..27f3769 --- /dev/null +++ b/smart_service/masters/doctype/vehi/test_vehi.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVehi(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/vehi/vehi.html b/smart_service/masters/doctype/vehi/vehi.html new file mode 100644 index 0000000..0dea03d --- /dev/null +++ b/smart_service/masters/doctype/vehi/vehi.html @@ -0,0 +1 @@ + diff --git a/smart_service/masters/doctype/vehi/vehi.js b/smart_service/masters/doctype/vehi/vehi.js new file mode 100644 index 0000000..4e25aab --- /dev/null +++ b/smart_service/masters/doctype/vehi/vehi.js @@ -0,0 +1,192 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Vehi', { + refresh: function(frm) { + }, + new_file: function(frm){ + //function open_multi_select_dialog() { + //cy.window().its('frappe').then(frappe => { + new frappe.ui.form.MultiSelectDialog({ + fields: [ + { + fieldname: 'folder', + label: __('Folder'), + fieldtype: 'Link', + options: "File", + get_query: { + filters: { + is_folder: ["=", "1"]} + }, + onchange: function() { + var folder = dialog.get_values()['folder']; + file_folder = folder + dialog.refresh() + }, + }, + { + fieldname: 'file_name', + label: __('File Name'), + fieldtype: 'Link', + options: 'File', + reqd: 0, + get_query: function(){ + return { + filters: { + folder: ["=", file_folder] + } + + } + }, + }, + ], + + + + doctype: "Contact", + target: {}, + setters: { + status: null, + gender: null + }, + add_filters_group: 1, + //allow_child_item_selection: 1, + //child_fieldname: "email_ids", + //child_columns: ["email_id", "is_primary"] + }); + //}); + //} +}, + + clear:function(frm){ + var me = this; + var file_folder = ''; + var child_docname = "items" + let dialog =new frappe.ui.Dialog({ + title : __('Select Files'), + fields: [ + { + fieldname: 'folder', + label: __('Folder'), + fieldtype: 'Link', + options: "File", + get_query: { + filters: { + is_folder: ["=", "1"]} + }, + onchange: function() { + var folder = dialog.get_values()['folder']; + file_folder = folder + dialog.refresh() + }, + }, + { + fieldname: 'file_name', + label: __('File Name'), + fieldtype: 'Link', + options: 'File', + reqd: 0, + get_query: function(){ + return { + filters: { + folder: ["=", file_folder] + } + + } + }, + }, + ], + primary_action: (data) => { + cur_frm.set_value("file_path",data['file_name']) + dialog.hide(); + }, + secondary_action: function() { + console.log("secondary"); + this.body = $(`
`); + //
+ //
+ //this.add_files(this.$refs.file_input.files); + //cy.window().its('frappe').then(frappe => { + // new frappe.ui.FileUploader(); + //}); + //window.location.reload() + }, + primary_action_label: __('Ok'), + secondary_action_label: __('Make File') + + }); + + dialog.show(); + dialog.refresh(); + + }, + browse:function(frm){ + new frappe.ui.form.MultiSelectDialog({ + doctype: "File", + target: cur_frm, + setters: { + folder:cur_frm.doc.is_folder , + file_name: null, + }, + get_query_filters: { + filters: { + folder: ["=", "09de19e896"]} + }, + + on_change: () => { + console.log("called") + this.$results.on('click', '.list-item-container :checkbox', (e) => { + this.$results.find('.list-item-container .list-row-check') + //.prop("checked", ($(e.target).is(':checked'),false)); + .prop("checked", false); + }); + }, + add_filters_group: 1, + child_fieldname: "email_ids", + child_columns: ["email_id", "is_primary"], + + primary_action_label: 'Ok', + + action(selections) { + console.log("called") + var x = ($(this).find('.list-row-check:checkbox:checked').length); + console.log("XX" + x) + + this.$results.on('click', '.list-item-container', function (e) { + if (!$(e.target).is(':checkbox') && !$(e.target).is('a')) { + $(this).find(':checkbox').trigger('click'); + } + }); + //////$(".modal").modal("hide"); + + var a = ['results_area']; + //var b = $checkbox.is(':checked'); + console.log(selections.name) + //console.log("AA"+ b) + //$('#myCheckbox').prop('checked', false); + + + jQuery(".list-item-container").change(function() { + jQuery('.list-row-check[data-groupID="' + jQuery(this).data("groupid") + '"]') + .prop('checked', jQuery(this).prop("checked")); + }); + jQuery('.list-row-check').change(function() { + console.log("jquery" + jQuery('.list-row-check:checked').length + jQuery('.list-row-check').length) + //this.$results.find('.list-item-container .list-row-check') + //.prop("checked", ($(e.target).is(':checked'),false)); + //.prop("checked", false); + console.log("FF" + jQuery('.list-row-check')['file_name']) + //if(false == jQuery(this).prop("checked")) { + jQuery(".list-row-check").prop('checked', false); + //} + ////if (jQuery('.list-row-check:checked').length == jQuery('.list-row-check').length ){ + // jQuery("#list-row-check-checkall").prop('checked', true); + //} + }); + }, + + }); + + } + +}); diff --git a/smart_service/masters/doctype/vehi/vehi.json b/smart_service/masters/doctype/vehi/vehi.json new file mode 100644 index 0000000..f8931a3 --- /dev/null +++ b/smart_service/masters/doctype/vehi/vehi.json @@ -0,0 +1,44 @@ +{ + "actions": [], + "autoname": "VN.##", + "creation": "2021-11-19 19:51:22.283760", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle_name" + ], + "fields": [ + { + "fieldname": "vehicle_name", + "fieldtype": "Data", + "label": "Vehicle Name" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-19 19:51:22.283760", + "modified_by": "Administrator", + "module": "Masters", + "name": "Vehi", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "search_fields": "vehicle_name", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "vehicle_name", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/vehi/vehi.py b/smart_service/masters/doctype/vehi/vehi.py new file mode 100644 index 0000000..ed3cadd --- /dev/null +++ b/smart_service/masters/doctype/vehi/vehi.py @@ -0,0 +1,21 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document + +class Vehi(Document): + def validate(self): + pass +@frappe.whitelist() +#def file_name(doctype, txt, searchfield, start, page_len, filters): +def file_name(doc): + frappe.msgprint("called") + file = frappe.db.sql("""select * from `tabFile` """,as_dict=1) + frappe.msgprint("after") + frappe.throw(str(file)) + return file +@frappe.whitelist() +#def folder_query(doctype, txt, searchfield, start, page_len, filters): +def folder_query(doc): + frappe.msgprint("called") diff --git a/smart_service/masters/doctype/vehi_master/__init__.py b/smart_service/masters/doctype/vehi_master/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/vehi_master/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/vehi_master/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..7abe8fb Binary files /dev/null and b/smart_service/masters/doctype/vehi_master/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi_master/__pycache__/test_vehi_master.cpython-38.pyc b/smart_service/masters/doctype/vehi_master/__pycache__/test_vehi_master.cpython-38.pyc new file mode 100644 index 0000000..23e8093 Binary files /dev/null and b/smart_service/masters/doctype/vehi_master/__pycache__/test_vehi_master.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi_master/__pycache__/vehi_master.cpython-38.pyc b/smart_service/masters/doctype/vehi_master/__pycache__/vehi_master.cpython-38.pyc new file mode 100644 index 0000000..ad7d67a Binary files /dev/null and b/smart_service/masters/doctype/vehi_master/__pycache__/vehi_master.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehi_master/test_vehi_master.py b/smart_service/masters/doctype/vehi_master/test_vehi_master.py new file mode 100644 index 0000000..96b5187 --- /dev/null +++ b/smart_service/masters/doctype/vehi_master/test_vehi_master.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVehi_master(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/vehi_master/vehi_master.js b/smart_service/masters/doctype/vehi_master/vehi_master.js new file mode 100644 index 0000000..3fed6a4 --- /dev/null +++ b/smart_service/masters/doctype/vehi_master/vehi_master.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Vehi_master', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/vehi_master/vehi_master.json b/smart_service/masters/doctype/vehi_master/vehi_master.json new file mode 100644 index 0000000..7442bf3 --- /dev/null +++ b/smart_service/masters/doctype/vehi_master/vehi_master.json @@ -0,0 +1,44 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2021-11-19 19:52:25.370537", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle" + ], + "fields": [ + { + "fetch_from": "vehi.vehicle_name", + "fieldname": "vehicle", + "fieldtype": "Link", + "label": "Vehicle", + "options": "Vehi" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-19 19:57:45.473071", + "modified_by": "Administrator", + "module": "Masters", + "name": "Vehi_master", + "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", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/vehi_master/vehi_master.py b/smart_service/masters/doctype/vehi_master/vehi_master.py new file mode 100644 index 0000000..65db52b --- /dev/null +++ b/smart_service/masters/doctype/vehi_master/vehi_master.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Vehi_master(Document): + pass diff --git a/smart_service/masters/doctype/vehicle/__init__.py b/smart_service/masters/doctype/vehicle/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/vehicle/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/vehicle/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..bf24fb9 Binary files /dev/null and b/smart_service/masters/doctype/vehicle/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle/__pycache__/test_vehicle.cpython-38.pyc b/smart_service/masters/doctype/vehicle/__pycache__/test_vehicle.cpython-38.pyc new file mode 100644 index 0000000..bce5566 Binary files /dev/null and b/smart_service/masters/doctype/vehicle/__pycache__/test_vehicle.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle/__pycache__/vehicle.cpython-38.pyc b/smart_service/masters/doctype/vehicle/__pycache__/vehicle.cpython-38.pyc new file mode 100644 index 0000000..ed173eb Binary files /dev/null and b/smart_service/masters/doctype/vehicle/__pycache__/vehicle.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle/test_vehicle.py b/smart_service/masters/doctype/vehicle/test_vehicle.py new file mode 100644 index 0000000..ada8ddd --- /dev/null +++ b/smart_service/masters/doctype/vehicle/test_vehicle.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVehicle(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/vehicle/vehicle.js b/smart_service/masters/doctype/vehicle/vehicle.js new file mode 100644 index 0000000..12d3301 --- /dev/null +++ b/smart_service/masters/doctype/vehicle/vehicle.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Vehicle', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/vehicle/vehicle.json b/smart_service/masters/doctype/vehicle/vehicle.json new file mode 100644 index 0000000..bd15a82 --- /dev/null +++ b/smart_service/masters/doctype/vehicle/vehicle.json @@ -0,0 +1,152 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{vehicle}", + "creation": "2021-10-28 12:20:10.169524", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle", + "image", + "preview", + "column_break_4", + "vehicle_segment", + "vehicle_segment_id", + "active_status", + "service_kilometers", + "myid", + "display_order", + "global_publish_flag", + "internal_publish_flag" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "vehicle", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Vehicle", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "image", + "fieldtype": "Attach", + "label": "Image" + }, + { + "fieldname": "preview", + "fieldtype": "Image", + "label": "Preview", + "options": "image" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "vehicle_segment", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Vehicle Segment", + "options": "Vehicle Segment", + "reqd": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_global_search": 1, + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "service_kilometers", + "fieldtype": "Table MultiSelect", + "label": "Service Kilometers", + "options": "Vehicle_SK" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "set_only_once": 1 + }, + { + "fetch_from": "vehicle_segment.myid", + "fieldname": "vehicle_segment_id", + "fieldtype": "Data", + "hidden": 1, + "label": "Vehicle Segment ID", + "read_only": 1 + }, + { + "fieldname": "display_order", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Display Order", + "reqd": 1 + }, + { + "default": "0", + "fieldname": "global_publish_flag", + "fieldtype": "Check", + "hidden": 1, + "label": "Global Publish Flag", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "internal_publish_flag", + "fieldtype": "Check", + "hidden": 1, + "label": "Internal Publish Flag", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-22 10:34:52.578134", + "modified_by": "Administrator", + "module": "Masters", + "name": "Vehicle", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "vehicle,vehicle_segment,active_status", + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "vehicle", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/vehicle/vehicle.py b/smart_service/masters/doctype/vehicle/vehicle.py new file mode 100644 index 0000000..863505b --- /dev/null +++ b/smart_service/masters/doctype/vehicle/vehicle.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Vehicle(Document): + pass diff --git a/smart_service/masters/doctype/vehicle_segment/__init__.py b/smart_service/masters/doctype/vehicle_segment/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/vehicle_segment/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/vehicle_segment/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..1f37eb6 Binary files /dev/null and b/smart_service/masters/doctype/vehicle_segment/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle_segment/__pycache__/test_vehicle_segment.cpython-38.pyc b/smart_service/masters/doctype/vehicle_segment/__pycache__/test_vehicle_segment.cpython-38.pyc new file mode 100644 index 0000000..5ba6116 Binary files /dev/null and b/smart_service/masters/doctype/vehicle_segment/__pycache__/test_vehicle_segment.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle_segment/__pycache__/vehicle_segment.cpython-38.pyc b/smart_service/masters/doctype/vehicle_segment/__pycache__/vehicle_segment.cpython-38.pyc new file mode 100644 index 0000000..5ef2c8d Binary files /dev/null and b/smart_service/masters/doctype/vehicle_segment/__pycache__/vehicle_segment.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle_segment/test_vehicle_segment.py b/smart_service/masters/doctype/vehicle_segment/test_vehicle_segment.py new file mode 100644 index 0000000..cc21a3a --- /dev/null +++ b/smart_service/masters/doctype/vehicle_segment/test_vehicle_segment.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVehicleSegment(unittest.TestCase): + pass diff --git a/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js new file mode 100644 index 0000000..b9064b6 --- /dev/null +++ b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Vehicle Segment', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/masters/doctype/vehicle_segment/vehicle_segment.json b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.json new file mode 100644 index 0000000..5a679a5 --- /dev/null +++ b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.json @@ -0,0 +1,91 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{vehicle_segment}", + "creation": "2021-10-28 10:44:56.185080", + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "vehicle_segment", + "active_status", + "myid", + "display_order" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "vehicle_segment", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Vehicle Segment", + "reqd": 1, + "translatable": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "myid", + "fieldtype": "Data", + "hidden": 1, + "in_list_view": 1, + "label": "myID", + "read_only": 1, + "set_only_once": 1 + }, + { + "fieldname": "display_order", + "fieldtype": "Int", + "in_list_view": 1, + "label": "Display Order", + "reqd": 1 + } + ], + "icon": "fa fa-car-alt", + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-15 14:23:04.580818", + "modified_by": "Administrator", + "module": "Masters", + "name": "Vehicle Segment", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "vehicle_segment", + "show_preview_popup": 1, + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "vehicle_segment", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/vehicle_segment/vehicle_segment.py b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.py new file mode 100644 index 0000000..865eae3 --- /dev/null +++ b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class VehicleSegment(Document): + pass diff --git a/smart_service/masters/doctype/vehicle_sk/__init__.py b/smart_service/masters/doctype/vehicle_sk/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/doctype/vehicle_sk/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/doctype/vehicle_sk/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..219f279 Binary files /dev/null and b/smart_service/masters/doctype/vehicle_sk/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle_sk/__pycache__/vehicle_sk.cpython-38.pyc b/smart_service/masters/doctype/vehicle_sk/__pycache__/vehicle_sk.cpython-38.pyc new file mode 100644 index 0000000..1665c4e Binary files /dev/null and b/smart_service/masters/doctype/vehicle_sk/__pycache__/vehicle_sk.cpython-38.pyc differ diff --git a/smart_service/masters/doctype/vehicle_sk/vehicle_sk.json b/smart_service/masters/doctype/vehicle_sk/vehicle_sk.json new file mode 100644 index 0000000..3fa686b --- /dev/null +++ b/smart_service/masters/doctype/vehicle_sk/vehicle_sk.json @@ -0,0 +1,32 @@ +{ + "actions": [], + "creation": "2021-10-28 12:28:55.621507", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "service_kilometers" + ], + "fields": [ + { + "bold": 1, + "fieldname": "service_kilometers", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Service Kilometers", + "options": "Service Kilometers" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-14 17:41:14.333545", + "modified_by": "Administrator", + "module": "Masters", + "name": "Vehicle_SK", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/masters/doctype/vehicle_sk/vehicle_sk.py b/smart_service/masters/doctype/vehicle_sk/vehicle_sk.py new file mode 100644 index 0000000..e54fbad --- /dev/null +++ b/smart_service/masters/doctype/vehicle_sk/vehicle_sk.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Vehicle_SK(Document): + pass diff --git a/smart_service/masters/report/__init__.py b/smart_service/masters/report/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/report/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/report/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..8019bae Binary files /dev/null and b/smart_service/masters/report/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/report/_fuel_translation/__init__.py b/smart_service/masters/report/_fuel_translation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/masters/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc b/smart_service/masters/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..446339a Binary files /dev/null and b/smart_service/masters/report/_fuel_translation/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/masters/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc b/smart_service/masters/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc new file mode 100644 index 0000000..90c7958 Binary files /dev/null and b/smart_service/masters/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc differ diff --git a/smart_service/masters/report/_fuel_translation/_fuel_translation.js b/smart_service/masters/report/_fuel_translation/_fuel_translation.js new file mode 100644 index 0000000..176bcf4 --- /dev/null +++ b/smart_service/masters/report/_fuel_translation/_fuel_translation.js @@ -0,0 +1,9 @@ +// Copyright (c) 2016, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["_Fuel Translation"] = { + "filters": [ + + ] +}; diff --git a/smart_service/masters/report/_fuel_translation/_fuel_translation.json b/smart_service/masters/report/_fuel_translation/_fuel_translation.json new file mode 100644 index 0000000..464e172 --- /dev/null +++ b/smart_service/masters/report/_fuel_translation/_fuel_translation.json @@ -0,0 +1,29 @@ +{ + "add_total_row": 0, + "columns": [], + "creation": "2021-11-24 16:55:09.198495", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 0, + "is_standard": "Yes", + "modified": "2021-11-24 16:55:09.198495", + "modified_by": "Administrator", + "module": "Masters", + "name": "_Fuel Translation", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Fuel", + "report_name": "_Fuel Translation", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + }, + { + "role": "_Admin" + } + ] +} \ No newline at end of file diff --git a/smart_service/masters/report/_fuel_translation/_fuel_translation.py b/smart_service/masters/report/_fuel_translation/_fuel_translation.py new file mode 100644 index 0000000..2ba6ec2 --- /dev/null +++ b/smart_service/masters/report/_fuel_translation/_fuel_translation.py @@ -0,0 +1,8 @@ +# Copyright (c) 2013, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe + +def execute(filters=None): + columns, data = [], [] + return columns, data diff --git a/smart_service/modules.txt b/smart_service/modules.txt new file mode 100644 index 0000000..6b93949 --- /dev/null +++ b/smart_service/modules.txt @@ -0,0 +1,5 @@ +Mahindra Smart Service +Add Ons +Masters +Reports +Transactions \ No newline at end of file diff --git a/smart_service/patches.txt b/smart_service/patches.txt new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/public/__pycache__/api.cpython-38.pyc b/smart_service/public/__pycache__/api.cpython-38.pyc new file mode 100644 index 0000000..c0470f3 Binary files /dev/null and b/smart_service/public/__pycache__/api.cpython-38.pyc differ diff --git a/smart_service/public/__pycache__/oauthtest.cpython-38.pyc b/smart_service/public/__pycache__/oauthtest.cpython-38.pyc new file mode 100644 index 0000000..2659e7d Binary files /dev/null and b/smart_service/public/__pycache__/oauthtest.cpython-38.pyc differ diff --git a/smart_service/public/__pycache__/sess.cpython-38.pyc b/smart_service/public/__pycache__/sess.cpython-38.pyc new file mode 100644 index 0000000..ab8fb00 Binary files /dev/null and b/smart_service/public/__pycache__/sess.cpython-38.pyc differ diff --git a/smart_service/public/api.py b/smart_service/public/api.py new file mode 100644 index 0000000..8b272d9 --- /dev/null +++ b/smart_service/public/api.py @@ -0,0 +1,40 @@ +import frappe +from frappe import auth + + +@frappe.whitelist(allow_guest=True) +def login(usr, pwd): + try: + login_manager = frappe.auth.LoginManager() + login_manager.authenticate(user=usr, pwd=pwd) + login_manager.post_login() + except frappe.exceptions.AuthenticationError: + frappe.clear_messages() + frappe.local.response["message"] = { + "success_key": 0, + "message": "Authentication Error!" + } + return + + api_generate = generate_keys(frappe.session.user) + user = frappe.get_doc('User', frappe.session.user) + frappe.response["message"] = { + "success_key": 1, + "message": "Authentication success", + "sid": frappe.session.sid, + "api_key": user.api_key, + "api_secret": api_generate, + "username": user.username, + "email": user.email, + } + + +def generate_keys(user): + user_details = frappe.get_doc('User', user) + api_secret = frappe.generate_hash(length=15) + if not user_details.api_key: + api_key = frappe.generate_hash(length=15) + user_details.api_key = api_key + user_details.api_secret = api_secret + user_details.save() + return api_secret diff --git a/smart_service/public/build.json b/smart_service/public/build.json new file mode 100644 index 0000000..1940a31 --- /dev/null +++ b/smart_service/public/build.json @@ -0,0 +1,6 @@ +{ + "css/smart_service.min.css": [ + "public/css/smart_service.css" + ] + +} \ No newline at end of file diff --git a/smart_service/public/css/smart_service.css b/smart_service/public/css/smart_service.css new file mode 100644 index 0000000..1a2060b --- /dev/null +++ b/smart_service/public/css/smart_service.css @@ -0,0 +1,86 @@ +.btn.btn-primary { + background-color: #E31A37; + border-color: #E31A37; + outline: 0!important; + box-shadow: none!important; + + + color: var(--white); + white-space: nowrap; + --icon-stroke: #E31A37!important; + --icon-fill-bg: #E31A37!important; +} +.btn.btn-primary:active{ + background-color: #c50000!important; + border-color: #E31A37!important; + outline: 0!important; + box-shadow: 0 0 2px 2px #E31A37!important; + /* h-offset v-offset blur spread colour */ +} + + +.app-logo { + width: 100px !important; +} +.navbar{ + box-shadow: 7px -2px 11px #E31A37; +} + + +.a.nav-link.btn-login-area.active,.navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: #E31A37!important; +} + + +.btn-primary-light.active { +background-color: #E31A37; +border-color: #E31A37; +outline: 0!important; +box-shadow: 0 0 2px 2px #E31A37!important; + +} +.login-captcha-refresh{ + right: 9px; + top: 9px; + position: absolute; + z-index: 2; + cursor: pointer; + font-size: 12px; +} +.txt-input-captcha{ + margin-left: 60px; + width: 81%; +} +.captcha-txt{ + font-size: 15px; + color: #E31A37; + font-weight: bold; +} +.loadingBlock{ top: 65%; + left: 48%;position: absolute;z-index:9999; } +.gear{width: 80px; height: 80px; border-radius:10%; margin:80px auto; border:5px solid #E31A37 ; position:relative; +} + +.gear:after{content:"";width: 100px; height: 100px;border-radius:100%; display:block; border:5px dashed #E31A37 ;position:absolute; top:-24px; left: -24px; box-shadow: inset 0px 0 0 20px #E31A37; transform:scale(.5) rotate(0deg); + animation:gear 8s linear infinite;} + +.gear:before{content:"";width: 58px; height: 58px;border-radius:100%; + display:block; border:5px dashed #E31A37 ; position:absolute; top:26px; right: -14px; box-shadow: inset 0px 0 0 10px #E31A37; transform:scale(.5) rotate(0deg); + animation:gear2 3s linear infinite;} + +@keyframes gear { + 0%{transform:scale(.5) rotate(0deg);} + 100%{transform:scale(.5) rotate(360deg);} +} +@-webkit-keyframes gear { + 0%{transform:scale(.5) rotate(0deg);} + 100%{transform:scale(.5) rotate(360deg);} +} + +@keyframes gear2 { + 0%{transform:scale(.5) rotate(0deg);} + 100%{transform:scale(.5) rotate(-360deg);} +} + + + diff --git a/smart_service/public/icons/dot.png b/smart_service/public/icons/dot.png new file mode 100644 index 0000000..a0bd13f Binary files /dev/null and b/smart_service/public/icons/dot.png differ diff --git a/smart_service/public/icons/outline_description_black_24dp.png b/smart_service/public/icons/outline_description_black_24dp.png new file mode 100644 index 0000000..3ac5de5 Binary files /dev/null and b/smart_service/public/icons/outline_description_black_24dp.png differ diff --git a/smart_service/public/icons/outline_directions_car_black_24dp.png b/smart_service/public/icons/outline_directions_car_black_24dp.png new file mode 100644 index 0000000..81b1ee0 Binary files /dev/null and b/smart_service/public/icons/outline_directions_car_black_24dp.png differ diff --git a/smart_service/public/icons/outline_engineering_black_24dp.png b/smart_service/public/icons/outline_engineering_black_24dp.png new file mode 100644 index 0000000..de36591 Binary files /dev/null and b/smart_service/public/icons/outline_engineering_black_24dp.png differ diff --git a/smart_service/public/icons/outline_folder_open_black_24dp.png b/smart_service/public/icons/outline_folder_open_black_24dp.png new file mode 100644 index 0000000..6a3d4c7 Binary files /dev/null and b/smart_service/public/icons/outline_folder_open_black_24dp.png differ diff --git a/smart_service/public/icons/outline_manage_accounts_black_24dp.png b/smart_service/public/icons/outline_manage_accounts_black_24dp.png new file mode 100644 index 0000000..6cd433b Binary files /dev/null and b/smart_service/public/icons/outline_manage_accounts_black_24dp.png differ diff --git a/smart_service/public/icons/outline_stairs_black_24dp.png b/smart_service/public/icons/outline_stairs_black_24dp.png new file mode 100644 index 0000000..2e79ec2 Binary files /dev/null and b/smart_service/public/icons/outline_stairs_black_24dp.png differ diff --git a/smart_service/public/images/Mahindra_Newlogo.png b/smart_service/public/images/Mahindra_Newlogo.png new file mode 100644 index 0000000..bbea021 Binary files /dev/null and b/smart_service/public/images/Mahindra_Newlogo.png differ diff --git a/smart_service/public/images/Mahindra_title.png b/smart_service/public/images/Mahindra_title.png new file mode 100644 index 0000000..abae0ef Binary files /dev/null and b/smart_service/public/images/Mahindra_title.png differ diff --git a/smart_service/public/images/mahindra_splash_logo.png b/smart_service/public/images/mahindra_splash_logo.png new file mode 100644 index 0000000..33d49bc Binary files /dev/null and b/smart_service/public/images/mahindra_splash_logo.png differ diff --git a/smart_service/public/images/mahindra_splash_logo.svg b/smart_service/public/images/mahindra_splash_logo.svg new file mode 100644 index 0000000..498eb84 --- /dev/null +++ b/smart_service/public/images/mahindra_splash_logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/smart_service/public/oauthtest.py b/smart_service/public/oauthtest.py new file mode 100644 index 0000000..7e6f3ae --- /dev/null +++ b/smart_service/public/oauthtest.py @@ -0,0 +1,44 @@ +import frappe +from frappe import auth + + +@frappe.whitelist(allow_guest=True) +def login(device_id): + # try: + # login_manager = frappe.auth.LoginManager() + # login_manager.authenticate(user=usr, pwd=pwd) + # login_manager.post_login() + # except frappe.exceptions.AuthenticationError: + # frappe.clear_messages() + # frappe.local.response["message"] = { + # "success_key":0, + # "message":"Authentication Error!" + # } + # return + # api_generate = generate_keys(frappe.session.user) + # user = frappe.get_doc('User', frappe.session.user) + + api_secret = frappe.generate_hash(length=15) + api_key = frappe.generate_hash(length=15) + user_details = frappe.get_doc('User', 'Guest') + + frappe.response["message"] = { + "success_key": 1, + "message": "Authentication success", + "api_key": api_key, + "api_secret": api_secret, + 'device_id': device_id, + 'user_details': user_details, + 'sid': frappe.session.sid, + } + + +def generate_keys(user): + user_details = frappe.get_doc('User', 'Guest') + api_secret = frappe.generate_hash(length=15) + if not user_details.api_key: + api_key = frappe.generate_hash(length=15) + user_details.api_key = api_key + user_details.api_secret = api_secret + user_details.save() + return api_secret diff --git a/smart_service/public/sess.py b/smart_service/public/sess.py new file mode 100644 index 0000000..777cbf0 --- /dev/null +++ b/smart_service/public/sess.py @@ -0,0 +1,5 @@ +import frappe + + +def clearsess(): + frappe.session.clear() diff --git a/smart_service/reports/__init__.py b/smart_service/reports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/reports/__pycache__/__init__.cpython-38.pyc b/smart_service/reports/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..1dc44fe Binary files /dev/null and b/smart_service/reports/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/templates/__init__.py b/smart_service/templates/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/templates/__pycache__/__init__.cpython-38.pyc b/smart_service/templates/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..659b6e2 Binary files /dev/null and b/smart_service/templates/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/templates/includes/login/_login.js b/smart_service/templates/includes/login/_login.js new file mode 100644 index 0000000..a33e482 --- /dev/null +++ b/smart_service/templates/includes/login/_login.js @@ -0,0 +1,429 @@ +// login.js +// don't remove this line (used in test) +var http = new XMLHttpRequest(); +window.disable_signup = {{disable_signup and "true" or "false" }}; + +window.login = {}; + +window.verify = {}; +args = {},capTotal=0,capRandomNum1=0,capRandomNum2=0; +(!$('.loadingBlock').length)?$('body').append(''):''; +const rangeOfNumber =()=> { + let capRandomNum = Math.ceil(Math.random()*10); + if (capRandomNum.toString().length != 1) { + capRandomNum = rangeOfNumber(); + } + return capRandomNum; +} +const captchaNumGen = ()=>{ + capRandomNum1 = rangeOfNumber(); + capRandomNum2 = rangeOfNumber(); + $("#capRandomNum1").text(capRandomNum1); + $("#capRandomNum2").text(capRandomNum2); + capTotal = Number(capRandomNum1) + Number(capRandomNum2); +} +captchaNumGen(); +login.bind_events = function () { + $(window).on("hashchange", function () { + login.route(); + }); + args.txtCaptcha=0; + let isSubmit=0; + + $(".form-login").on("submit", function (event) { + event.preventDefault(); + if(isSubmit===1){ return false;} + $("button").css("cursor", "not-allowed"); + $("body").css("cursor", "not-allowed"); + login.set_status('{{ _("Connecting to Mahindra DMS...") }}', 'blue'); + + // $('.loadingBlock').show(); + $('.login-captcha-refresh').css('z-index', '-1'); + $('.toggle-password').css('z-index', '-1'); + args.cmd = "login"; + args.usr = frappe.utils.xss_sanitise(($("#login_email").val() || "").trim()); + + let getPass = $("#login_password").val(); + let getCaptcha = Number($("#login_captcha").val()); + if(capTotal!==getCaptcha){ + frappe.msgprint('{{ _("Please enter valid Captcha") }}'); + $("button").css("cursor", "pointer"); + $("body").css("cursor", "default"); + $('.login-captcha-refresh').css('z-index', '2'); + $('.toggle-password').css('z-index', '2'); + login.set_status('{{ _("Invalid Captcha. Try Again.") }}', 'red'); + captchaNumGen(); + return false; + } + + +const parseXmlToJson = (xml)=>{ + const json = {}; + for (const res of xml.matchAll(/(?:<(\w*)(?:\s[^>]*)*>)((?:(?!<\1).)*)(?:<\/\1>)|<(\w*)(?:\s*)*\/>/gm)) { + const key = res[1] || res[3]; + const value = res[2] && parseXmlToJson(res[2]); + json[key] = ((value && Object.keys(value).length) ? value : res[2]) || null; + } + return json; +} +isSubmit=1; +(async () => { //alert(JSON.stringify(args)); debugger; + const rawResponse = await fetch("http://www.mahindramile.com/WindowAuth/Service.asmx/ValidateCredential?LoginID="+args.usr+"&Password="+btoa(getPass)); + const resStr = await rawResponse.text(); + login.set_status('{{ _("Verifying...") }}', 'blue'); + if(resStr){ + const parseJson = parseXmlToJson(resStr); + if(parseJson){ + //alert(JSON.stringify(parseJson)); + if(parseJson.IsSuccessfull=='1'){ + base_pwd = "TGluY3lAMjAyMQ==" + args.pwd = atob(base_pwd); + + }else{ + args.pwd=getPass; + // if(args.pwd!=getPass){ + // frappe.msgprint('{{ _("Both login and password required") }}'); + // } + } + } + } + args.device = "desktop"; + $('.loadingBlock').hide(); + login.call(args); + isSubmit=0; + $("button").css("cursor", "pointer"); + $("body").css("cursor", "default"); + $('.login-captcha-refresh').css('z-index', '2'); + $('.toggle-password').css('z-index', '2'); + + return false; + + + })(); + + + + }); + + $(".form-signup").on("submit", function (event) { + event.preventDefault(); + var args = {}; + args.cmd = "frappe.core.doctype.user.user.sign_up"; + args.email = ($("#signup_email").val() || "").trim(); + args.redirect_to = frappe.utils.sanitise_redirect(frappe.utils.get_url_arg("redirect-to")); + args.full_name = frappe.utils.xss_sanitise(($("#signup_fullname").val() || "").trim()); + if (!args.email || !validate_email(args.email) || !args.full_name) { + login.set_status('{{ _("Valid email and name required") }}', 'red'); + return false; + } + login.call(args); + return false; + }); + + $(".form-forgot").on("submit", function (event) { + event.preventDefault(); + var args = {}; + args.cmd = "frappe.core.doctype.user.user.reset_password"; + args.user = ($("#forgot_email").val() || "").trim(); + if (!args.user) { + login.set_status('{{ _("Valid Login id required.") }}', 'red'); + return false; + } + login.call(args); + return false; + }); + + $(".toggle-password").click(function () { + var input = $($(this).attr("toggle")); + if (input.attr("type") == "password") { + input.attr("type", "text"); + $(this).text('{{ _("Hide") }}') + } else { + input.attr("type", "password"); + $(this).text('{{ _("Show") }}') + } + }); + + {% if ldap_settings and ldap_settings.enabled %} + $(".btn-ldap-login").on("click", function () { + var args = {}; + args.cmd = "{{ ldap_settings.method }}"; + args.usr = ($("#login_email").val() || "").trim(); + args.pwd = $("#login_password").val(); + args.device = "desktop"; + if (!args.usr || !args.pwd) { + login.set_status('{{ _("Both login and password required") }}', 'red'); + return false; + } + login.call(args); + return false; + }); + {% endif %} +} + + +login.route = function () { + var route = window.location.hash.slice(1); + if (!route) route = "login"; + login[route](); +} + +login.reset_sections = function (hide) { + if (hide || hide === undefined) { + $("section.for-login").toggle(false); + $("section.for-email-login").toggle(false); + $("section.for-forgot").toggle(false); + $("section.for-signup").toggle(false); + } + $('section:not(.signup-disabled) .indicator').each(function () { + $(this).removeClass().addClass('indicator').addClass('blue') + .text($(this).attr('data-text')); + }); +} + +login.login = function () { + login.reset_sections(); + $(".for-login").toggle(true); +} + +login.email = function () { + login.reset_sections(); + $(".for-email-login").toggle(true); + $("#login_email").focus(); +} + +login.steptwo = function () { + login.reset_sections(); + $(".for-login").toggle(true); + $("#login_email").focus(); +} + +login.forgot = function () { + login.reset_sections(); + $(".for-forgot").toggle(true); + $("#forgot_email").focus(); +} + +login.signup = function () { + login.reset_sections(); + $(".for-signup").toggle(true); + $("#signup_fullname").focus(); +} + + +// Login +login.call = function (args, callback) { + login.set_status('{{ _("Verifying...") }}', 'blue'); + + return frappe.call({ + type: "POST", + args: args, + callback: callback, + freeze: true, + statusCode: login.login_handlers + }); +} + +login.set_status = function (message, color) { + $('section:visible .btn-primary').text(message) + if (color == "red") { + $('section:visible .page-card-body').addClass("invalid"); + } +} + +login.set_invalid = function (message) { + $(".login-content.page-card").addClass('invalid-login'); + setTimeout(() => { + $(".login-content.page-card").removeClass('invalid-login'); + }, 500) + login.set_status(message, 'red'); + $("#login_password").focus(); +} + +login.login_handlers = (function () { + var get_error_handler = function (default_message) { + return function (xhr, data) { + if (xhr.responseJSON) { + data = xhr.responseJSON; + } + + var message = default_message; + if (data._server_messages) { + message = ($.map(JSON.parse(data._server_messages || '[]'), function (v) { + // temp fix for messages sent as dict + try { + return JSON.parse(v).message; + } catch (e) { + return v; + } + }) || []).join('
') || default_message; + } + + if (message === default_message) { + login.set_invalid(message); + } else { + login.reset_sections(false); + } + + }; + } + + var login_handlers = { + 200: function (data) { + if (data.message == 'Logged In') { + login.set_status('{{ _("Success") }}', 'green'); + window.location.href = frappe.utils.sanitise_redirect(frappe.utils.get_url_arg("redirect-to")) || data.home_page; + } else if (data.message == 'Password Reset') { + window.location.href = frappe.utils.sanitise_redirect(data.redirect_to); + } else if (data.message == "No App") { + login.set_status("{{ _('Success') }}", 'green'); + if (localStorage) { + var last_visited = + localStorage.getItem("last_visited") + || frappe.utils.sanitise_redirect(frappe.utils.get_url_arg("redirect-to")); + localStorage.removeItem("last_visited"); + } + + if (data.redirect_to) { + window.location.href = frappe.utils.sanitise_redirect(data.redirect_to); + } + + if (last_visited && last_visited != "/login") { + window.location.href = last_visited; + } else { + window.location.href = data.home_page; + } + } else if (window.location.hash === '#forgot') { + if (data.message === 'not found') { + login.set_status('{{ _("Not a valid user") }}', 'red'); + } else if (data.message == 'not allowed') { + login.set_status('{{ _("Not Allowed") }}', 'red'); + } else if (data.message == 'disabled') { + login.set_status('{{ _("Not Allowed: Disabled User") }}', 'red'); + } else { + login.set_status('{{ _("Instructions Emailed") }}', 'green'); + } + + + } else if (window.location.hash === '#signup') { + if (cint(data.message[0]) == 0) { + login.set_status(data.message[1], 'red'); + } else { + login.set_status('{{ _("Success") }}', 'green'); + frappe.msgprint(data.message[1]) + } + //login.set_status(__(data.message), 'green'); + } + + //OTP verification + if (data.verification && data.message != 'Logged In') { + login.set_status('{{ _("Success") }}', 'green'); + + document.cookie = "tmp_id=" + data.tmp_id; + + if (data.verification.method == 'OTP App') { + continue_otp_app(data.verification.setup, data.verification.qrcode); + } else if (data.verification.method == 'SMS') { + continue_sms(data.verification.setup, data.verification.prompt); + } else if (data.verification.method == 'Email') { + continue_email(data.verification.setup, data.verification.prompt); + } + } + }, + 401: get_error_handler('{{ _("Invalid Login. Try again.") }}'), + 417: get_error_handler('{{ _("Oops! Something went wrong") }}') + }; + + return login_handlers; +})(); + +frappe.ready(function () { + + login.bind_events(); + + if (!window.location.hash) { + window.location.hash = "#login"; + } else { + $(window).trigger("hashchange"); + } + + $(".form-signup, .form-forgot").removeClass("hide"); + $(document).trigger('login_rendered'); +}); + +var verify_token = function (event) { + $(".form-verify").on("submit", function (eventx) { + eventx.preventDefault(); + var args = {}; + args.cmd = "login"; + args.otp = $("#login_token").val(); + args.tmp_id = frappe.get_cookie('tmp_id'); + if (!args.otp) { + frappe.msgprint('{{ _("Login token required") }}'); + return false; + } + login.call(args); + return false; + }); +} + +var request_otp = function (r) { + $('.login-content').empty(); + $('.login-content:visible').append( + `
+
+
+ {{ _("Verification") }} +
+
+ + +
+
` + ); + // add event handler for submit button + verify_token(); +} + +var continue_otp_app = function (setup, qrcode) { + request_otp(); + var qrcode_div = $('
'); + + if (setup) { + direction = $('
').attr('id', 'qr_info').text('{{ _("Enter Code displayed in OTP App.") }}'); + qrcode_div.append(direction); + $('#otp_div').prepend(qrcode_div); + } else { + direction = $('
').attr('id', 'qr_info').html('{{ _("OTP setup using OTP App was not completed. Please contact Administrator.") }}'); + qrcode_div.append(direction); + $('#otp_div').prepend(qrcode_div); + } +} + +var continue_sms = function (setup, prompt) { + request_otp(); + var sms_div = $('
'); + + if (setup) { + sms_div.append(prompt) + $('#otp_div').prepend(sms_div); + } else { + direction = $('
').attr('id', 'qr_info').html(prompt || '{{ _("SMS was not sent. Please contact Administrator.") }}'); + sms_div.append(direction); + $('#otp_div').prepend(sms_div) + } +} + +var continue_email = function (setup, prompt) { + request_otp(); + var email_div = $('
'); + + if (setup) { + email_div.append(prompt) + $('#otp_div').prepend(email_div); + } else { + var direction = $('
').attr('id', 'qr_info').html(prompt || '{{ _("Verification code email not sent. Please contact Administrator.") }}'); + email_div.append(direction); + $('#otp_div').prepend(email_div); + } +} diff --git a/smart_service/templates/pages/__init__.py b/smart_service/templates/pages/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/templates/pages/__pycache__/__init__.cpython-38.pyc b/smart_service/templates/pages/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..c3c45f7 Binary files /dev/null and b/smart_service/templates/pages/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/__init__.py b/smart_service/transactions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..e3ee8fd Binary files /dev/null and b/smart_service/transactions/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/__init__.py b/smart_service/transactions/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..d7c3f2b Binary files /dev/null and b/smart_service/transactions/doctype/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/config_kilometer/__init__.py b/smart_service/transactions/doctype/config_kilometer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/config_kilometer/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/config_kilometer/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..92b2722 Binary files /dev/null and b/smart_service/transactions/doctype/config_kilometer/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/config_kilometer/__pycache__/config_kilometer.cpython-38.pyc b/smart_service/transactions/doctype/config_kilometer/__pycache__/config_kilometer.cpython-38.pyc new file mode 100644 index 0000000..a4c174a Binary files /dev/null and b/smart_service/transactions/doctype/config_kilometer/__pycache__/config_kilometer.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/config_kilometer/__pycache__/test_config_kilometer.cpython-38.pyc b/smart_service/transactions/doctype/config_kilometer/__pycache__/test_config_kilometer.cpython-38.pyc new file mode 100644 index 0000000..4cd7c56 Binary files /dev/null and b/smart_service/transactions/doctype/config_kilometer/__pycache__/test_config_kilometer.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/config_kilometer/config_kilometer.js b/smart_service/transactions/doctype/config_kilometer/config_kilometer.js new file mode 100644 index 0000000..8e025e5 --- /dev/null +++ b/smart_service/transactions/doctype/config_kilometer/config_kilometer.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Config Kilometer', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/config_kilometer/config_kilometer.json b/smart_service/transactions/doctype/config_kilometer/config_kilometer.json new file mode 100644 index 0000000..e6afb71 --- /dev/null +++ b/smart_service/transactions/doctype/config_kilometer/config_kilometer.json @@ -0,0 +1,160 @@ +{ + "actions": [], + "autoname": "format:{variant_mapping}-KM", + "creation": "2021-11-17 11:15:48.349297", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "active_status", + "column_break_3", + "fuel", + "workflow_state", + "column_break_6", + "transmission", + "column_break_8", + "drive", + "column_break_10", + "family_code", + "section_break_3", + "config_kilometer", + "store_ck", + "store_ck_values" + ], + "fields": [ + { + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "section_break_3", + "fieldtype": "Section Break" + }, + { + "fieldname": "config_kilometer", + "fieldtype": "HTML", + "label": "Config Kilometer" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.fuel", + "fieldname": "fuel", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Fuel", + "read_only": 1 + }, + { + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Ready\nPublished", + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.transmission", + "fieldname": "transmission", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Transmission", + "read_only": 1 + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.drive", + "fieldname": "drive", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Drive", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.family_code", + "fieldname": "family_code", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Family Code", + "read_only": 1 + }, + { + "fieldname": "store_ck", + "fieldtype": "Long Text", + "hidden": 1, + "label": "Store CK" + }, + { + "fieldname": "store_ck_values", + "fieldtype": "Long Text", + "hidden": 1, + "label": "Store CK Values", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-11-26 15:30:09.131000", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Config Kilometer", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/config_kilometer/config_kilometer.py b/smart_service/transactions/doctype/config_kilometer/config_kilometer.py new file mode 100644 index 0000000..0f9b26f --- /dev/null +++ b/smart_service/transactions/doctype/config_kilometer/config_kilometer.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class ConfigKilometer(Document): + pass diff --git a/smart_service/transactions/doctype/config_kilometer/test_config_kilometer.py b/smart_service/transactions/doctype/config_kilometer/test_config_kilometer.py new file mode 100644 index 0000000..81badbb --- /dev/null +++ b/smart_service/transactions/doctype/config_kilometer/test_config_kilometer.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestConfigKilometer(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/kilometer_mapping/__init__.py b/smart_service/transactions/doctype/kilometer_mapping/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/kilometer_mapping/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..38e5250 Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping/__pycache__/kilometer_mapping.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/kilometer_mapping.cpython-38.pyc new file mode 100644 index 0000000..0de80e0 Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/kilometer_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping/__pycache__/test_kilometer_mapping.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/test_kilometer_mapping.cpython-38.pyc new file mode 100644 index 0000000..c219b14 Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping/__pycache__/test_kilometer_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js new file mode 100644 index 0000000..5b464ef --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Kilometer Mapping', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.json b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.json new file mode 100644 index 0000000..bdfc8d9 --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.json @@ -0,0 +1,193 @@ +{ + "actions": [], + "autoname": "format:{variant_mapping}-KM", + "creation": "2021-11-27 15:29:24.379607", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "active_status", + "column_break_3", + "fuel", + "workflow_state", + "column_break_6", + "transmission", + "column_break_8", + "drive", + "column_break_10", + "family_code", + "vehicle", + "section_break_12", + "kilometer_filter", + "column_break_14", + "sub_system_filter", + "section_break_16", + "config_kilometer" + ], + "fields": [ + { + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.fuel", + "fieldname": "fuel", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Fuel", + "options": "Fuel", + "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "in_list_view": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked", + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.transmission", + "fieldname": "transmission", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Transmission", + "options": "Transmission", + "read_only": 1 + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.drive", + "fieldname": "drive", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Drive", + "options": "Drive", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.family_code", + "fieldname": "family_code", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Family Code", + "read_only": 1 + }, + { + "fieldname": "section_break_12", + "fieldtype": "Section Break", + "label": "Filter By" + }, + { + "fieldname": "config_kilometer", + "fieldtype": "Table", + "label": "Config Kilometer", + "options": "Kilometer Mapping_Items" + }, + { + "default": "All", + "fieldname": "sub_system_filter", + "fieldtype": "Select", + "label": "Sub System", + "options": "All" + }, + { + "fieldname": "column_break_14", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_16", + "fieldtype": "Section Break" + }, + { + "fieldname": "kilometer_filter", + "fieldtype": "Select", + "label": "Kilometer", + "options": "All" + }, + { + "fetch_from": "variant_mapping.vehicle", + "fieldname": "vehicle", + "fieldtype": "Data", + "label": "Vehicle", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-26 08:41:27.769730", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Kilometer Mapping", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py new file mode 100644 index 0000000..cb10f3b --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping/kilometer_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class KilometerMapping(Document): + pass diff --git a/smart_service/transactions/doctype/kilometer_mapping/test_kilometer_mapping.py b/smart_service/transactions/doctype/kilometer_mapping/test_kilometer_mapping.py new file mode 100644 index 0000000..5b513dd --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping/test_kilometer_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestKilometerMapping(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/kilometer_mapping_items/__init__.py b/smart_service/transactions/doctype/kilometer_mapping_items/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..3d5e95f Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/kilometer_mapping_items.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/kilometer_mapping_items.cpython-38.pyc new file mode 100644 index 0000000..86947e6 Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping_items/__pycache__/kilometer_mapping_items.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.json b/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.json new file mode 100644 index 0000000..104269b --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.json @@ -0,0 +1,54 @@ +{ + "actions": [], + "creation": "2021-11-27 15:29:04.735368", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "kilometer", + "mat", + "sub_systems", + "applicable" + ], + "fields": [ + { + "fieldname": "kilometer", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Kilometer", + "read_only": 1 + }, + { + "fieldname": "mat", + "fieldtype": "Data", + "in_list_view": 1, + "label": "MAT", + "read_only": 1 + }, + { + "fieldname": "sub_systems", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Sub Systems", + "read_only": 1 + }, + { + "default": "1", + "fieldname": "applicable", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Applicable " + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-29 13:42:31.330298", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Kilometer Mapping_Items", + "nsm_parent_field": "parent_kilometer_mapping_items", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.py b/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.py new file mode 100644 index 0000000..a37c62f --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping_items/kilometer_mapping_items.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class KilometerMapping_Items(Document): + pass diff --git a/smart_service/transactions/doctype/kilometer_mapping_items_temp/__init__.py b/smart_service/transactions/doctype/kilometer_mapping_items_temp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..6b8d23f Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/kilometer_mapping_items_temp.cpython-38.pyc b/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/kilometer_mapping_items_temp.cpython-38.pyc new file mode 100644 index 0000000..e3ee5fb Binary files /dev/null and b/smart_service/transactions/doctype/kilometer_mapping_items_temp/__pycache__/kilometer_mapping_items_temp.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.json b/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.json new file mode 100644 index 0000000..1951e90 --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.json @@ -0,0 +1,54 @@ +{ + "actions": [], + "creation": "2021-12-01 09:46:27.570745", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "kilometer", + "mat", + "sub_systems", + "applicable" + ], + "fields": [ + { + "fieldname": "kilometer", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Kilometer", + "read_only": 1 + }, + { + "fieldname": "mat", + "fieldtype": "Data", + "in_list_view": 1, + "label": "MAT", + "read_only": 1 + }, + { + "fieldname": "sub_systems", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Sub Systems", + "read_only": 1 + }, + { + "default": "1", + "fieldname": "applicable", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Applicable " + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-01 09:46:27.570745", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Kilometer Mapping_Items Temp", + "nsm_parent_field": "parent_kilometer_mapping_items", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.py b/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.py new file mode 100644 index 0000000..6eb8c6b --- /dev/null +++ b/smart_service/transactions/doctype/kilometer_mapping_items_temp/kilometer_mapping_items_temp.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class KilometerMapping_ItemsTemp(Document): + pass diff --git a/smart_service/transactions/doctype/pro/__init__.py b/smart_service/transactions/doctype/pro/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/pro/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/pro/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..1f50c2a Binary files /dev/null and b/smart_service/transactions/doctype/pro/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/pro/__pycache__/pro.cpython-38.pyc b/smart_service/transactions/doctype/pro/__pycache__/pro.cpython-38.pyc new file mode 100644 index 0000000..22ef816 Binary files /dev/null and b/smart_service/transactions/doctype/pro/__pycache__/pro.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/pro/__pycache__/test_pro.cpython-38.pyc b/smart_service/transactions/doctype/pro/__pycache__/test_pro.cpython-38.pyc new file mode 100644 index 0000000..76ff997 Binary files /dev/null and b/smart_service/transactions/doctype/pro/__pycache__/test_pro.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/pro/pro.js b/smart_service/transactions/doctype/pro/pro.js new file mode 100644 index 0000000..c802177 --- /dev/null +++ b/smart_service/transactions/doctype/pro/pro.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Pro', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/pro/pro.json b/smart_service/transactions/doctype/pro/pro.json new file mode 100644 index 0000000..48ee3b3 --- /dev/null +++ b/smart_service/transactions/doctype/pro/pro.json @@ -0,0 +1,217 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "format:{variant_mapping}-{sub_systems}-{language}", + "creation": "2021-12-03 09:21:21.977317", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "column_break_3", + "sub_systems", + "fuel", + "column_break_6", + "language", + "transmission", + "column_break_8", + "active_status", + "workflow_state", + "drive", + "column_break_10", + "vehicle", + "family_code", + "section_break_12", + "procedure", + "column_break_17", + "step", + "section_break_19", + "procedure_details", + "procedure_list_section", + "procedure_list" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "sub_systems", + "fieldtype": "Link", + "label": "Sub Systems", + "options": "Sub Systems", + "reqd": 1, + "set_only_once": 1 + }, + { + "fetch_from": "variant_mapping.fuel", + "fieldname": "fuel", + "fieldtype": "Link", + "label": "Fuel", + "options": "Fuel", + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages", + "reqd": 1, + "set_only_once": 1 + }, + { + "fetch_from": "variant_mapping.transmission", + "fieldname": "transmission", + "fieldtype": "Link", + "label": "Transmission", + "options": "Transmission", + "read_only": 1 + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "allow_in_quick_entry": 1, + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "default": "Draft", + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked" + }, + { + "fetch_from": "variant_mapping.drive", + "fieldname": "drive", + "fieldtype": "Link", + "label": "Drive", + "options": "Drive", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.vehicle", + "fieldname": "vehicle", + "fieldtype": "Link", + "label": "Vehicle", + "options": "Vehicle", + "read_only": 1 + }, + { + "fetch_from": "variant_mapping.family_code", + "fieldname": "family_code", + "fieldtype": "Data", + "label": "Family Code", + "read_only": 1 + }, + { + "fieldname": "section_break_12", + "fieldtype": "Section Break" + }, + { + "allow_bulk_edit": 1, + "fieldname": "procedure_details", + "fieldtype": "Table", + "label": "Procedure_Details", + "options": "Procedure_Details" + }, + { + "fieldname": "procedure", + "fieldtype": "Select", + "label": "Procedure", + "options": "Overview\nInstall" + }, + { + "fieldname": "column_break_17", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_19", + "fieldtype": "Section Break" + }, + { + "fieldname": "step", + "fieldtype": "Select", + "label": "Step" + }, + { + "fieldname": "procedure_list_section", + "fieldtype": "Section Break", + "label": "Procedure List" + }, + { + "fieldname": "procedure_list", + "fieldtype": "Table", + "label": "Procedure List", + "options": "Procedure_Procedure List" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-03 12:34:46.398047", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Pro", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "search_fields": "active_status,workflow_state,fuel,transmission,drive,family_code,language", + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/pro/pro.py b/smart_service/transactions/doctype/pro/pro.py new file mode 100644 index 0000000..0e25923 --- /dev/null +++ b/smart_service/transactions/doctype/pro/pro.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Pro(Document): + pass diff --git a/smart_service/transactions/doctype/pro/test_pro.py b/smart_service/transactions/doctype/pro/test_pro.py new file mode 100644 index 0000000..d0d4f02 --- /dev/null +++ b/smart_service/transactions/doctype/pro/test_pro.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestPro(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/procedure/__init__.py b/smart_service/transactions/doctype/procedure/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/procedure/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/procedure/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..f54427b Binary files /dev/null and b/smart_service/transactions/doctype/procedure/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure/__pycache__/procedure.cpython-38.pyc b/smart_service/transactions/doctype/procedure/__pycache__/procedure.cpython-38.pyc new file mode 100644 index 0000000..c8ae902 Binary files /dev/null and b/smart_service/transactions/doctype/procedure/__pycache__/procedure.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure/__pycache__/test_procedure.cpython-38.pyc b/smart_service/transactions/doctype/procedure/__pycache__/test_procedure.cpython-38.pyc new file mode 100644 index 0000000..57c1f33 Binary files /dev/null and b/smart_service/transactions/doctype/procedure/__pycache__/test_procedure.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure/procedure.js b/smart_service/transactions/doctype/procedure/procedure.js new file mode 100644 index 0000000..9d47480 --- /dev/null +++ b/smart_service/transactions/doctype/procedure/procedure.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Procedure', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/procedure/procedure.json b/smart_service/transactions/doctype/procedure/procedure.json new file mode 100644 index 0000000..535a053 --- /dev/null +++ b/smart_service/transactions/doctype/procedure/procedure.json @@ -0,0 +1,198 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "format:{variant_mapping}-{sub_systems}-{language}", + "creation": "2021-10-29 12:03:34.388506", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "fuel", + "column_break_3", + "sub_systems", + "sub_systems_id", + "transmission", + "column_break_6", + "language", + "workflow_state", + "vehicle", + "drive", + "column_break_8", + "active_status", + "family_code", + "section_break_12", + "procedure_filter", + "section_break_18", + "procedure_details" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.fuel", + "fieldname": "fuel", + "fieldtype": "Link", + "label": "Fuel", + "options": "Fuel", + "read_only": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.transmission", + "fieldname": "transmission", + "fieldtype": "Link", + "label": "Transmission", + "options": "Transmission", + "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.drive", + "fieldname": "drive", + "fieldtype": "Link", + "label": "Drive", + "options": "Drive", + "read_only": 1 + }, + { + "fetch_from": "variant_mapping.family_code", + "fieldname": "family_code", + "fieldtype": "Data", + "label": "Family Code", + "read_only": 1 + }, + { + "fieldname": "section_break_12", + "fieldtype": "Section Break" + }, + { + "fieldname": "sub_systems", + "fieldtype": "Link", + "label": "Sub Systems", + "options": "Sub Systems", + "reqd": 1, + "set_only_once": 1 + }, + { + "allow_bulk_edit": 1, + "fieldname": "procedure_details", + "fieldtype": "Table", + "label": "Procedure_Details", + "options": "Procedure_Details" + }, + { + "fetch_from": "variant_mapping.vehicle", + "fieldname": "vehicle", + "fieldtype": "Link", + "hidden": 1, + "label": "Vehicle", + "options": "Vehicle", + "read_only": 1 + }, + { + "fieldname": "section_break_18", + "fieldtype": "Section Break" + }, + { + "fieldname": "procedure_filter", + "fieldtype": "Select", + "label": "Procedure Name", + "options": "All" + }, + { + "fetch_from": "sub_systems.myid", + "fieldname": "sub_systems_id", + "fieldtype": "Data", + "hidden": 1, + "label": "Sub Systems ID", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-22 10:08:42.753823", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Procedure", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + } + ], + "search_fields": "active_status,workflow_state,fuel,transmission,drive,family_code,language", + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/procedure/procedure.py b/smart_service/transactions/doctype/procedure/procedure.py new file mode 100644 index 0000000..aadfa69 --- /dev/null +++ b/smart_service/transactions/doctype/procedure/procedure.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Procedure(Document): + pass diff --git a/smart_service/transactions/doctype/procedure/test_procedure.py b/smart_service/transactions/doctype/procedure/test_procedure.py new file mode 100644 index 0000000..4beff7a --- /dev/null +++ b/smart_service/transactions/doctype/procedure/test_procedure.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestProcedure(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/procedure_details/__init__.py b/smart_service/transactions/doctype/procedure_details/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/procedure_details/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/procedure_details/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..12f83c4 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_details/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_details/__pycache__/procedure_details.cpython-38.pyc b/smart_service/transactions/doctype/procedure_details/__pycache__/procedure_details.cpython-38.pyc new file mode 100644 index 0000000..8403f74 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_details/__pycache__/procedure_details.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_details/procedure_details.json b/smart_service/transactions/doctype/procedure_details/procedure_details.json new file mode 100644 index 0000000..773a34f --- /dev/null +++ b/smart_service/transactions/doctype/procedure_details/procedure_details.json @@ -0,0 +1,69 @@ +{ + "actions": [], + "creation": "2021-10-29 11:57:50.171414", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "procedure_name", + "step_name", + "content_type", + "content", + "file" + ], + "fields": [ + { + "columns": 1, + "fieldname": "procedure_name", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure Name", + "options": "Procedure Name", + "reqd": 1 + }, + { + "columns": 2, + "fieldname": "step_name", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Step Name", + "options": "Procedure Step Name", + "reqd": 1 + }, + { + "columns": 1, + "fieldname": "content_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Content Type", + "options": "\nHeading\nDescription\nCaution\nTorque Value\nNotice\nMST Usage\nDanger\nLink\nWarning\nFile", + "reqd": 1 + }, + { + "columns": 4, + "fieldname": "content", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Content" + }, + { + "columns": 2, + "fieldname": "file", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "File" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-23 13:42:47.545081", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Procedure_Details", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/procedure_details/procedure_details.py b/smart_service/transactions/doctype/procedure_details/procedure_details.py new file mode 100644 index 0000000..fdd362f --- /dev/null +++ b/smart_service/transactions/doctype/procedure_details/procedure_details.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Procedure_Details(Document): + pass diff --git a/smart_service/transactions/doctype/procedure_name/__init__.py b/smart_service/transactions/doctype/procedure_name/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/procedure_name/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/procedure_name/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..9742df5 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_name/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_name.cpython-38.pyc b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_name.cpython-38.pyc new file mode 100644 index 0000000..aa7283f Binary files /dev/null and b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_name.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_name.cpython-38.pyc b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_name.cpython-38.pyc new file mode 100644 index 0000000..d802d54 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_name.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_names.cpython-38.pyc b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_names.cpython-38.pyc new file mode 100644 index 0000000..f77f04b Binary files /dev/null and b/smart_service/transactions/doctype/procedure_name/__pycache__/procedure_procedure_names.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_name/__pycache__/test_procedure_name.cpython-38.pyc b/smart_service/transactions/doctype/procedure_name/__pycache__/test_procedure_name.cpython-38.pyc new file mode 100644 index 0000000..e01cc55 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_name/__pycache__/test_procedure_name.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_name/procedure_name.js b/smart_service/transactions/doctype/procedure_name/procedure_name.js new file mode 100644 index 0000000..3c8209e --- /dev/null +++ b/smart_service/transactions/doctype/procedure_name/procedure_name.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Procedure Name', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/procedure_name/procedure_name.json b/smart_service/transactions/doctype/procedure_name/procedure_name.json new file mode 100644 index 0000000..08ca278 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_name/procedure_name.json @@ -0,0 +1,51 @@ +{ + "actions": [], + "allow_import": 1, + "allow_rename": 1, + "autoname": "format:{procedure_name}", + "creation": "2021-12-03 09:33:15.477982", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "procedure_name" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "procedure_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "label": "Procedure Name", + "reqd": 1, + "unique": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-03 12:23:39.999238", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Procedure Name", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "search_fields": "procedure_name", + "sort_field": "procedure_name", + "sort_order": "ASC", + "title_field": "procedure_name" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/procedure_name/procedure_name.py b/smart_service/transactions/doctype/procedure_name/procedure_name.py new file mode 100644 index 0000000..d69a7c5 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_name/procedure_name.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class ProcedureName(Document): + pass diff --git a/smart_service/transactions/doctype/procedure_name/test_procedure_name.py b/smart_service/transactions/doctype/procedure_name/test_procedure_name.py new file mode 100644 index 0000000..3372115 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_name/test_procedure_name.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestProcedureName(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/procedure_procedure_list/__init__.py b/smart_service/transactions/doctype/procedure_procedure_list/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..e6e7019 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/procedure_procedure_list.cpython-38.pyc b/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/procedure_procedure_list.cpython-38.pyc new file mode 100644 index 0000000..55aa0d0 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_procedure_list/__pycache__/procedure_procedure_list.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.json b/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.json new file mode 100644 index 0000000..01a00e0 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.json @@ -0,0 +1,37 @@ +{ + "actions": [], + "creation": "2021-12-03 12:29:36.315973", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "procedure_name", + "active_status" + ], + "fields": [ + { + "fieldname": "procedure_name", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Procedure Name" + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-03 12:29:36.315973", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Procedure_Procedure List", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.py b/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.py new file mode 100644 index 0000000..b92cbaf --- /dev/null +++ b/smart_service/transactions/doctype/procedure_procedure_list/procedure_procedure_list.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Procedure_ProcedureList(Document): + pass diff --git a/smart_service/transactions/doctype/procedure_step_name/__init__.py b/smart_service/transactions/doctype/procedure_step_name/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/procedure_step_name/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/procedure_step_name/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..7da2b85 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_step_name/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_name.cpython-38.pyc b/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_name.cpython-38.pyc new file mode 100644 index 0000000..6ebe064 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_name.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_names.cpython-38.pyc b/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_names.cpython-38.pyc new file mode 100644 index 0000000..fdf61fa Binary files /dev/null and b/smart_service/transactions/doctype/procedure_step_name/__pycache__/procedure_step_names.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_step_name/__pycache__/test_procedure_step_name.cpython-38.pyc b/smart_service/transactions/doctype/procedure_step_name/__pycache__/test_procedure_step_name.cpython-38.pyc new file mode 100644 index 0000000..f12e098 Binary files /dev/null and b/smart_service/transactions/doctype/procedure_step_name/__pycache__/test_procedure_step_name.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.js b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.js new file mode 100644 index 0000000..0bb6a89 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Procedure Step Name', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.json b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.json new file mode 100644 index 0000000..ef6a351 --- /dev/null +++ b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.json @@ -0,0 +1,50 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "format:{step_name}", + "creation": "2021-12-03 09:42:59.565222", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "step_name" + ], + "fields": [ + { + "allow_in_quick_entry": 1, + "fieldname": "step_name", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "label": "Step Name", + "reqd": 1, + "unique": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-03 12:23:23.239225", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Procedure Step Name", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "search_fields": "step_name", + "sort_field": "step_name", + "sort_order": "ASC", + "title_field": "step_name" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.py b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.py new file mode 100644 index 0000000..060d67c --- /dev/null +++ b/smart_service/transactions/doctype/procedure_step_name/procedure_step_name.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class ProcedureStepName(Document): + pass diff --git a/smart_service/transactions/doctype/procedure_step_name/test_procedure_step_name.py b/smart_service/transactions/doctype/procedure_step_name/test_procedure_step_name.py new file mode 100644 index 0000000..6f847fa --- /dev/null +++ b/smart_service/transactions/doctype/procedure_step_name/test_procedure_step_name.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestProcedureStepName(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/publish/__init__.py b/smart_service/transactions/doctype/publish/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/publish/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/publish/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..20f3c5b Binary files /dev/null and b/smart_service/transactions/doctype/publish/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish/__pycache__/publish.cpython-38.pyc b/smart_service/transactions/doctype/publish/__pycache__/publish.cpython-38.pyc new file mode 100644 index 0000000..897c2bb Binary files /dev/null and b/smart_service/transactions/doctype/publish/__pycache__/publish.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish/__pycache__/test_publish.cpython-38.pyc b/smart_service/transactions/doctype/publish/__pycache__/test_publish.cpython-38.pyc new file mode 100644 index 0000000..68c5d42 Binary files /dev/null and b/smart_service/transactions/doctype/publish/__pycache__/test_publish.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish/jsonData/procedurePublish.json b/smart_service/transactions/doctype/publish/jsonData/procedurePublish.json new file mode 100644 index 0000000..f79061b --- /dev/null +++ b/smart_service/transactions/doctype/publish/jsonData/procedurePublish.json @@ -0,0 +1 @@ +[{"Thar.AX-0311-Fuel Filter Element - Replace-en": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 2}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 3}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Description", "content": "
  • The fuel filter filters impurities that may be present in the fuel. The fuel system operates under high pressure which makes it absolutely essential for the fuel to be dust free and moisture free. The fuel filter also has the water separator which filters the moisture that may have crept into the fuel. The high pressure pump in the fuel system operates at high speeds and fine clearance which needs the diesel to be dust free and also be free of moisture at the same time. Since the diesel itself lubricates the PF Pump, If water content is present in fuel, the fuel looses its lubrication property and thus PF Pump and injectors will get damaged. Also the moisture content may lead to formation of rust on the pump elements. This makes it advisable not to use diesel with additives which may cause damage to the PF Pump.
", "file": "", "idx": 4}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on level work bay
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": "", "idx": 5}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "idx": 6}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 7}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Warning", "content": "
  • Ensure that the fuel is drained from filter assembly before the fuel filter element is removed.
  • Do not hold fuel filter body part and avoid damage to the fuel filter body.
", "file": "", "idx": 8}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Description", "content": "
  • Press the lock and disconnect the electrical connector from the fuel filter.
", "file": "", "idx": 9}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 10}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "Description", "content": "
  • Disconnect the fuel supply pipe by disconnecting the quick coupler.
", "file": "", "idx": 11}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "Notice", "content": "
  • All are quick fix connectors, press gently and remove it carefully; avoid seal damages.
", "file": "", "idx": 12}, {"procedure_name": "Removal", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "idx": 13}, {"procedure_name": "Removal", "step_name": "Step-3", "content_type": "Description", "content": "
  • Disconnect the fuel return pipe by disconnecting the quick coupler.
", "file": "", "idx": 14}, {"procedure_name": "Removal", "step_name": "Step-3", "content_type": "Notice", "content": "
  • All are quick fix connectors, press gently and remove it carefully; avoid seal damages.
", "file": "", "idx": 15}, {"procedure_name": "Removal", "step_name": "Step-4", "content_type": "File", "content": "", "file": "", "idx": 16}, {"procedure_name": "Removal", "step_name": "Step-4", "content_type": "Description", "content": "
  • Using a 12 mm socket spanner, loosen and remove the fuel filter assembly mounting bolts.
", "file": "", "idx": 17}, {"procedure_name": "Removal", "step_name": "Step-5", "content_type": "File", "content": "", "file": "", "idx": 18}, {"procedure_name": "Removal", "step_name": "Step-5", "content_type": "File", "content": "", "file": "", "idx": 19}, {"procedure_name": "Removal", "step_name": "Step-5", "content_type": "Description", "content": "
  • Remove the filter from the vehicle.
", "file": "", "idx": 20}, {"procedure_name": "Removal", "step_name": "Step-6", "content_type": "File", "content": "", "file": "", "idx": 21}, {"procedure_name": "Removal", "step_name": "Step-6", "content_type": "Description", "content": "
  • Use two approx. 2\u0096 3 inches long size \u00a0M12 bolts and nuts to hold fuel filter \u00a0assembly in a bench vice as shown in illustration.
", "file": "", "idx": 22}, {"procedure_name": "Removal", "step_name": "Step-7", "content_type": "File", "content": "", "file": "", "idx": 23}, {"procedure_name": "Removal", "step_name": "Step-7", "content_type": "Description", "content": "
  • Using a 36 mm ring/socket spanner, rotate the fuel filter bottom cover in anticlockwise direction and loosen.
", "file": "", "idx": 24}, {"procedure_name": "Removal", "step_name": "Step-8", "content_type": "File", "content": "", "file": "", "idx": 25}, {"procedure_name": "Removal", "step_name": "Step-8", "content_type": "Description", "content": "
  • Remove the fuel filter body.
", "file": "", "idx": 26}, {"procedure_name": "Removal", "step_name": "Step-9", "content_type": "File", "content": "", "file": "", "idx": 27}, {"procedure_name": "Removal", "step_name": "Step-9", "content_type": "Description", "content": "
  • Take out the filter element from the fuel filter housing.
", "file": "", "idx": 28}, {"procedure_name": "Removal", "step_name": "Step-10", "content_type": "File", "content": "", "file": "", "idx": 29}, {"procedure_name": "Removal", "step_name": "Step-10", "content_type": "Description", "content": "
  • Remove the O-ring from the fuel filter housing.
", "file": "", "idx": 30}, {"procedure_name": "Installation", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 31}, {"procedure_name": "Installation", "step_name": "Step-1", "content_type": "Description", "content": "
  • Assemble the new O-ring back on to filter housing, which is supplied along with new filter element. Ensure little oil is smeared on to the surface of O-ring before assembly on to head.
", "file": "", "idx": 32}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 33}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Description", "content": "
  • Insert the filter element correctly into housing as shown in illustration.
", "file": "", "idx": 34}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Caution", "content": "
  • Press the filter element by gentle push into the head.
", "file": "", "idx": 35}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "idx": 36}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "Description", "content": "
  • Refit the fuel filter element into the fuel filter housing.
", "file": "", "idx": 37}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "Caution", "content": "
  • Assemble filter element on to head in the direction shown. Ensure open end of filter element goes inside first.
", "file": "", "idx": 38}, {"procedure_name": "Installation", "step_name": "Step-4", "content_type": "File", "content": "", "file": "", "idx": 39}, {"procedure_name": "Installation", "step_name": "Step-4", "content_type": "Description", "content": "
  • Tighten the filter body using 36 mm size \u00a0socket spanner to specified torque value.
", "file": "", "idx": 40}, {"procedure_name": "Installation", "step_name": "Step-4", "content_type": "Caution", "content": "
  • Do not over tighten beyond 25\u00b15 Nm. This may cause damage to the bowl and Head.
  • Is it recommended to tight the fuel filter using torque wrench.
", "file": "", "idx": 41}, {"procedure_name": "Installation", "step_name": "Step-5", "content_type": "File", "content": "", "file": "", "idx": 42}, {"procedure_name": "Installation", "step_name": "Step-5", "content_type": "Description", "content": "
  • Remove the filter assembly from the wise.
", "file": "", "idx": 43}, {"procedure_name": "Installation", "step_name": "Step-6", "content_type": "File", "content": "", "file": "", "idx": 44}, {"procedure_name": "Installation", "step_name": "Step-6", "content_type": "Description", "content": "
  • Refit the fuel filter assembly and install the mounting bolts.
", "file": "", "idx": 45}, {"procedure_name": "Installation", "step_name": "Step-6", "content_type": "Torque Value", "content": "Torque : 25 \u00b1 5 Nm", "file": "", "idx": 46}, {"procedure_name": "Installation", "step_name": "Step-7", "content_type": "File", "content": "", "file": "", "idx": 47}, {"procedure_name": "Installation", "step_name": "Step-7", "content_type": "Description", "content": "
  • Reconnect the fuel filter fuel return line quick coupler.
", "file": "", "idx": 48}, {"procedure_name": "Installation", "step_name": "Step-7", "content_type": "Notice", "content": "
  • All are quick fix connectors, press gently and refit it carefully; avoid seal damages.
  • Check and ensure proper fitment of \u00a0fuel lines, any leakage can lead to fire.
", "file": "", "idx": 49}, {"procedure_name": "Installation", "step_name": "Step-8", "content_type": "File", "content": "", "file": "", "idx": 50}, {"procedure_name": "Installation", "step_name": "Step-8", "content_type": "Description", "content": "
  • Reconnect the fuel filter fuel supply pipe quick coupler.
", "file": "", "idx": 51}, {"procedure_name": "Installation", "step_name": "Step-8", "content_type": "Notice", "content": "
  • All are quick fix connectors, press gently and refit it carefully; avoid seal damages.
  • Check and ensure proper fitment of fuel lines, any leakage can lead to fire.
", "file": "", "idx": 52}, {"procedure_name": "Installation", "step_name": "Step-9", "content_type": "File", "content": "", "file": "", "idx": 53}, {"procedure_name": "Installation", "step_name": "Step-9", "content_type": "Description", "content": "
  • Reconnect the fuel filter electrical connector.
", "file": "", "idx": 54}, {"procedure_name": "Installation", "step_name": "Step-9", "content_type": "Caution", "content": "
  • Always use recommended filter element only.
  • Before removing the fuel filter, open the fuel tank cap to release the pressure from the tank and fuel lines.
  • Fuel filter cartridge needs to be replaced earlier in case of repeat water in fuel warning in cluster even after the water is drained from the system.
", "file": "", "idx": 55}]}, {"Thar.AX-0311-Water In Fuel Filter - Clean-en": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 2}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on level work bay.
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": "", "idx": 3}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "idx": 4}, {"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 5}, {"procedure_name": "Sediment Draining", "step_name": "Step-1", "content_type": "Description", "content": "
Connect the transparent pipe to the drain \u00a0plug outlet of the fuel filter assembly
", "file": "", "idx": 6}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 7}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Description", "content": "
  • Using a Nose plier, rotate drain plug anticlockwise till the water starts flowing from the tube.
", "file": "", "idx": 8}, {"procedure_name": "Sediment Draining", "step_name": "Step-2", "content_type": "Caution", "content": "
  • Drain plug requires hand tight only; do not use any tool and avoid over tightening.
  • Do not over tight the drain plug
", "file": "", "idx": 9}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "idx": 10}, {"procedure_name": "Sediment Draining", "step_name": "Step-3", "content_type": "Description", "content": "
  • Rotate drain plug in clockwise directio \u00a0to stop the flow as soon as water gets over and fuel flow starts. Tighten the drain plug.
", "file": "", "idx": 11}, {"procedure_name": "Sediment Draining", "step_name": "Step-4", "content_type": "Description", "content": "
  • Start the engine and check for any leaks.
", "file": "", "idx": 12}]}, {"Thar.AX-0311-Air Filter Element Replace-en": [{"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 1}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 2}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "File", "content": "", "file": "", "idx": 3}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Description", "content": "
  • The air cleaner element is Non woven +Pleated Media type (Dry Type). Filtration happens in two stages. Coarser particles are filtered in first stage by foam media and fine particles are filtered by Paper media in second stage. The dust and other fine particles which are sucked inside along with air gets trapped in the air cleaner while passing through the filter element.
", "file": "", "idx": 4}, {"procedure_name": "Overview", "step_name": "Overview", "content_type": "Notice", "content": "
  • Don\u2019t tap or hit the filter element.
", "file": "", "idx": 5}, {"procedure_name": "Overview", "step_name": "Preliminary Activities", "content_type": "Description", "content": "
  1. Park the vehicle on flat work bay.
  2. Open the bonnet and lock it in open position using bonnet stay rod.
", "file": "", "idx": 6}, {"procedure_name": "Overview", "step_name": "Tools Required", "content_type": "File", "content": "", "file": "", "idx": 7}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 8}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 9}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Caution", "content": "
  • The air filter element should be inspected and replaced from time to time, when driving under the following conditions:
    • Unpaved road.
    • Dusty air-polluted road.
    • Long-term driving in rainy weather.
", "file": "", "idx": 10}, {"procedure_name": "Removal", "step_name": "Step-1", "content_type": "Description", "content": "
  • Using 5 mm allen key, Unscrew air cleaner dirty duct mounting screws and lift the top housing.
", "file": "", "idx": 11}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 12}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 13}, {"procedure_name": "Removal", "step_name": "Step-2", "content_type": "Description", "content": "
  • Gently take out the air cleaner element from the housing.
", "file": "", "idx": 14}, {"procedure_name": "Installation", "step_name": "Step-1", "content_type": "File", "content": "", "file": "", "idx": 15}, {"procedure_name": "Installation", "step_name": "Step-1", "content_type": "Description", "content": "
  • Clean the inner side of the air cleaner housing using a lint free cloth.
", "file": "", "idx": 16}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "File", "content": "", "file": "", "idx": 17}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Description", "content": "
  • Refit the New air filter element gently inside the air cleaner housing.
", "file": "", "idx": 18}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Caution", "content": "
  • During Installation ensure to keep foam side of the filter element in the bottom side.
  • Ensure dust should not fall inside the clean hose area while fitting.
", "file": "", "idx": 19}, {"procedure_name": "Installation", "step_name": "Step-2", "content_type": "Caution", "content": "
  • Always use recommended genuine air filter element.
  • Do not tap or hit the filter element.
", "file": "", "idx": 20}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "File", "content": "", "file": "", "idx": 21}, {"procedure_name": "Installation", "step_name": "Step-3", "content_type": "Description", "content": "
  • Position the air cleaner assembly top cover and refit the mounting screws.
", "file": "", "idx": 22}]}] \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish/jsonData/vech.json b/smart_service/transactions/doctype/publish/jsonData/vech.json new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/publish/publish.js b/smart_service/transactions/doctype/publish/publish.js new file mode 100644 index 0000000..b1264b5 --- /dev/null +++ b/smart_service/transactions/doctype/publish/publish.js @@ -0,0 +1,21 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Publish', { + refresh: function(frm) { + frm.set_indicator_formatter("publish_status", (doc) => { + return "green" + + }) + + } + + // function(frm) { + + // frm.set_indicator_formatter('publish_status', + // function(doc) { + // return (doc.publish_status=="To Publish" || doc.publish_status=="Published") ? "green" : "orange" + // }) + // } + +}); \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish/publish.json b/smart_service/transactions/doctype/publish/publish.json new file mode 100644 index 0000000..24ef43a --- /dev/null +++ b/smart_service/transactions/doctype/publish/publish.json @@ -0,0 +1,234 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "format: {vehicle}-{language} planned on {creation}", + "creation": "2021-11-01 12:28:45.623316", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "language", + "planned_publish_date", + "actual_published_date", + "publish_type", + "publish_status", + "column_break_3", + "release_description", + "section_break_7", + "vehicle", + "vehicle_status", + "column_break_9", + "variant_mapping", + "variant_mapping_status", + "add_variant_mapping_to_publish", + "kilometer_mapping_section", + "kilometer_mapping", + "column_break_17", + "km_active_status", + "system_n_sub_systems", + "system_mapping", + "variant_mapping_assets", + "section_break_5", + "publish_documents", + "amended_from" + ], + "fields": [ + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "release_description", + "fieldtype": "Small Text", + "label": "Publish Description" + }, + { + "fieldname": "section_break_5", + "fieldtype": "Section Break" + }, + { + "fieldname": "planned_publish_date", + "fieldtype": "Date", + "in_list_view": 1, + "label": "Planned Publish Date", + "reqd": 1 + }, + { + "fieldname": "actual_published_date", + "fieldtype": "Date", + "label": "Actual Published Date", + "read_only": 1 + }, + { + "fieldname": "publish_type", + "fieldtype": "Select", + "label": "Publish Type", + "options": "Internal\nGlobal", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "vehicle", + "fieldtype": "Link", + "label": "Vehicle", + "options": "Vehicle", + "set_only_once": 1 + }, + { + "depends_on": "eval:doc.vehicle", + "fieldname": "variant_mapping", + "fieldtype": "Link", + "label": "Variant Mapping", + "options": "Variant Mapping" + }, + { + "fieldname": "system_n_sub_systems", + "fieldtype": "Section Break", + "label": "System & Sub Systems" + }, + { + "fieldname": "system_mapping", + "fieldtype": "Table", + "label": "System Mapping", + "options": "Publish_Temp Doc", + "read_only": 1 + }, + { + "fieldname": "publish_documents", + "fieldtype": "Table", + "label": "Publish Documents", + "options": "Publish_Docs" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "label": "Language", + "options": "Custom Languages", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "section_break_7", + "fieldtype": "Section Break", + "label": "Variant Mapping" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Publish", + "print_hide": 1, + "read_only": 1 + }, + { + "fieldname": "variant_mapping_assets", + "fieldtype": "Table", + "label": "Variant Mapping Assets", + "options": "Publish_Variant Mapping Assets", + "read_only": 1 + }, + { + "fieldname": "publish_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Publish Status", + "options": "To Publish\nPublished", + "read_only": 1 + }, + { + "fetch_from": "vehicle.active_status", + "fieldname": "vehicle_status", + "fieldtype": "Data", + "label": "Vehicle Status", + "read_only": 1 + }, + { + "fetch_from": "variant_mapping.active_status", + "fieldname": "variant_mapping_status", + "fieldtype": "Data", + "label": "Variant Mapping Status", + "read_only": 1 + }, + { + "depends_on": "eval:doc.variant_mapping !== undefined", + "fieldname": "add_variant_mapping_to_publish", + "fieldtype": "Button", + "label": "Add Variant Mapping to Publish" + }, + { + "fieldname": "kilometer_mapping_section", + "fieldtype": "Section Break", + "label": "Kilometer Mapping" + }, + { + "fieldname": "kilometer_mapping", + "fieldtype": "Link", + "label": "Kilometer Mapping", + "options": "Kilometer Mapping", + "read_only": 1 + }, + { + "fieldname": "column_break_17", + "fieldtype": "Column Break" + }, + { + "fetch_from": "kilometer_mapping.active_status", + "fieldname": "km_active_status", + "fieldtype": "Data", + "label": "Kilometer Mapping Status", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "is_submittable": 1, + "links": [], + "modified": "2021-12-26 10:33:26.673121", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Publish", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Publisher", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish/publish.py b/smart_service/transactions/doctype/publish/publish.py new file mode 100644 index 0000000..1334a3e --- /dev/null +++ b/smart_service/transactions/doctype/publish/publish.py @@ -0,0 +1,41 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +import frappe +from frappe.model.document import Document +import json +class Publish(Document): + pass + +list1= [] + +@frappe.whitelist() +def api_publish(): + listProc =[] + # docs_child = frappe.db.get_list('Publish_Docs', filters={'parent':args}, fields=['variant_mapping', 'system','sub_system','procedure_link','procedure_status']) + # for d in docs_child: + # if d['procedure_link']!= None: + # docs_children = frappe.db.get_list('Procedure_Details', filters = {'parent':d['procedure_link']}, fields=['procedure_name','step_name','content_type','content','file'], order_by='idx') + # dictProcedure = {d['procedure_link']:docs_children} + # listProc.append(dictProcedure) + # print(json.dumps(listProc)) + # with open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/transactions/doctype/publish/jsonData/procedurePublish.json",'w') as f: + # json.dump(listProc,f) + + list1 = [] + docs_child = frappe.get_doc('Vehicle', 'Marazzo') + docs_child = frappe.db.get_list('Vehicle') + for d in docs_child: + docs = frappe.get_doc('Vehicle', 'Marazzo') + list1.append(docs) + + print(docs_child) + return docs_child + + # with open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/transactions/doctype/publish/jsonData/vech.json",'w') as f: + # json.dump(docs_child,f) + # return json.dump(listProc) + + return docs_child +def print(inputText): + frappe.msgprint(str(inputText)) \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish/test_publish.py b/smart_service/transactions/doctype/publish/test_publish.py new file mode 100644 index 0000000..e671847 --- /dev/null +++ b/smart_service/transactions/doctype/publish/test_publish.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestPublish(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/publish_docs/__init__.py b/smart_service/transactions/doctype/publish_docs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/publish_docs/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/publish_docs/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..7802bfb Binary files /dev/null and b/smart_service/transactions/doctype/publish_docs/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_docs/__pycache__/publish_docs.cpython-38.pyc b/smart_service/transactions/doctype/publish_docs/__pycache__/publish_docs.cpython-38.pyc new file mode 100644 index 0000000..1c3947c Binary files /dev/null and b/smart_service/transactions/doctype/publish_docs/__pycache__/publish_docs.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_docs/publish_docs.json b/smart_service/transactions/doctype/publish_docs/publish_docs.json new file mode 100644 index 0000000..45df167 --- /dev/null +++ b/smart_service/transactions/doctype/publish_docs/publish_docs.json @@ -0,0 +1,81 @@ +{ + "actions": [], + "creation": "2021-11-01 12:27:23.263495", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "system", + "sub_system", + "procedure_link", + "procedure_status", + "asset_category", + "item_category" + ], + "fields": [ + { + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "read_only": 1 + }, + { + "fieldname": "system", + "fieldtype": "Link", + "in_list_view": 1, + "label": "System", + "options": "Systems", + "read_only": 1 + }, + { + "fieldname": "sub_system", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Sub System", + "options": "Sub Systems", + "read_only": 1 + }, + { + "fieldname": "procedure_link", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure Link", + "options": "Procedure", + "read_only": 1 + }, + { + "fieldname": "procedure_status", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Procedure Status", + "read_only": 1 + }, + { + "fieldname": "asset_category", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Asset Category", + "read_only": 1 + }, + { + "fieldname": "item_category", + "fieldtype": "Read Only", + "label": "Item Category" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-25 08:36:58.353475", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Publish_Docs", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish_docs/publish_docs.py b/smart_service/transactions/doctype/publish_docs/publish_docs.py new file mode 100644 index 0000000..dbc43aa --- /dev/null +++ b/smart_service/transactions/doctype/publish_docs/publish_docs.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Publish_Docs(Document): + pass diff --git a/smart_service/transactions/doctype/publish_temp_doc/__init__.py b/smart_service/transactions/doctype/publish_temp_doc/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/publish_temp_doc/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/publish_temp_doc/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..050af07 Binary files /dev/null and b/smart_service/transactions/doctype/publish_temp_doc/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_temp_doc/__pycache__/publish_temp_doc.cpython-38.pyc b/smart_service/transactions/doctype/publish_temp_doc/__pycache__/publish_temp_doc.cpython-38.pyc new file mode 100644 index 0000000..ab5ff49 Binary files /dev/null and b/smart_service/transactions/doctype/publish_temp_doc/__pycache__/publish_temp_doc.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.json b/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.json new file mode 100644 index 0000000..ae70746 --- /dev/null +++ b/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.json @@ -0,0 +1,115 @@ +{ + "actions": [], + "creation": "2021-11-25 17:15:47.559805", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "systems", + "sub_systems", + "active_status", + "column_break_4", + "symptom", + "component", + "estimated_time", + "rts", + "mat", + "cover_image", + "procedure_section", + "procedure", + "procedure_status" + ], + "fields": [ + { + "fieldname": "systems", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Systems", + "options": "Systems", + "reqd": 1 + }, + { + "fieldname": "sub_systems", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Sub Systems", + "options": "Sub Systems", + "reqd": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "symptom", + "fieldtype": "Check", + "label": "Symptom" + }, + { + "default": "0", + "fieldname": "component", + "fieldtype": "Check", + "label": "Component" + }, + { + "fieldname": "estimated_time", + "fieldtype": "Duration", + "label": "Estimated Time" + }, + { + "fieldname": "rts", + "fieldtype": "Data", + "label": "RTS" + }, + { + "fieldname": "mat", + "fieldtype": "Data", + "label": "MAT" + }, + { + "fieldname": "cover_image", + "fieldtype": "Attach", + "label": "Cover Image" + }, + { + "fieldname": "procedure_section", + "fieldtype": "Section Break", + "label": "Procedure" + }, + { + "fieldname": "procedure", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure", + "options": "Procedure" + }, + { + "fieldname": "procedure_status", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Procedure Status", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-25 17:15:47.559805", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Publish_Temp Doc", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.py b/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.py new file mode 100644 index 0000000..53a4c90 --- /dev/null +++ b/smart_service/transactions/doctype/publish_temp_doc/publish_temp_doc.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Publish_TempDoc(Document): + pass diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/__init__.py b/smart_service/transactions/doctype/publish_variant_mapping_assets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..a05cfb2 Binary files /dev/null and b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/publish_variant_mapping_assets.cpython-38.pyc b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/publish_variant_mapping_assets.cpython-38.pyc new file mode 100644 index 0000000..f485092 Binary files /dev/null and b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/publish_variant_mapping_assets.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/test_publish_variant_mapping_assets.cpython-38.pyc b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/test_publish_variant_mapping_assets.cpython-38.pyc new file mode 100644 index 0000000..c672d3e Binary files /dev/null and b/smart_service/transactions/doctype/publish_variant_mapping_assets/__pycache__/test_publish_variant_mapping_assets.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.js b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.js new file mode 100644 index 0000000..5e07120 --- /dev/null +++ b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Publish_Variant Mapping Assets', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.json b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.json new file mode 100644 index 0000000..616935c --- /dev/null +++ b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.json @@ -0,0 +1,51 @@ +{ + "actions": [], + "creation": "2021-12-01 16:12:55.467822", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "category", + "language", + "attach_file", + "active_status" + ], + "fields": [ + { + "fieldname": "category", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Category" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages" + }, + { + "fieldname": "attach_file", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "Attach File" + }, + { + "fieldname": "active_status", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Active Status" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-01 16:13:18.626735", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Publish_Variant Mapping Assets", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC" +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.py b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.py new file mode 100644 index 0000000..17e4ec8 --- /dev/null +++ b/smart_service/transactions/doctype/publish_variant_mapping_assets/publish_variant_mapping_assets.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class Publish_VariantMappingAssets(Document): + pass diff --git a/smart_service/transactions/doctype/publish_variant_mapping_assets/test_publish_variant_mapping_assets.py b/smart_service/transactions/doctype/publish_variant_mapping_assets/test_publish_variant_mapping_assets.py new file mode 100644 index 0000000..3dc505c --- /dev/null +++ b/smart_service/transactions/doctype/publish_variant_mapping_assets/test_publish_variant_mapping_assets.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestPublish_VariantMappingAssets(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/system_mapping/__init__.py b/smart_service/transactions/doctype/system_mapping/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/system_mapping/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..d9972af Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping/__pycache__/system_mapping.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping/__pycache__/system_mapping.cpython-38.pyc new file mode 100644 index 0000000..d0d0f5f Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping/__pycache__/system_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping/__pycache__/test_system_mapping.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping/__pycache__/test_system_mapping.cpython-38.pyc new file mode 100644 index 0000000..cccfb4c Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping/__pycache__/test_system_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping/system_mapping.js b/smart_service/transactions/doctype/system_mapping/system_mapping.js new file mode 100644 index 0000000..6450b6f --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping/system_mapping.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('System Mapping', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/system_mapping/system_mapping.json b/smart_service/transactions/doctype/system_mapping/system_mapping.json new file mode 100644 index 0000000..d7f531a --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping/system_mapping.json @@ -0,0 +1,206 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "format:{variant_mapping}-{language}-SM", + "creation": "2021-10-29 11:19:55.357816", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant_mapping", + "language", + "column_break_3", + "fuel", + "workflow_state", + "active_status", + "column_break_6", + "transmission", + "column_break_8", + "drive", + "column_break_10", + "family_code", + "kilometer_mapping_section", + "kilometer_mapping", + "column_break_15", + "km_active_status", + "config_system_level_section", + "system_filter", + "system_sub_systems", + "systems_assets" + ], + "fields": [ + { + "fieldname": "variant_mapping", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Variant Mapping", + "options": "Variant Mapping", + "reqd": 1 + }, + { + "default": "Active", + "fieldname": "active_status", + "fieldtype": "Select", + "hidden": 1, + "label": "Active Status", + "options": "Active\nInactive" + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.fuel", + "fieldname": "fuel", + "fieldtype": "Link", + "label": "Fuel", + "options": "Fuel", + "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked", + "read_only": 1 + }, + { + "fieldname": "column_break_6", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.transmission", + "fieldname": "transmission", + "fieldtype": "Link", + "label": "Transmission", + "options": "Transmission", + "read_only": 1 + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.drive", + "fieldname": "drive", + "fieldtype": "Link", + "label": "Drive", + "options": "Drive", + "read_only": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant_mapping.family_code", + "fieldname": "family_code", + "fieldtype": "Data", + "label": "Family Code", + "read_only": 1 + }, + { + "fieldname": "config_system_level_section", + "fieldtype": "Section Break", + "label": "Config. System Level" + }, + { + "fieldname": "system_sub_systems", + "fieldtype": "Table", + "label": "System & Sub Systems", + "options": "System Mapping_Sub System" + }, + { + "fieldname": "systems_assets", + "fieldtype": "Table", + "label": "Systems Assets", + "options": "System Mapping_System Assets" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "system_filter", + "fieldtype": "Select", + "label": "System Filter", + "options": "All" + }, + { + "fieldname": "kilometer_mapping_section", + "fieldtype": "Section Break", + "label": "Kilometer Mapping" + }, + { + "fieldname": "kilometer_mapping", + "fieldtype": "Link", + "label": "Kilometer Mapping", + "options": "Kilometer Mapping", + "read_only": 1 + }, + { + "fieldname": "column_break_15", + "fieldtype": "Column Break" + }, + { + "fetch_from": "kilometer_mapping.active_status", + "fieldname": "km_active_status", + "fieldtype": "Data", + "label": "Status", + "read_only": 1 + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-26 09:13:19.795532", + "modified_by": "Administrator", + "module": "Transactions", + "name": "System Mapping", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/system_mapping/system_mapping.py b/smart_service/transactions/doctype/system_mapping/system_mapping.py new file mode 100644 index 0000000..72200c5 --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping/system_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class SystemMapping(Document): + pass diff --git a/smart_service/transactions/doctype/system_mapping/test_system_mapping.py b/smart_service/transactions/doctype/system_mapping/test_system_mapping.py new file mode 100644 index 0000000..97be309 --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping/test_system_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestSystemMapping(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/system_mapping_sub_system/__init__.py b/smart_service/transactions/doctype/system_mapping_sub_system/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..fd93992 Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/system_mapping_sub_system.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/system_mapping_sub_system.cpython-38.pyc new file mode 100644 index 0000000..63c99c2 Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping_sub_system/__pycache__/system_mapping_sub_system.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.json b/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.json new file mode 100644 index 0000000..a1ca0f5 --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.json @@ -0,0 +1,138 @@ +{ + "actions": [], + "creation": "2021-10-29 11:16:08.899225", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "systems", + "system_id", + "sub_systems", + "sub_system_id", + "active_status", + "column_break_4", + "symptom", + "component", + "estimated_time", + "rts", + "mat", + "cover_image", + "procedure_section", + "procedure", + "procedure_status", + "procedure_is_published" + ], + "fields": [ + { + "fieldname": "systems", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Systems", + "options": "Systems", + "reqd": 1 + }, + { + "fieldname": "sub_systems", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Sub Systems", + "options": "Sub Systems", + "reqd": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "symptom", + "fieldtype": "Check", + "label": "Symptom" + }, + { + "default": "0", + "fieldname": "component", + "fieldtype": "Check", + "label": "Component" + }, + { + "fieldname": "estimated_time", + "fieldtype": "Duration", + "label": "Estimated Time" + }, + { + "fieldname": "rts", + "fieldtype": "Data", + "label": "RTS" + }, + { + "fieldname": "mat", + "fieldtype": "Data", + "label": "MAT" + }, + { + "fieldname": "cover_image", + "fieldtype": "Attach", + "label": "Cover Image" + }, + { + "fieldname": "procedure_section", + "fieldtype": "Section Break", + "label": "Procedure" + }, + { + "fieldname": "procedure", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Procedure", + "options": "Procedure" + }, + { + "fieldname": "procedure_status", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Procedure Status", + "read_only": 1 + }, + { + "fetch_from": "systems.myid", + "fieldname": "system_id", + "fieldtype": "Data", + "label": "System ID", + "read_only": 1 + }, + { + "fetch_from": "sub_systems.myid", + "fieldname": "sub_system_id", + "fieldtype": "Data", + "label": "Sub System ID", + "read_only": 1 + }, + { + "default": "0", + "fieldname": "procedure_is_published", + "fieldtype": "Check", + "label": "Procedure_Is_published" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-25 15:11:14.484591", + "modified_by": "Administrator", + "module": "Transactions", + "name": "System Mapping_Sub System", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.py b/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.py new file mode 100644 index 0000000..0228294 --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping_sub_system/system_mapping_sub_system.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class SystemMapping_SubSystem(Document): + pass diff --git a/smart_service/transactions/doctype/system_mapping_system_assets/__init__.py b/smart_service/transactions/doctype/system_mapping_system_assets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..358e7cb Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/system_mapping_system_assets.cpython-38.pyc b/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/system_mapping_system_assets.cpython-38.pyc new file mode 100644 index 0000000..5f93bff Binary files /dev/null and b/smart_service/transactions/doctype/system_mapping_system_assets/__pycache__/system_mapping_system_assets.cpython-38.pyc differ 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 new file mode 100644 index 0000000..671951a --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.json @@ -0,0 +1,64 @@ +{ + "actions": [], + "creation": "2021-10-29 11:23:46.200189", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "systems", + "language", + "system_asset", + "active_status", + "remarks" + ], + "fields": [ + { + "fieldname": "systems", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Systems", + "options": "Systems" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages", + "reqd": 1 + }, + { + "fieldname": "system_asset", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "System Asset" + }, + { + "fieldname": "remarks", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Remarks" + }, + { + "default": "Active", + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nIn Active", + "reqd": 1 + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-22 10:02:37.139444", + "modified_by": "Administrator", + "module": "Transactions", + "name": "System Mapping_System Assets", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.py b/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.py new file mode 100644 index 0000000..cb409af --- /dev/null +++ b/smart_service/transactions/doctype/system_mapping_system_assets/system_mapping_system_assets.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class SystemMapping_SystemAssets(Document): + pass diff --git a/smart_service/transactions/doctype/variant_mapping/__init__.py b/smart_service/transactions/doctype/variant_mapping/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/variant_mapping/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..807cc41 Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping/__pycache__/test_variant_mapping.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping/__pycache__/test_variant_mapping.cpython-38.pyc new file mode 100644 index 0000000..61129be Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping/__pycache__/test_variant_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping/__pycache__/variant_mapping.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping/__pycache__/variant_mapping.cpython-38.pyc new file mode 100644 index 0000000..ab54e6f Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping/__pycache__/variant_mapping.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping/test_variant_mapping.py b/smart_service/transactions/doctype/variant_mapping/test_variant_mapping.py new file mode 100644 index 0000000..0a9329e --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping/test_variant_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and Contributors +# See license.txt + +# import frappe +import unittest + +class TestVariantMapping(unittest.TestCase): + pass diff --git a/smart_service/transactions/doctype/variant_mapping/variant_mapping.js b/smart_service/transactions/doctype/variant_mapping/variant_mapping.js new file mode 100644 index 0000000..efe61ce --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping/variant_mapping.js @@ -0,0 +1,8 @@ +// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Variant Mapping', { + // refresh: function(frm) { + + // } +}); diff --git a/smart_service/transactions/doctype/variant_mapping/variant_mapping.json b/smart_service/transactions/doctype/variant_mapping/variant_mapping.json new file mode 100644 index 0000000..5f1f5a6 --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping/variant_mapping.json @@ -0,0 +1,196 @@ +{ + "actions": [], + "allow_import": 1, + "autoname": "format:{variant}-{####}", + "creation": "2021-10-29 10:35:50.645151", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "variant", + "family_code", + "active_status", + "column_break_4", + "vehicle", + "vehicle_segment", + "workflow_state", + "section_break_8", + "fuel", + "column_break_10", + "transmission", + "column_break_12", + "drive", + "section_break_14", + "service_kilometers", + "upload_file_section", + "assets" + ], + "fields": [ + { + "fieldname": "variant", + "fieldtype": "Link", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Variant", + "options": "Variant", + "reqd": 1, + "set_only_once": 1 + }, + { + "allow_in_quick_entry": 1, + "fieldname": "family_code", + "fieldtype": "Data", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Family Code", + "reqd": 1 + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "in_preview": 1, + "in_standard_filter": 1, + "label": "Active Status", + "options": "Active\nInactive", + "reqd": 1 + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fetch_from": "variant.vehicle", + "fieldname": "vehicle", + "fieldtype": "Link", + "label": "Vehicle", + "options": "Vehicle", + "read_only": 1 + }, + { + "fetch_from": "variant.vehicle_segment", + "fieldname": "vehicle_segment", + "fieldtype": "Link", + "label": "Vehicle Segment", + "options": "Vehicle Segment", + "read_only": 1 + }, + { + "default": "Draft", + "fieldname": "workflow_state", + "fieldtype": "Select", + "hidden": 1, + "label": "Workflow State", + "options": "Draft\nReview Pending\nApproval Pending\nPublish Approval Pending\nPublish Ready\nPublished\nRevoked\nApproved", + "read_only": 1 + }, + { + "fieldname": "section_break_8", + "fieldtype": "Section Break" + }, + { + "fieldname": "fuel", + "fieldtype": "Link", + "label": "Fuel", + "options": "Fuel", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "column_break_10", + "fieldtype": "Column Break" + }, + { + "fieldname": "transmission", + "fieldtype": "Link", + "label": "Transmission", + "options": "Transmission", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" + }, + { + "fieldname": "drive", + "fieldtype": "Link", + "label": "Drive", + "options": "Drive", + "reqd": 1, + "set_only_once": 1 + }, + { + "fieldname": "section_break_14", + "fieldtype": "Section Break" + }, + { + "fieldname": "service_kilometers", + "fieldtype": "Table", + "hidden": 1, + "label": "Service Kilometers", + "options": "Variant Mapping_SK" + }, + { + "fieldname": "upload_file_section", + "fieldtype": "Section Break", + "label": "Upload File " + }, + { + "fieldname": "assets", + "fieldtype": "Table", + "label": "Assets", + "options": "Variant Mapping_Assets" + } + ], + "index_web_pages_for_search": 1, + "links": [], + "modified": "2021-12-26 08:48:38.868702", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Variant Mapping", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "import": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Author", + "share": 1, + "write": 1 + }, + { + "create": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "_Admin", + "share": 1, + "write": 1 + } + ], + "search_fields": "family_code,fuel,transmission,drive,active_status,workflow_state", + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/variant_mapping/variant_mapping.py b/smart_service/transactions/doctype/variant_mapping/variant_mapping.py new file mode 100644 index 0000000..45dd043 --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping/variant_mapping.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class VariantMapping(Document): + pass diff --git a/smart_service/transactions/doctype/variant_mapping_assets/__init__.py b/smart_service/transactions/doctype/variant_mapping_assets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..1f2e1f2 Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/mapping_files.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/mapping_files.cpython-38.pyc new file mode 100644 index 0000000..0873393 Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/mapping_files.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/variant_mapping_assets.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/variant_mapping_assets.cpython-38.pyc new file mode 100644 index 0000000..7f00038 Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping_assets/__pycache__/variant_mapping_assets.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.json b/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.json new file mode 100644 index 0000000..840bcc4 --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.json @@ -0,0 +1,54 @@ +{ + "actions": [], + "creation": "2021-11-14 17:52:52.885219", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "category", + "language", + "attach_file", + "active_status" + ], + "fields": [ + { + "fieldname": "category", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Category", + "options": "Tekalert\nTSB\nFSA\nTechnical Manual" + }, + { + "fieldname": "language", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Language", + "options": "Custom Languages" + }, + { + "fieldname": "attach_file", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "Attach File" + }, + { + "fieldname": "active_status", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Active Status", + "options": "Active\nInactive" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-12-01 16:04:47.259693", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Variant Mapping_Assets", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.py b/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.py new file mode 100644 index 0000000..bfb4e21 --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping_assets/variant_mapping_assets.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class VariantMapping_Assets(Document): + pass diff --git a/smart_service/transactions/doctype/variant_mapping_sk/__init__.py b/smart_service/transactions/doctype/variant_mapping_sk/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/__init__.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..9cc058c Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/__init__.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/variant_mapping_sk.cpython-38.pyc b/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/variant_mapping_sk.cpython-38.pyc new file mode 100644 index 0000000..f1fca81 Binary files /dev/null and b/smart_service/transactions/doctype/variant_mapping_sk/__pycache__/variant_mapping_sk.cpython-38.pyc differ diff --git a/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.json b/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.json new file mode 100644 index 0000000..1d4cdfb --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.json @@ -0,0 +1,31 @@ +{ + "actions": [], + "creation": "2021-10-29 10:28:24.562054", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "service_kilometers" + ], + "fields": [ + { + "fieldname": "service_kilometers", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Service Kilometers", + "options": "Service Kilometers" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2021-11-14 17:43:17.807902", + "modified_by": "Administrator", + "module": "Transactions", + "name": "Variant Mapping_SK", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1 +} \ No newline at end of file diff --git a/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.py b/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.py new file mode 100644 index 0000000..09304d5 --- /dev/null +++ b/smart_service/transactions/doctype/variant_mapping_sk/variant_mapping_sk.py @@ -0,0 +1,8 @@ +# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + +class VariantMapping_SK(Document): + pass diff --git a/smart_service/www/__pycache__/login.cpython-38.pyc b/smart_service/www/__pycache__/login.cpython-38.pyc new file mode 100644 index 0000000..b59d8e7 Binary files /dev/null and b/smart_service/www/__pycache__/login.cpython-38.pyc differ diff --git a/smart_service/www/demofile2.txt b/smart_service/www/demofile2.txt new file mode 100755 index 0000000..e69de29 diff --git a/smart_service/www/login.html b/smart_service/www/login.html new file mode 100644 index 0000000..c4b5927 --- /dev/null +++ b/smart_service/www/login.html @@ -0,0 +1,214 @@ +{% extends "templates/web.html" %} + +{% macro email_login_body() -%} +
+
+ + +
+ +
+ +
+ + + + + + {{ _('Show') }} +
+
+
+ +
+
+
+ + +
+
+ + +
+ +
+ + + {% if ldap_settings and ldap_settings.enabled %} + + {% endif %} +
+{% endmacro %} + +{% block head_include %} + +{% endblock %} + +{% macro logo_section() %} +
+ +

{{ _('Login to Smart Service CMS ') }}

+
+{% endmacro %} + +{% block page_content %} + +
+ + + + {%- if social_login -%} + + {%- endif -%} + + +
+ +
+
+{% endblock %} + +{% block script %} + +{% endblock %} + +{% block sidebar %}{% endblock %} diff --git a/smart_service/www/login.py b/smart_service/www/login.py new file mode 100644 index 0000000..1652cae --- /dev/null +++ b/smart_service/www/login.py @@ -0,0 +1,121 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals +import frappe +import frappe.utils +from frappe.utils.oauth import get_oauth2_authorize_url, get_oauth_keys, login_via_oauth2, login_via_oauth2_id_token, login_oauth_user as _login_oauth_user, redirect_post_login +import json +from frappe import _ +from frappe.auth import LoginManager +from frappe.integrations.doctype.ldap_settings.ldap_settings import LDAPSettings +from frappe.utils.password import get_decrypted_password +from frappe.utils.html_utils import get_icon_html +from frappe.integrations.oauth2_logins import decoder_compat +from frappe.website.utils import get_home_page +import cgi +form = cgi.FieldStorage() + + +no_cache = True + +def get_context(context): + redirect_to = frappe.local.request.args.get("redirect-to") + + if frappe.session.user != "Guest": + if not redirect_to: + if frappe.session.data.user_type=="Website User": + redirect_to = get_home_page() + else: + redirect_to = "/app" + + if redirect_to != 'login': + frappe.local.flags.redirect_location = redirect_to + raise frappe.Redirect + + # get settings from site config + context.no_header = True + context.for_test = 'login.html' + context["title"] = "Login" + context["provider_logins"] = [] + context["disable_signup"] = frappe.utils.cint(frappe.db.get_single_value("Website Settings", "disable_signup")) + context["logo"] = (frappe.db.get_single_value('Website Settings', 'app_logo') or + frappe.get_hooks("app_logo_url")[-1]) + context["app_name"] = (frappe.db.get_single_value('Website Settings', 'app_name') or + frappe.get_system_settings("app_name") or _("Frappe")) + providers = [i.name for i in frappe.get_all("Social Login Key", filters={"enable_social_login":1}, order_by="name")] + for provider in providers: + client_id, base_url = frappe.get_value("Social Login Key", provider, ["client_id", "base_url"]) + client_secret = get_decrypted_password("Social Login Key", provider, "client_secret") + provider_name = frappe.get_value("Social Login Key", provider, "provider_name") + + icon = None + icon_url = frappe.get_value("Social Login Key", provider, "icon") + if icon_url: + if provider_name != "Custom": + icon = "{1}".format(icon_url, provider_name) + else: + icon = get_icon_html(icon_url, small=True) + + if (get_oauth_keys(provider) and client_secret and client_id and base_url): + context.provider_logins.append({ + "name": provider, + "provider_name": provider_name, + "auth_url": get_oauth2_authorize_url(provider, redirect_to), + "icon": icon + }) + context["social_login"] = True + ldap_settings = LDAPSettings.get_ldap_client_settings() + context["ldap_settings"] = ldap_settings + + login_label = [_("Email")] + + if frappe.utils.cint(frappe.get_system_settings("allow_login_using_mobile_number")): + login_label.append(_("Mobile")) + + if frappe.utils.cint(frappe.get_system_settings("allow_login_using_user_name")): + login_label.append(_("Username")) + + context['login_label'] = ' {0} '.format(_('or')).join(login_label) + + return context + +@frappe.whitelist(allow_guest=True) +def login_via_google(code, state): + login_via_oauth2("google", code, state, decoder=decoder_compat) + +@frappe.whitelist(allow_guest=True) +def login_via_github(code, state): + login_via_oauth2("github", code, state) + +@frappe.whitelist(allow_guest=True) +def login_via_facebook(code, state): + login_via_oauth2("facebook", code, state, decoder=decoder_compat) + +@frappe.whitelist(allow_guest=True) +def login_via_frappe(code, state): + login_via_oauth2("frappe", code, state, decoder=decoder_compat) + +@frappe.whitelist(allow_guest=True) +def login_via_office365(code, state): + login_via_oauth2_id_token("office_365", code, state, decoder=decoder_compat) + +@frappe.whitelist(allow_guest=True) +def login_via_token(login_token): + sid = frappe.cache().get_value("login_token:{0}".format(login_token), expires=True) + if not sid: + frappe.respond_as_web_page(_("Invalid Request"), _("Invalid Login Token"), http_status_code=417) + return + + frappe.local.form_dict.sid = sid + frappe.local.login_manager = LoginManager() + + redirect_post_login(desk_user = frappe.db.get_value("User", frappe.session.user, "user_type")=="System User") + + +Temp = form.getvalue('password') +frappe.msgprint(str(Temp)) + +# f = open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/www/demofile2.txt", "w") +# f.write(Temp) +# f.close()