Skip to content

Commit

Permalink
fix: Customers 'primary_address' not updated automatically (#26798) (#…
Browse files Browse the repository at this point in the history
…26799)

* Fix for Issue #26798

This PR is a fix for GitHub Issue 26798:
#26798

TLDR:  When an Address is updated, and that Address is a Customer's Primary Address, update the Read Only field `customer.primary_address`

* Update address.py

Co-authored-by: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com>
  • Loading branch information
Brian Pond and deepeshgarg007 authored Aug 26, 2021
1 parent c8f22e5 commit 1a91977
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion erpnext/accounts/custom/address.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import frappe
from frappe import _
from frappe.contacts.doctype.address.address import Address
from frappe.contacts.doctype.address.address import get_address_templates
from frappe.contacts.doctype.address.address import get_address_templates, get_address_display

class ERPNextAddress(Address):
def validate(self):
Expand All @@ -22,6 +22,16 @@ def validate_reference(self):
frappe.throw(_("Address needs to be linked to a Company. Please add a row for Company in the Links table."),
title=_("Company Not Linked"))

def on_update(self):
"""
After Address is updated, update the related 'Primary Address' on Customer.
"""
address_display = get_address_display(self.as_dict())
filters = { "customer_primary_address": self.name }
customers = frappe.db.get_all("Customer", filters=filters, as_list=True)
for customer_name in customers:
frappe.db.set_value("Customer", customer_name[0], "primary_address", address_display)

@frappe.whitelist()
def get_shipping_address(company, address = None):
filters = [
Expand Down

0 comments on commit 1a91977

Please sign in to comment.