refactor: add permission check and minor fixes

This commit is contained in:
khushi8112
2025-10-12 19:22:26 +05:30
parent 6e07aac5b7
commit f14b3ed723
5 changed files with 48 additions and 40 deletions

View File

@@ -288,26 +288,35 @@ class SalesInvoice(SellingController):
"Company", self.company, ["company_logo", "website", "phone_no", "email"], as_dict=True
)
address_display_list = get_address_display_list("Company", self.company)
address_line = address_display_list[0] if address_display_list else ""
required_fields = [
company_details.get("company_logo"),
company_details.get("phone_no"),
company_details.get("email"),
self.company_address,
address_line,
]
if not all(required_fields):
if not frappe.has_permission("Company", "write", throw=False):
frappe.msgprint(
_(
"Some required Company details are missing. You don't have permission to update them. Please contact your System Manager."
)
if not all(required_fields) and not frappe.has_permission("Company", "write", throw=False):
frappe.msgprint(
_(
"Some required Company details are missing. You don't have permission to update them. Please contact your System Manager."
)
return
)
return
if not self.company_address and not frappe.has_permission("Sales Invoice", "write", throw=False):
frappe.msgprint(
_(
"Company Address is missing. You don't have permission to update it. Please contact your System Manager."
)
)
return
address_display_list = get_address_display_list("Company", self.company)
address_line = address_display_list[0].get("address_line1") if address_display_list else ""
required_fields.append(self.company_address)
required_fields.append(address_line)
if not all(required_fields):
frappe.publish_realtime(
"sales_invoice_before_print",
{

View File

@@ -79,30 +79,27 @@
<td class="invoice-info-cell">
{% set company_details = frappe.db.get_value("Company", doc.company, ["website", "email", "phone_no"], as_dict=True) %}
{% set website = company_details.website %}
{% set email = company_details.email %}
{% set phone_no = company_details.phone_no %}
<div class="invoice-info">
<span class="invoice-label">{{ _("Invoice:") }}</span>
<span>{{ doc.name }}</span>
</div>
{% if website %}
{% if company_details.website %}
<div class="invoice-info">
<span class="invoice-label">{{ _("Website:") }}</span>
<span>{{ website }}</span>
<span>{{ company_details.website }}</span>
</div>
{% endif %}
{% if email %}
{% if company_details.email %}
<div class="invoice-info">
<span class="invoice-label">{{ _("Email:") }}</span>
<span>{{ email }}</span>
<span>{{ company_details.email }}</span>
</div>
{% endif %}
{% if phone_no %}
{% if company_details.phone_no %}
<div class="invoice-info">
<span class="invoice-label">{{ _("Contact:") }}</span>
<span>{{ phone_no }}</span>
<span>{{ company_details.phone_no }}</span>
</div>
{% endif %}
</td>

View File

@@ -100,21 +100,23 @@
</div>
<div style="text-align: left; float: right" class="other-details">
{% set company_details = frappe.db.get_value("Company", doc.company, ["website", "email", "phone_no"], as_dict=True) %}
{% set website = company_details.website %} {% set email = company_details.email %} {% set phone_no = company_details.phone_no %} {% if website %}
<div>
<span class="contact-title">{{ _("Website:") }}</span
><span class="contact-value">{{ website }}</span>
</div>
{% endif %} {% if email %}
<div>
<span class="contact-title">{{ _("Email:") }}</span
><span class="contact-value">{{ email }}</span>
</div>
{% endif %} {% if phone_no %}
<div>
<span class="contact-title">{{ _("Contact:") }}</span
><span class="contact-value">{{ phone_no }}</span>
</div>
{% if company_details.website %}
<div>
<span class="contact-title">{{ _("Website:") }}</span
><span class="contact-value">{{ company_details.website }}</span>
</div>
{% endif %}
{% if company_details.email %}
<div>
<span class="contact-title">{{ _("Email:") }}</span
><span class="contact-value">{{ company_details.email }}</span>
</div>
{% endif %}
{% if company_details.phone_no %}
<div>
<span class="contact-title">{{ _("Contact:") }}</span
><span class="contact-value">{{ company_details.phone_no }}</span>
</div>
{% endif %}
</div>
</td>

File diff suppressed because one or more lines are too long

View File

@@ -286,8 +286,8 @@ def create_letter_head():
base_path = frappe.get_app_path("erpnext", "accounts", "letterhead")
letterheads = {
"Letterhead with background colour": "letterhead_with_background_colour.html",
"Letterhead Plain": "letterhead_plain.html",
"Company Letterhead": "company_letterhead.html",
"Company Letterhead - Grey": "company_letterhead_grey.html",
}
for name, filename in letterheads.items():