feat: standard print format for POS Invoice

This commit is contained in:
khushi8112
2025-11-30 17:00:55 +05:30
parent 945390502e
commit 725a4fcf2d
6 changed files with 167 additions and 132 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