Merge pull request #50811 from khushi8112/extend-print-format-to-other-docs

feat: Standard Print Format for Purchase Order, Delivery Note and POS Invoice
This commit is contained in:
Khushi Rawat
2025-11-30 21:51:52 +05:30
committed by GitHub
14 changed files with 326 additions and 126 deletions

View File

@@ -1,108 +1,108 @@
<style> <style>
.letter-head { .letter-head {
border-radius: 18px; border-radius: 18px;
padding-right: 12px; padding-right: 12px;
margin-left: 12px; margin-left: 12px;
margin-right: 12px; margin-right: 12px;
} }
.letter-head td{ .letter-head td {
padding: 0px !important; padding: 0px !important;
} }
.invoice-header { .invoice-header {
width: 100%; width: 100%;
} }
.logo-cell { .logo-cell {
width: 100px; width: 100px;
text-align: center; text-align: center;
position: relative; position: relative;
} }
.logo-container { .logo-container {
width: 90px; width: 90px;
display: block; display: block;
} }
.logo-container img { .logo-container img {
max-width: 90px; max-width: 90px;
max-height: 90px; max-height: 90px;
display: inline-block; display: inline-block;
border-radius: 15px; border-radius: 15px;
} }
.company-details { .company-details {
width: 40%; width: 40%;
align-content: center; align-content: center;
} }
.company-name { .company-name {
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
color: #171717; color: #171717;
margin-bottom: 4px; margin-bottom: 4px;
} }
.invoice-info-cell { .invoice-info-cell {
float: right; float: right;
vertical-align: top; vertical-align: top;
} }
.invoice-info { .invoice-info {
margin-bottom: 2px; margin-bottom: 2px;
} }
.invoice-label { .invoice-label {
color: #7C7C7C; color: #7c7c7c;
display: inline-block; display: inline-block;
width: 60px; margin-right: 5px;
margin-right: 5px; }
}
</style> </style>
<table class="invoice-header"> <table class="invoice-header">
<tbody> <tbody>
<tr> <tr>
<td class="logo-cell" style="vertical-align: middle !important;"> <td class="logo-cell" style="vertical-align: middle !important">
<div class="logo-container"> <div class="logo-container">
{% set company_logo = frappe.db.get_value("Company", doc.company, "company_logo") %} {% set company_logo = frappe.db.get_value("Company", doc.company, "company_logo") %} {% if
{% if company_logo %} company_logo %}
<img src="{{ frappe.utils.get_url(company_logo) }}" alt="Company Logo"> <img src="{{ frappe.utils.get_url(company_logo) }}" alt="Company Logo" />
{% endif %} {% endif %}
</div> </div>
</td> </td>
<td class="company-details"> <td class="company-details">
<div class="company-name"> <div class="company-name">{{ doc.company }}</div>
{{ doc.company }} {% if doc.company_address %} {% set company_address = frappe.db.get_value("Address",
</div> doc.company_address, ["address_line1", "address_line2", "city", "state", "pincode",
{% if doc.company_address %} "country"], as_dict=True) %} {% elif doc.billing_address %} {% set company_address =
{% set company_address = frappe.db.get_value("Address", doc.company_address, ["address_line1", "address_line2", "city", "state", "pincode", "country"], as_dict=True) %} frappe.db.get_value("Address", doc.billing_address, ["address_line1", "address_line2", "city",
"state", "pincode", "country"], as_dict=True) %} {% endif %} {% if company_address %} {{
company_address.address_line1 or "" }}<br />
{% if company_address.address_line2 %} {{ company_address.address_line2 }}<br />
{% endif %} {{ company_address.city or "" }}, {{ company_address.state or "" }} {{
company_address.pincode or "" }}, {{ company_address.country or ""}}<br />
{% endif %}
</td>
{{ company_address.get("address_line1") or "" }}<br> <td class="invoice-info-cell">
{% if company_address.get("address_line2") %}{{ company_address.get("address_line2") }}<br>{% endif %} {% set website = frappe.db.get_value("Company", doc.company, "website") %} {% set email =
{{ company_address.get("city") or "" }}, {{ company_address.get("state") or "" }} {{ company_address.get("pincode") or "" }}, {{ company_address.get("country") or "" }}<br> frappe.db.get_value("Company", doc.company, "email") %} {% set phone_no =
{% endif %} frappe.db.get_value("Company", doc.company, "phone_no") %}
</td>
<td class="invoice-info-cell"> <div class="invoice-info">
{% set company_details = frappe.db.get_value("Company", doc.company, ["website", "email", "phone_no"], as_dict=True) %} <span class="invoice-label">{{ doc.doctype }}</span>
<span>{{ doc.name }}</span>
<div class="invoice-info"> </div>
<span class="invoice-label">{{ _("Invoice:") }}</span> {% if website %}
<span>{{ doc.name }}</span> <div class="invoice-info">
</div> <span class="invoice-label">{{ _("Website:") }}</span>
{% if company_details.website %} <span>{{ website }}</span>
<div class="invoice-info"> </div>
<span class="invoice-label">{{ _("Website:") }}</span> {% endif %} {% if email %}
<span>{{ company_details.website }}</span> <div class="invoice-info">
</div> <span class="invoice-label">{{ _("Email:") }}</span>
{% endif %} <span>{{ email }}</span>
{% if company_details.email %} </div>
<div class="invoice-info"> {% endif %} {% if phone_no %}
<span class="invoice-label">{{ _("Email:") }}</span> <div class="invoice-info">
<span>{{ company_details.email }}</span> <span class="invoice-label">{{ _("Contact:") }}</span>
</div> <span>{{ phone_no }}</span>
{% endif %} </div>
{% if company_details.phone_no %} {% endif %}
<div class="invoice-info"> </td>
<span class="invoice-label">{{ _("Contact:") }}</span> </tr>
<span>{{ company_details.phone_no }}</span> </tbody>
</div>
{% endif %}
</td>
</tr>
</tbody>
</table> </table>

