Added half down payment tracking to Project.
This commit is contained in:
parent
8452f57787
commit
ab0dced9ec
2 changed files with 35 additions and 9 deletions
|
|
@ -1,6 +1,16 @@
|
|||
import frappe
|
||||
from custom_ui.services import DbService, AddressService, ClientService
|
||||
|
||||
|
||||
def on_save(doc, method):
|
||||
print("DEBUG: on_save hook triggered for Sales Order", doc.name)
|
||||
if doc.advance_paid >= doc.grand_total/2:
|
||||
if doc.project and doc.half_down_required:
|
||||
print("DEBUG: Advance payments exceed required threshold of half down, setting project half down paid.")
|
||||
project = frappe.get_doc("Project", doc.project)
|
||||
project.is_half_down_paid = True
|
||||
|
||||
|
||||
def before_insert(doc, method):
|
||||
print("DEBUG: before_insert hook triggered for Sales Order")
|
||||
# if doc.custom_project_template == "SNW Install":
|
||||
|
|
@ -9,6 +19,7 @@ def before_insert(doc, method):
|
|||
# if "SNW Install" in [link.project_template for link in address_doc.sales_orders]:
|
||||
# raise frappe.ValidationError("A Sales Order with project template 'SNW Install' is already linked to this address.")
|
||||
|
||||
|
||||
def on_submit(doc, method):
|
||||
print("DEBUG: Info from Sales Order")
|
||||
print(doc.custom_installation_address)
|
||||
|
|
@ -29,7 +40,8 @@ def on_submit(doc, method):
|
|||
"custom_warranty_duration_days": 90,
|
||||
"customer": doc.customer,
|
||||
"job_address": doc.custom_job_address,
|
||||
"sales_order": doc.name
|
||||
"sales_order": doc.name,
|
||||
"requires_half_payment": doc.requires_half_payment
|
||||
})
|
||||
# attatch the job to the sales_order links
|
||||
new_job.insert()
|
||||
|
|
@ -37,6 +49,7 @@ def on_submit(doc, method):
|
|||
except Exception as e:
|
||||
print("ERROR creating Project from Sales Order:", str(e))
|
||||
|
||||
|
||||
def after_insert(doc, method):
|
||||
print("DEBUG: after_insert hook triggered for Sales Order:", doc.name)
|
||||
AddressService.append_link_v2(
|
||||
|
|
@ -49,6 +62,7 @@ def after_insert(doc, method):
|
|||
doc.customer, "sales_orders", {"sales_order": doc.name, "project_template": doc.custom_project_template}
|
||||
)
|
||||
|
||||
|
||||
def create_sales_invoice_from_sales_order(doc, method):
|
||||
pass
|
||||
# try:
|
||||
|
|
|
|||
|
|
@ -596,7 +596,7 @@ def add_custom_fields():
|
|||
label="Is Scheduled",
|
||||
fieldtype="Check",
|
||||
default=0,
|
||||
insert_after="expected_end_time"
|
||||
insert_after="is_half_down_paid"
|
||||
),
|
||||
dict(
|
||||
fieldname="invoice_status",
|
||||
|
|
@ -606,6 +606,20 @@ def add_custom_fields():
|
|||
options="Not Ready\nReady to Invoice\nInvoice Created\nInvoice Sent",
|
||||
insert_after="is_scheduled"
|
||||
),
|
||||
dict(
|
||||
fieldname="requires_half_payment",
|
||||
label="Requires Half Payment",
|
||||
fieldtype="Check",
|
||||
default=0,
|
||||
insert_after="expected_end_time"
|
||||
),
|
||||
dict(
|
||||
fieldname="is_half_down_paid",
|
||||
label="Is Half Down Paid",
|
||||
fieldtype="Check",
|
||||
default=0,
|
||||
insert_after="requires_half_payment"
|
||||
),
|
||||
],
|
||||
"Project Template": [
|
||||
dict(
|
||||
|
|
@ -1252,8 +1266,6 @@ def create_project_templates():
|
|||
]
|
||||
}
|
||||
|
||||
import frappe
|
||||
|
||||
|
||||
def create_bid_meeting_note_form_templates():
|
||||
"""Create Bid Meeting Note Forms if they do not exist."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue