Created
July 17, 2014 10:24
-
-
Save rmehta/cea5d01a35d248e09623 to your computer and use it in GitHub Desktop.
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
<!-- | |
Sample Print Format for ERPNext | |
Please use at your own discretion | |
For suggestions and contributions: | |
https://github.com/frappe/erpnext-print-templates | |
Freely usable under MIT license | |
--> | |
<!-- Style Settings --> | |
<style> | |
/* | |
common style for whole page | |
This should include: | |
+ page size related settings | |
+ font family settings | |
+ line spacing settings | |
*/ | |
@media screen { | |
body { | |
width: 8.3in; | |
} | |
} | |
html, body, div, span, td { | |
font-family: "Georgia", serif; | |
font-size: 12px; | |
} | |
body { | |
padding: 10px; | |
margin: auto; | |
font-size: 12px; | |
} | |
.common { | |
font-family: "Georgia", serif !important; | |
font-size: 12px; | |
padding: 10px 0px; | |
} | |
table { | |
border-collapse: collapse; | |
width: 100%; | |
vertical-align: top; | |
} | |
table td { | |
padding: 2px 0px; | |
} | |
table h1, h2, h3, h4, h5, h6 { | |
padding: 0px; | |
margin: 0px; | |
} | |
table.header-table td { | |
vertical-align: top; | |
} | |
table.header-table thead { | |
border-bottom: 1px solid black; | |
} | |
table.header-table h3 { | |
color: gray; | |
} | |
table.header-table thead td { | |
padding: 5px 0px; | |
} | |
div.page-body table td:nth-child(6), | |
div.page-body table td:nth-child(7) { | |
text-align: right; | |
} | |
table.footer-table td { | |
vertical-align: top; | |
} | |
table.footer-table td table td:nth-child(2), | |
table.footer-table td table td:nth-child(3) { | |
text-align: right; | |
} | |
</style> | |
<!-- Javascript --> | |
<script> | |
si_std = { | |
print_item_table: function() { | |
var table = print_table( | |
'Sales Order', | |
doc.name, | |
'sales_order_details', | |
'Sales Order Item', | |
[// Here specify the table columns to be displayed | |
'SR', 'item_code', 'description', 'qty', 'stock_uom', | |
'base_rate', 'amount' | |
], | |
[// Here specify the labels of column headings | |
'Sr', 'Item Code', 'Description', 'Qty', | |
'UoM', 'Basic Rate', 'Amount' | |
], | |
[// Here specify the column widths | |
'3%', '20%', '37%', '5%', | |
'5%', '15%', '15%' | |
], | |
null, | |
null, | |
{ | |
'description' : function(data_row) { | |
if(data_row.discount_percentage) { | |
var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + | |
data_row.discount_percentage + '% on ' + | |
format_currency(data_row.price_list_rate, doc.currency) + '</i></div>'; | |
if(data_row.description.indexOf(to_append)==-1) { | |
return data_row.description + to_append; | |
} else { return data_row.description; } | |
} else { | |
return data_row.description; | |
} | |
} | |
} | |
); | |
// This code takes care of page breaks | |
if(table.appendChild) { | |
out = table.innerHTML; | |
} else { | |
out = ''; | |
for(var i=0; i < (table.length-1); i++) { | |
out += table[i].innerHTML + | |
'<div style = "page-break-after: always;" \ | |
class = "page_break"></div>\ | |
<div class="page-settings"></div>'; | |
} | |
out += table[table.length-1].innerHTML; | |
} | |
return out; | |
}, | |
print_other_charges: function(parent) { | |
var oc = getchildren('Sales Taxes and Charges', doc.name, 'other_charges'); | |
var rows = '<table width=100%>\n'; | |
for(var i=0; i<oc.length; i++) { | |
if(!oc[i].included_in_print_rate) { | |
rows += | |
'<tr>\n' + | |
'\t<td>' + oc[i].description + '</td>\n' + | |
'\t<td style="width: 38%; text-align: right;">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</td>\n' + | |
'</tr>\n'; | |
} | |
} | |
if(doc.discount_amount) { | |
rows += '<tr>\n' + | |
'\t<td>Discount Amount</td>\n' + | |
'\t<td style="width: 38%; text-align: right;">' + format_currency(doc.discount_amount, doc.currency) + '</td>\n' + | |
'</tr>\n'; | |
} | |
return rows + '</table>\n'; | |
} | |
}; | |
</script> | |
<!-- Page Layout Settings --> | |
<div class='common page-header'> | |
<!-- | |
Page Header will contain | |
+ table 1 | |
+ table 1a | |
- Name | |
- Address | |
- Contact | |
- Mobile No | |
+ table 1b | |
- Voucher Date | |
- Due Date | |
--> | |
<table class='header-table' cellspacing=0> | |
<thead> | |
<tr><td><script>'<h1>' + (doc.select_print_heading || 'Sales Order') + '</h1>'</script></td></tr> | |
<tr><td><h3><script>cur_frm.docname</script></h3></td></tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td width=60%><table width=100% cellspacing=0><tbody> | |
<tr> | |
<td width=39%><b>Name</b></td> | |
<td><script>doc.customer_name</script></td> | |
</tr> | |
<tr> | |
<td><b>Address</b></td> | |
<td><script>replace_newlines(doc.address_display)</script></td> | |
</tr> | |
<tr> | |
<td><b>Contact</b></td> | |
<td><script>doc.contact_display</script></td> | |
</tr> | |
</tbody></table></td> | |
<td><table width=100% cellspacing=0><tbody> | |
<tr> | |
<td width=63%><b>Sales Order Date</b></td> | |
<td><script>date.str_to_user(doc.transaction_date)</script></td> | |
<tr> | |
<tr> | |
<td><b>Delivery Date</b></td> | |
<td><script>date.str_to_user(doc.delivery_date)</script></td> | |
<tr> | |
</tbody></table></td> | |
</tr> | |
</tbody> | |
<tfoot> | |
</tfoot> | |
</table> | |
</div> | |
<div class='common page-body'> | |
<!-- | |
Page Body will contain | |
+ table 2 | |
- Sales Invoice Data | |
--> | |
<script>si_std.print_item_table()</script> | |
</div> | |
<div class='common page-footer'> | |
<!-- | |
Page Footer will contain | |
+ table 3 | |
- Terms and Conditions | |
- Total Rounded Amount Calculation | |
- Total Rounded Amount in Words | |
--> | |
<table class='footer-table' width=100% cellspacing=0> | |
<thead> | |
</thead> | |
<tbody> | |
<tr> | |
<td width=60% style='padding-right: 10px;'> | |
<b>Terms, Conditions & Other Information:</b><br /> | |
<script>doc.terms</script> | |
</td> | |
<td> | |
<table cellspacing=0 width=100%><tbody> | |
<tr> | |
<td>Net Total</td> | |
<td style="width: 38%; text-align: right;"><script> | |
format_currency(doc.net_total_export, doc.currency) | |
</script></td> | |
</tr> | |
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr> | |
<tr> | |
<td>Grand Total</td> | |
<td style="width: 38%; text-align: right;"><script> | |
format_currency(doc.grand_total_export, doc.currency) | |
</script></td> | |
</tr> | |
<tr style='font-weight: bold'> | |
<td>Rounded Total</td> | |
<td style="width: 38%; text-align: right;"><script> | |
format_currency(doc.rounded_total_export, doc.currency) | |
</script></td> | |
</tr> | |
</tbody></table> | |
<br /><b>In Words</b><br /> | |
<i><script>doc.in_words_export</script></i> | |
</td> | |
</tr> | |
</tbody> | |
<tfoot> | |
</tfoot> | |
</table> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment