add sales order generation functionality
This commit is contained in:
parent
796b835c08
commit
9c9050c558
13 changed files with 289 additions and 143 deletions
|
|
@ -74,4 +74,52 @@ def get_addresses(fields=["*"], filters={}):
|
|||
return build_success_response(addresses)
|
||||
except Exception as e:
|
||||
frappe.log_error(message=str(e), title="Get Addresses Failed")
|
||||
return build_error_response(str(e), 500)
|
||||
return build_error_response(str(e), 500)
|
||||
|
||||
|
||||
def create_address(address_data):
|
||||
"""Create a new address."""
|
||||
address = frappe.get_doc({
|
||||
"doctype": "Address",
|
||||
**address_data
|
||||
})
|
||||
address.insert(ignore_permissions=True)
|
||||
return address
|
||||
|
||||
def address_exists(address_line1, address_line2, city, state, pincode):
|
||||
"""Check if an address with the given details already exists."""
|
||||
filters = {
|
||||
"address_line1": address_line1,
|
||||
"address_line2": address_line2,
|
||||
"city": city,
|
||||
"state": state,
|
||||
"pincode": pincode
|
||||
}
|
||||
return frappe.db.exists("Address", filters) is not None
|
||||
|
||||
def calculate_address_title(customer_name, address_data):
|
||||
return f"{customer_name} - {address_data.get('address_line1', '')}, {address_data.get('city', '')} - {address_data.get('type', '')}"
|
||||
|
||||
def create_address_links(address_doc, client_doc, contact_docs):
|
||||
print("#####DEBUG: Linking customer to address.")
|
||||
print("#####DEBUG: Client Doc:", client_doc.as_dict(), "Address Doc:", address_doc.as_dict(), "Contact Docs:", [c.as_dict() for c in contact_docs])
|
||||
address_doc.append("links", {
|
||||
"link_doctype": client_doc.doctype,
|
||||
"link_name": client_doc.name
|
||||
})
|
||||
setattr(address_doc, "custom_customer_to_bill" if client_doc.doctype == "Customer" else "lead_name", client_doc.name)
|
||||
# Address -> Contact
|
||||
print("#####DEBUG: Linking contacts to address.")
|
||||
address_doc.custom_contact = next((c.name for c in contact_docs if c.is_primary_contact), contact_docs[0].name)
|
||||
for contact_doc in contact_docs:
|
||||
address_doc.append("custom_linked_contacts", {
|
||||
"contact": contact_doc.name,
|
||||
"email": contact_doc.email_id,
|
||||
"phone": contact_doc.phone,
|
||||
"role": contact_doc.role
|
||||
})
|
||||
address_doc.append("links", {
|
||||
"link_doctype": "Contact",
|
||||
"link_name": contact_doc.name
|
||||
})
|
||||
address_doc.save(ignore_permissions=True)
|
||||
Loading…
Add table
Add a link
Reference in a new issue