View File

@@ -1,7 +1,7 @@
<style> <style>
.print-format-preview { .print-format-preview {
margin-top: 12px; margin-top: 12px;
} }
.letter-head { .letter-head {
border-radius: 18px; border-radius: 18px;
background: #f8f8f8; background: #f8f8f8;
@@ -82,41 +82,43 @@
{% endif %} {% endif %}
<div class="company-name">{{ doc.company }}</div> <div class="company-name">{{ doc.company }}</div>
<div class="company-address"> <div class="company-address">
{% if doc.company_address %} {% if doc.company_address %} {% set company_address = frappe.db.get_value("Address",
{% set company_address = frappe.db.get_value("Address", doc.company_address, ["address_line1", "address_line2", "city", "state", "pincode", "country"], as_dict=True) %} doc.company_address, ["address_line1", "address_line2", "city", "state", "pincode",
{{ company_address.address_line1 or "" }}<br /> "country"], as_dict=True) %} {% elif doc.billing_address %} {% set company_address =
{% if company_address.address_line2 %} {{ company_address.address_line2 }}<br /> {% endif %} frappe.db.get_value("Address", doc.billing_address, ["address_line1", "address_line2",
{{ company_address.city or "" }}, {{ company_address.state or "" }} "city", "state", "pincode", "country"], as_dict=True) %} {% endif %} {% if company_address
{{ company_address.pincode or "" }}, {{ company_address.country or ""}}<br /> %} {{ company_address.address_line1 or "" }}<br />
{% if company_address.address_line2 %} {{ company_address.address_line2 }}<br />
{% endif %} {{ company_address.city or "" }}, {{ company_address.state or "" }} {{
company_address.pincode or "" }}, {{ company_address.country or ""}}<br />
{% endif %} {% endif %}
</div> </div>
</td> </td>
<td style="vertical-align: top"> <td style="vertical-align: top">
<div style="height: 90px; margin-bottom: 10px; text-align: right"> <div style="height: 90px; margin-bottom: 10px; text-align: right">
<div class="invoice-title">{{ _("Sales Invoice") }}</div> <div class="invoice-title">{{ doc.doctype }}</div>
<div class="invoice-number">{{ doc.name }}</div> <div class="invoice-number">{{ doc.name }}</div>
<br /> <br />
</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",
{% if company_details.website %} "phone_no"], as_dict=True) %} {% set website = company_details.website %} {% set email =
<div> company_details.email %} {% set phone_no = company_details.phone_no %} {% if website %}
<span class="contact-title">{{ _("Website:") }}</span <div>
><span class="contact-value">{{ company_details.website }}</span> <span class="contact-title">{{ _("Website:") }}</span
</div> ><span class="contact-value">{{ website }}</span>
{% endif %} </div>
{% if company_details.email %} {% endif %} {% if email %}
<div> <div>
<span class="contact-title">{{ _("Email:") }}</span <span class="contact-title">{{ _("Email:") }}</span
><span class="contact-value">{{ company_details.email }}</span> ><span class="contact-value">{{ email }}</span>
</div> </div>
{% endif %} {% endif %} {% if phone_no %}
{% if company_details.phone_no %} <div>
<div> <span class="contact-title">{{ _("Contact:") }}</span
<span class="contact-title">{{ _("Contact:") }}</span ><span class="contact-value">{{ phone_no }}</span>
><span class="contact-value">{{ company_details.phone_no }}</span> </div>
</div>
{% endif %} {% endif %}
</div> </div>
</td> </td>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long