refactor: add basic navigation
1. remove unnecessary columns
2. added basic tree navigation
diff --git a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js
index 732b2b0..4e478ee 100644
--- a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js
+++ b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js
@@ -19,6 +19,33 @@
);
// frm.change_custom_button_type(__('Bisect'), null, 'primary');
},
+ bisect_left(frm) {
+ frm.call({
+ doc: frm.doc,
+ method: 'bisect_left',
+ callback: (r) => {
+ console.log(r);
+ }
+ });
+ },
+ bisect_right(frm) {
+ frm.call({
+ doc: frm.doc,
+ method: 'bisect_right',
+ callback: (r) => {
+ console.log(r);
+ }
+ });
+ },
+ move_up(frm) {
+ frm.call({
+ doc: frm.doc,
+ method: 'move_up',
+ callback: (r) => {
+ console.log(r);
+ }
+ });
+ },
build_tree(frm) {
frm.call({
doc: frm.doc,
diff --git a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
index e0b84ad..c5715fe 100644
--- a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
+++ b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
@@ -12,10 +12,6 @@
"to_date",
"column_break_iwny",
"algorithm",
- "section_break_lwr2",
- "current_from_date",
- "column_break_uuic",
- "current_to_date",
"section_break_zbty",
"current_node",
"tree"
@@ -59,31 +55,13 @@
"fieldname": "current_node",
"fieldtype": "JSON",
"label": "Current Node"
- },
- {
- "fieldname": "section_break_lwr2",
- "fieldtype": "Section Break"
- },
- {
- "fieldname": "current_from_date",
- "fieldtype": "Date",
- "label": "Current From Date"
- },
- {
- "fieldname": "current_to_date",
- "fieldtype": "Date",
- "label": "Current To Date"
- },
- {
- "fieldname": "column_break_uuic",
- "fieldtype": "Column Break"
}
],
"hide_toolbar": 1,
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
- "modified": "2023-09-25 17:05:13.384320",
+ "modified": "2023-09-25 21:15:47.905386",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bisect Accounting Statements",
diff --git a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py
index 7c68f18..accc8a9 100644
--- a/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py
+++ b/erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py
@@ -124,8 +124,12 @@
tree = json.loads(tree)
for x in tree:
x = frappe._dict(x)
- n = Node(x.parent, x.period, x.left_child, x.right_child)
- n.period = x.period
+ n = Node(x.parent, None, x.left_child, x.right_child)
+ date_format = guess_date_format(x.period[0])
+ n.period = (
+ datetime.datetime.strptime(x.period[0], date_format),
+ datetime.datetime.strptime(x.period[1], date_format),
+ )
n.difference = x.difference
x.profit_and_loss_summary = x.profit_and_loss_summary
x.balance_sheet_summary = x.balance_sheet_summary
@@ -187,9 +191,37 @@
for x in self.tree_instance.btree:
print(x)
- print("Root", self.tree_instnace.current_node)
+ print("Root", self.tree_instance.current_node)
self.tree = json.dumps(self.tree_instance.as_list())
- self.current_node = json.dumps(self.tree_intance.btree[0].as_dict())
+ self.current_node = json.dumps(self.tree_instance.btree[0].as_dict())
- print(guess_date_format(json.loads(self.current_node)["period"][0]))
+ @frappe.whitelist()
+ def bisect_left(self):
+ if self.tree_instance.current_node is not None:
+ if self.tree_instance.current_node.left_child is not None:
+ self.current_node = self.tree_instance.btree[self.tree_instance.current_node.left_child]
+ self.current_node = json.dumps(self.current_node.as_dict())
+ self.save()
+ else:
+ frappe.msgprint("No more children on Left")
+
+ @frappe.whitelist()
+ def bisect_right(self):
+ if self.tree_instance.current_node is not None:
+ if self.tree_instance.current_node.right_child is not None:
+ self.current_node = self.tree_instance.btree[self.tree_instance.current_node.right_child]
+ self.current_node = json.dumps(self.current_node.as_dict())
+ self.save()
+ else:
+ frappe.msgprint("No more children on Right")
+
+ @frappe.whitelist()
+ def move_up(self):
+ if self.tree_instance.current_node is not None:
+ if self.tree_instance.current_node.parent is not None:
+ self.current_node = self.tree_instance.btree[self.tree_instance.current_node.parent]
+ self.current_node = json.dumps(self.current_node.as_dict())
+ self.save()
+ else:
+ frappe.msgprint("Reached Root")