├── .gitignore
├── README.md
├── erpnext_price_estimation
├── .vscode
│ └── settings.json
├── __init__.py
├── config
│ └── __init__.py
├── erpnext_price_estimation
│ ├── __init__.py
│ ├── doctype
│ │ ├── __init__.py
│ │ ├── erpnext_price_estimation
│ │ │ ├── __init__.py
│ │ │ ├── erpnext_price_estimation.js
│ │ │ ├── erpnext_price_estimation.json
│ │ │ ├── erpnext_price_estimation.py
│ │ │ └── test_erpnext_price_estimation.py
│ │ ├── estimation_detail
│ │ │ ├── __init__.py
│ │ │ ├── estimation_detail.json
│ │ │ └── estimation_detail.py
│ │ ├── estimation_document
│ │ │ ├── __init__.py
│ │ │ ├── estimation_document.js
│ │ │ ├── estimation_document.json
│ │ │ ├── estimation_document.py
│ │ │ └── test_estimation_document.py
│ │ ├── estimation_process
│ │ │ ├── __init__.py
│ │ │ ├── estimation_process.js
│ │ │ ├── estimation_process.json
│ │ │ ├── estimation_process.py
│ │ │ └── test_estimation_process.py
│ │ └── module
│ │ │ ├── __init__.py
│ │ │ ├── module.js
│ │ │ ├── module.json
│ │ │ ├── module.py
│ │ │ └── test_module.py
│ └── print_format
│ │ ├── __init__.py
│ │ └── erpnext_price_estimate
│ │ ├── __init__.py
│ │ ├── erpnext_price_estimate.css
│ │ ├── erpnext_price_estimate.html
│ │ └── erpnext_price_estimate.json
├── fixtures
│ ├── estimation_document.json
│ ├── estimation_process.json
│ └── module.json
├── hooks.py
├── modules.txt
├── patches.txt
├── public
│ └── .gitkeep
└── templates
│ ├── __init__.py
│ └── pages
│ └── __init__.py
├── license.txt
└── pyproject.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.pyc
3 | *.egg-info
4 | *.swp
5 | tags
6 | node_modules
7 | __pycache__
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## ERPNext Price Estimation
2 |
3 | ## 🚀 Introduction
4 |
5 | This tool helps ERPNext implementors create a standardised quote. This tool will help a sales / estimation consultant to ask the right question to scope a standard / vanilla implementation. This tool will help you estimate the number of hours. You can choose your own rates.
6 |
7 | ## ✨ Key Features
8 |
9 | 1. Pre-built module masters - list of all tasks associated with implementing a module
10 | 2. Estimation - estimate for a particular customer
11 | 3. Print Format - to present to the customer
12 |
13 | ## 🛠 Installation
14 |
15 | Using bench, [install ERPNext](https://github.com/frappe/bench#installation) as mentioned here.
16 |
17 | Once ERPNext is installed, add PRM app to your bench by running
18 |
19 | ```sh
20 | $ bench get-app erpnext_price_estimation https://github.com/frappe/erpnext_price_estimation.git
21 | ```
22 |
23 | ## 📘 User Guide
24 |
25 | https://github.com/frappe/erpnext_price_estimation/assets/27720465/10d308af-af89-4152-ac37-aaf3344445f3
26 |
27 |
28 | ### 1. Estimation
29 |
30 | Go to the "ERPNext Price Estimation" module, or create via awesomebar.
31 |
32 | #### 1. Start a new estimate
33 | 
34 |
35 |
36 |
37 | #### 2. Select the modules
38 |
39 | Once you select the module, the estimate will be auto-updated. Edit as required.
40 | 
41 |
42 |
43 |
44 |
45 | #### 3. Set your hourly rate
46 | 
47 |
48 |
49 |
50 |
51 | #### 4. Add the Frappe Cloud details
52 | 
53 |
54 |
55 |
56 |
57 | #### 5. Add the AMC details
58 |
59 | 
60 |
61 |
62 |
63 |
64 |
65 | #### 6. Review and Save
66 |
67 | ### 2. Generating Print Formats
68 |
69 | Go to the "Print Formats" section.
70 | Select "ERPNext Price Estimation"
71 | 
72 |
73 | 
74 |
75 |
76 |
77 |
78 | Customize the print format if needed and generate the document.
79 |
80 | ### 3. Changing the masters
81 | New modules,Estimation Process, Estimation Document can be added and modified as required.
82 |
83 | Modules:
84 | 
85 |
86 |
87 | Estimation Process:
88 | 
89 |
90 |
91 | Estimation Document:
92 | Estimation Document corresponding to the Estimation Document can be added /modified.
93 | 
94 |
95 |
96 | Note: Estimation Process Needs to be added for the Setup, Customization Module as per the requirement.
97 |
98 | ## 🤝 Contributing
99 |
100 | Please raise a pull request to add enhancements!
101 |
102 | ## 📜 License
103 |
104 | MIT See [license.txt](https://github.com/frappe/partner_relationship_management/blob/main/license.txt) for more information.
105 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.testing.unittestArgs": [
3 | "-v",
4 | "-s",
5 | "./erpnext_price_estimation",
6 | "-p",
7 | "*test*.py"
8 | ],
9 | "python.testing.pytestEnabled": false,
10 | "python.testing.unittestEnabled": true
11 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/__init__.py:
--------------------------------------------------------------------------------
1 | __version__ = "0.0.1"
2 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/config/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/config/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/erpnext_price_estimation.js:
--------------------------------------------------------------------------------
1 | function add_efforts(frm, table, module) {
2 | frappe.call({
3 | method: 'erpnext_price_estimation.erpnext_price_estimation.doctype.erpnext_price_estimation.erpnext_price_estimation.get_process_documents',
4 | args: {
5 | module: module
6 | },
7 | callback: function(r) {
8 | let current_list = [];
9 | $.each(frm.doc[table] || [], function(i, row) {
10 | current_list.push(row.estimation_document);
11 | });
12 | $.each(r.message || [], function(i, row) {
13 | if (!current_list.includes(row.document_name)) {
14 | let item = frappe.model.add_child(frm.doc, 'Estimation Detail', table);
15 | frappe.model.set_value(item.doctype, item.name, 'estimation_document', row.document_name);
16 | frappe.model.set_value(item.doctype, item.name, 'estimation_process', row.process_name);
17 | frappe.model.set_value(item.doctype, item.name, 'configuration_efforts', row.configuration_effort);
18 | frappe.model.set_value(item.doctype, item.name, 'other_efforts', row.other_effort);
19 | }
20 | });
21 | frm.refresh_field(table);
22 | }
23 | });
24 | }
25 |
26 | frappe.ui.form.on('ERPNext Price Estimation', {
27 | accounts: function(frm) {
28 | if (frm.doc.accounts) {
29 | add_efforts(frm, 'accounts_details', 'Accounts');
30 | } else {
31 | frm.clear_table("accounts_details");
32 | frm.refresh_field("accounts_details");
33 | frm.events.calculate_totals(frm);
34 | }
35 | },
36 | buying: function(frm) {
37 | if (frm.doc.buying) {
38 | add_efforts(frm, 'buying_details', 'Buying');
39 | } else {
40 | frm.clear_table("buying_details");
41 | frm.refresh_field("buying_details");
42 | frm.events.calculate_totals(frm);
43 | }
44 | },
45 | stock: function(frm) {
46 | if (frm.doc.stock) {
47 | add_efforts(frm, 'stock_details', 'Stock');
48 | } else {
49 | frm.clear_table("stock_details");
50 | frm.refresh_field("stock_details");
51 | frm.events.calculate_totals(frm);
52 | }
53 | },
54 | crm: function(frm) {
55 | if (frm.doc.crm) {
56 | add_efforts(frm, 'crm_details', 'CRM');
57 | } else {
58 | frm.clear_table("crm_details");
59 | frm.refresh_field("crm_details");
60 | frm.events.calculate_totals(frm);
61 | }
62 | },
63 | payroll: function(frm) {
64 | if (frm.doc.payroll) {
65 | add_efforts(frm, 'payroll_details', 'Payroll');
66 | } else {
67 | frm.clear_table("payroll_details");
68 | frm.refresh_field("payroll_details");
69 | frm.events.calculate_totals(frm);
70 | }
71 | },
72 | selling: function(frm) {
73 | if (frm.doc.selling) {
74 | add_efforts(frm, 'selling_details', 'Selling');
75 | } else {
76 | frm.clear_table("selling_details");
77 | frm.refresh_field("selling_details");
78 | frm.events.calculate_totals(frm);
79 | }
80 | },
81 | hrms: function(frm) {
82 | if (frm.doc.hrms) {
83 | add_efforts(frm, 'hrms_details', 'HR');
84 | } else {
85 | frm.clear_table("hrms_details");
86 | frm.refresh_field("hrms_details");
87 | frm.events.calculate_totals(frm);
88 | }
89 | },
90 | projects: function(frm) {
91 | if (frm.doc.projects) {
92 | add_efforts(frm, 'projects_details', 'Projects');
93 | } else {
94 | frm.clear_table("projects_details");
95 | frm.refresh_field("projects_details");
96 | frm.events.calculate_totals(frm);
97 | }
98 | },
99 | manufacturing: function(frm) {
100 | if (frm.doc.manufacturing) {
101 | add_efforts(frm, 'manufacturing_details', 'Manufacturing');
102 | } else {
103 | frm.clear_table("manufacturing_details");
104 | frm.refresh_field("manufacturing_details");
105 | frm.events.calculate_totals(frm);
106 | }
107 | },
108 | setup: function(frm) {
109 | if (frm.doc.setup) {
110 | add_efforts(frm, 'setup_details', 'Setup');
111 | } else {
112 | frm.clear_table("setup_details");
113 | frm.refresh_field("setup_details");
114 | frm.events.calculate_totals(frm);
115 | }
116 | },
117 | healthcare: function(frm) {
118 | if (frm.doc.healthcare) {
119 | add_efforts(frm, 'healthcare_details', 'Healthcare');
120 | } else {
121 | frm.clear_table("healthcare_details");
122 | frm.refresh_field("healthcare_details");
123 | frm.events.calculate_totals(frm);
124 | }
125 | },
126 | education: function(frm) {
127 | if (frm.doc.education) {
128 | add_efforts(frm, 'education_details', 'Education');
129 | } else {
130 | frm.clear_table("education_details");
131 | frm.refresh_field("education_details");
132 | frm.events.calculate_totals(frm);
133 | }
134 | },
135 | customization: function(frm) {
136 | if (frm.doc.customization) {
137 | add_efforts(frm, 'customizations_details', 'Customization');
138 | } else {
139 | frm.clear_table("customizations_details");
140 | frm.refresh_field("customizations_details");
141 | frm.events.calculate_totals(frm);
142 | }
143 | },
144 | validate: function(frm) {
145 | frm.events.calculate_totals(frm);
146 | },
147 | calculate_totals: function(frm) {
148 | frm.doc.total_config_effort = 0;
149 | frm.doc.total_other_effort = 0;
150 | frm.doc.total_efforts = 0;
151 | frm.doc.total_customization_effort = 0;
152 |
153 | let module_tables = [
154 | "accounts_details", "buying_details", "stock_details", "crm_details", "payroll_details", "selling_details", "hrms_details", "projects_details", "manufacturing_details", "setup_details", "customization_details", "healthcare_details", "education_details",
155 | ];
156 |
157 | $.each(frm.doc.customization_estimations || [], function(i, d) {
158 | frm.doc.total_customization_effort += flt(d.estimated_time);
159 | });
160 |
161 | $.each(module_tables || [], function(i, module) {
162 | $.each(frm.doc[module] || [], function(i, row) {
163 | frm.doc.total_config_effort += flt(row.configuration_efforts);
164 | frm.doc.total_other_effort += flt(row.other_efforts);
165 | });
166 | });
167 |
168 | frm.set_query("opportunity_from", function () {
169 | return {
170 | filters: {
171 | name: ["in", ["Customer", "Lead", "Prospect"]],
172 | },
173 | };
174 | });
175 |
176 | frm.doc.total_efforts = frm.doc.total_config_effort + frm.doc.total_other_effort + frm.doc.total_customization_effort;
177 | frm.refresh_field('total_config_effort');
178 | frm.refresh_field('total_other_effort');
179 | frm.refresh_field('total_efforts');
180 | frm.refresh_field('total_customization_effort');
181 | }
182 | });
183 |
184 | estimation_details_object = {
185 | configuration_efforts: function(frm) {
186 | frm.events.calculate_totals(frm);
187 | },
188 | other_efforts: function(frm) {
189 | frm.events.calculate_totals(frm);
190 | }
191 | }
192 |
193 | const modules = ["accounts_details", "buying_details", "stock_details", "crm_details", "payroll_details", "selling_details", "hrms_details", "projects_details", "manufacturing_details", "setup_details", "healthcare_details", "education_details"];
194 |
195 | modules.forEach((module) => {
196 | estimation_details_object[module + "_remove"] = function(frm, cdt, cdn) {
197 | frm.events.calculate_totals(frm);
198 | }
199 | });
200 |
201 | frappe.ui.form.on('Estimation Detail', estimation_details_object);
202 |
203 | frappe.ui.form.on('ERPNext Price Estimation', {
204 | total_hourly_rate: function(frm) {
205 | update_total_amount(frm);
206 | },
207 | total_efforts: function(frm) {
208 | update_total_amount(frm);
209 | }
210 | });
211 |
212 | function update_total_amount(frm) {
213 | let total = frm.doc.total_hourly_rate * frm.doc.total_efforts;
214 | frm.set_value('total_amount', total);
215 | frm.refresh_field('total_amount');
216 | }
217 |
218 | frappe.ui.form.on('ERPNext Price Estimation', {
219 | validity: function(frm) {
220 | update_amount(frm);
221 | },
222 | rate: function(frm) {
223 | update_amount(frm);
224 | }
225 | });
226 |
227 | function update_amount(frm) {
228 | let total = frm.doc.validity * frm.doc.rate;
229 | frm.set_value('amount', total);
230 | frm.refresh_field('amount');
231 | }
232 |
233 | frappe.ui.form.on('ERPNext Price Estimation', {
234 | amc_validity: function(frm) {
235 | update_amc_amount(frm);
236 | },
237 | amc_rate: function(frm) {
238 | update_amc_amount(frm);
239 | }
240 | });
241 |
242 | function update_amc_amount(frm) {
243 | let total = frm.doc.amc_validity * frm.doc.amc_rate;
244 | frm.set_value('amc_amount', total);
245 | frm.refresh_field('amc_amount');
246 | }
247 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/erpnext_price_estimation.json:
--------------------------------------------------------------------------------
1 | {
2 | "actions": [],
3 | "autoname": "PRM-EST-.#####",
4 | "creation": "2024-05-14 12:48:08.989509",
5 | "doctype": "DocType",
6 | "editable_grid": 1,
7 | "engine": "InnoDB",
8 | "field_order": [
9 | "posting_date",
10 | "customer",
11 | "customer_name",
12 | "opportunity_from",
13 | "column_break_28_column",
14 | "company",
15 | "domain",
16 | "status",
17 | "party",
18 | "introduction_section_section",
19 | "introduction",
20 | "customer_details",
21 | "project_and_account_brief",
22 | "qualification_details_section",
23 | "current_state",
24 | "pain_point",
25 | "column_break_qual",
26 | "impact",
27 | "discovery_details_section",
28 | "discovery_call_notes",
29 | "pick_modules_section",
30 | "accounts",
31 | "payroll",
32 | "manufacturing",
33 | "education",
34 | "column_break_8",
35 | "buying",
36 | "selling",
37 | "setup",
38 | "column_break_10",
39 | "stock",
40 | "hrms",
41 | "customization",
42 | "column_break_12",
43 | "crm",
44 | "projects",
45 | "healthcare",
46 | "accounts_module_section",
47 | "accounts_details",
48 | "buying_section",
49 | "buying_details",
50 | "stock_section",
51 | "stock_details",
52 | "crm_section",
53 | "crm_details",
54 | "payroll_section",
55 | "payroll_details",
56 | "selling_section",
57 | "selling_details",
58 | "hrms_section",
59 | "hrms_details",
60 | "projects_section",
61 | "projects_details",
62 | "manufacturing_section_section",
63 | "manufacturing_details",
64 | "setup_section_section",
65 | "setup_details",
66 | "customizations_section",
67 | "customization_details",
68 | "healthcare_section",
69 | "healthcare_details",
70 | "education_section",
71 | "education_details",
72 | "total_hours_section",
73 | "currency",
74 | "total_config_effort",
75 | "total_hourly_rate",
76 | "column_break_25",
77 | "total_other_effort",
78 | "total_efforts",
79 | "total_amount",
80 | "frappe_cloud_details",
81 | "frappe_cloud_plan",
82 | "column_break_26",
83 | "validity",
84 | "rate",
85 | "column_break_27",
86 | "uom",
87 | "amount",
88 | "amc_details",
89 | "amc",
90 | "column_break_28",
91 | "amc_validity",
92 | "amc_rate",
93 | "column_break_29",
94 | "amc_uom",
95 | "amc_amount",
96 | "thanks_section_section",
97 | "thanks"
98 | ],
99 | "fields": [
100 | {
101 | "fieldname": "column_break_28_column",
102 | "fieldtype": "Column Break"
103 | },
104 | {
105 | "fieldname": "domain",
106 | "fieldtype": "Select",
107 | "in_list_view": 1,
108 | "in_standard_filter": 1,
109 | "label": "Domain",
110 | "options": "Manufacturing\nServices\nDistribution\nHealthcare\nEducation\nRetail"
111 | },
112 | {
113 | "default": "Open",
114 | "fieldname": "status",
115 | "fieldtype": "Select",
116 | "in_list_view": 1,
117 | "in_standard_filter": 1,
118 | "label": "Status",
119 | "options": "Open\nEstimated\nConverted\nHanded Over\nLost\nCancelled",
120 | "reqd": 1
121 | },
122 | {
123 | "fieldname": "customer_details",
124 | "fieldtype": "Section Break",
125 | "label": "Company Details"
126 | },
127 | {
128 | "fieldname": "project_and_account_brief",
129 | "fieldtype": "Text Editor",
130 | "label": "Project and Account Brief"
131 | },
132 | {
133 | "depends_on": "eval:doc.lead_qualification",
134 | "fieldname": "qualification_details_section",
135 | "fieldtype": "Section Break",
136 | "label": "Qualification Details"
137 | },
138 | {
139 | "fetch_from": "lead_qualification.current_state",
140 | "fieldname": "current_state",
141 | "fieldtype": "Text",
142 | "label": "Current State",
143 | "read_only": 1
144 | },
145 | {
146 | "fetch_from": "lead_qualification.pain_point",
147 | "fieldname": "pain_point",
148 | "fieldtype": "Text",
149 | "label": "Pain Point",
150 | "read_only": 1
151 | },
152 | {
153 | "fieldname": "column_break_qual",
154 | "fieldtype": "Column Break"
155 | },
156 | {
157 | "fetch_from": "lead_qualification.impact",
158 | "fetch_if_empty": 1,
159 | "fieldname": "impact",
160 | "fieldtype": "Text",
161 | "label": "Impact",
162 | "read_only": 1
163 | },
164 | {
165 | "depends_on": "eval:doc.lead_qualification",
166 | "fieldname": "discovery_details_section",
167 | "fieldtype": "Section Break",
168 | "label": "Discovery Details"
169 | },
170 | {
171 | "fetch_from": "lead_qualification.discovery_call_notes",
172 | "fieldname": "discovery_call_notes",
173 | "fieldtype": "Text Editor",
174 | "label": "Discovery Call Notes",
175 | "read_only": 1
176 | },
177 | {
178 | "fieldname": "pick_modules_section",
179 | "fieldtype": "Section Break",
180 | "label": "Pick Modules"
181 | },
182 | {
183 | "default": "0",
184 | "fieldname": "accounts",
185 | "fieldtype": "Check",
186 | "label": "Accounts"
187 | },
188 | {
189 | "default": "0",
190 | "fieldname": "payroll",
191 | "fieldtype": "Check",
192 | "label": "Payroll"
193 | },
194 | {
195 | "default": "0",
196 | "fieldname": "manufacturing",
197 | "fieldtype": "Check",
198 | "label": "Manufacturing"
199 | },
200 | {
201 | "fieldname": "column_break_8",
202 | "fieldtype": "Column Break"
203 | },
204 | {
205 | "default": "0",
206 | "fieldname": "buying",
207 | "fieldtype": "Check",
208 | "label": "Buying"
209 | },
210 | {
211 | "default": "0",
212 | "fieldname": "selling",
213 | "fieldtype": "Check",
214 | "label": "Selling"
215 | },
216 | {
217 | "default": "0",
218 | "fieldname": "setup",
219 | "fieldtype": "Check",
220 | "label": "Setup"
221 | },
222 | {
223 | "fieldname": "column_break_10",
224 | "fieldtype": "Column Break"
225 | },
226 | {
227 | "default": "0",
228 | "fieldname": "stock",
229 | "fieldtype": "Check",
230 | "label": "Stock"
231 | },
232 | {
233 | "default": "0",
234 | "fieldname": "hrms",
235 | "fieldtype": "Check",
236 | "label": "HRMS"
237 | },
238 | {
239 | "default": "0",
240 | "fieldname": "customization",
241 | "fieldtype": "Check",
242 | "label": "Customization"
243 | },
244 | {
245 | "fieldname": "column_break_12",
246 | "fieldtype": "Column Break",
247 | "hide_border": 1
248 | },
249 | {
250 | "default": "0",
251 | "fieldname": "crm",
252 | "fieldtype": "Check",
253 | "label": "CRM"
254 | },
255 | {
256 | "default": "0",
257 | "fieldname": "projects",
258 | "fieldtype": "Check",
259 | "label": "Projects"
260 | },
261 | {
262 | "depends_on": "eval:doc.accounts",
263 | "fieldname": "accounts_module_section",
264 | "fieldtype": "Section Break",
265 | "label": "Accounts"
266 | },
267 | {
268 | "depends_on": "eval:doc.buying",
269 | "fieldname": "buying_section",
270 | "fieldtype": "Section Break",
271 | "label": "Buying"
272 | },
273 | {
274 | "depends_on": "eval:doc.stock",
275 | "fieldname": "stock_section",
276 | "fieldtype": "Section Break",
277 | "label": "Stock"
278 | },
279 | {
280 | "depends_on": "eval:doc.crm",
281 | "fieldname": "crm_section",
282 | "fieldtype": "Section Break",
283 | "label": "CRM"
284 | },
285 | {
286 | "depends_on": "eval:doc.payroll",
287 | "fieldname": "payroll_section",
288 | "fieldtype": "Section Break",
289 | "label": "Payroll"
290 | },
291 | {
292 | "depends_on": "eval:doc.selling",
293 | "fieldname": "selling_section",
294 | "fieldtype": "Section Break",
295 | "label": "Selling"
296 | },
297 | {
298 | "depends_on": "eval:doc.hrms",
299 | "fieldname": "hrms_section",
300 | "fieldtype": "Section Break",
301 | "label": "HRMS"
302 | },
303 | {
304 | "depends_on": "eval:doc.projects",
305 | "fieldname": "projects_section",
306 | "fieldtype": "Section Break",
307 | "label": "Projects"
308 | },
309 | {
310 | "depends_on": "eval:doc.manufacturing",
311 | "fieldname": "manufacturing_section_section",
312 | "fieldtype": "Section Break",
313 | "label": "Manufacturing Section"
314 | },
315 | {
316 | "depends_on": "eval:doc.setup",
317 | "fieldname": "setup_section_section",
318 | "fieldtype": "Section Break",
319 | "label": "Setup Section"
320 | },
321 | {
322 | "depends_on": "eval:doc.customization",
323 | "fieldname": "customizations_section",
324 | "fieldtype": "Section Break",
325 | "label": "Customizations"
326 | },
327 | {
328 | "fieldname": "total_hours_section",
329 | "fieldtype": "Section Break",
330 | "label": "Total Implementation Hours"
331 | },
332 | {
333 | "fieldname": "total_config_effort",
334 | "fieldtype": "Float",
335 | "label": "Total Configuration Efforts"
336 | },
337 | {
338 | "fieldname": "column_break_25",
339 | "fieldtype": "Column Break"
340 | },
341 | {
342 | "fieldname": "total_other_effort",
343 | "fieldtype": "Float",
344 | "label": "Total Other Efforts"
345 | },
346 | {
347 | "fieldname": "total_efforts",
348 | "fieldtype": "Float",
349 | "label": "Total Efforts"
350 | },
351 | {
352 | "fetch_from": "partner_lead.lead_name",
353 | "fieldname": "customer",
354 | "fieldtype": "Link",
355 | "label": "Customer",
356 | "options": "Customer"
357 | },
358 | {
359 | "fetch_from": "customer.customer_name",
360 | "fieldname": "customer_name",
361 | "fieldtype": "Data",
362 | "label": "Customer Name"
363 | },
364 | {
365 | "default": "0",
366 | "fieldname": "healthcare",
367 | "fieldtype": "Check",
368 | "label": "Healthcare"
369 | },
370 | {
371 | "default": "0",
372 | "fieldname": "education",
373 | "fieldtype": "Check",
374 | "label": "Education"
375 | },
376 | {
377 | "depends_on": "eval:doc.healthcare",
378 | "fieldname": "healthcare_section",
379 | "fieldtype": "Section Break",
380 | "label": "Healthcare"
381 | },
382 | {
383 | "depends_on": "eval:doc.education",
384 | "fieldname": "education_section",
385 | "fieldtype": "Section Break",
386 | "label": "Education"
387 | },
388 | {
389 | "fieldname": "total_hourly_rate",
390 | "fieldtype": "Float",
391 | "label": "Total Hourly Rate"
392 | },
393 | {
394 | "fieldname": "total_amount",
395 | "fieldtype": "Currency",
396 | "label": "Total Amount",
397 | "options": "currency"
398 | },
399 | {
400 | "default": "Today",
401 | "fieldname": "posting_date",
402 | "fieldtype": "Date",
403 | "label": "Posting Date"
404 | },
405 | {
406 | "fieldname": "frappe_cloud_details",
407 | "fieldtype": "Section Break",
408 | "label": "Frappe Cloud Details"
409 | },
410 | {
411 | "fieldname": "amc_details",
412 | "fieldtype": "Section Break",
413 | "label": "AMC Details"
414 | },
415 | {
416 | "fieldname": "frappe_cloud_plan",
417 | "fieldtype": "Small Text",
418 | "label": "Frappe Cloud Plan"
419 | },
420 | {
421 | "fieldname": "rate",
422 | "fieldtype": "Currency",
423 | "label": "Rate"
424 | },
425 | {
426 | "fieldname": "validity",
427 | "fieldtype": "Float",
428 | "label": "Validity"
429 | },
430 | {
431 | "fieldname": "uom",
432 | "fieldtype": "Select",
433 | "label": "UOM",
434 | "options": "Month\nYear"
435 | },
436 | {
437 | "fieldname": "amount",
438 | "fieldtype": "Currency",
439 | "label": "Amount",
440 | "options": "currency"
441 | },
442 | {
443 | "fieldname": "column_break_26",
444 | "fieldtype": "Column Break"
445 | },
446 | {
447 | "fieldname": "column_break_27",
448 | "fieldtype": "Column Break"
449 | },
450 | {
451 | "default": "AMC",
452 | "fieldname": "amc",
453 | "fieldtype": "Small Text",
454 | "label": "AMC"
455 | },
456 | {
457 | "fieldname": "amc_validity",
458 | "fieldtype": "Float",
459 | "label": "Validity"
460 | },
461 | {
462 | "fieldname": "amc_rate",
463 | "fieldtype": "Currency",
464 | "label": "Rate",
465 | "options": "currency"
466 | },
467 | {
468 | "fieldname": "amc_uom",
469 | "fieldtype": "Select",
470 | "label": "UOM",
471 | "options": "Month\nYear"
472 | },
473 | {
474 | "fieldname": "amc_amount",
475 | "fieldtype": "Currency",
476 | "label": "Amount",
477 | "options": "currency"
478 | },
479 | {
480 | "fieldname": "column_break_28",
481 | "fieldtype": "Column Break"
482 | },
483 | {
484 | "fieldname": "column_break_29",
485 | "fieldtype": "Column Break"
486 | },
487 | {
488 | "fieldname": "currency",
489 | "fieldtype": "Link",
490 | "label": "Currency",
491 | "options": "Currency"
492 | },
493 | {
494 | "fieldname": "introduction",
495 | "fieldtype": "Text Editor",
496 | "label": "Introduction Section"
497 | },
498 | {
499 | "fieldname": "introduction_section_section",
500 | "fieldtype": "Section Break"
501 | },
502 | {
503 | "fieldname": "thanks_section_section",
504 | "fieldtype": "Section Break"
505 | },
506 | {
507 | "fieldname": "thanks",
508 | "fieldtype": "Text Editor",
509 | "label": "End Section"
510 | },
511 | {
512 | "fieldname": "accounts_details",
513 | "fieldtype": "Table",
514 | "label": "Estimation Details",
515 | "options": "Estimation Detail"
516 | },
517 | {
518 | "fieldname": "buying_details",
519 | "fieldtype": "Table",
520 | "label": "Estimation Details",
521 | "options": "Estimation Detail"
522 | },
523 | {
524 | "fieldname": "stock_details",
525 | "fieldtype": "Table",
526 | "label": "Estimation Details",
527 | "options": "Estimation Detail"
528 | },
529 | {
530 | "fieldname": "crm_details",
531 | "fieldtype": "Table",
532 | "label": "Estimation Details",
533 | "options": "Estimation Detail"
534 | },
535 | {
536 | "fieldname": "payroll_details",
537 | "fieldtype": "Table",
538 | "label": "Estimation Details",
539 | "options": "Estimation Detail"
540 | },
541 | {
542 | "fieldname": "selling_details",
543 | "fieldtype": "Table",
544 | "label": "Estimation Details",
545 | "options": "Estimation Detail"
546 | },
547 | {
548 | "fieldname": "hrms_details",
549 | "fieldtype": "Table",
550 | "label": "Estimation Details",
551 | "options": "Estimation Detail"
552 | },
553 | {
554 | "fieldname": "projects_details",
555 | "fieldtype": "Table",
556 | "label": "Estimation Details",
557 | "options": "Estimation Detail"
558 | },
559 | {
560 | "fieldname": "manufacturing_details",
561 | "fieldtype": "Table",
562 | "label": "Estimation Details",
563 | "options": "Estimation Detail"
564 | },
565 | {
566 | "fieldname": "setup_details",
567 | "fieldtype": "Table",
568 | "label": "Estimation Details",
569 | "options": "Estimation Detail"
570 | },
571 | {
572 | "fieldname": "healthcare_details",
573 | "fieldtype": "Table",
574 | "label": "Estimation Details",
575 | "options": "Estimation Detail"
576 | },
577 | {
578 | "fieldname": "education_details",
579 | "fieldtype": "Table",
580 | "label": "Estimation Details",
581 | "options": "Estimation Detail"
582 | },
583 | {
584 | "fieldname": "customization_details",
585 | "fieldtype": "Table",
586 | "label": "Estimation Details",
587 | "options": "Estimation Detail"
588 | },
589 | {
590 | "fieldname": "company",
591 | "fieldtype": "Link",
592 | "label": "Company",
593 | "options": "Company"
594 | },
595 | {
596 | "fieldname": "opportunity_from",
597 | "fieldtype": "Link",
598 | "label": "Opportunity From",
599 | "options": "DocType"
600 | },
601 | {
602 | "fieldname": "party",
603 | "fieldtype": "Dynamic Link",
604 | "label": "Party",
605 | "options": "opportunity_from"
606 | }
607 | ],
608 | "links": [],
609 | "modified": "2024-07-20 13:44:05.260736",
610 | "modified_by": "Administrator",
611 | "module": "ERPNext Price Estimation",
612 | "name": "ERPNext Price Estimation",
613 | "naming_rule": "Expression (old style)",
614 | "owner": "Administrator",
615 | "permissions": [
616 | {
617 | "create": 1,
618 | "delete": 1,
619 | "email": 1,
620 | "export": 1,
621 | "print": 1,
622 | "read": 1,
623 | "report": 1,
624 | "role": "System Manager",
625 | "share": 1,
626 | "write": 1
627 | }
628 | ],
629 | "sort_field": "modified",
630 | "sort_order": "DESC",
631 | "states": [
632 | {
633 | "color": "Orange",
634 | "title": "Open"
635 | },
636 | {
637 | "color": "Cyan",
638 | "title": "Estimated"
639 | },
640 | {
641 | "color": "Green",
642 | "title": "Converted"
643 | },
644 | {
645 | "color": "Blue",
646 | "title": "Handed Over"
647 | },
648 | {
649 | "color": "Gray",
650 | "title": "Lost"
651 | },
652 | {
653 | "color": "Gray",
654 | "title": "Cancelled"
655 | }
656 | ],
657 | "track_changes": 1
658 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/erpnext_price_estimation.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and contributors
2 | # For license information, please see license.txt
3 |
4 | import frappe
5 | from frappe.model.document import Document
6 |
7 | class ERPNextPriceEstimation(Document):
8 | pass
9 |
10 | @frappe.whitelist()
11 | def get_process_documents(process=None, module=None):
12 | filters = {}
13 | if process:
14 | filters['process'] = process
15 | if module:
16 | filters['module'] = module
17 |
18 | process_details = frappe.get_all(
19 | 'Estimation Document',
20 | fields=['document_name', 'process_name', 'configuration_effort', 'other_effort'],
21 | filters=filters
22 | )
23 |
24 | return process_details
25 |
26 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/erpnext_price_estimation/test_erpnext_price_estimation.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and Contributors
2 | # See license.txt
3 |
4 | # import frappe
5 | from frappe.tests.utils import FrappeTestCase
6 |
7 |
8 | class TestERPNextPriceEstimation(FrappeTestCase):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_detail/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_detail/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_detail/estimation_detail.json:
--------------------------------------------------------------------------------
1 | {
2 | "actions": [],
3 | "creation": "2024-05-13 16:53:52.178639",
4 | "doctype": "DocType",
5 | "editable_grid": 1,
6 | "engine": "InnoDB",
7 | "field_order": [
8 | "estimation_process",
9 | "estimation_document",
10 | "configuration_efforts",
11 | "other_efforts"
12 | ],
13 | "fields": [
14 | {
15 | "fieldname": "estimation_process",
16 | "fieldtype": "Link",
17 | "in_list_view": 1,
18 | "label": "Estimation Process",
19 | "options": "Estimation Process"
20 | },
21 | {
22 | "fieldname": "estimation_document",
23 | "fieldtype": "Link",
24 | "in_list_view": 1,
25 | "label": "Estimation Document",
26 | "options": "Estimation Document"
27 | },
28 | {
29 | "fieldname": "configuration_efforts",
30 | "fieldtype": "Float",
31 | "in_list_view": 1,
32 | "label": "Configuration Efforts (Hours)"
33 | },
34 | {
35 | "fieldname": "other_efforts",
36 | "fieldtype": "Float",
37 | "in_list_view": 1,
38 | "label": "Other Efforts (Hours)"
39 | }
40 | ],
41 | "index_web_pages_for_search": 1,
42 | "istable": 1,
43 | "links": [],
44 | "modified": "2024-05-13 17:03:41.125205",
45 | "modified_by": "Administrator",
46 | "module": "ERPNext Price Estimation",
47 | "name": "Estimation Detail",
48 | "owner": "Administrator",
49 | "permissions": [],
50 | "sort_field": "modified",
51 | "sort_order": "DESC",
52 | "states": [],
53 | "track_changes": 1
54 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_detail/estimation_detail.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and contributors
2 | # For license information, please see license.txt
3 |
4 | # import frappe
5 | from frappe.model.document import Document
6 |
7 |
8 | class EstimationDetail(Document):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/estimation_document.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2024, frappe solutions and contributors
2 | // For license information, please see license.txt
3 |
4 | // frappe.ui.form.on("Estimation Document", {
5 | // refresh(frm) {
6 |
7 | // },
8 | // });
9 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/estimation_document.json:
--------------------------------------------------------------------------------
1 | {
2 | "actions": [],
3 | "allow_import": 1,
4 | "autoname": "field:document_name",
5 | "creation": "2024-05-13 16:49:36.452740",
6 | "doctype": "DocType",
7 | "editable_grid": 1,
8 | "engine": "InnoDB",
9 | "field_order": [
10 | "document_name",
11 | "process_name",
12 | "configuration_effort",
13 | "column_break_4",
14 | "module",
15 | "other_effort"
16 | ],
17 | "fields": [
18 | {
19 | "fieldname": "document_name",
20 | "fieldtype": "Data",
21 | "label": "Document",
22 | "unique": 1
23 | },
24 | {
25 | "fieldname": "process_name",
26 | "fieldtype": "Link",
27 | "in_list_view": 1,
28 | "in_standard_filter": 1,
29 | "label": "Process",
30 | "options": "Estimation Process",
31 | "reqd": 1
32 | },
33 | {
34 | "fieldname": "configuration_effort",
35 | "fieldtype": "Float",
36 | "label": "Configuration Effort"
37 | },
38 | {
39 | "fieldname": "column_break_4",
40 | "fieldtype": "Column Break"
41 | },
42 | {
43 | "fetch_from": "process_name.module",
44 | "fieldname": "module",
45 | "fieldtype": "Link",
46 | "in_list_view": 1,
47 | "in_standard_filter": 1,
48 | "label": "Module",
49 | "options": "Module"
50 | },
51 | {
52 | "fieldname": "other_effort",
53 | "fieldtype": "Float",
54 | "label": "Other Effort"
55 | }
56 | ],
57 | "index_web_pages_for_search": 1,
58 | "links": [],
59 | "modified": "2024-06-07 18:10:18.985003",
60 | "modified_by": "Administrator",
61 | "module": "ERPNext Price Estimation",
62 | "name": "Estimation Document",
63 | "owner": "Administrator",
64 | "permissions": [
65 | {
66 | "create": 1,
67 | "delete": 1,
68 | "email": 1,
69 | "export": 1,
70 | "import": 1,
71 | "print": 1,
72 | "read": 1,
73 | "report": 1,
74 | "role": "System Manager",
75 | "share": 1,
76 | "write": 1
77 | }
78 | ],
79 | "quick_entry": 1,
80 | "sort_field": "modified",
81 | "sort_order": "DESC",
82 | "states": [],
83 | "track_changes": 1
84 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/estimation_document.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and contributors
2 | # For license information, please see license.txt
3 |
4 | # import frappe
5 | from frappe.model.document import Document
6 |
7 |
8 | class EstimationDocument(Document):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_document/test_estimation_document.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and Contributors
2 | # See license.txt
3 |
4 | # import frappe
5 | from frappe.tests.utils import FrappeTestCase
6 |
7 |
8 | class TestEstimationDocument(FrappeTestCase):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/estimation_process.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2024, frappe solutions and contributors
2 | // For license information, please see license.txt
3 |
4 | // frappe.ui.form.on("Estimation Process", {
5 | // refresh(frm) {
6 |
7 | // },
8 | // });
9 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/estimation_process.json:
--------------------------------------------------------------------------------
1 | {
2 | "actions": [],
3 | "allow_import": 1,
4 | "allow_rename": 1,
5 | "autoname": "field:process_name",
6 | "creation": "2024-05-13 16:42:54.749102",
7 | "doctype": "DocType",
8 | "editable_grid": 1,
9 | "engine": "InnoDB",
10 | "field_order": [
11 | "process_name",
12 | "module",
13 | "table_fssue"
14 | ],
15 | "fields": [
16 | {
17 | "fieldname": "process_name",
18 | "fieldtype": "Data",
19 | "label": "Process",
20 | "unique": 1
21 | },
22 | {
23 | "fieldname": "module",
24 | "fieldtype": "Link",
25 | "in_list_view": 1,
26 | "in_standard_filter": 1,
27 | "label": "Module",
28 | "options": "Module"
29 | },
30 | {
31 | "fieldname": "table_fssue",
32 | "fieldtype": "Table",
33 | "options": "Estimation Detail"
34 | }
35 | ],
36 | "index_web_pages_for_search": 1,
37 | "links": [],
38 | "modified": "2024-06-07 18:12:32.206306",
39 | "modified_by": "Administrator",
40 | "module": "ERPNext Price Estimation",
41 | "name": "Estimation Process",
42 | "naming_rule": "By fieldname",
43 | "owner": "Administrator",
44 | "permissions": [
45 | {
46 | "create": 1,
47 | "delete": 1,
48 | "email": 1,
49 | "export": 1,
50 | "print": 1,
51 | "read": 1,
52 | "report": 1,
53 | "role": "System Manager",
54 | "share": 1,
55 | "write": 1
56 | }
57 | ],
58 | "quick_entry": 1,
59 | "sort_field": "modified",
60 | "sort_order": "DESC",
61 | "states": [],
62 | "track_changes": 1
63 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/estimation_process.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and contributors
2 | # For license information, please see license.txt
3 |
4 | # import frappe
5 | from frappe.model.document import Document
6 |
7 |
8 | class EstimationProcess(Document):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/estimation_process/test_estimation_process.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and Contributors
2 | # See license.txt
3 |
4 | # import frappe
5 | from frappe.tests.utils import FrappeTestCase
6 |
7 |
8 | class TestEstimationProcess(FrappeTestCase):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/module/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/doctype/module/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/module/module.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2024, frappe solutions and contributors
2 | // For license information, please see license.txt
3 |
4 | // frappe.ui.form.on("Module", {
5 | // refresh(frm) {
6 |
7 | // },
8 | // });
9 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/module/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "actions": [],
3 | "allow_import": 1,
4 | "allow_rename": 1,
5 | "autoname": "field:module",
6 | "creation": "2024-05-15 14:29:50.246862",
7 | "doctype": "DocType",
8 | "engine": "InnoDB",
9 | "field_order": [
10 | "module"
11 | ],
12 | "fields": [
13 | {
14 | "fieldname": "module",
15 | "fieldtype": "Data",
16 | "label": "Module",
17 | "unique": 1
18 | }
19 | ],
20 | "index_web_pages_for_search": 1,
21 | "links": [],
22 | "modified": "2024-05-15 14:40:39.336327",
23 | "modified_by": "Administrator",
24 | "module": "ERPNext Price Estimation",
25 | "name": "Module",
26 | "naming_rule": "By fieldname",
27 | "owner": "Administrator",
28 | "permissions": [
29 | {
30 | "create": 1,
31 | "delete": 1,
32 | "email": 1,
33 | "export": 1,
34 | "print": 1,
35 | "read": 1,
36 | "report": 1,
37 | "role": "System Manager",
38 | "share": 1,
39 | "write": 1
40 | }
41 | ],
42 | "sort_field": "creation",
43 | "sort_order": "DESC",
44 | "states": []
45 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/module/module.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and contributors
2 | # For license information, please see license.txt
3 |
4 | # import frappe
5 | from frappe.model.document import Document
6 |
7 |
8 | class Module(Document):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/doctype/module/test_module.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024, frappe solutions and Contributors
2 | # See license.txt
3 |
4 | # import frappe
5 | from frappe.tests.utils import FrappeTestCase
6 |
7 |
8 | class TestModule(FrappeTestCase):
9 | pass
10 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/print_format/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/print_format/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/print_format/erpnext_price_estimate/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/erpnext_price_estimation/print_format/erpnext_price_estimate/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/print_format/erpnext_price_estimate/erpnext_price_estimate.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Inter";
3 | font-size: 16px;
4 | }
5 |
6 | .print-format {
7 | /* for wkhtmltopdf */
8 | margin-top: 10px;
9 | margin-bottom: 10px;
10 | margin-left: 10px;
11 | margin-right: 10px;
12 | padding: 20px;
13 | /* for modern browser */
14 | margin: 0 auto;
15 | }
16 |
17 | /* modern browser print */
18 | @page {
19 | margin: 10px !important;
20 | }
21 |
22 | .main-heading {
23 | font-family: "Inter";
24 | font-size: 24px;
25 | font-weight: 700;
26 | padding: 28px 0;
27 | }
28 | .sub-header {
29 | display: flex;
30 | justify-content: space-between;
31 | padding-bottom: 50px;
32 | }
33 |
34 | .sub-header .estimate-details {
35 | text-align: right;
36 | }
37 |
38 | .sub-header p.main {
39 | font-size: 16px;
40 | font-weight: 600;
41 | }
42 |
43 | .user-text {
44 | padding-bottom: 30px;
45 | }
46 |
47 | .main-title {
48 | font-size: 18px;
49 | font-weight: 600;
50 | padding-bottom: 20px;
51 | }
52 |
53 | .module-text {
54 | font-size: 15px;
55 | margin-top: -5px;
56 | padding-bottom: 10px;
57 | }
58 | .title {
59 | font-size: 14px;
60 | font-weight: 400;
61 | color: #3C3C3C;
62 | }
63 |
64 | .value {
65 | font-size: 15px;
66 | font-weight: 500;
67 | padding-top: 3px;
68 | }
69 |
70 | th:first-child, td:first-child {
71 | width: 30%;
72 | }
73 |
74 | .right-align {
75 | text-align: right;
76 | }
77 |
78 | .table-module-title {
79 | font-size: 15px;
80 | font-weight: 500;
81 | padding-bottom: 10px;
82 | }
83 |
84 | h1 {
85 | margin: 0;
86 | font-size: 28px;
87 | color: #333;
88 | text-align: center;
89 | }
90 |
91 | .left-align {
92 | text-align: left;
93 | }
94 |
95 | .right-align {
96 | text-align: right;
97 | }
98 |
99 | .module-wise-estimate-table {
100 | width: 100%;
101 | border: 1px solid #ddd;
102 | border-collapse: collapse;
103 | font-size: 14px;
104 | margin-bottom: 20px;
105 | }
106 |
107 | .module-wise-estimate-table th,
108 | .module-wise-estimate-table td {
109 | border: 1px solid #ddd;
110 | padding: 8px;
111 | text-align: left;
112 | font-size: 14px;
113 | }
114 |
115 | .module-wise-estimate-table th {
116 | background-color: #ffffff;
117 | color: black;
118 | padding: 5px;
119 | }
120 |
121 | .left-align p,
122 | .right-align p,
123 | .center-align p {
124 | margin: 0 0 10px 0;
125 | }
126 |
127 | .left-align p:last-child,
128 | .right-align p:last-child,
129 | .center-align p:last-child {
130 | margin-bottom: 0;
131 | }
132 |
133 | table {
134 | width: 100%;
135 | border-collapse: collapse;
136 | font-size: 14px;
137 | }
138 | th,
139 | td {
140 | padding: 1px;
141 | }
142 | .left {
143 | text-align: left;
144 | }
145 | .right {
146 | text-align: right;
147 | }
148 |
149 | .vertical {
150 | border-left: 1px solid lightgrey;
151 | height: 50px;
152 | }
153 |
154 | .no-break-inside {
155 | page-break-inside: avoid;
156 | break-inside: avoid;
157 | }
158 |
159 | .no-padding {
160 | padding: 0;
161 | margin: 0;
162 | }
163 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/print_format/erpnext_price_estimate/erpnext_price_estimate.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% if letter_head and not no_letterhead %}
5 |
{{ letter_head }}
6 | {% endif %}
7 | ERPNext Price Estimation
8 |
18 |
19 |
{{ doc.introduction or '' }}
20 |
21 | Project Brief
22 | {{ doc.project_and_account_brief or '' }}
23 | Implementation Modules
24 | {% set modules = [] %} {% if doc.accounts == 1 %} {% set modules = modules + ['Accounts'] %} {% endif %} {% if doc.payroll == 1 %} {% set modules = modules + ['Payroll'] %} {% endif %} {% if doc.manufacturing == 1 %} {% set modules = modules + ['Manufacturing'] %} {% endif %} {% if doc.buying == 1 %} {% set modules = modules + ['Buying'] %} {% endif %} {% if doc.selling == 1 %} {% set modules = modules + ['Selling'] %} {% endif %} {% if doc.setup == 1 %} {% set modules = modules + ['Setup'] %} {% endif %} {% if doc.stock == 1 %} {% set modules = modules + ['Stock'] %} {% endif %} {% if doc.hrms == 1 %} {% set modules = modules + ['HRMS'] %} {% endif %} {% if doc.customization == 1 %} {% set modules = modules + ['Customization'] %} {% endif %} {% if doc.crm == 1 %} {% set modules = modules + ['CRM'] %} {% endif %} {% if doc.projects == 1 %} {% set modules = modules + ['Projects'] %} {% endif %} {% if doc.healthcare == 1 %} {% set modules = modules + ['Healthcare'] %} {% endif %} {% if doc.education == 1 %} {% set modules = modules + ['Education'] %} {% endif %} {{ modules | join(', ') }}
25 |
26 |
27 | Configuration Efforts |
28 | Other Efforts |
29 | Total Hours |
30 | Rate / Hr |
31 | Total Cost |
32 |
33 |
34 | {{ frappe.format(doc.total_config_effort or 0.00, {'fieldtype': "Float", 'options': doc}) }} |
35 | {{ frappe.format(doc.total_other_effort or 0.00, {'fieldtype': "Float", 'options': doc}) }} |
36 | {{ frappe.format(doc.total_efforts or 0.00, {'fieldtype': "Float", 'options': doc}) }} |
37 | {{ frappe.format(doc.total_hourly_rate or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
38 | {{ frappe.format(doc.total_amount or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
39 |
40 |
41 |
42 |
43 | Frappe Cloud
44 |
45 |
46 | Plan |
47 | Duration ( {{doc.uom + "s"}} ) |
48 | Cost |
49 | Total Cost |
50 |
51 |
52 | {{doc.frappe_cloud_plan or 'Frappe Cloud Hosting'}} |
53 | {{ frappe.format(doc.validity or 0.00, {'fieldtype': "Float", 'options': doc}) }} |
54 | {{ frappe.format(doc.rate or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
55 | {{ frappe.format(doc.amount or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
56 |
57 |
58 |
59 |
60 | Annual Maintenance Charges
61 |
62 |
63 | Duration ( {{doc.amc_uom + "s"}} ) |
64 | Rate per {{doc.amc_uom}} |
65 | Total Cost |
66 |
67 |
68 | {{ frappe.format(doc.amc_validity or 0.00, {'fieldtype': "Float", 'options': doc}) }} |
69 | {{ frappe.format(doc.amc_rate or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
70 | {{ frappe.format(doc.amc_amount or 0.00, {'fieldtype': "Currency", 'options': doc}) }} |
71 |
72 |
73 |
74 |
75 | Module Wise Estimate
76 | {%- set modules = ["accounts", "buying", "stock", "crm", "payroll", "selling", "hrms", "projects", "manufacturing", "setup", "customization", "healthcare", "education"] -%}
77 | {%- set modules_label = {"accounts": "Accounts", "buying": "Buying", "stock": "Stock", "crm": "CRM", "payroll": "Payroll", "selling": "Selling", "hrms": "HRMS", "projects": "Projects", "manufacturing": "Manufacturing", "setup": "Setup", "customization": "Customization", "healthcare": "Healthcare", "education": "Education"} -%}
78 | {%- for module in modules -%}
79 | {% if doc.get(module) == 1 and doc.get(module + "_details") and doc.get(module + "_details")|length > 0 %}
80 | {{modules_label.get(module)}}
81 |
82 |
83 |
84 | Sr. |
85 | Process |
86 | Document |
87 | Configuration Hours |
88 | Other Hours |
89 |
90 |
91 | {%- for row in doc.get(module + "_details") -%}
92 |
93 |
94 | {{ row.idx }} |
95 | {{ row.estimation_process }} |
96 | {{ row.estimation_document }} |
97 | {{ row.configuration_efforts }} |
98 | {{ row.other_efforts }} |
99 |
100 | {%- endfor -%}
101 |
102 |
103 | {%- endif -%}
104 | {%- endfor -%}
105 |
106 |
{{ doc.thanks or '' }}
107 |
108 | {% if not no_letterhead and footer %}
109 |
112 | {% endif %}
113 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/erpnext_price_estimation/print_format/erpnext_price_estimate/erpnext_price_estimate.json:
--------------------------------------------------------------------------------
1 | {
2 | "absolute_value": 0,
3 | "align_labels_right": 1,
4 | "creation": "2024-06-05 08:29:41.164176",
5 | "css": "",
6 | "custom_format": 0,
7 | "default_print_language": "en",
8 | "disabled": 0,
9 | "doc_type": "ERPNext Price Estimation",
10 | "docstatus": 0,
11 | "doctype": "Print Format",
12 | "font_size": 14,
13 | "html": "",
14 | "idx": 0,
15 | "line_breaks": 1,
16 | "margin_bottom": 5.0,
17 | "margin_left": 5.0,
18 | "margin_right": 5.0,
19 | "margin_top": 5.0,
20 | "modified": "2024-06-12 17:07:56.450643",
21 | "modified_by": "Administrator",
22 | "module": "ERPNext Price Estimation",
23 | "name": "ERPNext Price Estimate",
24 | "owner": "Administrator",
25 | "page_number": "Hide",
26 | "print_designer": 0,
27 | "print_designer_template_app": "print_designer",
28 | "print_format_builder": 0,
29 | "print_format_builder_beta": 0,
30 | "print_format_type": "Jinja",
31 | "raw_printing": 0,
32 | "show_section_headings": 1,
33 | "standard": "Yes"
34 | }
--------------------------------------------------------------------------------
/erpnext_price_estimation/fixtures/estimation_document.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "configuration_effort": 3.0,
4 | "docstatus": 0,
5 | "doctype": "Estimation Document",
6 | "document_name": "Lab Test Sample",
7 | "modified": "2024-06-07 17:57:54.721214",
8 | "module": "Healthcare",
9 | "name": "Lab Test Sample",
10 | "other_effort": 1.0,
11 | "process_name": "Laboratory"
12 | },
13 | {
14 | "configuration_effort": 1.0,
15 | "docstatus": 0,
16 | "doctype": "Estimation Document",
17 | "document_name": "Lab Test UOM",
18 | "modified": "2024-06-07 17:58:05.751666",
19 | "module": "Healthcare",
20 | "name": "Lab Test UOM",
21 | "other_effort": 1.0,
22 | "process_name": "Laboratory"
23 | },
24 | {
25 | "configuration_effort": 10.0,
26 | "docstatus": 0,
27 | "doctype": "Estimation Document",
28 | "document_name": "Lab Test Template",
29 | "modified": "2024-06-07 17:58:22.756121",
30 | "module": "Healthcare",
31 | "name": "Lab Test Template",
32 | "other_effort": 1.0,
33 | "process_name": "Laboratory"
34 | },
35 | {
36 | "configuration_effort": 1.0,
37 | "docstatus": 0,
38 | "doctype": "Estimation Document",
39 | "document_name": "Patient Care Type",
40 | "modified": "2024-06-07 17:59:56.359067",
41 | "module": "Healthcare",
42 | "name": "Patient Care Type",
43 | "other_effort": 1.0,
44 | "process_name": "Inpatient"
45 | },
46 | {
47 | "configuration_effort": 1.0,
48 | "docstatus": 0,
49 | "doctype": "Estimation Document",
50 | "document_name": "Exercise Type",
51 | "modified": "2024-06-07 18:02:24.047679",
52 | "module": "Healthcare",
53 | "name": "Exercise Type",
54 | "other_effort": 1.0,
55 | "process_name": "Rehabilitation"
56 | },
57 | {
58 | "configuration_effort": 2.0,
59 | "docstatus": 0,
60 | "doctype": "Estimation Document",
61 | "document_name": "Therapy plan template",
62 | "modified": "2024-06-07 18:03:03.054225",
63 | "module": "Healthcare",
64 | "name": "Therapy plan template",
65 | "other_effort": 1.0,
66 | "process_name": "Rehabilitation"
67 | },
68 | {
69 | "configuration_effort": 1.0,
70 | "docstatus": 0,
71 | "doctype": "Estimation Document",
72 | "document_name": "Healthcare Practitioner Schedule",
73 | "modified": "2024-06-07 18:04:31.486861",
74 | "module": "Healthcare",
75 | "name": "Healthcare Practitioner Schedule",
76 | "other_effort": 1.0,
77 | "process_name": "Consultation"
78 | },
79 | {
80 | "configuration_effort": 2.0,
81 | "docstatus": 0,
82 | "doctype": "Estimation Document",
83 | "document_name": "Healthcare Practitioners",
84 | "modified": "2024-06-07 18:04:51.944265",
85 | "module": "Healthcare",
86 | "name": "Healthcare Practitioners",
87 | "other_effort": 1.0,
88 | "process_name": "Consultation"
89 | },
90 | {
91 | "configuration_effort": 3.0,
92 | "docstatus": 0,
93 | "doctype": "Estimation Document",
94 | "document_name": "Clinical Procedure Template",
95 | "modified": "2024-06-07 18:07:44.033162",
96 | "module": "Healthcare",
97 | "name": "Clinical Procedure Template",
98 | "other_effort": 0.0,
99 | "process_name": "Consultation"
100 | },
101 | {
102 | "configuration_effort": 2.0,
103 | "docstatus": 0,
104 | "doctype": "Estimation Document",
105 | "document_name": "Therapy Plan",
106 | "modified": "2024-06-07 18:08:36.729358",
107 | "module": "Healthcare",
108 | "name": "Therapy Plan",
109 | "other_effort": 1.0,
110 | "process_name": "Rehabilitation"
111 | },
112 | {
113 | "configuration_effort": 2.0,
114 | "docstatus": 0,
115 | "doctype": "Estimation Document",
116 | "document_name": "Nursing Checklist Template",
117 | "modified": "2024-06-07 18:14:16.062317",
118 | "module": "Healthcare",
119 | "name": "Nursing Checklist Template",
120 | "other_effort": 1.0,
121 | "process_name": "Inpatient"
122 | },
123 | {
124 | "configuration_effort": 1.0,
125 | "docstatus": 0,
126 | "doctype": "Estimation Document",
127 | "document_name": "Medical Department",
128 | "modified": "2024-06-07 18:15:10.904041",
129 | "module": "Healthcare",
130 | "name": "Medical Department",
131 | "other_effort": 1.0,
132 | "process_name": "Consultation"
133 | },
134 | {
135 | "configuration_effort": 3.0,
136 | "docstatus": 0,
137 | "doctype": "Estimation Document",
138 | "document_name": "Observation template",
139 | "modified": "2024-06-07 18:15:36.224502",
140 | "module": "Healthcare",
141 | "name": "Observation template",
142 | "other_effort": 1.0,
143 | "process_name": "Laboratory"
144 | },
145 | {
146 | "configuration_effort": 10.0,
147 | "docstatus": 0,
148 | "doctype": "Estimation Document",
149 | "document_name": "Topic",
150 | "modified": "2024-06-07 18:22:42.093319",
151 | "module": "Education",
152 | "name": "Topic",
153 | "other_effort": 1.0,
154 | "process_name": "Programs and Courses"
155 | },
156 | {
157 | "configuration_effort": 5.0,
158 | "docstatus": 0,
159 | "doctype": "Estimation Document",
160 | "document_name": "Course",
161 | "modified": "2024-06-07 18:22:57.719479",
162 | "module": "Education",
163 | "name": "Course",
164 | "other_effort": 1.0,
165 | "process_name": "Programs and Courses"
166 | },
167 | {
168 | "configuration_effort": 2.0,
169 | "docstatus": 0,
170 | "doctype": "Estimation Document",
171 | "document_name": "Program",
172 | "modified": "2024-06-07 18:23:06.112980",
173 | "module": "Education",
174 | "name": "Program",
175 | "other_effort": 1.0,
176 | "process_name": "Programs and Courses"
177 | },
178 | {
179 | "configuration_effort": 4.0,
180 | "docstatus": 0,
181 | "doctype": "Estimation Document",
182 | "document_name": "Instructor",
183 | "modified": "2024-06-07 18:23:44.054685",
184 | "module": "Education",
185 | "name": "Instructor",
186 | "other_effort": 1.0,
187 | "process_name": "Topics and Instructors"
188 | },
189 | {
190 | "configuration_effort": 2.0,
191 | "docstatus": 0,
192 | "doctype": "Estimation Document",
193 | "document_name": "Room",
194 | "modified": "2024-06-07 18:24:52.256481",
195 | "module": "Education",
196 | "name": "Room",
197 | "other_effort": 1.0,
198 | "process_name": "Rooms and Academic Year"
199 | },
200 | {
201 | "configuration_effort": 5.0,
202 | "docstatus": 0,
203 | "doctype": "Estimation Document",
204 | "document_name": "Fee Structure",
205 | "modified": "2024-06-07 18:25:47.804287",
206 | "module": "Education",
207 | "name": "Fee Structure",
208 | "other_effort": 1.0,
209 | "process_name": "Fees Management"
210 | },
211 | {
212 | "configuration_effort": 2.0,
213 | "docstatus": 0,
214 | "doctype": "Estimation Document",
215 | "document_name": "Fee Category",
216 | "modified": "2024-06-07 18:26:00.871823",
217 | "module": "Education",
218 | "name": "Fee Category",
219 | "other_effort": 1.0,
220 | "process_name": "Fees Management"
221 | },
222 | {
223 | "configuration_effort": 2.0,
224 | "docstatus": 0,
225 | "doctype": "Estimation Document",
226 | "document_name": "Fee Schedule",
227 | "modified": "2024-06-07 18:26:09.733748",
228 | "module": "Education",
229 | "name": "Fee Schedule",
230 | "other_effort": 1.0,
231 | "process_name": "Fees Management"
232 | },
233 | {
234 | "configuration_effort": 5.0,
235 | "docstatus": 0,
236 | "doctype": "Estimation Document",
237 | "document_name": "Assessment Plan",
238 | "modified": "2024-06-07 18:26:43.430944",
239 | "module": "Education",
240 | "name": "Assessment Plan",
241 | "other_effort": 1.0,
242 | "process_name": "Assessment"
243 | },
244 | {
245 | "configuration_effort": 1.0,
246 | "docstatus": 0,
247 | "doctype": "Estimation Document",
248 | "document_name": "Academic Term",
249 | "modified": "2024-06-07 18:27:23.155697",
250 | "module": "Education",
251 | "name": "Academic Term",
252 | "other_effort": 1.0,
253 | "process_name": "Rooms and Academic Year"
254 | },
255 | {
256 | "configuration_effort": 1.0,
257 | "docstatus": 0,
258 | "doctype": "Estimation Document",
259 | "document_name": "Academic Year",
260 | "modified": "2024-06-07 18:27:29.705284",
261 | "module": "Education",
262 | "name": "Academic Year",
263 | "other_effort": 1.0,
264 | "process_name": "Rooms and Academic Year"
265 | },
266 | {
267 | "configuration_effort": 10.0,
268 | "docstatus": 0,
269 | "doctype": "Estimation Document",
270 | "document_name": "Student",
271 | "modified": "2024-06-07 18:28:09.619593",
272 | "module": "Education",
273 | "name": "Student",
274 | "other_effort": 1.0,
275 | "process_name": "Students Migrartion"
276 | },
277 | {
278 | "configuration_effort": 5.0,
279 | "docstatus": 0,
280 | "doctype": "Estimation Document",
281 | "document_name": "Guardian",
282 | "modified": "2024-06-07 18:28:38.921126",
283 | "module": "Education",
284 | "name": "Guardian",
285 | "other_effort": 1.0,
286 | "process_name": "Students Migrartion"
287 | },
288 | {
289 | "configuration_effort": 5.0,
290 | "docstatus": 0,
291 | "doctype": "Estimation Document",
292 | "document_name": "Student Group",
293 | "modified": "2024-06-07 18:29:02.147076",
294 | "module": "Education",
295 | "name": "Student Group",
296 | "other_effort": 1.0,
297 | "process_name": "Students Migrartion"
298 | },
299 | {
300 | "configuration_effort": 1.0,
301 | "docstatus": 0,
302 | "doctype": "Estimation Document",
303 | "document_name": "Education Setting",
304 | "modified": "2024-06-07 18:29:45.677660",
305 | "module": "Education",
306 | "name": "Education Setting",
307 | "other_effort": 1.0,
308 | "process_name": "Programs and Courses"
309 | },
310 | {
311 | "configuration_effort": 0.5,
312 | "docstatus": 0,
313 | "doctype": "Estimation Document",
314 | "document_name": "Patient History",
315 | "modified": "2024-05-15 14:47:27.727513",
316 | "module": "Utilities",
317 | "name": "Patient History",
318 | "other_effort": 0.0,
319 | "process_name": "Healthcare"
320 | },
321 | {
322 | "configuration_effort": 3.0,
323 | "docstatus": 0,
324 | "doctype": "Estimation Document",
325 | "document_name": "Rehabilitation and Physiotherapy",
326 | "modified": "2024-05-15 14:47:27.741603",
327 | "module": "Utilities",
328 | "name": "Rehabilitation and Physiotherapy",
329 | "other_effort": 0.0,
330 | "process_name": "Healthcare"
331 | },
332 | {
333 | "configuration_effort": 2.5,
334 | "docstatus": 0,
335 | "doctype": "Estimation Document",
336 | "document_name": "Laboratory Setup",
337 | "modified": "2024-05-15 14:47:27.752456",
338 | "module": "Utilities",
339 | "name": "Laboratory Setup",
340 | "other_effort": 0.0,
341 | "process_name": "Healthcare"
342 | },
343 | {
344 | "configuration_effort": 1.5,
345 | "docstatus": 0,
346 | "doctype": "Estimation Document",
347 | "document_name": "Medical Coding",
348 | "modified": "2024-05-15 14:47:27.761515",
349 | "module": "Utilities",
350 | "name": "Medical Coding",
351 | "other_effort": 0.0,
352 | "process_name": "Healthcare"
353 | },
354 | {
355 | "configuration_effort": 4.0,
356 | "docstatus": 0,
357 | "doctype": "Estimation Document",
358 | "document_name": "Serivce Unit Setup",
359 | "modified": "2024-05-15 14:47:27.769866",
360 | "module": "Utilities",
361 | "name": "Serivce Unit Setup",
362 | "other_effort": 0.0,
363 | "process_name": "Healthcare"
364 | },
365 | {
366 | "configuration_effort": 2.0,
367 | "docstatus": 0,
368 | "doctype": "Estimation Document",
369 | "document_name": "Doctor Schedule Setup",
370 | "modified": "2024-05-15 14:47:27.776294",
371 | "module": "Utilities",
372 | "name": "Doctor Schedule Setup",
373 | "other_effort": 0.0,
374 | "process_name": "Healthcare"
375 | },
376 | {
377 | "configuration_effort": 2.0,
378 | "docstatus": 0,
379 | "doctype": "Estimation Document",
380 | "document_name": "Patient Onboarding",
381 | "modified": "2024-05-15 14:47:27.784403",
382 | "module": "Utilities",
383 | "name": "Patient Onboarding",
384 | "other_effort": 0.0,
385 | "process_name": "Healthcare"
386 | },
387 | {
388 | "configuration_effort": 2.5,
389 | "docstatus": 0,
390 | "doctype": "Estimation Document",
391 | "document_name": "Doctor Onboarding",
392 | "modified": "2024-05-15 14:47:27.791234",
393 | "module": "Utilities",
394 | "name": "Doctor Onboarding",
395 | "other_effort": 0.0,
396 | "process_name": "Healthcare"
397 | },
398 | {
399 | "configuration_effort": 3.0,
400 | "docstatus": 0,
401 | "doctype": "Estimation Document",
402 | "document_name": "Stock Entry (Send to Subcontractor)",
403 | "modified": "2024-05-15 14:47:27.801314",
404 | "module": "Manufacturing",
405 | "name": "Stock Entry (Send to Subcontractor)",
406 | "other_effort": 0.0,
407 | "process_name": "Subcontracting"
408 | },
409 | {
410 | "configuration_effort": 1.0,
411 | "docstatus": 0,
412 | "doctype": "Estimation Document",
413 | "document_name": "Supplier Warehouse",
414 | "modified": "2024-05-15 14:47:27.806464",
415 | "module": "Manufacturing",
416 | "name": "Supplier Warehouse",
417 | "other_effort": 0.0,
418 | "process_name": "Subcontracting"
419 | },
420 | {
421 | "configuration_effort": 5.0,
422 | "docstatus": 0,
423 | "doctype": "Estimation Document",
424 | "document_name": "Stock Entries",
425 | "modified": "2024-05-15 14:47:27.811026",
426 | "module": "Manufacturing",
427 | "name": "Stock Entries",
428 | "other_effort": 0.0,
429 | "process_name": "Manufacturing Cycle"
430 | },
431 | {
432 | "configuration_effort": 5.0,
433 | "docstatus": 0,
434 | "doctype": "Estimation Document",
435 | "document_name": "Job Card",
436 | "modified": "2024-05-15 14:47:27.815879",
437 | "module": "Manufacturing",
438 | "name": "Job Card",
439 | "other_effort": 0.0,
440 | "process_name": "Manufacturing Cycle"
441 | },
442 | {
443 | "configuration_effort": 5.0,
444 | "docstatus": 0,
445 | "doctype": "Estimation Document",
446 | "document_name": "Work Order",
447 | "modified": "2024-05-15 14:47:27.820989",
448 | "module": "Manufacturing",
449 | "name": "Work Order",
450 | "other_effort": 0.0,
451 | "process_name": "Manufacturing Cycle"
452 | },
453 | {
454 | "configuration_effort": 2.0,
455 | "docstatus": 0,
456 | "doctype": "Estimation Document",
457 | "document_name": "Production Plan",
458 | "modified": "2024-05-15 14:47:27.825812",
459 | "module": "Manufacturing",
460 | "name": "Production Plan",
461 | "other_effort": 2.0,
462 | "process_name": "Manufacturing Cycle"
463 | },
464 | {
465 | "configuration_effort": 1.0,
466 | "docstatus": 0,
467 | "doctype": "Estimation Document",
468 | "document_name": "Routing",
469 | "modified": "2024-05-15 14:47:27.831136",
470 | "module": "Manufacturing",
471 | "name": "Routing",
472 | "other_effort": 0.0,
473 | "process_name": "Master Setup"
474 | },
475 | {
476 | "configuration_effort": 1.0,
477 | "docstatus": 0,
478 | "doctype": "Estimation Document",
479 | "document_name": "Operations",
480 | "modified": "2024-05-15 14:47:27.836336",
481 | "module": "Manufacturing",
482 | "name": "Operations",
483 | "other_effort": 1.0,
484 | "process_name": "Master Setup"
485 | },
486 | {
487 | "configuration_effort": 1.0,
488 | "docstatus": 0,
489 | "doctype": "Estimation Document",
490 | "document_name": "Workstation",
491 | "modified": "2024-05-15 14:47:27.842362",
492 | "module": "Manufacturing",
493 | "name": "Workstation",
494 | "other_effort": 0.0,
495 | "process_name": "Master Setup"
496 | },
497 | {
498 | "configuration_effort": 1.0,
499 | "docstatus": 0,
500 | "doctype": "Estimation Document",
501 | "document_name": "Warehouse",
502 | "modified": "2024-05-15 14:47:27.847025",
503 | "module": "Manufacturing",
504 | "name": "Warehouse",
505 | "other_effort": 0.0,
506 | "process_name": "Master Setup"
507 | },
508 | {
509 | "configuration_effort": 6.0,
510 | "docstatus": 0,
511 | "doctype": "Estimation Document",
512 | "document_name": "Item (RM, FG)",
513 | "modified": "2024-05-15 14:47:27.852367",
514 | "module": "Manufacturing",
515 | "name": "Item (RM, FG)",
516 | "other_effort": 2.0,
517 | "process_name": "Master Setup"
518 | },
519 | {
520 | "configuration_effort": 6.0,
521 | "docstatus": 0,
522 | "doctype": "Estimation Document",
523 | "document_name": "BOM",
524 | "modified": "2024-05-15 14:47:27.857102",
525 | "module": "Manufacturing",
526 | "name": "BOM",
527 | "other_effort": 2.0,
528 | "process_name": "Defining Bill of Materials"
529 | },
530 | {
531 | "configuration_effort": 2.0,
532 | "docstatus": 0,
533 | "doctype": "Estimation Document",
534 | "document_name": "Timesheet",
535 | "modified": "2024-05-15 14:47:27.861945",
536 | "module": "Projects",
537 | "name": "Timesheet",
538 | "other_effort": 0.0,
539 | "process_name": "Timesheet Setup"
540 | },
541 | {
542 | "configuration_effort": 1.0,
543 | "docstatus": 0,
544 | "doctype": "Estimation Document",
545 | "document_name": "Activity Cost",
546 | "modified": "2024-05-15 14:47:27.867943",
547 | "module": "Projects",
548 | "name": "Activity Cost",
549 | "other_effort": 0.0,
550 | "process_name": "Activty Setup"
551 | },
552 | {
553 | "configuration_effort": 1.0,
554 | "docstatus": 0,
555 | "doctype": "Estimation Document",
556 | "document_name": "Activity Type",
557 | "modified": "2024-05-15 14:47:27.872817",
558 | "module": "Projects",
559 | "name": "Activity Type",
560 | "other_effort": 0.0,
561 | "process_name": "Activty Setup"
562 | },
563 | {
564 | "configuration_effort": 1.0,
565 | "docstatus": 0,
566 | "doctype": "Estimation Document",
567 | "document_name": "Newsletter",
568 | "modified": "2024-05-15 14:47:27.879123",
569 | "module": "CRM",
570 | "name": "Newsletter",
571 | "other_effort": 1.0,
572 | "process_name": "Newsletter Setup"
573 | },
574 | {
575 | "configuration_effort": 1.0,
576 | "docstatus": 0,
577 | "doctype": "Estimation Document",
578 | "document_name": "Email Campaign",
579 | "modified": "2024-05-15 14:47:27.884869",
580 | "module": "CRM",
581 | "name": "Email Campaign",
582 | "other_effort": 1.0,
583 | "process_name": "Email Campaign Setup"
584 | },
585 | {
586 | "configuration_effort": 2.0,
587 | "docstatus": 0,
588 | "doctype": "Estimation Document",
589 | "document_name": "Campaign",
590 | "modified": "2024-05-15 14:47:27.890014",
591 | "module": "CRM",
592 | "name": "Campaign",
593 | "other_effort": 1.0,
594 | "process_name": "Email Campaign Setup"
595 | },
596 | {
597 | "configuration_effort": 1.0,
598 | "docstatus": 0,
599 | "doctype": "Estimation Document",
600 | "document_name": "Quotation",
601 | "modified": "2024-05-15 14:47:27.894951",
602 | "module": "CRM",
603 | "name": "Quotation",
604 | "other_effort": 1.0,
605 | "process_name": "Quotation Setup"
606 | },
607 | {
608 | "configuration_effort": 1.0,
609 | "docstatus": 0,
610 | "doctype": "Estimation Document",
611 | "document_name": "Opportunity",
612 | "modified": "2024-05-15 14:47:27.899665",
613 | "module": "CRM",
614 | "name": "Opportunity",
615 | "other_effort": 1.0,
616 | "process_name": "Opportunity Setup"
617 | },
618 | {
619 | "configuration_effort": 2.0,
620 | "docstatus": 0,
621 | "doctype": "Estimation Document",
622 | "document_name": "Lead",
623 | "modified": "2024-05-15 14:47:27.904332",
624 | "module": "CRM",
625 | "name": "Lead",
626 | "other_effort": 0.0,
627 | "process_name": "Lead Setup"
628 | },
629 | {
630 | "configuration_effort": 1.0,
631 | "docstatus": 0,
632 | "doctype": "Estimation Document",
633 | "document_name": "Lead Source",
634 | "modified": "2024-05-15 14:47:27.909099",
635 | "module": "CRM",
636 | "name": "Lead Source",
637 | "other_effort": 1.0,
638 | "process_name": "Lead Setup"
639 | },
640 | {
641 | "configuration_effort": 1.0,
642 | "docstatus": 0,
643 | "doctype": "Estimation Document",
644 | "document_name": "Stock Settings",
645 | "modified": "2024-05-15 14:47:27.950260",
646 | "module": "Stock",
647 | "name": "Stock Settings",
648 | "other_effort": 1.0,
649 | "process_name": "Stock Settings"
650 | },
651 | {
652 | "configuration_effort": 2.0,
653 | "docstatus": 0,
654 | "doctype": "Estimation Document",
655 | "document_name": "Quality Inspection Template",
656 | "modified": "2024-05-15 14:47:27.957248",
657 | "module": "Stock",
658 | "name": "Quality Inspection Template",
659 | "other_effort": 1.0,
660 | "process_name": "Setting up Quality Inspection"
661 | },
662 | {
663 | "configuration_effort": 3.0,
664 | "docstatus": 0,
665 | "doctype": "Estimation Document",
666 | "document_name": "Perpetual Inventory",
667 | "modified": "2024-05-15 14:47:27.961547",
668 | "module": "Stock",
669 | "name": "Perpetual Inventory",
670 | "other_effort": 1.0,
671 | "process_name": "Advanced"
672 | },
673 | {
674 | "configuration_effort": 2.0,
675 | "docstatus": 0,
676 | "doctype": "Estimation Document",
677 | "document_name": "Projected Quantity",
678 | "modified": "2024-05-15 14:47:27.967915",
679 | "module": "Stock",
680 | "name": "Projected Quantity",
681 | "other_effort": 1.0,
682 | "process_name": "Advanced"
683 | },
684 | {
685 | "configuration_effort": 2.0,
686 | "docstatus": 0,
687 | "doctype": "Estimation Document",
688 | "document_name": "Delivery Trip",
689 | "modified": "2024-05-15 14:47:27.972455",
690 | "module": "Stock",
691 | "name": "Delivery Trip",
692 | "other_effort": 1.0,
693 | "process_name": "Advanced"
694 | },
695 | {
696 | "configuration_effort": 3.0,
697 | "docstatus": 0,
698 | "doctype": "Estimation Document",
699 | "document_name": "Landed Cost Voucher",
700 | "modified": "2024-05-15 14:47:27.976609",
701 | "module": "Stock",
702 | "name": "Landed Cost Voucher",
703 | "other_effort": 1.0,
704 | "process_name": "Stock Transactions"
705 | },
706 | {
707 | "configuration_effort": 1.0,
708 | "docstatus": 0,
709 | "doctype": "Estimation Document",
710 | "document_name": "Retaining Sample Stock",
711 | "modified": "2024-05-15 14:47:27.980380",
712 | "module": "Stock",
713 | "name": "Retaining Sample Stock",
714 | "other_effort": 1.0,
715 | "process_name": "Stock Transactions"
716 | },
717 | {
718 | "configuration_effort": 1.0,
719 | "docstatus": 0,
720 | "doctype": "Estimation Document",
721 | "document_name": "Package Slip",
722 | "modified": "2024-05-15 14:47:27.985272",
723 | "module": "Stock",
724 | "name": "Package Slip",
725 | "other_effort": 1.0,
726 | "process_name": "Stock Transactions"
727 | },
728 | {
729 | "configuration_effort": 3.0,
730 | "docstatus": 0,
731 | "doctype": "Estimation Document",
732 | "document_name": "Stock entry",
733 | "modified": "2024-05-15 14:47:27.989995",
734 | "module": "Stock",
735 | "name": "Stock entry",
736 | "other_effort": 1.0,
737 | "process_name": "Stock Transactions"
738 | },
739 | {
740 | "configuration_effort": 3.0,
741 | "docstatus": 0,
742 | "doctype": "Estimation Document",
743 | "document_name": "Delivery Note",
744 | "modified": "2024-05-15 14:47:27.997730",
745 | "module": "Stock",
746 | "name": "Delivery Note",
747 | "other_effort": 1.0,
748 | "process_name": "Stock Transactions"
749 | },
750 | {
751 | "configuration_effort": 3.0,
752 | "docstatus": 0,
753 | "doctype": "Estimation Document",
754 | "document_name": "Purchase Receipt",
755 | "modified": "2024-05-15 14:47:28.003898",
756 | "module": "Stock",
757 | "name": "Purchase Receipt",
758 | "other_effort": 1.0,
759 | "process_name": "Stock Transactions"
760 | },
761 | {
762 | "configuration_effort": 2.0,
763 | "docstatus": 0,
764 | "doctype": "Estimation Document",
765 | "document_name": "Material Request",
766 | "modified": "2024-05-15 14:47:28.008874",
767 | "module": "Stock",
768 | "name": "Material Request",
769 | "other_effort": 1.0,
770 | "process_name": "Stock Transactions"
771 | },
772 | {
773 | "configuration_effort": 1.0,
774 | "docstatus": 0,
775 | "doctype": "Estimation Document",
776 | "document_name": "Manufacturer",
777 | "modified": "2024-05-15 14:47:28.014999",
778 | "module": "Stock",
779 | "name": "Manufacturer",
780 | "other_effort": 1.0,
781 | "process_name": "Item Setup"
782 | },
783 | {
784 | "configuration_effort": 1.0,
785 | "docstatus": 0,
786 | "doctype": "Estimation Document",
787 | "document_name": "Reorder level",
788 | "modified": "2024-05-15 14:47:28.019057",
789 | "module": "Stock",
790 | "name": "Reorder level",
791 | "other_effort": 0.0,
792 | "process_name": "Item Setup"
793 | },
794 | {
795 | "configuration_effort": 0.5,
796 | "docstatus": 0,
797 | "doctype": "Estimation Document",
798 | "document_name": "UOM",
799 | "modified": "2024-05-15 14:47:28.022723",
800 | "module": "Stock",
801 | "name": "UOM",
802 | "other_effort": 1.0,
803 | "process_name": "Item Setup"
804 | },
805 | {
806 | "configuration_effort": 2.0,
807 | "docstatus": 0,
808 | "doctype": "Estimation Document",
809 | "document_name": "Item Group",
810 | "modified": "2024-05-15 14:47:28.026529",
811 | "module": "Stock",
812 | "name": "Item Group",
813 | "other_effort": 1.0,
814 | "process_name": "Item Setup"
815 | },
816 | {
817 | "configuration_effort": 0.0,
818 | "docstatus": 0,
819 | "doctype": "Estimation Document",
820 | "document_name": "Price Rule",
821 | "modified": "2024-05-15 14:47:28.030170",
822 | "module": "Stock",
823 | "name": "Price Rule",
824 | "other_effort": 0.0,
825 | "process_name": "Item Setup"
826 | },
827 | {
828 | "configuration_effort": 0.0,
829 | "docstatus": 0,
830 | "doctype": "Estimation Document",
831 | "document_name": "Price List",
832 | "modified": "2024-05-15 14:47:28.034601",
833 | "module": "Stock",
834 | "name": "Price List",
835 | "other_effort": 0.0,
836 | "process_name": "Item Setup"
837 | },
838 | {
839 | "configuration_effort": 3.0,
840 | "docstatus": 0,
841 | "doctype": "Estimation Document",
842 | "document_name": "Item price",
843 | "modified": "2024-05-15 14:47:28.038595",
844 | "module": "Stock",
845 | "name": "Item price",
846 | "other_effort": 5.0,
847 | "process_name": "Item Setup"
848 | },
849 | {
850 | "configuration_effort": 2.0,
851 | "docstatus": 0,
852 | "doctype": "Estimation Document",
853 | "document_name": "Item",
854 | "modified": "2024-05-15 14:47:28.042326",
855 | "module": "Stock",
856 | "name": "Item",
857 | "other_effort": 1.0,
858 | "process_name": "Serial Numbers"
859 | },
860 | {
861 | "configuration_effort": 1.0,
862 | "docstatus": 0,
863 | "doctype": "Estimation Document",
864 | "document_name": "Attributes",
865 | "modified": "2024-05-15 14:47:28.046300",
866 | "module": "Stock",
867 | "name": "Attributes",
868 | "other_effort": 1.0,
869 | "process_name": "Item Variants"
870 | },
871 | {
872 | "configuration_effort": 1.0,
873 | "docstatus": 0,
874 | "doctype": "Estimation Document",
875 | "document_name": "Variants",
876 | "modified": "2024-05-15 14:47:28.051104",
877 | "module": "Stock",
878 | "name": "Variants",
879 | "other_effort": 1.0,
880 | "process_name": "Item Variants"
881 | },
882 | {
883 | "configuration_effort": 4.0,
884 | "docstatus": 0,
885 | "doctype": "Estimation Document",
886 | "document_name": "Stock Reconciliation",
887 | "modified": "2024-05-15 14:47:28.055311",
888 | "module": "Stock",
889 | "name": "Stock Reconciliation",
890 | "other_effort": 1.0,
891 | "process_name": "Opening Stock"
892 | },
893 | {
894 | "configuration_effort": 1.0,
895 | "docstatus": 0,
896 | "doctype": "Estimation Document",
897 | "document_name": "Buying Settings",
898 | "modified": "2024-05-15 14:47:28.059488",
899 | "module": "Buying",
900 | "name": "Buying Settings",
901 | "other_effort": 1.0,
902 | "process_name": "Buying Settings"
903 | },
904 | {
905 | "configuration_effort": 4.0,
906 | "docstatus": 0,
907 | "doctype": "Estimation Document",
908 | "document_name": "Purchase Orders / Receipts / Invoices",
909 | "modified": "2024-05-15 14:47:28.064784",
910 | "module": "Buying",
911 | "name": "Purchase Orders / Receipts / Invoices",
912 | "other_effort": 2.0,
913 | "process_name": "Buying Cycle Mapping"
914 | },
915 | {
916 | "configuration_effort": 1.0,
917 | "docstatus": 0,
918 | "doctype": "Estimation Document",
919 | "document_name": "Supplier Contact",
920 | "modified": "2024-05-15 14:47:28.070162",
921 | "module": "Buying",
922 | "name": "Supplier Contact",
923 | "other_effort": 0.25,
924 | "process_name": "Supplier Setup"
925 | },
926 | {
927 | "configuration_effort": 2.0,
928 | "docstatus": 0,
929 | "doctype": "Estimation Document",
930 | "document_name": "Supplier Address",
931 | "modified": "2024-05-15 14:47:28.075191",
932 | "module": "Buying",
933 | "name": "Supplier Address",
934 | "other_effort": 0.25,
935 | "process_name": "Supplier Setup"
936 | },
937 | {
938 | "configuration_effort": 4.0,
939 | "docstatus": 0,
940 | "doctype": "Estimation Document",
941 | "document_name": "Supplier",
942 | "modified": "2024-05-15 14:47:28.079594",
943 | "module": "Buying",
944 | "name": "Supplier",
945 | "other_effort": 0.25,
946 | "process_name": "Supplier Setup"
947 | },
948 | {
949 | "configuration_effort": 1.0,
950 | "docstatus": 0,
951 | "doctype": "Estimation Document",
952 | "document_name": "Supplier Group",
953 | "modified": "2024-05-15 14:47:28.084979",
954 | "module": "Buying",
955 | "name": "Supplier Group",
956 | "other_effort": 0.25,
957 | "process_name": "Supplier Setup"
958 | },
959 | {
960 | "configuration_effort": 0.5,
961 | "docstatus": 0,
962 | "doctype": "Estimation Document",
963 | "document_name": "Healthcare Settings",
964 | "modified": "2024-05-16 11:42:04.351845",
965 | "module": "Utilities",
966 | "name": "Healthcare Settings",
967 | "other_effort": 0.0,
968 | "process_name": "Healthcare"
969 | },
970 | {
971 | "configuration_effort": 1.0,
972 | "docstatus": 0,
973 | "doctype": "Estimation Document",
974 | "document_name": "Selling Settings",
975 | "modified": "2024-05-15 14:47:27.914585",
976 | "module": "Selling",
977 | "name": "Selling Settings",
978 | "other_effort": 1.0,
979 | "process_name": "Selling Settings"
980 | },
981 | {
982 | "configuration_effort": 3.0,
983 | "docstatus": 0,
984 | "doctype": "Estimation Document",
985 | "document_name": "Selling Cycle Mapping",
986 | "modified": "2024-05-15 14:47:27.919195",
987 | "module": "Selling",
988 | "name": "Selling Cycle Mapping",
989 | "other_effort": 2.0,
990 | "process_name": "Selling Cycle Mapping"
991 | },
992 | {
993 | "configuration_effort": 2.0,
994 | "docstatus": 0,
995 | "doctype": "Estimation Document",
996 | "document_name": "Sales Person",
997 | "modified": "2024-05-15 14:47:27.923595",
998 | "module": "Selling",
999 | "name": "Sales Person",
1000 | "other_effort": 0.0,
1001 | "process_name": "Sales Person Setup"
1002 | },
1003 | {
1004 | "configuration_effort": 2.0,
1005 | "docstatus": 0,
1006 | "doctype": "Estimation Document",
1007 | "document_name": "Sales Partner",
1008 | "modified": "2024-05-15 14:47:27.927985",
1009 | "module": "Selling",
1010 | "name": "Sales Partner",
1011 | "other_effort": 1.0,
1012 | "process_name": "Sales Partner Setup"
1013 | },
1014 | {
1015 | "configuration_effort": 2.0,
1016 | "docstatus": 0,
1017 | "doctype": "Estimation Document",
1018 | "document_name": "Customer Contact",
1019 | "modified": "2024-05-15 14:47:27.932881",
1020 | "module": "Selling",
1021 | "name": "Customer Contact",
1022 | "other_effort": 0.0,
1023 | "process_name": "Customer Setup"
1024 | },
1025 | {
1026 | "configuration_effort": 2.0,
1027 | "docstatus": 0,
1028 | "doctype": "Estimation Document",
1029 | "document_name": "Customer Address",
1030 | "modified": "2024-05-15 14:47:27.937166",
1031 | "module": "Selling",
1032 | "name": "Customer Address",
1033 | "other_effort": 0.0,
1034 | "process_name": "Customer Setup"
1035 | },
1036 | {
1037 | "configuration_effort": 2.0,
1038 | "docstatus": 0,
1039 | "doctype": "Estimation Document",
1040 | "document_name": "Customer",
1041 | "modified": "2024-05-15 14:47:27.941628",
1042 | "module": "Selling",
1043 | "name": "Customer",
1044 | "other_effort": 0.0,
1045 | "process_name": "Customer Setup"
1046 | },
1047 | {
1048 | "configuration_effort": 1.0,
1049 | "docstatus": 0,
1050 | "doctype": "Estimation Document",
1051 | "document_name": "Customer Group",
1052 | "modified": "2024-05-15 14:47:27.945961",
1053 | "module": "Selling",
1054 | "name": "Customer Group",
1055 | "other_effort": 1.0,
1056 | "process_name": "Customer Setup"
1057 | },
1058 | {
1059 | "configuration_effort": 2.0,
1060 | "docstatus": 0,
1061 | "doctype": "Estimation Document",
1062 | "document_name": "Salary Structure Assignment",
1063 | "modified": "2024-07-10 16:05:19.738009",
1064 | "module": "Payroll",
1065 | "name": "Salary Structure Assignment",
1066 | "other_effort": 0.5,
1067 | "process_name": "Payroll"
1068 | },
1069 | {
1070 | "configuration_effort": 1.0,
1071 | "docstatus": 0,
1072 | "doctype": "Estimation Document",
1073 | "document_name": "Income Tax Slab",
1074 | "modified": "2024-07-10 16:05:13.434485",
1075 | "module": "Payroll",
1076 | "name": "Income Tax Slab",
1077 | "other_effort": 0.5,
1078 | "process_name": "Payroll"
1079 | },
1080 | {
1081 | "configuration_effort": 0.5,
1082 | "docstatus": 0,
1083 | "doctype": "Estimation Document",
1084 | "document_name": "Payroll Period",
1085 | "modified": "2024-07-10 16:05:10.440421",
1086 | "module": "Payroll",
1087 | "name": "Payroll Period",
1088 | "other_effort": 0.5,
1089 | "process_name": "Payroll"
1090 | },
1091 | {
1092 | "configuration_effort": 5.0,
1093 | "docstatus": 0,
1094 | "doctype": "Estimation Document",
1095 | "document_name": "Salary Structure",
1096 | "modified": "2024-07-10 16:05:05.098093",
1097 | "module": "Payroll",
1098 | "name": "Salary Structure",
1099 | "other_effort": 1.0,
1100 | "process_name": "Payroll"
1101 | },
1102 | {
1103 | "configuration_effort": 1.0,
1104 | "docstatus": 0,
1105 | "doctype": "Estimation Document",
1106 | "document_name": "Salary Component",
1107 | "modified": "2024-07-10 16:04:31.913632",
1108 | "module": "Payroll",
1109 | "name": "Salary Component",
1110 | "other_effort": 0.5,
1111 | "process_name": "Payroll"
1112 | },
1113 | {
1114 | "configuration_effort": 1.0,
1115 | "docstatus": 0,
1116 | "doctype": "Estimation Document",
1117 | "document_name": "HR Settings",
1118 | "modified": "2024-05-15 14:47:28.134124",
1119 | "module": "HR",
1120 | "name": "HR Settings",
1121 | "other_effort": 1.0,
1122 | "process_name": "HR Settings"
1123 | },
1124 | {
1125 | "configuration_effort": 1.0,
1126 | "docstatus": 0,
1127 | "doctype": "Estimation Document",
1128 | "document_name": "Employe Separation Template",
1129 | "modified": "2024-05-15 14:47:28.140590",
1130 | "module": "HR",
1131 | "name": "Employe Separation Template",
1132 | "other_effort": 0.5,
1133 | "process_name": "Employee Life Cycle"
1134 | },
1135 | {
1136 | "configuration_effort": 1.0,
1137 | "docstatus": 0,
1138 | "doctype": "Estimation Document",
1139 | "document_name": "Employe Onboarding Template",
1140 | "modified": "2024-05-15 14:47:28.147665",
1141 | "module": "HR",
1142 | "name": "Employe Onboarding Template",
1143 | "other_effort": 0.5,
1144 | "process_name": "Employee Life Cycle"
1145 | },
1146 | {
1147 | "configuration_effort": 1.0,
1148 | "docstatus": 0,
1149 | "doctype": "Estimation Document",
1150 | "document_name": "Job Openings",
1151 | "modified": "2024-05-15 14:47:28.152805",
1152 | "module": "HR",
1153 | "name": "Job Openings",
1154 | "other_effort": 0.0,
1155 | "process_name": "Recruitment"
1156 | },
1157 | {
1158 | "configuration_effort": 1.0,
1159 | "docstatus": 0,
1160 | "doctype": "Estimation Document",
1161 | "document_name": "Staffing Plan",
1162 | "modified": "2024-05-15 14:47:28.157297",
1163 | "module": "HR",
1164 | "name": "Staffing Plan",
1165 | "other_effort": 0.0,
1166 | "process_name": "Recruitment"
1167 | },
1168 | {
1169 | "configuration_effort": 2.0,
1170 | "docstatus": 0,
1171 | "doctype": "Estimation Document",
1172 | "document_name": "Expense Claim + Employee Advance Upload (if any)",
1173 | "modified": "2024-05-15 14:47:28.161256",
1174 | "module": "HR",
1175 | "name": "Expense Claim + Employee Advance Upload (if any)",
1176 | "other_effort": 1.0,
1177 | "process_name": "Expense Claim"
1178 | },
1179 | {
1180 | "configuration_effort": 1.0,
1181 | "docstatus": 0,
1182 | "doctype": "Estimation Document",
1183 | "document_name": "Expense Claim Type",
1184 | "modified": "2024-05-15 14:47:28.165652",
1185 | "module": "HR",
1186 | "name": "Expense Claim Type",
1187 | "other_effort": 1.0,
1188 | "process_name": "Expense Claim"
1189 | },
1190 | {
1191 | "configuration_effort": 2.0,
1192 | "docstatus": 0,
1193 | "doctype": "Estimation Document",
1194 | "document_name": "Attendance Upload",
1195 | "modified": "2024-05-15 14:47:28.170172",
1196 | "module": "HR",
1197 | "name": "Attendance Upload",
1198 | "other_effort": 1.0,
1199 | "process_name": "Attendance"
1200 | },
1201 | {
1202 | "configuration_effort": 8.0,
1203 | "docstatus": 0,
1204 | "doctype": "Estimation Document",
1205 | "document_name": "Biometric Attendance",
1206 | "modified": "2024-05-15 14:47:28.174286",
1207 | "module": "HR",
1208 | "name": "Biometric Attendance",
1209 | "other_effort": 1.0,
1210 | "process_name": "Attendance"
1211 | },
1212 | {
1213 | "configuration_effort": 2.0,
1214 | "docstatus": 0,
1215 | "doctype": "Estimation Document",
1216 | "document_name": "Shift Setup + Auto attendance settings",
1217 | "modified": "2024-05-15 14:47:28.178074",
1218 | "module": "HR",
1219 | "name": "Shift Setup + Auto attendance settings",
1220 | "other_effort": 1.0,
1221 | "process_name": "Attendance"
1222 | },
1223 | {
1224 | "configuration_effort": 3.0,
1225 | "docstatus": 0,
1226 | "doctype": "Estimation Document",
1227 | "document_name": "Leave Allocation",
1228 | "modified": "2024-05-15 14:47:28.181670",
1229 | "module": "HR",
1230 | "name": "Leave Allocation",
1231 | "other_effort": 2.0,
1232 | "process_name": "Leave Setup"
1233 | },
1234 | {
1235 | "configuration_effort": 1.0,
1236 | "docstatus": 0,
1237 | "doctype": "Estimation Document",
1238 | "document_name": "Leave Policy Assignment",
1239 | "modified": "2024-05-15 14:47:28.187708",
1240 | "module": "HR",
1241 | "name": "Leave Policy Assignment",
1242 | "other_effort": 0.5,
1243 | "process_name": "Leave Setup"
1244 | },
1245 | {
1246 | "configuration_effort": 1.0,
1247 | "docstatus": 0,
1248 | "doctype": "Estimation Document",
1249 | "document_name": "Holiday List",
1250 | "modified": "2024-05-15 14:47:28.192490",
1251 | "module": "HR",
1252 | "name": "Holiday List",
1253 | "other_effort": 0.5,
1254 | "process_name": "Leave Setup"
1255 | },
1256 | {
1257 | "configuration_effort": 2.0,
1258 | "docstatus": 0,
1259 | "doctype": "Estimation Document",
1260 | "document_name": "Leave Policy",
1261 | "modified": "2024-05-15 14:47:28.196978",
1262 | "module": "HR",
1263 | "name": "Leave Policy",
1264 | "other_effort": 0.5,
1265 | "process_name": "Leave Setup"
1266 | },
1267 | {
1268 | "configuration_effort": 2.0,
1269 | "docstatus": 0,
1270 | "doctype": "Estimation Document",
1271 | "document_name": "Leave Period + Leave Type",
1272 | "modified": "2024-05-15 14:47:28.201794",
1273 | "module": "HR",
1274 | "name": "Leave Period + Leave Type",
1275 | "other_effort": 0.5,
1276 | "process_name": "Leave Setup"
1277 | },
1278 | {
1279 | "configuration_effort": 5.0,
1280 | "docstatus": 0,
1281 | "doctype": "Estimation Document",
1282 | "document_name": "Employee",
1283 | "modified": "2024-05-15 14:47:28.206054",
1284 | "module": "HR",
1285 | "name": "Employee",
1286 | "other_effort": 1.0,
1287 | "process_name": "Employee Setup"
1288 | },
1289 | {
1290 | "configuration_effort": 1.0,
1291 | "docstatus": 0,
1292 | "doctype": "Estimation Document",
1293 | "document_name": "Designation",
1294 | "modified": "2024-05-15 14:47:28.209881",
1295 | "module": "HR",
1296 | "name": "Designation",
1297 | "other_effort": 1.0,
1298 | "process_name": "Employee Setup"
1299 | },
1300 | {
1301 | "configuration_effort": 1.0,
1302 | "docstatus": 0,
1303 | "doctype": "Estimation Document",
1304 | "document_name": "Department",
1305 | "modified": "2024-05-15 14:47:28.213552",
1306 | "module": "HR",
1307 | "name": "Department",
1308 | "other_effort": 1.0,
1309 | "process_name": "Employee Setup"
1310 | },
1311 | {
1312 | "configuration_effort": 1.5,
1313 | "docstatus": 0,
1314 | "doctype": "Estimation Document",
1315 | "document_name": "Employee Tax Exemption Proof Submission",
1316 | "modified": "2024-05-15 14:47:28.089451",
1317 | "module": "Payroll",
1318 | "name": "Employee Tax Exemption Proof Submission",
1319 | "other_effort": 0.5,
1320 | "process_name": "Tax Declarations"
1321 | },
1322 | {
1323 | "configuration_effort": 3.0,
1324 | "docstatus": 0,
1325 | "doctype": "Estimation Document",
1326 | "document_name": "Employee Tax Exemption Declaration",
1327 | "modified": "2024-05-15 14:47:28.093354",
1328 | "module": "Payroll",
1329 | "name": "Employee Tax Exemption Declaration",
1330 | "other_effort": 0.5,
1331 | "process_name": "Tax Declarations"
1332 | },
1333 | {
1334 | "configuration_effort": 1.0,
1335 | "docstatus": 0,
1336 | "doctype": "Estimation Document",
1337 | "document_name": "Employee Tax Exemption Sub Category",
1338 | "modified": "2024-05-15 14:47:28.098239",
1339 | "module": "Payroll",
1340 | "name": "Employee Tax Exemption Sub Category",
1341 | "other_effort": 0.5,
1342 | "process_name": "Tax Declarations"
1343 | },
1344 | {
1345 | "configuration_effort": 1.0,
1346 | "docstatus": 0,
1347 | "doctype": "Estimation Document",
1348 | "document_name": "Employee Tax Exemption Category",
1349 | "modified": "2024-05-15 14:47:28.102957",
1350 | "module": "Payroll",
1351 | "name": "Employee Tax Exemption Category",
1352 | "other_effort": 0.5,
1353 | "process_name": "Tax Declarations"
1354 | },
1355 | {
1356 | "configuration_effort": 1.0,
1357 | "docstatus": 0,
1358 | "doctype": "Estimation Document",
1359 | "document_name": "Payroll Settings",
1360 | "modified": "2024-05-15 20:02:36.810446",
1361 | "module": "Payroll",
1362 | "name": "Payroll Settings",
1363 | "other_effort": 0.0,
1364 | "process_name": "Payroll Settings"
1365 | },
1366 | {
1367 | "configuration_effort": 1.0,
1368 | "docstatus": 0,
1369 | "doctype": "Estimation Document",
1370 | "document_name": "Accounts Settings",
1371 | "modified": "2024-05-15 14:47:28.219433",
1372 | "module": "Accounts",
1373 | "name": "Accounts Settings",
1374 | "other_effort": 1.0,
1375 | "process_name": "Accounts Settings"
1376 | },
1377 | {
1378 | "configuration_effort": 2.0,
1379 | "docstatus": 0,
1380 | "doctype": "Estimation Document",
1381 | "document_name": "Opening Invoice Creation Tool",
1382 | "modified": "2024-05-15 14:47:28.224444",
1383 | "module": "Accounts",
1384 | "name": "Opening Invoice Creation Tool",
1385 | "other_effort": 1.0,
1386 | "process_name": "Opening Balance of Accounts"
1387 | },
1388 | {
1389 | "configuration_effort": 2.0,
1390 | "docstatus": 0,
1391 | "doctype": "Estimation Document",
1392 | "document_name": "Purchase Taxes and Charges Template",
1393 | "modified": "2024-05-15 14:47:28.229248",
1394 | "module": "Accounts",
1395 | "name": "Purchase Taxes and Charges Template",
1396 | "other_effort": 1.0,
1397 | "process_name": "Taxes Setup"
1398 | },
1399 | {
1400 | "configuration_effort": 2.0,
1401 | "docstatus": 0,
1402 | "doctype": "Estimation Document",
1403 | "document_name": "Sales Taxes and Charges Template",
1404 | "modified": "2024-05-15 14:47:28.233048",
1405 | "module": "Accounts",
1406 | "name": "Sales Taxes and Charges Template",
1407 | "other_effort": 1.0,
1408 | "process_name": "Taxes Setup"
1409 | },
1410 | {
1411 | "configuration_effort": 2.0,
1412 | "docstatus": 0,
1413 | "doctype": "Estimation Document",
1414 | "document_name": "Item Tax Template",
1415 | "modified": "2024-05-15 14:47:28.238825",
1416 | "module": "Accounts",
1417 | "name": "Item Tax Template",
1418 | "other_effort": 0.0,
1419 | "process_name": "Taxes Setup"
1420 | },
1421 | {
1422 | "configuration_effort": 2.0,
1423 | "docstatus": 0,
1424 | "doctype": "Estimation Document",
1425 | "document_name": "Budget",
1426 | "modified": "2024-05-15 14:47:28.243404",
1427 | "module": "Accounts",
1428 | "name": "Budget",
1429 | "other_effort": 1.0,
1430 | "process_name": "Budgeting"
1431 | },
1432 | {
1433 | "configuration_effort": 1.0,
1434 | "docstatus": 0,
1435 | "doctype": "Estimation Document",
1436 | "document_name": "Accounting Dimensions",
1437 | "modified": "2024-05-15 14:47:28.249179",
1438 | "module": "Accounts",
1439 | "name": "Accounting Dimensions",
1440 | "other_effort": 1.0,
1441 | "process_name": "Cost Center"
1442 | },
1443 | {
1444 | "configuration_effort": 1.0,
1445 | "docstatus": 0,
1446 | "doctype": "Estimation Document",
1447 | "document_name": "Chart of Cost Center",
1448 | "modified": "2024-05-15 14:47:28.253794",
1449 | "module": "Accounts",
1450 | "name": "Chart of Cost Center",
1451 | "other_effort": 1.0,
1452 | "process_name": "Cost Center"
1453 | },
1454 | {
1455 | "configuration_effort": 2.0,
1456 | "docstatus": 0,
1457 | "doctype": "Estimation Document",
1458 | "document_name": "Chart of Accounts",
1459 | "modified": "2024-05-15 14:47:28.258122",
1460 | "module": "Accounts",
1461 | "name": "Chart of Accounts",
1462 | "other_effort": 1.0,
1463 | "process_name": "Chart Of Accounts"
1464 | },
1465 | {
1466 | "configuration_effort": 1.0,
1467 | "docstatus": 0,
1468 | "doctype": "Estimation Document",
1469 | "document_name": "Company",
1470 | "modified": "2024-05-15 14:47:28.263238",
1471 | "module": "Accounts",
1472 | "name": "Company",
1473 | "other_effort": 1.0,
1474 | "process_name": "Company Setup"
1475 | }
1476 | ]
--------------------------------------------------------------------------------
/erpnext_price_estimation/fixtures/estimation_process.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "docstatus": 0,
4 | "doctype": "Estimation Process",
5 | "modified": "2024-05-15 14:45:38.051601",
6 | "module": "Setup",
7 | "name": "Workflow Setup",
8 | "process_name": "Workflow Setup",
9 | "table_fssue": []
10 | },
11 | {
12 | "docstatus": 0,
13 | "doctype": "Estimation Process",
14 | "modified": "2024-05-15 14:45:38.056551",
15 | "module": "Setup",
16 | "name": "Print Format Setup",
17 | "process_name": "Print Format Setup",
18 | "table_fssue": []
19 | },
20 | {
21 | "docstatus": 0,
22 | "doctype": "Estimation Process",
23 | "modified": "2024-05-15 14:45:38.061659",
24 | "module": "Setup",
25 | "name": "Letter Head Setup",
26 | "process_name": "Letter Head Setup",
27 | "table_fssue": []
28 | },
29 | {
30 | "docstatus": 0,
31 | "doctype": "Estimation Process",
32 | "modified": "2024-05-15 14:45:38.071154",
33 | "module": "Setup",
34 | "name": "Email Setup",
35 | "process_name": "Email Setup",
36 | "table_fssue": []
37 | },
38 | {
39 | "docstatus": 0,
40 | "doctype": "Estimation Process",
41 | "modified": "2024-05-15 14:45:38.080961",
42 | "module": "Setup",
43 | "name": "Permissions Setup",
44 | "process_name": "Permissions Setup",
45 | "table_fssue": []
46 | },
47 | {
48 | "docstatus": 0,
49 | "doctype": "Estimation Process",
50 | "modified": "2024-05-15 14:45:38.087064",
51 | "module": "Setup",
52 | "name": "Role Setup",
53 | "process_name": "Role Setup",
54 | "table_fssue": []
55 | },
56 | {
57 | "docstatus": 0,
58 | "doctype": "Estimation Process",
59 | "modified": "2024-05-15 14:45:38.091904",
60 | "module": "Setup",
61 | "name": "User Setup",
62 | "process_name": "User Setup",
63 | "table_fssue": []
64 | },
65 | {
66 | "docstatus": 0,
67 | "doctype": "Estimation Process",
68 | "modified": "2024-05-15 14:45:38.097771",
69 | "module": "Manufacturing",
70 | "name": "Maufacturing Settings",
71 | "process_name": "Maufacturing Settings",
72 | "table_fssue": []
73 | },
74 | {
75 | "docstatus": 0,
76 | "doctype": "Estimation Process",
77 | "modified": "2024-05-15 14:45:38.103705",
78 | "module": "Manufacturing",
79 | "name": "Subcontracting",
80 | "process_name": "Subcontracting",
81 | "table_fssue": []
82 | },
83 | {
84 | "docstatus": 0,
85 | "doctype": "Estimation Process",
86 | "modified": "2024-05-15 14:45:38.108255",
87 | "module": "Manufacturing",
88 | "name": "Manufacturing Cycle",
89 | "process_name": "Manufacturing Cycle",
90 | "table_fssue": []
91 | },
92 | {
93 | "docstatus": 0,
94 | "doctype": "Estimation Process",
95 | "modified": "2024-05-15 14:45:38.112814",
96 | "module": "Manufacturing",
97 | "name": "Master Setup",
98 | "process_name": "Master Setup",
99 | "table_fssue": []
100 | },
101 | {
102 | "docstatus": 0,
103 | "doctype": "Estimation Process",
104 | "modified": "2024-05-15 14:45:38.118137",
105 | "module": "Manufacturing",
106 | "name": "Defining Bill of Materials",
107 | "process_name": "Defining Bill of Materials",
108 | "table_fssue": []
109 | },
110 | {
111 | "docstatus": 0,
112 | "doctype": "Estimation Process",
113 | "modified": "2024-05-15 14:45:38.122896",
114 | "module": "CRM",
115 | "name": "Newsletter Setup",
116 | "process_name": "Newsletter Setup",
117 | "table_fssue": []
118 | },
119 | {
120 | "docstatus": 0,
121 | "doctype": "Estimation Process",
122 | "modified": "2024-05-15 14:45:38.127968",
123 | "module": "CRM",
124 | "name": "Email Campaign Setup",
125 | "process_name": "Email Campaign Setup",
126 | "table_fssue": []
127 | },
128 | {
129 | "docstatus": 0,
130 | "doctype": "Estimation Process",
131 | "modified": "2024-05-15 14:45:38.132901",
132 | "module": "CRM",
133 | "name": "Quotation Setup",
134 | "process_name": "Quotation Setup",
135 | "table_fssue": []
136 | },
137 | {
138 | "docstatus": 0,
139 | "doctype": "Estimation Process",
140 | "modified": "2024-05-15 14:45:38.160786",
141 | "module": "Stock",
142 | "name": "Stock Settings",
143 | "process_name": "Stock Settings",
144 | "table_fssue": []
145 | },
146 | {
147 | "docstatus": 0,
148 | "doctype": "Estimation Process",
149 | "modified": "2024-05-15 14:45:38.164162",
150 | "module": "Stock",
151 | "name": "Setting up Quality Inspection",
152 | "process_name": "Setting up Quality Inspection",
153 | "table_fssue": []
154 | },
155 | {
156 | "docstatus": 0,
157 | "doctype": "Estimation Process",
158 | "modified": "2024-05-15 14:45:38.168487",
159 | "module": "Stock",
160 | "name": "Advanced",
161 | "process_name": "Advanced",
162 | "table_fssue": []
163 | },
164 | {
165 | "docstatus": 0,
166 | "doctype": "Estimation Process",
167 | "modified": "2024-05-15 14:45:38.172974",
168 | "module": "Stock",
169 | "name": "Stock Transactions",
170 | "process_name": "Stock Transactions",
171 | "table_fssue": []
172 | },
173 | {
174 | "docstatus": 0,
175 | "doctype": "Estimation Process",
176 | "modified": "2024-05-15 14:45:38.176924",
177 | "module": "Stock",
178 | "name": "Item Setup",
179 | "process_name": "Item Setup",
180 | "table_fssue": []
181 | },
182 | {
183 | "docstatus": 0,
184 | "doctype": "Estimation Process",
185 | "modified": "2024-05-15 14:45:38.183868",
186 | "module": "Stock",
187 | "name": "Batch",
188 | "process_name": "Batch",
189 | "table_fssue": []
190 | },
191 | {
192 | "docstatus": 0,
193 | "doctype": "Estimation Process",
194 | "modified": "2024-05-15 14:45:38.192946",
195 | "module": "Stock",
196 | "name": "Serial Numbers",
197 | "process_name": "Serial Numbers",
198 | "table_fssue": []
199 | },
200 | {
201 | "docstatus": 0,
202 | "doctype": "Estimation Process",
203 | "modified": "2024-05-15 14:45:38.197052",
204 | "module": "Stock",
205 | "name": "Item Variants",
206 | "process_name": "Item Variants",
207 | "table_fssue": []
208 | },
209 | {
210 | "docstatus": 0,
211 | "doctype": "Estimation Process",
212 | "modified": "2024-05-15 14:45:38.202356",
213 | "module": "Stock",
214 | "name": "Opening Stock",
215 | "process_name": "Opening Stock",
216 | "table_fssue": []
217 | },
218 | {
219 | "docstatus": 0,
220 | "doctype": "Estimation Process",
221 | "modified": "2024-05-15 14:45:38.206755",
222 | "module": "Stock",
223 | "name": "Warehouse Setup",
224 | "process_name": "Warehouse Setup",
225 | "table_fssue": []
226 | },
227 | {
228 | "docstatus": 0,
229 | "doctype": "Estimation Process",
230 | "modified": "2024-05-15 14:45:38.223235",
231 | "module": "Projects",
232 | "name": "Timesheet Setup",
233 | "process_name": "Timesheet Setup",
234 | "table_fssue": []
235 | },
236 | {
237 | "docstatus": 0,
238 | "doctype": "Estimation Process",
239 | "modified": "2024-05-15 14:45:38.226787",
240 | "module": "Projects",
241 | "name": "Activty Setup",
242 | "process_name": "Activty Setup",
243 | "table_fssue": []
244 | },
245 | {
246 | "docstatus": 0,
247 | "doctype": "Estimation Process",
248 | "modified": "2024-05-15 14:45:38.230749",
249 | "module": "Projects",
250 | "name": "Tasks Setup",
251 | "process_name": "Tasks Setup",
252 | "table_fssue": []
253 | },
254 | {
255 | "docstatus": 0,
256 | "doctype": "Estimation Process",
257 | "modified": "2024-05-15 14:45:38.236560",
258 | "module": "Projects",
259 | "name": "Projects Setup",
260 | "process_name": "Projects Setup",
261 | "table_fssue": []
262 | },
263 | {
264 | "docstatus": 0,
265 | "doctype": "Estimation Process",
266 | "modified": "2024-05-15 14:45:38.251431",
267 | "module": "CRM",
268 | "name": "Opportunity Setup",
269 | "process_name": "Opportunity Setup",
270 | "table_fssue": []
271 | },
272 | {
273 | "docstatus": 0,
274 | "doctype": "Estimation Process",
275 | "modified": "2024-05-15 14:45:38.255720",
276 | "module": "CRM",
277 | "name": "Lead Setup",
278 | "process_name": "Lead Setup",
279 | "table_fssue": []
280 | },
281 | {
282 | "docstatus": 0,
283 | "doctype": "Estimation Process",
284 | "modified": "2024-05-16 14:37:26.259421",
285 | "module": "Healthcare",
286 | "name": "Configuration",
287 | "process_name": "Configuration",
288 | "table_fssue": []
289 | },
290 | {
291 | "docstatus": 0,
292 | "doctype": "Estimation Process",
293 | "modified": "2024-05-16 14:37:36.228441",
294 | "module": "Healthcare",
295 | "name": "Consultation",
296 | "process_name": "Consultation",
297 | "table_fssue": []
298 | },
299 | {
300 | "docstatus": 0,
301 | "doctype": "Estimation Process",
302 | "modified": "2024-05-16 14:38:20.715285",
303 | "module": "Healthcare",
304 | "name": "Inpatient",
305 | "process_name": "Inpatient",
306 | "table_fssue": []
307 | },
308 | {
309 | "docstatus": 0,
310 | "doctype": "Estimation Process",
311 | "modified": "2024-05-16 14:38:52.406893",
312 | "module": "Healthcare",
313 | "name": "Laboratory",
314 | "process_name": "Laboratory",
315 | "table_fssue": []
316 | },
317 | {
318 | "docstatus": 0,
319 | "doctype": "Estimation Process",
320 | "modified": "2024-05-16 14:39:31.572773",
321 | "module": "Healthcare",
322 | "name": "Rehabilitation",
323 | "process_name": "Rehabilitation",
324 | "table_fssue": []
325 | },
326 | {
327 | "docstatus": 0,
328 | "doctype": "Estimation Process",
329 | "modified": "2024-05-16 14:40:32.034901",
330 | "module": "Healthcare",
331 | "name": "Data Migration",
332 | "process_name": "Data Migration",
333 | "table_fssue": []
334 | },
335 | {
336 | "docstatus": 0,
337 | "doctype": "Estimation Process",
338 | "modified": "2024-05-16 14:47:34.060248",
339 | "module": "Education",
340 | "name": "Programs and Courses",
341 | "process_name": "Programs and Courses",
342 | "table_fssue": []
343 | },
344 | {
345 | "docstatus": 0,
346 | "doctype": "Estimation Process",
347 | "modified": "2024-05-16 14:48:56.426203",
348 | "module": "Education",
349 | "name": "Topics and Instructors",
350 | "process_name": "Topics and Instructors",
351 | "table_fssue": []
352 | },
353 | {
354 | "docstatus": 0,
355 | "doctype": "Estimation Process",
356 | "modified": "2024-05-16 14:49:56.896775",
357 | "module": "Education",
358 | "name": "Rooms and Academic Year",
359 | "process_name": "Rooms and Academic Year",
360 | "table_fssue": []
361 | },
362 | {
363 | "docstatus": 0,
364 | "doctype": "Estimation Process",
365 | "modified": "2024-05-16 14:50:31.449286",
366 | "module": "Education",
367 | "name": "Students Migrartion",
368 | "process_name": "Students Migrartion",
369 | "table_fssue": []
370 | },
371 | {
372 | "docstatus": 0,
373 | "doctype": "Estimation Process",
374 | "modified": "2024-05-16 14:50:57.160120",
375 | "module": "Education",
376 | "name": "Fees Management",
377 | "process_name": "Fees Management",
378 | "table_fssue": []
379 | },
380 | {
381 | "docstatus": 0,
382 | "doctype": "Estimation Process",
383 | "modified": "2024-05-16 14:51:35.548924",
384 | "module": "Education",
385 | "name": "Course Schedule",
386 | "process_name": "Course Schedule",
387 | "table_fssue": []
388 | },
389 | {
390 | "docstatus": 0,
391 | "doctype": "Estimation Process",
392 | "modified": "2024-05-16 14:51:52.753424",
393 | "module": "Education",
394 | "name": "Assessment",
395 | "process_name": "Assessment",
396 | "table_fssue": []
397 | },
398 | {
399 | "docstatus": 0,
400 | "doctype": "Estimation Process",
401 | "modified": "2024-05-15 14:45:38.036798",
402 | "module": "Utilities",
403 | "name": "Healthcare",
404 | "process_name": "Healthcare",
405 | "table_fssue": []
406 | },
407 | {
408 | "docstatus": 0,
409 | "doctype": "Estimation Process",
410 | "modified": "2024-05-15 14:45:38.210551",
411 | "module": "Buying",
412 | "name": "Buying Settings",
413 | "process_name": "Buying Settings",
414 | "table_fssue": []
415 | },
416 | {
417 | "docstatus": 0,
418 | "doctype": "Estimation Process",
419 | "modified": "2024-05-15 14:45:38.214808",
420 | "module": "Buying",
421 | "name": "Buying Cycle Mapping",
422 | "process_name": "Buying Cycle Mapping",
423 | "table_fssue": []
424 | },
425 | {
426 | "docstatus": 0,
427 | "doctype": "Estimation Process",
428 | "modified": "2024-05-15 14:45:38.137700",
429 | "module": "Selling",
430 | "name": "Selling Settings",
431 | "process_name": "Selling Settings",
432 | "table_fssue": []
433 | },
434 | {
435 | "docstatus": 0,
436 | "doctype": "Estimation Process",
437 | "modified": "2024-05-15 14:45:38.143617",
438 | "module": "Selling",
439 | "name": "Selling Cycle Mapping",
440 | "process_name": "Selling Cycle Mapping",
441 | "table_fssue": []
442 | },
443 | {
444 | "docstatus": 0,
445 | "doctype": "Estimation Process",
446 | "modified": "2024-05-15 14:45:38.147744",
447 | "module": "Selling",
448 | "name": "Sales Person Setup",
449 | "process_name": "Sales Person Setup",
450 | "table_fssue": []
451 | },
452 | {
453 | "docstatus": 0,
454 | "doctype": "Estimation Process",
455 | "modified": "2024-05-15 14:45:38.152790",
456 | "module": "Selling",
457 | "name": "Sales Partner Setup",
458 | "process_name": "Sales Partner Setup",
459 | "table_fssue": []
460 | },
461 | {
462 | "docstatus": 0,
463 | "doctype": "Estimation Process",
464 | "modified": "2024-05-15 14:45:38.267249",
465 | "module": "HR",
466 | "name": "HR Settings",
467 | "process_name": "HR Settings",
468 | "table_fssue": []
469 | },
470 | {
471 | "docstatus": 0,
472 | "doctype": "Estimation Process",
473 | "modified": "2024-05-15 14:45:38.218951",
474 | "module": "Buying",
475 | "name": "Supplier Setup",
476 | "process_name": "Supplier Setup",
477 | "table_fssue": []
478 | },
479 | {
480 | "docstatus": 0,
481 | "doctype": "Estimation Process",
482 | "modified": "2024-05-15 20:02:52.543622",
483 | "module": "Payroll",
484 | "name": "Payroll Settings",
485 | "process_name": "Payroll Settings",
486 | "table_fssue": []
487 | },
488 | {
489 | "docstatus": 0,
490 | "doctype": "Estimation Process",
491 | "modified": "2024-05-15 14:45:38.295900",
492 | "module": "Accounts",
493 | "name": "Accounts Settings",
494 | "process_name": "Accounts Settings",
495 | "table_fssue": []
496 | },
497 | {
498 | "docstatus": 0,
499 | "doctype": "Estimation Process",
500 | "modified": "2024-05-15 14:45:38.300073",
501 | "module": "Accounts",
502 | "name": "Opening Balance of Accounts",
503 | "process_name": "Opening Balance of Accounts",
504 | "table_fssue": []
505 | },
506 | {
507 | "docstatus": 0,
508 | "doctype": "Estimation Process",
509 | "modified": "2024-05-15 14:45:38.310924",
510 | "module": "Accounts",
511 | "name": "Budgeting",
512 | "process_name": "Budgeting",
513 | "table_fssue": []
514 | },
515 | {
516 | "docstatus": 0,
517 | "doctype": "Estimation Process",
518 | "modified": "2024-05-15 14:45:38.319399",
519 | "module": "Accounts",
520 | "name": "Chart Of Accounts",
521 | "process_name": "Chart Of Accounts",
522 | "table_fssue": []
523 | },
524 | {
525 | "docstatus": 0,
526 | "doctype": "Estimation Process",
527 | "modified": "2024-05-15 14:45:38.323927",
528 | "module": "Accounts",
529 | "name": "Company Setup",
530 | "process_name": "Company Setup",
531 | "table_fssue": []
532 | },
533 | {
534 | "docstatus": 0,
535 | "doctype": "Estimation Process",
536 | "modified": "2024-05-15 14:45:38.272668",
537 | "module": "HR",
538 | "name": "Employee Life Cycle",
539 | "process_name": "Employee Life Cycle",
540 | "table_fssue": []
541 | },
542 | {
543 | "docstatus": 0,
544 | "doctype": "Estimation Process",
545 | "modified": "2024-05-15 14:45:38.277135",
546 | "module": "HR",
547 | "name": "Recruitment",
548 | "process_name": "Recruitment",
549 | "table_fssue": []
550 | },
551 | {
552 | "docstatus": 0,
553 | "doctype": "Estimation Process",
554 | "modified": "2024-05-15 14:45:38.281171",
555 | "module": "HR",
556 | "name": "Expense Claim",
557 | "process_name": "Expense Claim",
558 | "table_fssue": []
559 | },
560 | {
561 | "docstatus": 0,
562 | "doctype": "Estimation Process",
563 | "modified": "2024-05-15 14:45:38.284857",
564 | "module": "HR",
565 | "name": "Attendance",
566 | "process_name": "Attendance",
567 | "table_fssue": []
568 | },
569 | {
570 | "docstatus": 0,
571 | "doctype": "Estimation Process",
572 | "modified": "2024-05-15 14:45:38.292307",
573 | "module": "HR",
574 | "name": "Employee Setup",
575 | "process_name": "Employee Setup",
576 | "table_fssue": []
577 | },
578 | {
579 | "docstatus": 0,
580 | "doctype": "Estimation Process",
581 | "modified": "2024-05-15 14:45:38.315008",
582 | "module": "Accounts",
583 | "name": "Cost Center",
584 | "process_name": "Cost Center",
585 | "table_fssue": []
586 | },
587 | {
588 | "docstatus": 0,
589 | "doctype": "Estimation Process",
590 | "modified": "2024-05-15 14:45:38.157175",
591 | "module": "Selling",
592 | "name": "Customer Setup",
593 | "process_name": "Customer Setup",
594 | "table_fssue": []
595 | },
596 | {
597 | "docstatus": 0,
598 | "doctype": "Estimation Process",
599 | "modified": "2024-07-10 16:04:05.684365",
600 | "module": "Payroll",
601 | "name": "Payroll",
602 | "process_name": "Payroll",
603 | "table_fssue": []
604 | },
605 | {
606 | "docstatus": 0,
607 | "doctype": "Estimation Process",
608 | "modified": "2024-05-15 14:45:38.288520",
609 | "module": "HR",
610 | "name": "Leave Setup",
611 | "process_name": "Leave Setup",
612 | "table_fssue": []
613 | },
614 | {
615 | "docstatus": 0,
616 | "doctype": "Estimation Process",
617 | "modified": "2024-05-15 14:45:38.306727",
618 | "module": "Accounts",
619 | "name": "Taxes Setup",
620 | "process_name": "Taxes Setup",
621 | "table_fssue": []
622 | },
623 | {
624 | "docstatus": 0,
625 | "doctype": "Estimation Process",
626 | "modified": "2024-05-15 14:45:38.246070",
627 | "module": "Payroll",
628 | "name": "Tax Declarations",
629 | "process_name": "Tax Declarations",
630 | "table_fssue": []
631 | }
632 | ]
--------------------------------------------------------------------------------
/erpnext_price_estimation/fixtures/module.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "docstatus": 0,
4 | "doctype": "Module",
5 | "modified": "2024-06-07 17:18:24.084433",
6 | "module": "ERPNext Price Estimation",
7 | "name": "ERPNext Price Estimation"
8 | },
9 | {
10 | "docstatus": 0,
11 | "doctype": "Module",
12 | "modified": "2024-06-07 17:18:24.110137",
13 | "module": "Subcontracting",
14 | "name": "Subcontracting"
15 | },
16 | {
17 | "docstatus": 0,
18 | "doctype": "Module",
19 | "modified": "2024-06-07 17:18:24.116475",
20 | "module": "Bulk Transaction",
21 | "name": "Bulk Transaction"
22 | },
23 | {
24 | "docstatus": 0,
25 | "doctype": "Module",
26 | "modified": "2024-06-07 17:18:24.120578",
27 | "module": "Telephony",
28 | "name": "Telephony"
29 | },
30 | {
31 | "docstatus": 0,
32 | "doctype": "Module",
33 | "modified": "2024-06-07 17:18:24.125471",
34 | "module": "Communication",
35 | "name": "Communication"
36 | },
37 | {
38 | "docstatus": 0,
39 | "doctype": "Module",
40 | "modified": "2024-06-07 17:18:24.129690",
41 | "module": "Quality Management",
42 | "name": "Quality Management"
43 | },
44 | {
45 | "docstatus": 0,
46 | "doctype": "Module",
47 | "modified": "2024-06-07 17:18:24.133739",
48 | "module": "ERPNext Integrations",
49 | "name": "ERPNext Integrations"
50 | },
51 | {
52 | "docstatus": 0,
53 | "doctype": "Module",
54 | "modified": "2024-06-07 17:18:24.137648",
55 | "module": "Regional",
56 | "name": "Regional"
57 | },
58 | {
59 | "docstatus": 0,
60 | "doctype": "Module",
61 | "modified": "2024-06-07 17:18:24.142428",
62 | "module": "Maintenance",
63 | "name": "Maintenance"
64 | },
65 | {
66 | "docstatus": 0,
67 | "doctype": "Module",
68 | "modified": "2024-06-07 17:18:24.146179",
69 | "module": "Portal",
70 | "name": "Portal"
71 | },
72 | {
73 | "docstatus": 0,
74 | "doctype": "Module",
75 | "modified": "2024-06-07 17:18:24.150259",
76 | "module": "Assets",
77 | "name": "Assets"
78 | },
79 | {
80 | "docstatus": 0,
81 | "doctype": "Module",
82 | "modified": "2024-06-07 17:18:24.153707",
83 | "module": "Utilities",
84 | "name": "Utilities"
85 | },
86 | {
87 | "docstatus": 0,
88 | "doctype": "Module",
89 | "modified": "2024-06-07 17:18:24.157092",
90 | "module": "Support",
91 | "name": "Support"
92 | },
93 | {
94 | "docstatus": 0,
95 | "doctype": "Module",
96 | "modified": "2024-06-07 17:18:24.162589",
97 | "module": "Stock",
98 | "name": "Stock"
99 | },
100 | {
101 | "docstatus": 0,
102 | "doctype": "Module",
103 | "modified": "2024-06-07 17:18:24.166586",
104 | "module": "Manufacturing",
105 | "name": "Manufacturing"
106 | },
107 | {
108 | "docstatus": 0,
109 | "doctype": "Module",
110 | "modified": "2024-06-07 17:18:24.170284",
111 | "module": "Setup",
112 | "name": "Setup"
113 | },
114 | {
115 | "docstatus": 0,
116 | "doctype": "Module",
117 | "modified": "2024-06-07 17:18:24.174753",
118 | "module": "Selling",
119 | "name": "Selling"
120 | },
121 | {
122 | "docstatus": 0,
123 | "doctype": "Module",
124 | "modified": "2024-06-07 17:18:24.178985",
125 | "module": "Projects",
126 | "name": "Projects"
127 | },
128 | {
129 | "docstatus": 0,
130 | "doctype": "Module",
131 | "modified": "2024-06-07 17:18:24.182639",
132 | "module": "Buying",
133 | "name": "Buying"
134 | },
135 | {
136 | "docstatus": 0,
137 | "doctype": "Module",
138 | "modified": "2024-06-07 17:18:24.186013",
139 | "module": "CRM",
140 | "name": "CRM"
141 | },
142 | {
143 | "docstatus": 0,
144 | "doctype": "Module",
145 | "modified": "2024-06-07 17:18:24.189626",
146 | "module": "Accounts",
147 | "name": "Accounts"
148 | },
149 | {
150 | "docstatus": 0,
151 | "doctype": "Module",
152 | "modified": "2024-06-07 17:18:24.193135",
153 | "module": "Automation",
154 | "name": "Automation"
155 | },
156 | {
157 | "docstatus": 0,
158 | "doctype": "Module",
159 | "modified": "2024-06-07 17:18:24.196718",
160 | "module": "Social",
161 | "name": "Social"
162 | },
163 | {
164 | "docstatus": 0,
165 | "doctype": "Module",
166 | "modified": "2024-06-07 17:18:24.200155",
167 | "module": "Contacts",
168 | "name": "Contacts"
169 | },
170 | {
171 | "docstatus": 0,
172 | "doctype": "Module",
173 | "modified": "2024-06-07 17:18:24.204468",
174 | "module": "Printing",
175 | "name": "Printing"
176 | },
177 | {
178 | "docstatus": 0,
179 | "doctype": "Module",
180 | "modified": "2024-06-07 17:18:24.209273",
181 | "module": "Integrations",
182 | "name": "Integrations"
183 | },
184 | {
185 | "docstatus": 0,
186 | "doctype": "Module",
187 | "modified": "2024-06-07 17:18:24.213316",
188 | "module": "Desk",
189 | "name": "Desk"
190 | },
191 | {
192 | "docstatus": 0,
193 | "doctype": "Module",
194 | "modified": "2024-06-07 17:18:24.217999",
195 | "module": "Geo",
196 | "name": "Geo"
197 | },
198 | {
199 | "docstatus": 0,
200 | "doctype": "Module",
201 | "modified": "2024-06-07 17:18:24.223411",
202 | "module": "Custom",
203 | "name": "Custom"
204 | },
205 | {
206 | "docstatus": 0,
207 | "doctype": "Module",
208 | "modified": "2024-06-07 17:18:24.228894",
209 | "module": "Email",
210 | "name": "Email"
211 | },
212 | {
213 | "docstatus": 0,
214 | "doctype": "Module",
215 | "modified": "2024-06-07 17:18:24.233289",
216 | "module": "Workflow",
217 | "name": "Workflow"
218 | },
219 | {
220 | "docstatus": 0,
221 | "doctype": "Module",
222 | "modified": "2024-06-07 17:18:24.237454",
223 | "module": "Website",
224 | "name": "Website"
225 | },
226 | {
227 | "docstatus": 0,
228 | "doctype": "Module",
229 | "modified": "2024-06-07 17:18:24.241566",
230 | "module": "Core",
231 | "name": "Core"
232 | },
233 | {
234 | "docstatus": 0,
235 | "doctype": "Module",
236 | "modified": "2024-06-07 17:18:24.245284",
237 | "module": "Healthcare",
238 | "name": "Healthcare"
239 | },
240 | {
241 | "docstatus": 0,
242 | "doctype": "Module",
243 | "modified": "2024-06-07 17:18:24.249188",
244 | "module": "Education",
245 | "name": "Education"
246 | },
247 | {
248 | "docstatus": 0,
249 | "doctype": "Module",
250 | "modified": "2024-07-10 15:21:57.152319",
251 | "module": "HR",
252 | "name": "HR"
253 | },
254 | {
255 | "docstatus": 0,
256 | "doctype": "Module",
257 | "modified": "2024-07-10 15:22:03.540501",
258 | "module": "Payroll",
259 | "name": "Payroll"
260 | }
261 | ]
--------------------------------------------------------------------------------
/erpnext_price_estimation/hooks.py:
--------------------------------------------------------------------------------
1 | app_name = "erpnext_price_estimation"
2 | app_title = "ERPNext Price Estimation"
3 | app_publisher = "frappe solutions"
4 | app_description = "ERPNext Price Estimation"
5 | app_email = "poorvi@frappe.io"
6 | app_license = "mit"
7 |
8 | fixtures = [
9 | "Estimation Process",
10 | "Estimation Document",
11 | "Module"
12 | ]
13 |
--------------------------------------------------------------------------------
/erpnext_price_estimation/modules.txt:
--------------------------------------------------------------------------------
1 | ERPNext Price Estimation
--------------------------------------------------------------------------------
/erpnext_price_estimation/patches.txt:
--------------------------------------------------------------------------------
1 | [pre_model_sync]
2 | # Patches added in this section will be executed before doctypes are migrated
3 | # Read docs to understand patches: https://frappeframework.com/docs/v14/user/en/database-migrations
4 |
5 | [post_model_sync]
6 | # Patches added in this section will be executed after doctypes are migrated
--------------------------------------------------------------------------------
/erpnext_price_estimation/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/public/.gitkeep
--------------------------------------------------------------------------------
/erpnext_price_estimation/templates/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/templates/__init__.py
--------------------------------------------------------------------------------
/erpnext_price_estimation/templates/pages/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frappe/erpnext_price_estimation/09f039fd7c76fc7f5e4bc18b843272ceac75ce8c/erpnext_price_estimation/templates/pages/__init__.py
--------------------------------------------------------------------------------
/license.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [year] [fullname]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [project]
2 | name = "erpnext_price_estimation"
3 | authors = [
4 | { name = "frappe solutions", email = "poorvi@frappe.io"}
5 | ]
6 | description = "ERPNext Price Estimation"
7 | requires-python = ">=3.10"
8 | readme = "README.md"
9 | dynamic = ["version"]
10 | dependencies = [
11 | # "frappe~=15.0.0" # Installed and managed by bench.
12 | ]
13 |
14 | [build-system]
15 | requires = ["flit_core >=3.4,<4"]
16 | build-backend = "flit_core.buildapi"
17 |
18 | # These dependencies are only installed when developer mode is enabled
19 | [tool.bench.dev-dependencies]
20 | # package_name = "~=1.1.0"
21 |
--------------------------------------------------------------------------------