Skip to content

Commit 9b37726

Browse files
authored
fix(metrc): add a enabled flag to compliance settings (#17)
fix(metrc): add a enabled flag to compliance settings
2 parents 922ecbe + 3b6e291 commit 9b37726

8 files changed

Lines changed: 150 additions & 87 deletions

File tree

bloomstack_core/bloomstack_core/doctype/compliance_settings/compliance_settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// For license information, please see license.txt
33

44
frappe.ui.form.on('Compliance Settings', {
5-
refresh: function(frm) {
5+
refresh: (frm) => {
66

77
}
88
});

bloomstack_core/bloomstack_core/doctype/compliance_settings/compliance_settings.json

Lines changed: 67 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"in_global_search": 0,
3131
"in_list_view": 0,
3232
"in_standard_filter": 0,
33-
"label": "METRC Settings",
33+
"label": "",
3434
"length": 0,
3535
"no_copy": 0,
3636
"permlevel": 0,
@@ -54,16 +54,16 @@
5454
"collapsible": 0,
5555
"columns": 0,
5656
"fetch_if_empty": 0,
57-
"fieldname": "metrc_url",
58-
"fieldtype": "Data",
57+
"fieldname": "is_compliance_enabled",
58+
"fieldtype": "Check",
5959
"hidden": 0,
6060
"ignore_user_permissions": 0,
6161
"ignore_xss_filter": 0,
6262
"in_filter": 0,
6363
"in_global_search": 0,
64-
"in_list_view": 1,
64+
"in_list_view": 0,
6565
"in_standard_filter": 0,
66-
"label": "URL",
66+
"label": "Enable Tracking",
6767
"length": 0,
6868
"no_copy": 0,
6969
"permlevel": 0,
@@ -73,7 +73,7 @@
7373
"read_only": 0,
7474
"remember_last_selected_value": 0,
7575
"report_hide": 0,
76-
"reqd": 1,
76+
"reqd": 0,
7777
"search_index": 0,
7878
"set_only_once": 0,
7979
"translatable": 0,
@@ -86,17 +86,18 @@
8686
"bold": 0,
8787
"collapsible": 0,
8888
"columns": 0,
89+
"depends_on": "eval:doc.is_compliance_enabled",
8990
"fetch_if_empty": 0,
90-
"fieldname": "metrc_license_no",
91-
"fieldtype": "Data",
91+
"fieldname": "sb_metrc_settings",
92+
"fieldtype": "Section Break",
9293
"hidden": 0,
9394
"ignore_user_permissions": 0,
9495
"ignore_xss_filter": 0,
9596
"in_filter": 0,
9697
"in_global_search": 0,
97-
"in_list_view": 1,
98+
"in_list_view": 0,
9899
"in_standard_filter": 0,
99-
"label": "License No",
100+
"label": "METRC Settings",
100101
"length": 0,
101102
"no_copy": 0,
102103
"permlevel": 0,
@@ -106,7 +107,7 @@
106107
"read_only": 0,
107108
"remember_last_selected_value": 0,
108109
"report_hide": 0,
109-
"reqd": 1,
110+
"reqd": 0,
110111
"search_index": 0,
111112
"set_only_once": 0,
112113
"translatable": 0,
@@ -120,15 +121,16 @@
120121
"collapsible": 0,
121122
"columns": 0,
122123
"fetch_if_empty": 0,
123-
"fieldname": "cb_metrc",
124-
"fieldtype": "Column Break",
124+
"fieldname": "metrc_url",
125+
"fieldtype": "Data",
125126
"hidden": 0,
126127
"ignore_user_permissions": 0,
127128
"ignore_xss_filter": 0,
128129
"in_filter": 0,
129130
"in_global_search": 0,
130-
"in_list_view": 0,
131+
"in_list_view": 1,
131132
"in_standard_filter": 0,
133+
"label": "URL",
132134
"length": 0,
133135
"no_copy": 0,
134136
"permlevel": 0,
@@ -152,16 +154,16 @@
152154
"collapsible": 0,
153155
"columns": 0,
154156
"fetch_if_empty": 0,
155-
"fieldname": "metrc_vendor_key",
156-
"fieldtype": "Password",
157+
"fieldname": "metrc_license_no",
158+
"fieldtype": "Data",
157159
"hidden": 0,
158160
"ignore_user_permissions": 0,
159161
"ignore_xss_filter": 0,
160162
"in_filter": 0,
161163
"in_global_search": 0,
162164
"in_list_view": 1,
163165
"in_standard_filter": 0,
164-
"label": "Vendor Key",
166+
"label": "License No",
165167
"length": 0,
166168
"no_copy": 0,
167169
"permlevel": 0,
@@ -171,7 +173,7 @@
171173
"read_only": 0,
172174
"remember_last_selected_value": 0,
173175
"report_hide": 0,
174-
"reqd": 1,
176+
"reqd": 0,
175177
"search_index": 0,
176178
"set_only_once": 0,
177179
"translatable": 0,
@@ -184,27 +186,29 @@
184186
"bold": 0,
185187
"collapsible": 0,
186188
"columns": 0,
189+
"depends_on": "",
187190
"fetch_if_empty": 0,
188-
"fieldname": "metrc_user_key",
189-
"fieldtype": "Password",
191+
"fieldname": "metrc_sync_data",
192+
"fieldtype": "Button",
190193
"hidden": 0,
191194
"ignore_user_permissions": 0,
192195
"ignore_xss_filter": 0,
193196
"in_filter": 0,
194197
"in_global_search": 0,
195-
"in_list_view": 1,
198+
"in_list_view": 0,
196199
"in_standard_filter": 0,
197-
"label": "User Key",
200+
"label": "Sync Data",
198201
"length": 0,
199202
"no_copy": 0,
203+
"options": "sync_data",
200204
"permlevel": 0,
201205
"precision": "",
202206
"print_hide": 0,
203207
"print_hide_if_no_value": 0,
204208
"read_only": 0,
205209
"remember_last_selected_value": 0,
206210
"report_hide": 0,
207-
"reqd": 1,
211+
"reqd": 0,
208212
"search_index": 0,
209213
"set_only_once": 0,
210214
"translatable": 0,
@@ -218,8 +222,8 @@
218222
"collapsible": 0,
219223
"columns": 0,
220224
"fetch_if_empty": 0,
221-
"fieldname": "sb_metrc_sync",
222-
"fieldtype": "Section Break",
225+
"fieldname": "cb_metrc",
226+
"fieldtype": "Column Break",
223227
"hidden": 0,
224228
"ignore_user_permissions": 0,
225229
"ignore_xss_filter": 0,
@@ -250,19 +254,51 @@
250254
"collapsible": 0,
251255
"columns": 0,
252256
"fetch_if_empty": 0,
253-
"fieldname": "metrc_sync_data",
254-
"fieldtype": "Button",
257+
"fieldname": "metrc_vendor_key",
258+
"fieldtype": "Password",
255259
"hidden": 0,
256260
"ignore_user_permissions": 0,
257261
"ignore_xss_filter": 0,
258262
"in_filter": 0,
259263
"in_global_search": 0,
260-
"in_list_view": 0,
264+
"in_list_view": 1,
261265
"in_standard_filter": 0,
262-
"label": "Sync Data",
266+
"label": "Vendor Key",
267+
"length": 0,
268+
"no_copy": 0,
269+
"permlevel": 0,
270+
"precision": "",
271+
"print_hide": 0,
272+
"print_hide_if_no_value": 0,
273+
"read_only": 0,
274+
"remember_last_selected_value": 0,
275+
"report_hide": 0,
276+
"reqd": 0,
277+
"search_index": 0,
278+
"set_only_once": 0,
279+
"translatable": 0,
280+
"unique": 0
281+
},
282+
{
283+
"allow_bulk_edit": 0,
284+
"allow_in_quick_entry": 0,
285+
"allow_on_submit": 0,
286+
"bold": 0,
287+
"collapsible": 0,
288+
"columns": 0,
289+
"fetch_if_empty": 0,
290+
"fieldname": "metrc_user_key",
291+
"fieldtype": "Password",
292+
"hidden": 0,
293+
"ignore_user_permissions": 0,
294+
"ignore_xss_filter": 0,
295+
"in_filter": 0,
296+
"in_global_search": 0,
297+
"in_list_view": 1,
298+
"in_standard_filter": 0,
299+
"label": "User Key",
263300
"length": 0,
264301
"no_copy": 0,
265-
"options": "sync_data",
266302
"permlevel": 0,
267303
"precision": "",
268304
"print_hide": 0,
@@ -287,7 +323,7 @@
287323
"issingle": 1,
288324
"istable": 0,
289325
"max_attachments": 0,
290-
"modified": "2019-04-23 05:10:27.696998",
326+
"modified": "2019-05-07 23:43:15.836014",
291327
"modified_by": "Administrator",
292328
"module": "Bloomstack Core",
293329
"name": "Compliance Settings",

bloomstack_core/bloomstack_core/doctype/compliance_settings/compliance_settings.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ def pull_metrc_item_categories():
3838
"""
3939

4040
metrc = get_metrc()
41+
42+
if not metrc:
43+
return
44+
4145
response = metrc.items.categories.get()
4246

4347
# Create root METRC item group
@@ -95,6 +99,10 @@ def pull_metrc_uoms():
9599
"""
96100

97101
metrc = get_metrc()
102+
103+
if not metrc:
104+
return
105+
98106
response = metrc.unitsofmeasure.active.get()
99107

100108
for uom in response.json():

bloomstack_core/boot.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33

44
def boot_session(bootinfo):
55
bootinfo.user.background_image = "/assets/bloomstack_core/images/desk.png"
6-
bootinfo.growth_guide_link = frappe.db.get_single_value("Bloomstack Settings", "growth_guide_link")
6+
bootinfo.growth_guide_link = frappe.db.get_single_value("Bloomstack Settings", "growth_guide_link")
7+
bootinfo.compliance_enabled = frappe.db.get_single_value("Compliance Settings", "is_compliance_enabled")

bloomstack_core/compliance/item.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ def get_item(item):
1515
"""
1616
metrc = get_metrc()
1717

18+
if not metrc:
19+
return
20+
1821
response = metrc.items.active.get()
1922

2023
if not response.ok:
@@ -38,6 +41,10 @@ def create_item(item):
3841

3942
# Create the item record on METRC
4043
metrc = get_metrc()
44+
45+
if not metrc:
46+
return
47+
4148
payload = build_payload(item)
4249
response = metrc.items.create.post(json=payload)
4350
log_request(response.url, payload, response, "Item", item.name)
@@ -59,6 +66,10 @@ def update_item(item):
5966
item (object): The `Item` data to update in METRC.
6067
"""
6168
metrc = get_metrc()
69+
70+
if not metrc:
71+
return
72+
6273
payload = build_payload(item)
6374
response = metrc.items.update.post(json=payload)
6475
log_request(response.url, payload, response, "Item", item.name)

bloomstack_core/compliance/package.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ def create_package(stock_entry, method):
99
return
1010

1111
metrc = get_metrc()
12+
13+
if not metrc:
14+
return
15+
1216
payload = build_payload(stock_entry)
1317
response = metrc.packages.create.post(json=payload)
1418
log_request(response.url, payload, response, "Stock Entry", stock_entry.name)

bloomstack_core/public/js/item.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
frappe.ui.form.on('Item', {
44
refresh: (frm) => {
5-
if (!frm.is_new()) {
5+
if (frappe.boot.compliance_enabled && !frm.is_new()) {
66
frappe.db.get_value("Compliance Item", { "item_code": frm.doc.item_code }, "name", (r) => {
77
if (r && r.name) {
88
frm.add_custom_button(__("View / Update"), () => {

0 commit comments

Comments
 (0)