mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-15 15:45:01 +00:00
style: always show border even when logo is missing
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"align": "Left",
|
||||
"content": "<style>\n .logo-address {\n display: flex;\n align-items: center;\n width: 50%;\n }\n \n .logo {\n border: 1px solid #EDEDED;\n border-radius: 15px;\n width: 180px;\n height: 90px;\n align-content: center;\n margin-right: 5px;\n }\n \n .company-name {\n color: #171717;\n font-size: 15px;\n font-style: normal;\n font-weight: 600;\n line-height: 23px;\n letter-spacing: 0.2px;\n }\n\n .address{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n margin-left: 10px;\n }\n \n .letterhead-right {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n }\n \n .letterhead-container {\n display: flex;\n padding: 12px 0 0;\n justify-content: space-between;\n margin-bottom: 30px;\n }\n \n \n .letterhead-right-div {\n display: flex;\n align-items: flex-start;\n gap: 0 10px;\n }\n \n .letterhead-title {\n color: #7C7C7C;\n width: 60px;\n flex: 1 0 0;\n }\n \n\n</style>\n\n<div class=\"letterhead-container\">\n <div class=\"logo-address\">\n {% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %}\n {% if company_logo %}\n <div class=\"logo\">\n <img src=\"{{ frappe.utils.get_url(company_logo) }}\">\n </div>\n {% endif %}\n <div class=\"address\">\n <div class=\"company-name\">{{ doc.company }}</div>\n {% set company_address = frappe.get_all(\n \"Dynamic Link\",\n fields=[\"parent\"],\n filters={\n \"link_doctype\": \"Company\",\n \"link_name\": doc.company,\n \"parenttype\": \"Address\"\n },\n limit=1\n ) %}\n \n {% if company_address %}\n {% set address = frappe.get_doc(\"Address\", company_address[0].parent) %}\n {{ address.address_line1 or \"\" }}<br>\n {% if address.address_line2 %}{{ address.address_line2 }}<br>{% endif %}\n {{ address.city or \"\" }} {{ address.state or \"\" }} {{ address.pincode or \"\" }} {{ address.country or \"\" }}<br>\n {% endif %}\n </div>\n </div>\n \n\n <div class=\"letterhead-right\">\n {% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %}\n {% set email = frappe.db.get_value(\"Company\", doc.company, \"email\") %}\n {% set phone_no = frappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n \n <div>\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Invoice:\") }}</div>\n <div>{{ doc.name }}</div><br>\n </div>\n </div>\n \n {% if website %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Website:\") }}</div>\n <div>{{ website }}</div><br>\n </div>\n {% endif %}\n {% if email %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Email:\") }}</div>\n <div>{{ email }}</div><br>\n </div>\n {% endif %}\n {% if phone_no %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Contact:\") }}</div>\n <div>{{ phone_no }}</div><br>\n </div>\n {% endif %}\n </div>\n</div>\n",
|
||||
"content": "<style>\n .logo-address {\n display: flex;\n align-items: center;\n width: 50%;\n }\n \n .logo {\n border: 1px solid #EDEDED;\n border-radius: 15px;\n width: 180px;\n height: 90px;\n align-content: center;\n margin-right: 5px;\n }\n \n .company-name {\n color: #171717;\n font-size: 15px;\n font-style: normal;\n font-weight: 600;\n line-height: 23px;\n letter-spacing: 0.2px;\n }\n\n .address{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n margin-left: 10px;\n }\n \n .letterhead-right {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n }\n \n .letterhead-container {\n display: flex;\n padding: 12px 0 0;\n justify-content: space-between;\n margin-bottom: 30px;\n }\n \n \n .letterhead-right-div {\n display: flex;\n align-items: flex-start;\n gap: 0 10px;\n }\n \n .letterhead-title {\n color: #7C7C7C;\n width: 60px;\n flex: 1 0 0;\n }\n \n\n</style>\n\n<div class=\"letterhead-container\">\n <div class=\"logo-address\">\n <div class=\"logo\">\n {% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %}\n {% if company_logo %}\n <img src=\"{{ frappe.utils.get_url(company_logo) }}\">\n {% endif %}\n </div>\n <div class=\"address\">\n <div class=\"company-name\">{{ doc.company }}</div>\n {% set company_address = frappe.get_all(\n \"Dynamic Link\",\n fields=[\"parent\"],\n filters={\n \"link_doctype\": \"Company\",\n \"link_name\": doc.company,\n \"parenttype\": \"Address\"\n },\n limit=1\n ) %}\n \n {% if company_address %}\n {% set address = frappe.get_doc(\"Address\", company_address[0].parent) %}\n {{ address.address_line1 or \"\" }}<br>\n {% if address.address_line2 %}{{ address.address_line2 }}<br>{% endif %}\n {{ address.city or \"\" }} {{ address.state or \"\" }} {{ address.pincode or \"\" }} {{ address.country or \"\" }}<br>\n {% endif %}\n </div>\n </div>\n \n\n <div class=\"letterhead-right\">\n {% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %}\n {% set email = frappe.db.get_value(\"Company\", doc.company, \"email\") %}\n {% set phone_no = frappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n \n <div>\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Invoice:\") }}</div>\n <div>{{ doc.name }}</div><br>\n </div>\n </div>\n \n {% if website %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Website:\") }}</div>\n <div>{{ website }}</div><br>\n </div>\n {% endif %}\n {% if email %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Email:\") }}</div>\n <div>{{ email }}</div><br>\n </div>\n {% endif %}\n {% if phone_no %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Contact:\") }}</div>\n <div>{{ phone_no }}</div><br>\n </div>\n {% endif %}\n </div>\n</div>\n",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Letter Head",
|
||||
@@ -18,13 +18,13 @@
|
||||
"image_width": 0.0,
|
||||
"is_default": 1,
|
||||
"letter_head_name": "Sales Invoice Letter Head",
|
||||
"modified": "2025-09-17 11:58:06.023854",
|
||||
"modified": "2025-09-17 12:31:46.314509",
|
||||
"name": "Sales Invoice Letter Head",
|
||||
"source": "HTML"
|
||||
},
|
||||
{
|
||||
"align": "Left",
|
||||
"content": "<style>\n .letterhead-container {\n display: flex;\n justify-content: space-between;\n padding: 12px;\n margin-bottom: 30px;\n border-radius: 18px;\n background: #F8F8F8;\n }\n \n .logo-container {\n margin-right: 2px;\n }\n\n .logo {\n border: 1px solid #EDEDED;\n border-radius: 15px;\n margin-bottom: 10px;\n width: 90px;\n height: 90px;\n align-content: center;\n }\n \n .invoice {\n text-align: right;\n margin-bottom: 10px;\n }\n\n .company-details {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n }\n \n .address{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n max-width: 370px;\n }\n \n .company-name {\n color: var(--ink-gray-8, #171717);\n font-size: 15px;\n font-style: normal;\n font-weight: 600;\n line-height: 23px;\n letter-spacing: 0.2px;\n }\n\n \n .contact-details {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n justify-content: end;\n }\n \n .letterhead-right-div {\n display: flex;\n align-items: flex-start;\n gap: 0 10px;\n }\n \n .letterhead-title {\n color: #7C7C7C;\n width: 60px;\n flex: 1 0 0;\n }\n \n</style>\n\n<div class=\"letterhead-container\">\n <div class=\"logo-container\">\n {% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %}\n {% if company_logo %}\n <div class=\"logo\">\n <img src=\"{{ frappe.utils.get_url(company_logo) }}\">\n </div>\n {% endif %}\n <div class=\"address\">\n <div class=\"company-name\">{{ doc.company }}</div>\n <span class=\"font-size: 13px;\">\n {% set company_address = frappe.get_all(\n \"Dynamic Link\",\n fields=[\"parent\"],\n filters={\n \"link_doctype\": \"Company\",\n \"link_name\": doc.company,\n \"parenttype\": \"Address\"\n },\n limit=1\n ) %}\n \n {% if company_address %}\n {% set address = frappe.get_doc(\"Address\", company_address[0].parent) %}\n {{ address.address_line1 or \"\" }}<br>\n {% if address.address_line2 %}{{ address.address_line2 }}<br>{% endif %}\n {{ address.city or \"\" }} {{ address.state or \"\" }} {{ address.pincode or \"\" }} {{ address.country or \"\" }}<br>\n {% endif %}\n </span>\n </div>\n </div>\n <div class=\"company-details\">\n \n <div class=\"invoice\">\n <div style=\"font-size: 16px; font-weight: bold;\">\n {{ _(\"Sales Invoice\") }}\n </div>\n <div style=\"color:#7C7C7C;\">\n {{ doc.name }}\n </div>\n </div>\n\n <div class=\"contact-details\">\n {% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %}\n {% set email = frappe.db.get_value(\"Company\", doc.company, \"email\") %}\n {% set phone_no = frappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n \n \n {% if website %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Website:\") }}</div>\n <div>{{ website }}</div><br>\n </div>\n {% endif %}\n {% if email %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Email:\") }}</div>\n <div>{{ email }}</div><br>\n </div>\n {% endif %}\n {% if phone_no %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Contact:\") }}</div>\n <div>{{ phone_no }}</div><br>\n </div>\n {% endif %}\n \n </div>\n </div>\n</div>\n",
|
||||
"content": "<style>\n .letterhead-container {\n display: flex;\n justify-content: space-between;\n padding: 12px;\n margin-bottom: 30px;\n border-radius: 18px;\n background: #F8F8F8;\n }\n \n .logo-container {\n margin-right: 2px;\n }\n\n .logo {\n border: 1px solid #EDEDED;\n border-radius: 15px;\n margin-bottom: 10px;\n width: 90px;\n height: 90px;\n align-content: center;\n }\n \n .invoice {\n text-align: right;\n margin-bottom: 10px;\n }\n\n .company-details {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n }\n \n .address{\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n max-width: 370px;\n }\n \n .company-name {\n color: var(--ink-gray-8, #171717);\n font-size: 15px;\n font-style: normal;\n font-weight: 600;\n line-height: 23px;\n letter-spacing: 0.2px;\n }\n\n \n .contact-details {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n justify-content: end;\n }\n \n .letterhead-right-div {\n display: flex;\n align-items: flex-start;\n gap: 0 10px;\n }\n \n .letterhead-title {\n color: #7C7C7C;\n width: 60px;\n flex: 1 0 0;\n }\n \n</style>\n\n<div class=\"letterhead-container\">\n <div class=\"logo-container\">\n <div class=\"logo\">\n {% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %}\n {% if company_logo %}\n <img src=\"{{ frappe.utils.get_url(company_logo) }}\">\n {% endif %}\n </div>\n <div class=\"address\">\n <div class=\"company-name\">{{ doc.company }}</div>\n <span class=\"font-size: 13px;\">\n {% set company_address = frappe.get_all(\n \"Dynamic Link\",\n fields=[\"parent\"],\n filters={\n \"link_doctype\": \"Company\",\n \"link_name\": doc.company,\n \"parenttype\": \"Address\"\n },\n limit=1\n ) %}\n \n {% if company_address %}\n {% set address = frappe.get_doc(\"Address\", company_address[0].parent) %}\n {{ address.address_line1 or \"\" }}<br>\n {% if address.address_line2 %}{{ address.address_line2 }}<br>{% endif %}\n {{ address.city or \"\" }} {{ address.state or \"\" }} {{ address.pincode or \"\" }} {{ address.country or \"\" }}<br>\n {% endif %}\n </span>\n </div>\n </div>\n <div class=\"company-details\">\n \n <div class=\"invoice\">\n <div style=\"font-size: 16px; font-weight: bold;\">\n {{ _(\"Sales Invoice\") }}\n </div>\n <div style=\"color:#7C7C7C;\">\n {{ doc.name }}\n </div>\n </div>\n\n <div class=\"contact-details\">\n {% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %}\n {% set email = frappe.db.get_value(\"Company\", doc.company, \"email\") %}\n {% set phone_no = frappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n \n \n {% if website %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Website:\") }}</div>\n <div>{{ website }}</div><br>\n </div>\n {% endif %}\n {% if email %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Email:\") }}</div>\n <div>{{ email }}</div><br>\n </div>\n {% endif %}\n {% if phone_no %}\n <div class=\"letterhead-right-div\">\n <div class=\"letterhead-title\">{{ _(\"Contact:\") }}</div>\n <div>{{ phone_no }}</div><br>\n </div>\n {% endif %}\n \n </div>\n </div>\n</div>\n",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Letter Head",
|
||||
@@ -41,7 +41,7 @@
|
||||
"image_width": 0.0,
|
||||
"is_default": 0,
|
||||
"letter_head_name": "Print Format Letter Head",
|
||||
"modified": "2025-09-17 12:10:40.229447",
|
||||
"modified": "2025-09-17 12:31:46.318339",
|
||||
"name": "Print Format Letter Head",
|
||||
"source": "HTML"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user