Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2172233
chore: align ruff config and add erpnext frappe dependency for versio…
av-dev2 Aug 26, 2026
4d55439
Merge pull request #3 from av-dev2/av-dev2-patch-1
av-dev2 Aug 26, 2026
acccfb1
chore: adopt the standard pre-commit and ruff toolchain
av-dev2 Aug 26, 2026
d37cd07
ci: drop bench builds and semantic-release, add static gates
av-dev2 Aug 26, 2026
50df577
fix: clear the semgrep and ruff findings the new gates report
av-dev2 Aug 26, 2026
738bec3
style: reformat with the app ruff config
av-dev2 Aug 26, 2026
330cdfc
Merge branch 'version-16-hotfix' into chore_pre-commit_enforcement
av-dev2 Aug 27, 2026
abaddb4
Merge pull request #4 from av-dev2/chore_pre-commit_enforcement
av-dev2 Aug 27, 2026
7d938aa
fix(ci): restore the tool.ruff.lint section and widen frappe deps
eliusmgani Aug 27, 2026
481f874
Merge pull request #6 from av-dev2/chore_pre-commit_enforcement
av-dev2 Aug 27, 2026
b45d3ef
chore: report version 16.0.0 on the version-16 branch
av-dev2 Aug 27, 2026
1714ea9
fix: drop page_js for the offline POS page removed in v16
av-dev2 Aug 27, 2026
3b8c576
chore: delete the offline POS script ERPNext no longer ships
av-dev2 Aug 27, 2026
205b082
fix: stop committing from inside the Issue document hook
av-dev2 Aug 27, 2026
b795b10
fix: drop the ifnull filter the v16 query builder rejects
av-dev2 Aug 27, 2026
98d17e9
fix: move Custom Error Log to InnoDB
av-dev2 Aug 27, 2026
95109c9
fix: read the renamed Issue.sla_resolution_date column
av-dev2 Aug 27, 2026
448264b
fix: rebuild the POS cost centre control on the v16 POS API
av-dev2 Aug 27, 2026
8df6142
fix: point lease renewal links at /desk
av-dev2 Aug 27, 2026
17ece71
fix: use /desk routes and translate message templates in Lease
av-dev2 Aug 27, 2026
57baa67
Merge remote-tracking branch 'upstream/version-16-hotfix' into pr75-fix
av-dev2 Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@ propms/docs/current

# Cloned by the frappe-semgrep-rules pre-commit hook
frappe-semgrep-rules/

# Node dependencies for the client-side test harness
node_modules/
coverage/
2 changes: 1 addition & 1 deletion propms/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "15.3.0"
__version__ = "16.0.0"
1 change: 0 additions & 1 deletion propms/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
# include js in page
# page_js = {"page" : "public/js/file.js"}
page_js = {
"pos": "property_management_solution/point_of_sale.js",
"point-of-sale": "property_management_solution/point_of_sale.js",
}

Expand Down
22 changes: 14 additions & 8 deletions propms/issue_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def make_transaction(doc, for_self_consumption=False):
lease = get_latest_active_lease(doc.property_name)

def make_stock_entry(items_list=None, pos=None):
if not len(items_list) > 0:
if not items_list:
return

# Create a stock entry for purpose material issue
Expand All @@ -53,13 +53,14 @@ def make_stock_entry(items_list=None, pos=None):
if stock_entry_doc:
stock_entry_doc.insert(ignore_permissions=True)
stock_entry_url = frappe.utils.get_url_to_form(stock_entry_doc.doctype, stock_entry_doc.name)
se_msgprint = f"Stock Entry Created <a href='{stock_entry_url}'>{stock_entry_doc.name}</a>"
frappe.flags.ignore_account_permission = True
if submit_maintenance_stock_entry == 1 and not pos:
stock_entry_doc.submit()
if pos:
frappe.throw(_("POS Stock Entry cannot be created for Self Consumption items"))
frappe.msgprint(_(se_msgprint))
frappe.msgprint(
_("Stock Entry Created {0}").format(f"<a href='{stock_entry_url}'>{stock_entry_doc.name}</a>")
)
for item_row in doc.materials_billed:
if (
item_row.item
Expand All @@ -77,12 +78,16 @@ def make_stock_entry(items_list=None, pos=None):
frappe.db.commit()

def make_sales_invoice(items_list=None, pos=None, self_customer=None):
if not len(items_list) > 0 or not doc.customer:
if not items_list or not doc.customer:
return
default_tax_template = frappe.db.get_value("Company", company, "default_maintenance_tax_template")
if not default_tax_template:
url = frappe.utils.get_url_to_form("Company", company)
frappe.throw(_(f"Please Setup Default Maintenance Tax Template in <a href='{url}'>{company}</a>"))
frappe.throw(
_("Please Setup Default Maintenance Tax Template in {0}").format(
f"<a href='{url}'>{company}</a>"
)
)
if self_customer:
invoice_customer = self_consumption_customer
else:
Expand Down Expand Up @@ -125,14 +130,15 @@ def make_sales_invoice(items_list=None, pos=None, self_customer=None):
invoice_doc.save()
if invoice_doc:
invoice_url = frappe.utils.get_url_to_form(invoice_doc.doctype, invoice_doc.name)
si_msgprint = f"Sales invoice Created <a href='{invoice_url}'>{invoice_doc.name}</a>"
invoice_link = f"<a href='{invoice_url}'>{invoice_doc.name}</a>"
frappe.flags.ignore_account_permission = True
if submit_maintenance_invoice == 1 and not pos:
invoice_doc.submit()
if pos:
make_sales_pos_payment(invoice_doc, user_pos_profile.name)
si_msgprint = "POS " + si_msgprint
frappe.msgprint(_(si_msgprint))
frappe.msgprint(_("POS Sales invoice Created {0}").format(invoice_link))
else:
frappe.msgprint(_("Sales invoice Created {0}").format(invoice_link))
for item_row in doc.materials_billed:
if (
item_row.item
Expand Down
Loading
Loading