-
-
Save monojoker/63a5bf0eef17167cddbf to your computer and use it in GitHub Desktop.
Custom Print Format
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style> | |
table.black { | |
box-shadow: inset 0 0 0 100rem black; | |
height: 1px; | |
width: 100%; | |
} | |
table.black tr:first-child td:first-child { | |
color: rgba(255, 255, 250, 0); | |
text-shadow: 0 0 0 white; | |
text-decoration: bold; | |
font-weight: 3; | |
} | |
table.black tr:first-child td.fs4:first-child { | |
font-weight: 4; | |
} | |
</style> | |
{%- macro add_header(page_num, max_pages, doc) -%} | |
{%- if doc.meta.is_submittable and doc.docstatus==2-%} | |
<div class="alert alert-danger text-center"> | |
<h4 style="margin: 0px;">{{ _("CANCELLED") }}</h4></div> | |
{%- endif -%} | |
{% if max_pages > 1 %} | |
<p class="text-right">{{ _("Page #{0} of {1}").format(page_num, max_pages) }}</p> | |
{% endif %} | |
{%- endmacro -%} | |
<small> | |
<font face="verdana"> | |
<table style="width: 100%; height: 60px;"> | |
<tr> | |
<td style="width: 30%;"><img src="/files/erpnext_logo.JPG" height="42" width="158"></td> | |
<td style="width: 20%; text-align: right;"></td> | |
<td style="width: 20%; text-align: left;"> | |
<img src="http://barcodes4.me/barcode/c128b/{{ doc.name }}.jpg" height="50" width="125"> | |
</td> | |
<td style="width: 30%; text-align: right;"><font size="5"><b> | |
{%- if doc.deco_no -%} | |
{{ doc.deco_no }} | |
{%- else -%} | |
{{ doc.name }} | |
{%- endif -%}</b></font> | |
{%- if 'URGENT' in (doc.priority or '') -%}<font color=#FF0000><font size="3"> <b> *URGENT* </b> </font></font>{%- endif -%} | |
</td> | |
</tr> | |
</table> | |
{%- if doc.workflow_state=='Pending' -%} | |
<table style="width: 100%; height: 30px;"> | |
<td style="width: 100%; text-align: center;"><h4>SALES ORDER APPROVAL</h4></td> | |
</table> | |
{%- endif -%} | |
<table style="background-color: #000000; width: 100%"> | |
<tr> | |
<td style="width: 65%; text-align: left;"><font size="3"><font color="white" !important><b> {{ doc.job_name }} </b></font></font></td> | |
<td style="width: 35%; text-align: left;"><font size="2"><font color="white" !important><b> {{ doc.customer_name }} </b></font></font></td> | |
</tr> | |
</table> | |
<div class="row"> | |
<div class="col-xs-7"> | |
<div class="row"> | |
<div class="col-xs-4 text-left"><big><b>Shipping Address:</b></big></div> | |
<div class="col-xs-8 "><big>{%- if doc.manual_contact -%} {{ doc.manual_contact }} {%- else -%} {{ doc.contact_display }}{%- endif -%}<br> | |
{%- if doc.manual_address_1 -%} | |
{{ doc.manual_address_1.replace('\n', "<br/>") }}<br> | |
{%- else -%} | |
{{ doc.customer_name }}<br> | |
{{ doc.shipping_address }} | |
{%- endif -%}</big> </div> | |
</div> | |
<div class="row"> | |
<div class="col-xs-4 text-left"><big><b>Phone:</b></big></div> | |
<div class="col-xs-8 text-left"><big>{{ frappe.db.get_value("Address", {"customer": doc.customer}, "phone") }}</big></div> | |
</div> | |
</div> | |
<div class="col-xs-5"> | |
<div class="row"> | |
<div class="col-xs-6 text-right"><big><b>Cust Order No:</b></big></div> | |
<div class="col-xs-6 "><big>{{ doc.po_no or '' }}</big> </div> | |
</div> | |
<div class="row"> | |
<div class="col-xs-6 text-right"> <big><b>Order Date:</b></big> </div> | |
<div class="col-xs-6 "> | |
<big>{{ doc.get_formatted("transaction_date") }}</big></div> | |
</div> | |
<div class="row"> | |
<font color = "red"> | |
<div class="col-xs-6 text-right"><big><b>Due Date:</b></big></div> | |
<div class="col-xs-6 "><big><b>{{ doc.get_formatted("delivery_date") }}</b></big> </div> | |
</font> | |
</div> | |
<div class="row"> | |
<div class="col-xs-6 text-right"> <big><b>Ship By:</b></big> </div> | |
<div class="col-xs-6 "> | |
<big>{{ doc.ship_by }}</big></div> | |
</div> | |
{%- if doc.workflow_state!="Pending" -%} | |
<div class="row"> | |
<div class="col-xs-6 text-right"> <big><b>Balance Owing:</b></big> </div> | |
<div class="col-xs-6 "> | |
<big>{{ frappe.format_value((doc.base_grand_total or 0.0)- (doc.deposit or 0.0), doc.meta.get_field('base_grand_total'),doc) }}</big></div> | |
{%- else -%} | |
<div class="row"> | |
<div class="col-xs-6 text-right"> <big><b>Total Price:</b></big> </div> | |
<div class="col-xs-6 "> | |
<big>{{ frappe.format_value((doc.base_grand_total or 0.0)- (doc.deposit or 0.0), doc.meta.get_field('base_grand_total'),doc) }}</big></div> | |
{%- endif -%} | |
</div> | |
</div> | |
</div> | |
<br> | |
<table class="table table-condensed table-hover table-bordered"> | |
{%- for row in doc.items -%} | |
{% if frappe.db.get_value("Item", row.item_code, "item_group") != 'Services' %} | |
<tr> | |
<th style="width: 100%; text-align: left; font-size:9pt"> | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><u>Job Type:</u></div> | |
<div class="col-xs-8">{{ row.job_type or '' }}</div> | |
</div> | |
{%- if row.print_process -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left"><u>Print Process:</u></div> | |
<div class="col-xs-8 ">{{ row.print_process or '' }}</div> | |
</div> | |
{%- endif -%} | |
</th> | |
<th style="font-size:9pt; text-align: left"> | |
{%- if row.artwork_instructions -%} | |
<u>Artwork Instructions:</u><br> {{ row.artwork_instructions.replace('\n', "<br/>") or '' }} | |
{%- endif -%}</th> | |
</tr> | |
<tr> | |
<td style="width: 100%; text-align: left; font-size:9pt"> | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Item:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.item_name }}</div> | |
</div> | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Quantity:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ '%4d' % row.qty or '' }}</div> | |
</div> | |
{%- if row.description -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b> Description: </b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.description.replace('\n', "<br/>") or '' }} <br></div> | |
</div> | |
{%- endif -%} | |
{%- if row.stock -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Stock:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.stock or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.stock_colour -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Stock Colour:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.stock_colour or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.code_or_supplier -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Code/Supplier:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.code_or_supplier or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.size -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Stock Size:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.size.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.shirt_sizes -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Shirt Sizes:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.shirt_sizes.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.print_size -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Print Size:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.print_size.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finished_size -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finished Size:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finished_size.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.thickness -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Thickness:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.thickness or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.print_pms_colours -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Print Colours:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.print_pms_colours or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.print_positions -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Print Positions:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.print_positions.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.sides -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Sides:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.sides or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.copy_type -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Copy Type:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.copy_type or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.perforation -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Perforation:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.perforation or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.tape -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Tape:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.tape or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.binding_type -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Binding Type:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.binding_type or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.cover -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Cover:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.cover or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.starting_number -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Starting No:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.starting_number or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.terms_and_conditions -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Ts & Cs:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.terms_and_conditions or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.magnet_grade -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Grade:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.magnet_grade or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.number_up -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Number Up:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.number_up or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.application -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Application:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.application or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.supply_install -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Supply/Install:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.supply_install or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing_gen -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing_gen or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing_mgt -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing_mgt or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing_cor -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing_cor or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing_bsc -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing_bsc or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.finishing_stk -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Finishing:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.finishing_stk or '' }}</div> | |
</div> | |
{%- endif -%} | |
{%- if row.other_details -%} | |
<div class="row"> | |
<div class="col-xs-4 text-left" style="padding-bottom: 10px"><b>Other:</b></div> | |
<div class="col-xs-8 text-left" style="padding-bottom: 10px">{{ row.other_details.replace('\n', "<br/>") or '' }}</div> | |
</div> | |
{%- endif -%} | |
</td> | |
<td style="font-size:9pt"> | |
<div style="width: 250px"> | |
{%- if row.artwork -%} | |
{{ row.artwork or '' }} | |
{%- else -%} | |
{{ doc.artwork or '' }} | |
{%- endif -%} | |
</div><br> | |
</td> | |
</tr> | |
{% endif %} | |
{%- endfor -%} | |
</tbody> | |
</table> | |
{%- if doc.general_information -%} | |
<font size="2">{{ doc.general_information }}</font> | |
{%- endif -%} | |
<p> | |
{%- if doc.despatch_instructions -%} | |
<table class="table table-condensed table-hover table-bordered"> | |
<tr> | |
<th class="text-left"><b>Special Despatch Instructions:</b></th> | |
</tr> | |
<tr> | |
<td> | |
<b><font size="3"><font color="red">{{ doc.despatch_instructions }}</font></b></td> | |
</tr> | |
{%- endif -%} | |
{%- if doc.workflow_state=="Pending" -%} | |
<font size="2"><b>Customer Payment Terms: </font></b>{{ doc.customer_details or '' }} | |
{%- endif -%} | |
<p> | |
</small> | |
</font> | |
{%- if doc.workflow_state=="Pending" -%} | |
{%- for row in doc.items -%} | |
{% if frappe.db.get_value("Item", row.item_code, "item_group") != 'Services' %} | |
<p style="page-break-after:always;"></p> | |
{%- if row.artwork -%} | |
{{ row.artwork or '' }} | |
{%- else -%} | |
{{ doc.artwork or '' }} | |
{%- endif -%} | |
{%- endif -%} | |
{%- endfor -%} | |
{%- endif -%} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment