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 "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 = [ required_fields = [
company_details.get("company_logo"), company_details.get("company_logo"),
company_details.get("phone_no"), company_details.get("phone_no"),
company_details.get("email"), company_details.get("email"),
self.company_address,
address_line,
] ]
if not all(required_fields): if not all(required_fields) and not frappe.has_permission("Company", "write", throw=False):
if not frappe.has_permission("Company", "write", throw=False): frappe.msgprint(
frappe.msgprint( _(
_( "Some required Company details are missing. You don't have permission to update them. Please contact your System Manager."
"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( frappe.publish_realtime(
"sales_invoice_before_print", "sales_invoice_before_print",
{ {

View File

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

View File

@@ -100,21 +100,23 @@
</div> </div>
<div style="text-align: left; float: right" class="other-details"> <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 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 %} {% if company_details.website %}
<div> <div>
<span class="contact-title">{{ _("Website:") }}</span <span class="contact-title">{{ _("Website:") }}</span
><span class="contact-value">{{ website }}</span> ><span class="contact-value">{{ company_details.website }}</span>
</div> </div>
{% endif %} {% if email %} {% endif %}
<div> {% if company_details.email %}
<span class="contact-title">{{ _("Email:") }}</span <div>
><span class="contact-value">{{ email }}</span> <span class="contact-title">{{ _("Email:") }}</span
</div> ><span class="contact-value">{{ company_details.email }}</span>
{% endif %} {% if phone_no %} </div>
<div> {% endif %}
<span class="contact-title">{{ _("Contact:") }}</span {% if company_details.phone_no %}
><span class="contact-value">{{ phone_no }}</span> <div>
</div> <span class="contact-title">{{ _("Contact:") }}</span
><span class="contact-value">{{ company_details.phone_no }}</span>
</div>
{% endif %} {% endif %}
</div> </div>
</td> </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") base_path = frappe.get_app_path("erpnext", "accounts", "letterhead")
letterheads = { letterheads = {
"Letterhead with background colour": "letterhead_with_background_colour.html", "Company Letterhead": "company_letterhead.html",
"Letterhead Plain": "letterhead_plain.html", "Company Letterhead - Grey": "company_letterhead_grey.html",
} }
for name, filename in letterheads.items(): for name, filename in letterheads.items():