Compare commits
4 commits
0bacb2046a
...
0c900618b8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c900618b8 | ||
|
|
b0deab7662 | ||
|
|
c5e4f3f72a | ||
|
|
860bd69531 |
4 changed files with 99 additions and 63 deletions
|
|
@ -26,7 +26,7 @@ def get_estimate_table_data_v2(filters={}, sortings=[], page=1, page_size=10):
|
|||
start=(page) * page_size,
|
||||
order_by=sortings
|
||||
)
|
||||
|
||||
|
||||
estimates = [frappe.get_doc("Quotation", name).as_dict() for name in estimate_names]
|
||||
tableRows = []
|
||||
for estimate in estimates:
|
||||
|
|
@ -41,7 +41,7 @@ def get_estimate_table_data_v2(filters={}, sortings=[], page=1, page_size=10):
|
|||
tableRows.append(tableRow)
|
||||
table_data_dict = build_datatable_dict(data=tableRows, count=count, page=page, page_size=page_size)
|
||||
return build_success_response(table_data_dict)
|
||||
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_estimate_table_data(filters={}, sortings=[], page=1, page_size=10):
|
||||
|
|
@ -283,14 +283,14 @@ def send_estimate_email(estimate_name):
|
|||
attachments=[{"fname": f"{quotation.name}.pdf", "fcontent": pdf}]
|
||||
)
|
||||
print(f"DEBUG: Email sent to {email} successfully.")
|
||||
|
||||
|
||||
# Update quotation status
|
||||
quotation.custom_current_status = "Submitted"
|
||||
quotation.custom_sent = 1
|
||||
quotation.save()
|
||||
quotation.submit()
|
||||
frappe.db.commit()
|
||||
|
||||
|
||||
updated_quotation = frappe.get_doc("Quotation", estimate_name)
|
||||
return build_success_response(updated_quotation.as_dict())
|
||||
except Exception as e:
|
||||
|
|
@ -510,7 +510,7 @@ def upsert_estimate(data):
|
|||
"company": data.get("company"),
|
||||
"actual_customer_name": client_doc.name,
|
||||
"customer_type": address_doc.customer_type,
|
||||
"customer_address": client_doc.custom_billing_address,
|
||||
"customer_address": client_doc.primary_address,
|
||||
"contact_person": data.get("contact_name"),
|
||||
"letter_head": data.get("company"),
|
||||
"custom_project_template": data.get("project_template", None),
|
||||
|
|
|
|||
|
|
@ -382,6 +382,12 @@ custom_fields = {
|
|||
)
|
||||
],
|
||||
"Quotation": [
|
||||
dict(
|
||||
fieldname="custom_installation_address",
|
||||
label="Installation Address",
|
||||
fieldtype="Link",
|
||||
options="Address"
|
||||
),
|
||||
dict(
|
||||
fieldname="requires_half_payment",
|
||||
label="Requires Half Payment",
|
||||
|
|
@ -389,20 +395,12 @@ custom_fields = {
|
|||
default=0,
|
||||
insert_after="custom_installation_address"
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_quotation_template",
|
||||
label="Quotation Template",
|
||||
fieldtype="Link",
|
||||
options="Quotation Template",
|
||||
insert_after="company",
|
||||
description="The template used for generating this quotation."
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_project_template",
|
||||
label="Project Template",
|
||||
fieldtype="Link",
|
||||
options="Project Template",
|
||||
insert_after="custom_quotation_template",
|
||||
insert_after="requires_half_payment",
|
||||
description="The project template to use when creating a project from this quotation.",
|
||||
allow_on_submit=1
|
||||
),
|
||||
|
|
@ -422,13 +420,6 @@ custom_fields = {
|
|||
options="On-Site Meeting",
|
||||
insert_after="custom_job_address"
|
||||
),
|
||||
dict(
|
||||
fieldname="from_onsite_meeting",
|
||||
label="From On-Site Meeting",
|
||||
fieldtype="Link",
|
||||
options="On-Site Meeting",
|
||||
insert_after="custom_job_address"
|
||||
),
|
||||
dict(
|
||||
fieldname="actual_customer_name",
|
||||
label="Customer",
|
||||
|
|
@ -444,9 +435,39 @@ custom_fields = {
|
|||
options="Customer\nLead",
|
||||
insert_after="customer_name",
|
||||
allow_on_submit=1
|
||||
)
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_current_status",
|
||||
label="Status",
|
||||
fieldtype="Select",
|
||||
options="Draft\nSubmitted\nEstimate Accepted\nLost\nWon",
|
||||
insert_after="Date",
|
||||
allow_on_submit=1
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_sent",
|
||||
label="Sent",
|
||||
fieldtype="Check",
|
||||
insert_after="custom_current_status",
|
||||
default=0,
|
||||
allow_on_submit=1
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_followup_needed",
|
||||
label="Follow-up Needed",
|
||||
fieldtype="Check",
|
||||
insert_after="custom_sent",
|
||||
default=0,
|
||||
allow_on_submit=1
|
||||
),
|
||||
],
|
||||
"Sales Order": [
|
||||
dict(
|
||||
fieldname="custom_installation_address",
|
||||
label="Installation Address",
|
||||
fieldtype="Link",
|
||||
options="Address"
|
||||
),
|
||||
dict(
|
||||
fieldname="requires_half_payment",
|
||||
label="Requires Half Payment",
|
||||
|
|
@ -471,7 +492,14 @@ custom_fields = {
|
|||
insert_after="custom_installation_address",
|
||||
description="The address where the job will be performed.",
|
||||
allow_on_submit=1
|
||||
)
|
||||
),
|
||||
dict(
|
||||
fieldname="custom_department_type",
|
||||
label="Department Type",
|
||||
fieldtype="Select",
|
||||
options="\nFencing Install\nWarranty\nSprinkler Service\nLandscape Installation\nLawn Maintenance",
|
||||
insert_after="delivery_date",
|
||||
),
|
||||
],
|
||||
"Project": [
|
||||
dict(
|
||||
|
|
@ -581,5 +609,13 @@ custom_fields = {
|
|||
options="Project Template",
|
||||
insert_after="project"
|
||||
)
|
||||
],
|
||||
"Territory": [
|
||||
dict(
|
||||
fieldname="custom_map",
|
||||
label="Map",
|
||||
fieldtype="Attach Image",
|
||||
insert_after="is_group"
|
||||
)
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
"docstatus": 0,
|
||||
"doctype": "Client Script",
|
||||
"dt": "Quotation",
|
||||
"enabled": 1,
|
||||
"enabled": 0,
|
||||
"modified": "2025-01-08 05:04:26.743210",
|
||||
"module": null,
|
||||
"name": "Quotation - Set Same Valid Until Date",
|
||||
|
|
|
|||
|
|
@ -12,6 +12,45 @@
|
|||
"territory_manager": null,
|
||||
"territory_name": "Rest Of The World"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-04-08 03:16:41.446439",
|
||||
"name": "United States",
|
||||
"old_parent": "All Territories",
|
||||
"parent_territory": "All Territories",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "United States"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-10-24 16:28:49.004134",
|
||||
"name": "Idaho",
|
||||
"old_parent": "United States",
|
||||
"parent_territory": "United States",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "Idaho"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-10-24 16:29:21.492438",
|
||||
"name": "Washington",
|
||||
"old_parent": "United States",
|
||||
"parent_territory": "United States",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "Washington"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
|
|
@ -1246,44 +1285,5 @@
|
|||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "Hayden Canyon"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-10-24 16:29:21.492438",
|
||||
"name": "Washington",
|
||||
"old_parent": "United States",
|
||||
"parent_territory": "United States",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "Washington"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-04-08 03:16:41.446439",
|
||||
"name": "United States",
|
||||
"old_parent": "All Territories",
|
||||
"parent_territory": "All Territories",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "United States"
|
||||
},
|
||||
{
|
||||
"custom_map": null,
|
||||
"docstatus": 0,
|
||||
"doctype": "Territory",
|
||||
"is_group": 1,
|
||||
"modified": "2024-10-24 16:28:49.004134",
|
||||
"name": "Idaho",
|
||||
"old_parent": "United States",
|
||||
"parent_territory": "United States",
|
||||
"targets": [],
|
||||
"territory_manager": null,
|
||||
"territory_name": "Idaho"
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue