New Print Formats
This commit is contained in:
parent
9207f51ced
commit
3cb68e17b9
80
erpnext/patches/install_print_formats.py
Normal file
80
erpnext/patches/install_print_formats.py
Normal file
@ -0,0 +1,80 @@
|
||||
import os, sys
|
||||
|
||||
path_to_file = os.sep.join(os.path.abspath(__file__).split(os.sep)[:-1] + ['print_formats'])
|
||||
|
||||
def prepare_pf_dict(args_list):
|
||||
"""
|
||||
|
||||
"""
|
||||
pf_list = []
|
||||
for a in args_list:
|
||||
for pf_type in ['Classic', 'Modern', 'Spartan']:
|
||||
pf = {}
|
||||
pf['name'] = " ".join([a['name'], pf_type])
|
||||
pf['file'] = os.sep.join([path_to_file, "".join(pf['name'].split(" ")) + ".html"])
|
||||
pf['module'] = a['module']
|
||||
pf['doc_type'] = a['doc_type']
|
||||
pf['standard'] = 'Yes'
|
||||
pf_list += [pf]
|
||||
return pf_list
|
||||
|
||||
|
||||
pf_to_install = prepare_pf_dict([
|
||||
{
|
||||
'name' : 'Sales Invoice',
|
||||
'doc_type' : 'Receivable Voucher',
|
||||
'module' : 'Accounts'
|
||||
},
|
||||
{
|
||||
'name' : 'Sales Order',
|
||||
'doc_type' : 'Sales Order',
|
||||
'module' : 'Selling'
|
||||
},
|
||||
{
|
||||
'name' : 'Quotation',
|
||||
'doc_type' : 'Quotation',
|
||||
'module' : 'Selling'
|
||||
},
|
||||
{
|
||||
'name' : 'Delivery Note',
|
||||
'doc_type' : 'Delivery Note',
|
||||
'module' : 'Stock'
|
||||
},
|
||||
{
|
||||
'name' : 'Purchase Order',
|
||||
'doc_type' : 'Purchase Order',
|
||||
'module' : 'Buying'
|
||||
}
|
||||
])
|
||||
|
||||
def execute():
|
||||
"""
|
||||
Install print formats
|
||||
"""
|
||||
global pf_to_install
|
||||
print pf_to_install
|
||||
for pf in pf_to_install:
|
||||
install_print_format(pf)
|
||||
print "Installed PF: " + pf['name']
|
||||
|
||||
|
||||
def install_print_format(args):
|
||||
"""
|
||||
Installs print format
|
||||
args is a dict consisting of following keys:
|
||||
* name
|
||||
* module
|
||||
* doctype
|
||||
* standard = "Yes"/"No"
|
||||
* file
|
||||
"""
|
||||
from webnotes.model.doc import Document
|
||||
d = Document('Print Format')
|
||||
d.name = args.name
|
||||
f = open(args.file)
|
||||
d.html = f.read()
|
||||
f.close()
|
||||
d.module = args.module
|
||||
d.doc_type = args.doc_type
|
||||
d.standard = args.standard
|
||||
d.save(1)
|
279
erpnext/patches/print_formats/DeliveryNoteClassic.html
Normal file
279
erpnext/patches/print_formats/DeliveryNoteClassic.html
Normal file
@ -0,0 +1,279 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.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(
|
||||
'Delivery Note',
|
||||
doc.name,
|
||||
'delivery_note_details',
|
||||
'Delivery Note Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
],
|
||||
null,
|
||||
null,
|
||||
{
|
||||
'description' : function(data_row) {
|
||||
if(data_row.serial_no) {
|
||||
return (
|
||||
data_row.description +
|
||||
'<div style="padding-left: 15px;"><i>Serial No.:' +
|
||||
((data_row.serial_no.indexOf('\n')>-1)?'<br />':' ') +
|
||||
data_row.serial_no + '</i></div>'
|
||||
);
|
||||
} 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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><h1>Delivery Note</h1></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=22%><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>Delivery Note Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Sales Order No.</b></td>
|
||||
<td>
|
||||
<script>doc.sales_order_no</script><br />
|
||||
<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
|
||||
</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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
306
erpnext/patches/print_formats/DeliveryNoteModern.html
Normal file
306
erpnext/patches/print_formats/DeliveryNoteModern.html
Normal file
@ -0,0 +1,306 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Helvetica", "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Helvetica", "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h1 {
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-size: 55px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.header-table thead tr:nth-child(1) div {
|
||||
height: 24px;
|
||||
background-color: #696969;
|
||||
vertical-align: middle;
|
||||
padding: 12px 0px 0px 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body table tr td {
|
||||
background-color: #DCDCDC !important;
|
||||
}
|
||||
|
||||
div.page-body table tr:nth-child(1) td {
|
||||
background-color: #696969 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
table.footer-table tfoot td {
|
||||
background-color: #696969;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.imp-details {
|
||||
background-color: #DCDCDC;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- Javascript -->
|
||||
<script>
|
||||
si_std = {
|
||||
print_item_table: function() {
|
||||
var table = print_table(
|
||||
'Delivery Note',
|
||||
doc.name,
|
||||
'delivery_note_details',
|
||||
'Delivery Note Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
],
|
||||
null,
|
||||
null,
|
||||
{
|
||||
'description' : function(data_row) {
|
||||
if(data_row.serial_no) {
|
||||
return (
|
||||
data_row.description +
|
||||
'<div style="padding-left: 15px;"><i>Serial No.:' +
|
||||
((data_row.serial_no.indexOf('\n')>-1)?'<br />':' ') +
|
||||
data_row.serial_no + '</i></div>'
|
||||
);
|
||||
} 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><div><h1>Delivery Note</h1></div></td></tr>
|
||||
<tr><td colspan=2><div style="height:15px"></div></td></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width=60%><table width=100% cellspacing=0><tbody>
|
||||
<tr>
|
||||
<td width=22%><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 class='imp-details'>
|
||||
<td><b>Delivery Note No.</b></td>
|
||||
<td><script>cur_frm.docname</script></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=63%><b>Delivery Note Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Sales Order No.</b></td>
|
||||
<td>
|
||||
<script>doc.sales_order_no</script><br />
|
||||
<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
|
||||
</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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold' class='imp-details'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_export</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan=2><div></div></td><tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
302
erpnext/patches/print_formats/DeliveryNoteSpartan.html
Normal file
302
erpnext/patches/print_formats/DeliveryNoteSpartan.html
Normal file
@ -0,0 +1,302 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
}
|
||||
|
||||
table, td {
|
||||
border-collapse: collapse !important;
|
||||
padding: 0px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h3 {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
table.header-table thead td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.header-table > thead,
|
||||
table.header-table > tbody > tr > td,
|
||||
table.footer-table > tbody > tr > td {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.footer-table > tbody,
|
||||
table.header-table > thead {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
|
||||
table.header-table > thead {
|
||||
border-top: 3px solid black;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body td {
|
||||
background-color: white !important;
|
||||
border: 0.5px solid black !important;
|
||||
}
|
||||
|
||||
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(
|
||||
'Delivery Note',
|
||||
doc.name,
|
||||
'delivery_note_details',
|
||||
'Delivery Note Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
],
|
||||
null,
|
||||
null,
|
||||
{
|
||||
'description' : function(data_row) {
|
||||
if(data_row.serial_no) {
|
||||
return (
|
||||
data_row.description +
|
||||
'<div style="padding-left: 15px;"><i>Serial No.:' +
|
||||
((data_row.serial_no.indexOf('\n')>-1)?'<br />':' ') +
|
||||
data_row.serial_no + '</i></div>'
|
||||
);
|
||||
} 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><h1>Delivery Note</h1></td></tr>
|
||||
<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width=60%><table width=100% cellspacing=0><tbody>
|
||||
<tr>
|
||||
<td width=22%><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>Delivery Note Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Sales Order No.</b></td>
|
||||
<td>
|
||||
<script>doc.sales_order_no</script><br />
|
||||
<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
|
||||
</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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
||||
|
249
erpnext/patches/print_formats/PurchaseOrderClassic.html
Normal file
249
erpnext/patches/print_formats/PurchaseOrderClassic.html
Normal file
@ -0,0 +1,249 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.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(
|
||||
'Purchase Order',
|
||||
doc.name,
|
||||
'po_details',
|
||||
'PO Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'import_rate', 'import_amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('Purchase Tax Detail', doc.name, 'purchase_tax_details');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</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><h1>Purchase Order</h1></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=22%><b>Name</b></td>
|
||||
<td><script>doc.supplier_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>Purchase Order Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Grand Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_import</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
276
erpnext/patches/print_formats/PurchaseOrderModern.html
Normal file
276
erpnext/patches/print_formats/PurchaseOrderModern.html
Normal file
@ -0,0 +1,276 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Helvetica", "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Helvetica", "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h1 {
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-size: 55px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.header-table thead tr:nth-child(1) div {
|
||||
height: 24px;
|
||||
background-color: #696969;
|
||||
vertical-align: middle;
|
||||
padding: 12px 0px 0px 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body table tr td {
|
||||
background-color: #DCDCDC !important;
|
||||
}
|
||||
|
||||
div.page-body table tr:nth-child(1) td {
|
||||
background-color: #696969 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
table.footer-table tfoot td {
|
||||
background-color: #696969;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.imp-details {
|
||||
background-color: #DCDCDC;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- Javascript -->
|
||||
<script>
|
||||
si_std = {
|
||||
print_item_table: function() {
|
||||
var table = print_table(
|
||||
'Purchase Order',
|
||||
doc.name,
|
||||
'po_details',
|
||||
'PO Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'import_rate', 'import_amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('Purchase Tax Detail', doc.name, 'purchase_tax_details');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</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 colspan=2><div><h1>Purchase Order</h1></div></td></tr>
|
||||
<tr><td colspan=2><div style="height:15px"></div></td></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width=60%><table width=100% cellspacing=0><tbody>
|
||||
<tr>
|
||||
<td width=22%><b>Name</b></td>
|
||||
<td><script>doc.supplier_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 class='imp-details'>
|
||||
<td><b>Purchase Order No.</b></td>
|
||||
<td><script>cur_frm.docname</script></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=63%><b>Purchase Order Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr style='font-weight: bold' class='imp-details'>
|
||||
<td>Grand Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_import</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan=2><div></div></td><tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
272
erpnext/patches/print_formats/PurchaseOrderSpartan.html
Normal file
272
erpnext/patches/print_formats/PurchaseOrderSpartan.html
Normal file
@ -0,0 +1,272 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
}
|
||||
|
||||
table, td {
|
||||
border-collapse: collapse !important;
|
||||
padding: 0px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h3 {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
table.header-table thead td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.header-table > thead,
|
||||
table.header-table > tbody > tr > td,
|
||||
table.footer-table > tbody > tr > td {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.footer-table > tbody,
|
||||
table.header-table > thead {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
|
||||
table.header-table > thead {
|
||||
border-top: 3px solid black;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body td {
|
||||
background-color: white !important;
|
||||
border: 0.5px solid black !important;
|
||||
}
|
||||
|
||||
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(
|
||||
'Purchase Order',
|
||||
doc.name,
|
||||
'po_details',
|
||||
'PO Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'import_rate', 'import_amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('Purchase Tax Detail', doc.name, 'purchase_tax_details');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</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 colspan=2><h1>Purchase Order</h1></td></tr>
|
||||
<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width=60%><table width=100% cellspacing=0><tbody>
|
||||
<tr>
|
||||
<td width=22%><b>Name</b></td>
|
||||
<td><script>doc.supplier_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>Purchase Order Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Grand Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_import)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_import</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
256
erpnext/patches/print_formats/QuotationClassic.html
Normal file
256
erpnext/patches/print_formats/QuotationClassic.html
Normal file
@ -0,0 +1,256 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.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(
|
||||
'Quotation',
|
||||
doc.name,
|
||||
'quotation_details',
|
||||
'Quotation Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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><h1>Quotation</h1></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.lead_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>Quotation Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
283
erpnext/patches/print_formats/QuotationModern.html
Normal file
283
erpnext/patches/print_formats/QuotationModern.html
Normal file
@ -0,0 +1,283 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Helvetica", "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Helvetica", "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h1 {
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-size: 55px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.header-table thead tr:nth-child(1) div {
|
||||
height: 24px;
|
||||
background-color: #696969;
|
||||
vertical-align: middle;
|
||||
padding: 12px 0px 0px 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body table tr td {
|
||||
background-color: #DCDCDC !important;
|
||||
}
|
||||
|
||||
div.page-body table tr:nth-child(1) td {
|
||||
background-color: #696969 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
table.footer-table tfoot td {
|
||||
background-color: #696969;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.imp-details {
|
||||
background-color: #DCDCDC;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- Javascript -->
|
||||
<script>
|
||||
si_std = {
|
||||
print_item_table: function() {
|
||||
var table = print_table(
|
||||
'Quotation',
|
||||
doc.name,
|
||||
'quotation_details',
|
||||
'Quotation Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><div><h1>Quotation</h1></div></td></tr>
|
||||
<tr><td colspan=2><div style="height:15px"></div></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.lead_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 class='imp-details'>
|
||||
<td><b>Quotation No.</b></td>
|
||||
<td><script>cur_frm.docname</script></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=63%><b>Quotation Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold' class='imp-details'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_export</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan=2><div></div></td><tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
279
erpnext/patches/print_formats/QuotationSpartan.html
Normal file
279
erpnext/patches/print_formats/QuotationSpartan.html
Normal file
@ -0,0 +1,279 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
}
|
||||
|
||||
table, td {
|
||||
border-collapse: collapse !important;
|
||||
padding: 0px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h3 {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
table.header-table thead td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.header-table > thead,
|
||||
table.header-table > tbody > tr > td,
|
||||
table.footer-table > tbody > tr > td {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.footer-table > tbody,
|
||||
table.header-table > thead {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
|
||||
table.header-table > thead {
|
||||
border-top: 3px solid black;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body td {
|
||||
background-color: white !important;
|
||||
border: 0.5px solid black !important;
|
||||
}
|
||||
|
||||
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(
|
||||
'Quotation',
|
||||
doc.name,
|
||||
'quotation_details',
|
||||
'Quotation Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '10%', '15%', '32%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><h1>Quotation</h1></td></tr>
|
||||
<tr><td colspan=2><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.lead_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>Quotation Date</b></td>
|
||||
<td><script>date.str_to_user(doc.transaction_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
||||
|
261
erpnext/patches/print_formats/SalesInvoiceClassic.html
Normal file
261
erpnext/patches/print_formats/SalesInvoiceClassic.html
Normal file
@ -0,0 +1,261 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.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(
|
||||
'Receivable Voucher',
|
||||
doc.name,
|
||||
'entries',
|
||||
'RV Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '20%', '37%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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) {
|
||||
console.log(parent);
|
||||
var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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><h1>Invoice</h1></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=40%><b>Invoice Date</b></td>
|
||||
<td><script>date.str_to_user(doc.voucher_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Due Date</b></td>
|
||||
<td><script>date.str_to_user(doc.due_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
288
erpnext/patches/print_formats/SalesInvoiceModern.html
Normal file
288
erpnext/patches/print_formats/SalesInvoiceModern.html
Normal file
@ -0,0 +1,288 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Helvetica", "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Helvetica", "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h1 {
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-size: 55px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.header-table thead tr:nth-child(1) div {
|
||||
height: 24px;
|
||||
background-color: #696969;
|
||||
vertical-align: middle;
|
||||
padding: 12px 0px 0px 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body table tr td {
|
||||
background-color: #DCDCDC !important;
|
||||
}
|
||||
|
||||
div.page-body table tr:nth-child(1) td {
|
||||
background-color: #696969 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
table.footer-table tfoot td {
|
||||
background-color: #696969;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.imp-details {
|
||||
background-color: #DCDCDC;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- Javascript -->
|
||||
<script>
|
||||
si_std = {
|
||||
print_item_table: function() {
|
||||
var table = print_table(
|
||||
'Receivable Voucher',
|
||||
doc.name,
|
||||
'entries',
|
||||
'RV Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '20%', '37%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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) {
|
||||
console.log(parent);
|
||||
var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><div><h1>Invoice</h1></div></td></tr>
|
||||
<tr><td colspan=2><div style="height:15px"></div></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 class='imp-details'>
|
||||
<td><b>Invoice No.</b></td>
|
||||
<td><script>cur_frm.docname</script></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=40%><b>Invoice Date</b></td>
|
||||
<td><script>date.str_to_user(doc.voucher_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Due Date</b></td>
|
||||
<td><script>date.str_to_user(doc.due_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold' class='imp-details'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_export</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan=2><div></div></td><tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
284
erpnext/patches/print_formats/SalesInvoiceSpartan.html
Normal file
284
erpnext/patches/print_formats/SalesInvoiceSpartan.html
Normal file
@ -0,0 +1,284 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
}
|
||||
|
||||
table, td {
|
||||
border-collapse: collapse !important;
|
||||
padding: 0px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h3 {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
table.header-table thead td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.header-table > thead,
|
||||
table.header-table > tbody > tr > td,
|
||||
table.footer-table > tbody > tr > td {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.footer-table > tbody,
|
||||
table.header-table > thead {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
|
||||
table.header-table > thead {
|
||||
border-top: 3px solid black;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body td {
|
||||
background-color: white !important;
|
||||
border: 0.5px solid black !important;
|
||||
}
|
||||
|
||||
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(
|
||||
'Receivable Voucher',
|
||||
doc.name,
|
||||
'entries',
|
||||
'RV Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_name', 'description', 'qty', 'stock_uom',
|
||||
'basic_rate', 'amount'
|
||||
],
|
||||
[// Here specify the labels of column headings
|
||||
'Sr', 'Item Name', 'Description', 'Qty',
|
||||
'UoM', 'Basic Rate', 'Amount'
|
||||
],
|
||||
[// Here specify the column widths
|
||||
'3%', '20%', '37%', '5%',
|
||||
'5%', '15%', '15%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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) {
|
||||
console.log(parent);
|
||||
var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><h1>Invoice</h1></td></tr>
|
||||
<tr><td colspan=2><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=40%><b>Invoice Date</b></td>
|
||||
<td><script>date.str_to_user(doc.voucher_date)</script></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td><b>Due Date</b></td>
|
||||
<td><script>date.str_to_user(doc.due_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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
||||
|
260
erpnext/patches/print_formats/SalesOrderClassic.html
Normal file
260
erpnext/patches/print_formats/SalesOrderClassic.html
Normal file
@ -0,0 +1,260 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.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 Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'description', 'qty', 'stock_uom',
|
||||
'basic_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%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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><h1>Sales Order</h1></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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
287
erpnext/patches/print_formats/SalesOrderModern.html
Normal file
287
erpnext/patches/print_formats/SalesOrderModern.html
Normal file
@ -0,0 +1,287 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Helvetica", "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Helvetica", "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
vertical-align: top;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
border-style: none !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h1 {
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-size: 55px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table.header-table thead tr:nth-child(1) div {
|
||||
height: 24px;
|
||||
background-color: #696969;
|
||||
vertical-align: middle;
|
||||
padding: 12px 0px 0px 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body table tr td {
|
||||
background-color: #DCDCDC !important;
|
||||
}
|
||||
|
||||
div.page-body table tr:nth-child(1) td {
|
||||
background-color: #696969 !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
table.footer-table tfoot td {
|
||||
background-color: #696969;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.imp-details {
|
||||
background-color: #DCDCDC;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!-- Javascript -->
|
||||
<script>
|
||||
si_std = {
|
||||
print_item_table: function() {
|
||||
var table = print_table(
|
||||
'Sales Order',
|
||||
doc.name,
|
||||
'sales_order_details',
|
||||
'Sales Order Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'description', 'qty', 'stock_uom',
|
||||
'basic_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%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><div><h1>Sales Order</h1></div></td></tr>
|
||||
<tr><td colspan=2><div style="height:15px"></div></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 class='imp-details'>
|
||||
<td><b>Sales Order No.</b></td>
|
||||
<td><script>cur_frm.docname</script></td>
|
||||
</tr>
|
||||
<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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold' class='imp-details'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<br /><b>In Words</b><br />
|
||||
<i><script>doc.in_words_export</script></i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan=2><div></div></td><tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
283
erpnext/patches/print_formats/SalesOrderSpartan.html
Normal file
283
erpnext/patches/print_formats/SalesOrderSpartan.html
Normal file
@ -0,0 +1,283 @@
|
||||
<!--
|
||||
Sample Print Format for ERPNext
|
||||
Please use at your own discretion
|
||||
For suggestions and contributions:
|
||||
https://github.com/webnotes/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: "Arial", sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 10px;
|
||||
margin: auto;
|
||||
font-size: 12px;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
.common {
|
||||
font-family: "Arial", sans-serif !important;
|
||||
font-size: 12px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: 2px 0px;
|
||||
}
|
||||
|
||||
table, td {
|
||||
border-collapse: collapse !important;
|
||||
padding: 0px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
table h1, h2, h3, h4, h5, h6 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
table.header-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.header-table h3 {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
table.header-table thead td {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.header-table > thead,
|
||||
table.header-table > tbody > tr > td,
|
||||
table.footer-table > tbody > tr > td {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
table.footer-table > tbody,
|
||||
table.header-table > thead {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
|
||||
table.header-table > thead {
|
||||
border-top: 3px solid black;
|
||||
}
|
||||
|
||||
div.page-body table td:nth-child(6),
|
||||
div.page-body table td:nth-child(7) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.page-body td {
|
||||
background-color: white !important;
|
||||
border: 0.5px solid black !important;
|
||||
}
|
||||
|
||||
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 Detail',
|
||||
[// Here specify the table columns to be displayed
|
||||
'SR', 'item_code', 'description', 'qty', 'stock_uom',
|
||||
'basic_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%'
|
||||
]
|
||||
);
|
||||
|
||||
// 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('RV Tax Detail', doc.name, 'other_charges');
|
||||
var rows = '<table width=100%>\n';
|
||||
for(var i=0; i<oc.length; i++) {
|
||||
rows +=
|
||||
'<tr>\n' +
|
||||
'\t<td>' + oc[i].description + '</td>\n' +
|
||||
'\t<td></td>\n' +
|
||||
'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</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 colspan=2><h1>Sales Order</h1></td></tr>
|
||||
<tr><td colspan=2><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></td>
|
||||
<td width=38%><script>
|
||||
fmt_money(doc.net_total)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
|
||||
<tr>
|
||||
<td>Grand Total</td>
|
||||
<td></td>
|
||||
<td><script>
|
||||
fmt_money(doc.grand_total_export)
|
||||
</script></td>
|
||||
</tr>
|
||||
<tr style='font-weight: bold'>
|
||||
<td>Rounded Total</td>
|
||||
<td><script>doc.currency</script></td>
|
||||
<td><script>
|
||||
fmt_money(doc.rounded_total_export)
|
||||
</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>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta charset="utf-8">
|
||||
<title>ERPNext</title>
|
||||
<meta name="author" content="">
|
||||
<script type="text/javascript">window._version_number="66"
|
||||
<script type="text/javascript">window._version_number="325"
|
||||
|
||||
wn={}
|
||||
wn.provide=function(namespace){var nsl=namespace.split('.');var l=nsl.length;var parent=window;for(var i=0;i<l;i++){var n=nsl[i];if(!parent[n]){parent[n]={}}
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user