updated scripts
This commit is contained in:
1 parent
2326f1fbbc
commit
41b55f96c1
118 files changed
+8245
-627
No files matched your search
@@ -0,0 +1,120 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.5
|
||||
Date: 2024-04-21
|
||||
File: 1099-INT.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.5 Fix 'latexpdf' errors with missing data
|
||||
1.4 Correct values passed into 'taxformpart' block
|
||||
1.3 Document available variables; replace deprecated ones
|
||||
1.2 Fix syntax error
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
|
||||
This template has the following variables available:
|
||||
|
||||
SETTINGS:
|
||||
company_name
|
||||
company_address
|
||||
company_phone
|
||||
company_fax
|
||||
company_email
|
||||
businessnumber
|
||||
results:
|
||||
- id
|
||||
legal_name
|
||||
entity_id
|
||||
entity_class
|
||||
control_code
|
||||
meta_number
|
||||
tax_id
|
||||
sales_tax_id
|
||||
acc_sum
|
||||
invoice_sum
|
||||
total_sum
|
||||
invnumber (1)
|
||||
duedate (1)
|
||||
invoice_id (1)
|
||||
line_one
|
||||
line_two
|
||||
line_three
|
||||
city
|
||||
state
|
||||
mail_code
|
||||
|
||||
(1): These fields are only available when the report being printed
|
||||
is a detailed report (as opposed to a summary report).
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
|
||||
\documentclass[usletter]{article}
|
||||
\usepackage{textpos}
|
||||
\usepackage[top=0.0in, bottom=0in, left=0in, right=0in]{geometry}
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\TPHorizModule}{1in}
|
||||
\setlength{\TPVertModule}{1in}
|
||||
|
||||
<?lsmb BLOCK taxformpart ?>
|
||||
\begin{textblock}{4}[0,1](1, 1.5)
|
||||
<?lsmb SETTINGS.company_name || 'No Company Name set in System Defaults' ?>\\
|
||||
<?lsmb SETTINGS.company_address || 'No Company Address set in System Defaults' ?>\\
|
||||
Tel: <?lsmb SETTINGS.company_phone ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](1, 3.5)
|
||||
<?lsmb SETTINGS.businessnumber ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](3, 3.5)
|
||||
<?lsmb taxnumber ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{4}[0,1](1, 4)
|
||||
<?lsmb legal_name ?>\\
|
||||
<?lsmb IF line_one ?>
|
||||
<?lsmb line_one ?>\\
|
||||
<?lsmb IF line_two ?><?lsmb line_two ?>\\ <?lsmb END ?>
|
||||
<?lsmb IF line_three ?><?lsmb line_three ?>\\ <?lsmb END ?>
|
||||
<?lsmb ELSE -?>
|
||||
No billing or physical address set \\
|
||||
<?lsmb END # line_one ?>
|
||||
<?lsmb city ?>, <?lsmb state ?> <?lsmb mail_code ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](4.5, 1.5)
|
||||
<?lsmb total_sum ?>
|
||||
\end{textblock}
|
||||
<?lsmb END # Block taxformpart ?>
|
||||
<?lsmb BLOCK taxform ?>
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb END #BLOCK taxform ?>
|
||||
|
||||
\begin{document}
|
||||
<?lsmb FOR tf in results ?>
|
||||
<?lsmb INCLUDE taxform
|
||||
legal_name = tf.legal_name
|
||||
line_one = tf.line_one
|
||||
line_two = tf.line_two
|
||||
line_three = tf.line_three
|
||||
city = tf.city
|
||||
state = tf.state
|
||||
mail_code = tf.mail_code
|
||||
taxnumber = tf.taxnumber
|
||||
total_sum = tf.total_sum ;
|
||||
END # FOR tf ?>
|
||||
\end{document}
|
||||
|
||||
<?lsmb END # FILTER latex -?>
|
||||
@@ -0,0 +1,128 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.4
|
||||
Date: 2024-04-21
|
||||
File: 1099-MISC.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.4 Fix 'latexpdf' errors with missing data
|
||||
1.3 Correct values passed into 'taxformpart' block
|
||||
1.2 Document available variables; replace deprecated ones
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
|
||||
This template has the following variables available:
|
||||
|
||||
SETTINGS:
|
||||
company_name
|
||||
company_address
|
||||
company_phone
|
||||
company_fax
|
||||
company_email
|
||||
businessnumber
|
||||
results:
|
||||
- id
|
||||
legal_name
|
||||
entity_id
|
||||
entity_class
|
||||
control_code
|
||||
meta_number
|
||||
tax_id
|
||||
sales_tax_id
|
||||
acc_sum
|
||||
invoice_sum
|
||||
total_sum
|
||||
invnumber (1)
|
||||
duedate (1)
|
||||
invoice_id (1)
|
||||
line_one
|
||||
line_two
|
||||
line_three
|
||||
city
|
||||
state
|
||||
mail_code
|
||||
|
||||
(1): These fields are only available when the report being printed
|
||||
is a detailed report (as opposed to a summary report).
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
|
||||
\documentclass[usletter]{article}
|
||||
\usepackage{textpos}
|
||||
\usepackage[top=0.0in, bottom=0in, left=0in, right=0in]{geometry}
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\TPHorizModule}{1in}
|
||||
\setlength{\TPVertModule}{1in}
|
||||
|
||||
<?lsmb BLOCK taxformpart
|
||||
# Defines a repeatable block of TeX commands
|
||||
?>
|
||||
\begin{textblock}{4}[0,1](1, 1.5)
|
||||
<?lsmb SETTINGS.company_name || 'No Company Name set in System Defaults' ?>\\
|
||||
<?lsmb SETTINGS.company_address || 'No Company Address set in System Defaults' ?>\\
|
||||
Tel: <?lsmb SETTINGS.company_phone ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](1, 3.5)
|
||||
<?lsmb SETTINGS.businessnumber ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](3, 3.5)
|
||||
<?lsmb taxnumber ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{4}[0,1](1, 4)
|
||||
<?lsmb legal_name ?>\\
|
||||
<?lsmb IF street1 ?>
|
||||
<?lsmb street1 ?>\\
|
||||
<?lsmb IF street2 ?><?lsmb street2 ?>\\ <?lsmb END ?>
|
||||
<?lsmb IF street3 ?><?lsmb street3 ?>\\ <?lsmb END ?>
|
||||
<?lsmb ELSE -?>
|
||||
No billing or physical address set \\
|
||||
<?lsmb END # street1 ?>
|
||||
<?lsmb city ?>, <?lsmb state ?> <?lsmb mail_code ?>
|
||||
\end{textblock}
|
||||
|
||||
\begin{textblock}{2}[0,1](4.5, 4.5)
|
||||
<?lsmb total_sum ?>
|
||||
\end{textblock}
|
||||
<?lsmb END # Block taxformpart ?>
|
||||
|
||||
<?lsmb BLOCK taxform
|
||||
# Defines a repeatable block of TeX commands
|
||||
?>
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb PROCESS taxformpart ?>
|
||||
\clearpage
|
||||
<?lsmb END #BLOCK taxform ?>
|
||||
|
||||
|
||||
|
||||
\begin{document}
|
||||
<?lsmb
|
||||
# Executes the actual form
|
||||
|
||||
FOREACH tf IN results;
|
||||
INCLUDE taxform
|
||||
legal_name = tf.legal_name
|
||||
street1 = tf.line_one
|
||||
street2 = tf.line_two
|
||||
street3 = tf.line_three
|
||||
city = tf.city
|
||||
state = tf.state
|
||||
mail_code = tf.mail_code
|
||||
taxnumber = tf.taxnumber
|
||||
total_sum = tf.total_sum;
|
||||
END # FOR tf ?>
|
||||
\end{document}
|
||||
<?lsmb END # FILTER latex -?>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2024-10-08
|
||||
File: PNL.csv
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.2 Restore 'heading_account' column (turning out not-spurious)
|
||||
1.1 Remove spurious 'heading_account' column
|
||||
|
||||
-?>
|
||||
account,description,is_heading,heading_account<?lsmb
|
||||
FOREACH col IN report.sorted_col_ids -?>
|
||||
,"<?lsmb report.cheads.ids.$col.props.description ?>"<?lsmb END; ?>
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids ; -?>
|
||||
<?lsmb report.rheads.ids.$row.props.account_number -?>,"<?lsmb report.rheads.ids.$row.props.account_description ?>",<?lsmb IF report.rheads.ids.$row.props.account_type == 'H' -?>Y<?lsmb ELSE ?>N<?lsmb END ?>,<?lsmb
|
||||
PARENT = report.rheads.ids.$row.parent_id ;
|
||||
report.rheads.ids.$PARENT.props.account_number ?><?lsmb
|
||||
FOREACH col IN report.sorted_col_ids ; -?>
|
||||
,<?lsmb report.cells.$row.$col -?><?lsmb
|
||||
END; ?>
|
||||
<?lsmb END; -?>
|
||||
|
Can't render this file because it contains an unexpected character in line 18 and column 53.
|
@@ -0,0 +1,376 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 2.2
|
||||
Date: 2026-02-19
|
||||
File: PNL.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
2.0 Created clickable section heads to collapse parts of hierarchical reports
|
||||
2.1 Simplify indentation calculations; many values are provided as variables as-of 1.13
|
||||
2.2 Fix address not showing below the company name
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb title ?></title>
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
||||
<style type="text/css">
|
||||
table.c1 {border-collapse: collapse}
|
||||
|
||||
.flat-hierarchy .balancesheet .report-head th {
|
||||
font-weight: bold;
|
||||
text-align: right;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.flat-hierarchy .balancesheet .section1.QL,
|
||||
.flat-hierarchy .income_statement .section1 {
|
||||
border: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.flat-hierarchy .balancesheet .section1,
|
||||
.flat-hierarchy .balancesheet .section2,
|
||||
.flat-hierarchy .income_statement .section2 {
|
||||
border-bottom: 3px double black;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy .heading1,
|
||||
.financial-statement.flat-hierarchy .balancesheet .heading2 {
|
||||
border-top: 1px solid black;
|
||||
font-weight: bold;
|
||||
height: 2em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy .income_statement .heading2 {
|
||||
border-top: 1px solid black;
|
||||
font-size: bigger;
|
||||
font-style: italic;
|
||||
height: 2em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy table {
|
||||
margin-top: 3em;
|
||||
min-width: 60ex;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy table td,
|
||||
.financial-statement.flat-hierarchy table th {
|
||||
padding-bottom: 3px; /* add space for the dashed line underlining hovered amounts */
|
||||
}
|
||||
|
||||
.financial-statement .company-name {
|
||||
font-family: monospace;
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement .company-address {
|
||||
font-family: monospace;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#PNL a {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:link {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:visited {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:hover {
|
||||
background-color: inherit;
|
||||
border-bottom: thin dashed;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL td.amount {
|
||||
padding-left: 0.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#PNL tr.separator {
|
||||
min-height: 1em;
|
||||
}
|
||||
|
||||
#PNL tr.sectionhead th {
|
||||
font-weight: bold;
|
||||
margin-top: 4em;
|
||||
padding-top: 2em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#PNL td.total {
|
||||
border: 0;
|
||||
border-color: black;
|
||||
border-style: solid;
|
||||
border-top: 1px;
|
||||
}
|
||||
|
||||
#PNL th {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
#PNL table {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#PNL h1,
|
||||
h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#PNL th[colspan="1"].indent {
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="2"].indent {
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="3"].indent {
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="4"].indent {
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="5"].indent {
|
||||
width: 5em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="6"].indent {
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="7"].indent {
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="8"].indent {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="9"].indent {
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
#PNL td.heading1,
|
||||
#PNL th.heading1 {
|
||||
border-bottom: 1px solid black;
|
||||
border-top: 1px solid black;
|
||||
font-weight: bold;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
#PNL td.heading2,
|
||||
#PNL th.heading2 {
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#PNL table.balancesheet {
|
||||
border-top: 1px solid black;
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
#PNL .amount {
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.financial-statement h1,
|
||||
.financial-statement h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement table {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.financial-statement td.amount {
|
||||
padding-left: 4em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.financial-statement tr.total td,
|
||||
.financial-statement tr.total th {
|
||||
padding-bottom: 2em;
|
||||
}
|
||||
|
||||
.financial-statement tr.total td.amount {
|
||||
border-top: thick double black;
|
||||
}
|
||||
|
||||
.financial-statement th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.financial-statement tr.section-head th,
|
||||
.financial-statement tr.total th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement a,
|
||||
.financial-statement a:visited {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.heading3.H {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.heading2.H {
|
||||
padding-bottom: 1.5em;
|
||||
}
|
||||
.heading4.H {
|
||||
padding-bottom: 0.75em;
|
||||
}
|
||||
.section1 {
|
||||
font-size: 140%;
|
||||
}
|
||||
.section2 {
|
||||
font-size: 120%;
|
||||
}
|
||||
.section3 {
|
||||
font-size: 110%;
|
||||
}
|
||||
.H {
|
||||
font-style: italic;
|
||||
}
|
||||
.section4 {
|
||||
font-size: 105%;
|
||||
}
|
||||
th {
|
||||
font-weight: normal;
|
||||
}
|
||||
@media print {
|
||||
.non-printed {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
let lvl = {};
|
||||
function toggle(tgt,cls) {
|
||||
let elms = document.querySelectorAll(tgt+' .'+cls);
|
||||
let newState = lvl[cls] ? '' : 'none';
|
||||
lvl[cls] = !lvl[cls];
|
||||
for ( var e = elms.length - 1; e >= 0; e-- ) {
|
||||
elms[e].style.display = newState;
|
||||
}
|
||||
}
|
||||
</script></head><?lsmb
|
||||
account_data = report.account_data;
|
||||
|
||||
max_path_depth = report.rheads.max_path_depth;
|
||||
IF report.legacy_hierarchy ;
|
||||
hierarchy = 'flat-hierarchy';
|
||||
ELSE ;
|
||||
hierarchy = 'full-hierarchy';
|
||||
END ;
|
||||
?>
|
||||
<body class="financial-statement <?lsmb dojo_theme ?> <?lsmb hierarchy ?>">
|
||||
<div id="PNL" class="financial-statement <?lsmb hierarchy ?>">
|
||||
<!-- Also used in balance sheet! -->
|
||||
<h1><?lsmb name ?></h1>
|
||||
<div class="company-name">
|
||||
<?lsmb SETTINGS.company_name ?>
|
||||
</div>
|
||||
<div class="company-address">
|
||||
<?lsmb SETTINGS.company_address ?>
|
||||
</div>
|
||||
<table class="income_statement c1">
|
||||
<colgroup class="headings">
|
||||
<?lsmb i = 1;
|
||||
WHILE i <= max_path_depth;
|
||||
' <col class="level' _ i _ '" />';
|
||||
i = i + 1;
|
||||
END;
|
||||
?>
|
||||
</colgroup>
|
||||
<colgroup class="values">
|
||||
<?lsmb i = 1;
|
||||
WHILE i <= report.cheads.ids.size;
|
||||
' <col class="values' _ i _ '" />';
|
||||
i = i + 1;
|
||||
END;
|
||||
?>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="report-head">
|
||||
<th colspan="<?lsmb max_path_depth ?>">
|
||||
</th><?lsmb FOREACH col IN report.sorted_col_ids -?>
|
||||
<th><?lsmb report.cheads.ids.$col.props.description ?></th><?lsmb END -?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids ;
|
||||
row_data = report.rheads.ids.$row;
|
||||
path_depth = row_data.path_depth;
|
||||
path_prefix_len = row_data.path_prefix_len;
|
||||
path_suffix_len = row_data.path_suffix_len;
|
||||
IF row_data.props.account_type == 'H' ;
|
||||
class = 'class="heading' _ path_depth _ ' ' _ row_data.props.account_type _ '"';
|
||||
clazz = "heading" _ path_depth _ ' ' _ row_data.props.account_type;
|
||||
row_type = 'H';
|
||||
ELSIF row_data.props.section_for ;
|
||||
class = 'class="section' _ path_depth _ ' ' _ row_data.heading_props.account_category _ '"';
|
||||
clazz = "section" _ path_depth _ ' ' _ row_data.heading_props.account_category;
|
||||
row_type = 'H';
|
||||
ELSE;
|
||||
class = 'class="account"';
|
||||
clazz = 'account';
|
||||
row_type = 'A';
|
||||
END;
|
||||
?>
|
||||
<tr class="<?lsmb FOREACH sec IN row_data.path ; IF NOT loop.last(); " sub-" _ sec ; END; END; ?>" <?lsmb IF row_type == 'H' ; ?> onclick="toggle('', 'sub-<?lsmb row_data.path.last ?>')" <?lsmb END ?> >
|
||||
<?lsmb IF report.legacy_hierarchy ?>
|
||||
<?lsmb IF path_prefix_len > 0 ?>
|
||||
<th colspan="<?lsmb path_prefix_len ?>" class="indent"> </th>
|
||||
<?lsmb END ?>
|
||||
<?lsmb ELSE ?>
|
||||
<?lsmb- FILTER repeat(path_prefix_len) -?>
|
||||
<th class="indent"> </th>
|
||||
<?lsmb- END -?>
|
||||
<?lsmb- END -?>
|
||||
<th colspan="<?lsmb path_suffix_len ?>" <?lsmb class ?>>
|
||||
<?lsmb IF row_data.props.section_for ;
|
||||
row_data.props.row_description ?></th>
|
||||
<th colspan="<?lsmb report.cheads.ids.size ?>" <?lsmb class ?>>
|
||||
<?lsmb ELSE -?>
|
||||
<?lsmb row_data.props.row_description ?></th><?lsmb FOREACH col IN report.sorted_col_ids -?>
|
||||
<td class="amount <?lsmb clazz ?>">
|
||||
<?lsmb report.cells.$row.$col ?>
|
||||
</td><?lsmb END ?><?lsmb END ?>
|
||||
</tr><?lsmb END ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="non-printed">Click on the headings to collapse sections.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.3
|
||||
Date: 2025-08-30
|
||||
File: PNL.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
1.2 Fixed company address not showing
|
||||
1.3 Simplify indentation calculations; as of 1.13, many pre-calculated
|
||||
values are provided as variables
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
|
||||
<?lsmb
|
||||
max_path_depth = report.rheads.max_path_depth;
|
||||
last_col_no = max_path_depth + 1 + report.sorted_col_ids.size;
|
||||
IF report.legacy_hierarchy ;
|
||||
hierarchy = 'flat-hierarchy';
|
||||
ELSE ;
|
||||
hierarchy = 'full-hierarchy';
|
||||
END ;
|
||||
|
||||
-?>
|
||||
|
||||
\documentclass[10pt]{article}
|
||||
\usepackage{longtable}
|
||||
\usepackage[<?lsmb SETTINGS.papersize ?>paper,top=2cm,bottom=1.5cm,left=1.1cm,right=1.5cm]{geometry}
|
||||
\begin{document}
|
||||
\renewcommand\baselinestretch{1.2}\selectfont
|
||||
\begin{center}
|
||||
\Huge{<?lsmb text('Income Statement') ?>}
|
||||
|
||||
\small{
|
||||
\texttt{<?lsmb SETTINGS.company_name ?>}
|
||||
|
||||
|
||||
\texttt{<?lsmb SETTINGS.company_address ?>}
|
||||
}
|
||||
\end{center}
|
||||
|
||||
|
||||
\begin{longtable}{@{\extracolsep{'0pt}}<?lsmb l = 'l'; l.repeat(max_path_depth);
|
||||
-?>p{2cm}<?lsmb l = 'r'; l.repeat(report.sorted_col_ids.size); ?>}
|
||||
\\
|
||||
\multicolumn{<?lsmb max_path_depth ?>}{l}{} &%
|
||||
<?lsmb
|
||||
FOREACH col IN report.sorted_col_ids;
|
||||
' & \shortstack{';
|
||||
report.cheads.ids.$col.props.description ;
|
||||
'} ';
|
||||
END;
|
||||
?> \\
|
||||
\\
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids ;
|
||||
row_data = report.rheads.ids.$row;
|
||||
path_depth = row_data.path_depth;
|
||||
path_prefix_len = row_data.path_prefix_len;
|
||||
path_suffix_len = row_data.path_suffix_len;
|
||||
IF row_data.props.section_for;
|
||||
IF row_data.heading_props.account_category == 'Q';
|
||||
NEXT;
|
||||
END;
|
||||
END;
|
||||
|
||||
|
||||
desc = row_data.props.row_description;
|
||||
IF row_data.props.account_type != 'A';
|
||||
IF row_data.props.section_for ;
|
||||
desc = '\Large{' _ row_data.props.row_description _ '}';
|
||||
ELSE;
|
||||
'\cline{' _ path_depth _ '-' _ last_col_no _ '} ';
|
||||
END;
|
||||
desc = '\textbf{\emph{' _ desc _ '}}';
|
||||
END ;
|
||||
-?>%
|
||||
%
|
||||
<?lsmb amp = '& '; amp.repeat(path_prefix_len); -?>
|
||||
<?lsmb IF path_suffix_len > 1 -?>
|
||||
\multicolumn{<?lsmb path_suffix_len ?>}{l}{<?lsmb desc ?>}%
|
||||
<?lsmb ELSE -?>
|
||||
<?lsmb desc ?>
|
||||
<?lsmb END -?>
|
||||
%
|
||||
& %
|
||||
<?lsmb FOREACH col IN report.sorted_col_ids;
|
||||
' & '; report.cells.$row.$col;
|
||||
END; -?>
|
||||
%
|
||||
\\
|
||||
%
|
||||
<?lsmb IF row_data.props.account_type != 'A'; -?>
|
||||
<?lsmb IF row_data.props.section_for; -?>
|
||||
\cline{<?lsmb path_depth ?>-<?lsmb last_col_no ?>}
|
||||
\noalign{\vskip 2pt}
|
||||
\cline{<?lsmb path_depth ?>-<?lsmb last_col_no ?>}
|
||||
<?lsmb ELSE -?>
|
||||
\\
|
||||
<?lsmb END -?>
|
||||
|
||||
<?lsmb END -?>
|
||||
<?lsmb END -?>
|
||||
|
||||
\end{longtable}
|
||||
\end{document}
|
||||
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-03-28
|
||||
File: ap_transaction.csv
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
account,amount,description,project
|
||||
<?lsmb FOREACH amount ?><?lsmb lc = loop.index ?><?lsmb accno.${lc} ?>,<?lsmb account.${lc} ?>,<?lsmb amount.${lc} ?>,<?lsmb linedescription.${lc} ?>,<?lsmb projectnumber.${lc} ?>
|
||||
<?lsmb END ?><?lsmb FOREACH t IN taxaccounts.split(' ') ?><?lsmb loop_count = loop.index -?>
|
||||
<?lsmb t.remove('"') ?>,<?lsmb tax.${loop_count} ?>,<?lsmb taxdescription.${loop_count} ?>,
|
||||
<?lsmb END ?>
|
||||
|
Can't render this file because it contains an unexpected character in line 15 and column 18.
|
@@ -0,0 +1,182 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-03-28
|
||||
File: ap_transaction.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('AP Transaction') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
span.c2 {font-size: 64%}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('AP Transaction') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb contact ?><br>
|
||||
<?lsmb END ?> <?lsmb IF vendorphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?> <?lsmb END ?> <?lsmb IF vendorfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?> <?lsmb IF vendortaxnumber ?>
|
||||
<p><?lsmb text('Taxnumber: [_1]', vendortaxnumber) ?> <?lsmb END ?></p>
|
||||
</td>
|
||||
<td align="right">
|
||||
<table>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Invoice #') ?></th>
|
||||
<td><?lsmb invnumber ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Date') ?></th>
|
||||
<td><?lsmb invdate ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Due') ?></th>
|
||||
<td><?lsmb duedate ?></td>
|
||||
</tr><?lsmb IF ponumber ?>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('PO #') ?></th>
|
||||
<td><?lsmb ponumber ?> </td>
|
||||
</tr><?lsmb END ?><?lsmb IF ordnumber ?>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Order #') ?></th>
|
||||
<td><?lsmb ordnumber ?> </td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Employee') ?></th>
|
||||
<td><?lsmb employee ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<?lsmb FOREACH account ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td><?lsmb accno.${loop_count} ?></td>
|
||||
<td><?lsmb account.${loop_count} ?></td>
|
||||
<td width="10"></td>
|
||||
<td align="right"><?lsmb amount.${loop_count} ?></td>
|
||||
<td width="10"></td>
|
||||
<td><?lsmb linedescription.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td width="10"></td>
|
||||
<td><?lsmb projectnumber.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<td width="10"></td>
|
||||
<td align="right"><?lsmb invtotal ?></td><?lsmb ELSE ?>
|
||||
<th colspan="2" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td width="10"></td>
|
||||
<td align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="2" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>@
|
||||
<?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td width="10"></td>
|
||||
<td align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?><?lsmb IF NOT taxincluded ?>
|
||||
<tr>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<td width="10"></td>
|
||||
<td align="right"><?lsmb invtotal ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb text_amount ?>***** <?lsmb decimal ?>/100 <?lsmb currency ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr><?lsmb IF paid_1 ?>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<th><?lsmb text('Payments') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<th><?lsmb text('Date') ?></th>
|
||||
<th> </th>
|
||||
<th><?lsmb text('Source') ?></th>
|
||||
<th><?lsmb text('Memo') ?></th>
|
||||
<th><?lsmb text('Amount') ?></th>
|
||||
</tr><?lsmb END ?><?lsmb FOREACH payment ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<td><?lsmb paymentdate.${loop_count} ?></td>
|
||||
<td><?lsmb paymentaccount.${loop_count} ?></td>
|
||||
<td><?lsmb paymentsource.${loop_count} ?></td>
|
||||
<td><?lsmb paymentmemo.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb payment.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?><?lsmb IF paid_1 ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr><?lsmb IF taxincluded ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3" align="left"><span class=
|
||||
"c2"><?lsmb text('Taxes shown are included in price.') ?></span></th>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,138 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2022-07-22
|
||||
File: ap_transaction.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Fix line descriptions not shown in AR/AP transaction prints
|
||||
1.2 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
\centerline{\MakeUppercase{\textbf{<?lsmb text('AP Transaction') ?>}}}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?> <?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorphone ?>
|
||||
Tel: <?lsmb vendorphone ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorfax ?>
|
||||
Fax: <?lsmb vendorfax ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
|
||||
<?lsmb IF vendortaxnumber ?>
|
||||
Tax Number: <?lsmb vendortaxnumber ?>
|
||||
<?lsmb END ?>
|
||||
}
|
||||
\hfill
|
||||
\begin{tabular}[t]{ll}
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & <?lsmb invnumber ?> \\
|
||||
\textbf{<?lsmb text('Date') ?>} & <?lsmb invdate ?> \\
|
||||
\textbf{<?lsmb text('Due') ?>} & <?lsmb duedate ?> \\
|
||||
<?lsmb IF ponumber ?>
|
||||
\textbf{<?lsmb text('PO #') ?>} & <?lsmb ponumber ?> \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF ordnumber ?>
|
||||
\textbf{<?lsmb text('Order #') ?>} & <?lsmb ordnumber ?> \\
|
||||
<?lsmb END ?>
|
||||
\textbf{<?lsmb text('Employee') ?>} & <?lsmb employee ?> \\
|
||||
\end{tabular}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
|
||||
<?lsmb FOREACH amount ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb accno.${lc} ?> &
|
||||
<?lsmb account.${lc} ?> &
|
||||
<?lsmb amount.${lc} ?> &
|
||||
<?lsmb linedescription.${lc} ?> &
|
||||
<?lsmb projectnumber.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
|
||||
\multicolumn{2}{r}{\textbf{Subtotal}} & <?lsmb subtotal ?> & \\
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
\multicolumn{2}{r}{\textbf{<?lsmb taxdescription.${lc} ?> @ <?lsmb taxrate.${lc} ?> \%}} & <?lsmb tax.${lc} ?> & \\
|
||||
<?lsmb END ?>
|
||||
|
||||
\multicolumn{2}{r}{\textbf{Total}} & <?lsmb invtotal ?> & \\
|
||||
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb text_amount ?> ***** <?lsmb decimal ?>/100 <?lsmb currency ?>
|
||||
|
||||
<?lsmb IF notes ?>
|
||||
\vspace{0.3cm}
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF paid_1 ?>
|
||||
\begin{tabular}{@{}llllr@{}}
|
||||
\multicolumn{5}{c}{\textbf{<?lsmb text('Payments') ?>}} \\
|
||||
\hline
|
||||
\textbf{<?lsmb text('Date') ?>} & & \textbf{<?lsmb text('Source') ?>} & \textbf{<?lsmb text('Memo') ?>} & \textbf{<?lsmb text('Amount') ?>} \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb FOREACH payment ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb paymentdate.${lc} ?> & <?lsmb paymentaccount.${lc} ?> & <?lsmb paymentsource.${lc} ?> & <?lsmb paymentmemo.${lc} ?> & <?lsmb payment.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF paid_1 ?>
|
||||
\end{tabular}
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-03-28
|
||||
File: ar_transaction.csv
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
account,description,amount,memo,project
|
||||
<?lsmb FOREACH amount ?><?lsmb lc = loop.index ?><?lsmb accno.${lc} ?>,<?lsmb account.${lc} ?>,<?lsmb amount.${lc} ?>,<?lsmb linedescription.${lc} ?>,<?lsmb projectnumber.${lc} ?>
|
||||
<?lsmb END ?><?lsmb FOREACH t IN taxaccounts.split(' ') ?><?lsmb loop_count = loop.index -?>
|
||||
<?lsmb t.remove('"') ?>,<?lsmb taxdescription.${loop_count} ?>,<?lsmb tax.${loop_count} ?>,,,
|
||||
<?lsmb END ?>
|
||||
|
Can't render this file because it contains an unexpected character in line 15 and column 18.
|
@@ -0,0 +1,182 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-03-28
|
||||
File: ar_transaction.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('AR Transaction') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
span.c2 {font-size: 64%}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('AR Transaction') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb contact ?><br>
|
||||
<?lsmb END ?> <?lsmb IF customerphone ?><br>
|
||||
<?lsmb text('Tel:') _ ' ' _ customerphone ?> <?lsmb END ?> <?lsmb IF customerfax ?><br>
|
||||
<?lsmb text('Fax:') _ ' ' _ customerfax ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?> <?lsmb IF customertaxnumber ?><br>
|
||||
<?lsmb text('Taxnumber:') _ ' ' _ customertaxnumber ?> <?lsmb END ?></td>
|
||||
<td align="right">
|
||||
<table>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Invoice #') ?></th>
|
||||
<td><?lsmb invnumber ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Date') ?></th>
|
||||
<td><?lsmb invdate ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Due') ?></th>
|
||||
<td><?lsmb duedate ?></td>
|
||||
</tr><?lsmb IF ponumber ?>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('PO #') ?></th>
|
||||
<td><?lsmb ponumber ?> </td>
|
||||
</tr><?lsmb END ?><?lsmb IF ordnumber ?>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Order #') ?></th>
|
||||
<td><?lsmb ordnumber ?> </td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Salesperson') ?></th>
|
||||
<td><?lsmb employee ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<?lsmb FOREACH account ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td><?lsmb accno.${loop_count} ?></td>
|
||||
<td><?lsmb account.${loop_count} ?></td>
|
||||
<td width="10"> </td>
|
||||
<td align="right"><?lsmb amount.${loop_count} ?></td>
|
||||
<td width="10"> </td>
|
||||
<td><?lsmb linedescription.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td width="10"> </td>
|
||||
<td><?lsmb projectnumber.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<td width="10"> </td>
|
||||
<td align="right"><?lsmb invtotal ?></td><?lsmb ELSE ?>
|
||||
<th colspan="2" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td width="10"> </td>
|
||||
<td align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="2" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>@
|
||||
<?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td width="10"> </td>
|
||||
<td align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?><?lsmb IF NOT taxincluded ?>
|
||||
<tr>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<td width="10"> </td>
|
||||
<td align="right"><?lsmb invtotal ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb text_amount ?>***** <?lsmb decimal ?>/100 <?lsmb currency ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr><?lsmb IF paid_1 ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<th><?lsmb text('Payments') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<th><?lsmb text('Date') ?></th>
|
||||
<th> </th>
|
||||
<th><?lsmb text('Source') ?></th>
|
||||
<th><?lsmb text('Amount') ?></th>
|
||||
</tr><?lsmb END ?><?lsmb FOREACH payment ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<td><?lsmb paymentdate.${loop_count} ?></td>
|
||||
<td><?lsmb paymentaccount.${loop_count} ?></td>
|
||||
<td><?lsmb paymentsource.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb payment.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?><?lsmb IF paid_1 ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="9" align="left"><span class=
|
||||
"c2"><?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>
|
||||
<?lsmb text('Registration') _ ' ' _ taxnumber.${loop_count} ?></span></th>
|
||||
</tr><?lsmb END ?><?lsmb IF taxincluded ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="3" align="left"><span class=
|
||||
"c2"><?lsmb text('Taxes shown are included in price.') ?></span></th>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,163 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2022-07-22
|
||||
File: ar_transaction.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Fix line descriptions not shown in AR/AP transaction prints
|
||||
1.2 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
\parbox{\textwidth}{%
|
||||
\parbox[b]{.42\textwidth}{%
|
||||
<?lsmb company ?>
|
||||
|
||||
<?lsmb address ?>
|
||||
}
|
||||
%\parbox[b]{.2\textwidth}{
|
||||
%\includegraphics[scale=0.3]{ledger-smb}
|
||||
%}
|
||||
\hfill
|
||||
\begin{tabular}[b]{rr@{}}
|
||||
<?lsmb text('Tel:') ?> & <?lsmb tel ?>\\
|
||||
<?lsmb text('Fax:') ?> & <?lsmb fax ?>
|
||||
\end{tabular}
|
||||
|
||||
\rule[1.5em]{\textwidth}{0.5pt}
|
||||
}
|
||||
|
||||
\centerline{\MakeUppercase{<?lsmb text('AR Transaction') ?>}}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
<?lsmb IF customerphone ?>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerfax ?>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
|
||||
<?lsmb IF customertaxnumber ?>
|
||||
<?lsmb text('Tax Number: [_1]', customertaxnumber) ?>
|
||||
<?lsmb END ?>
|
||||
}
|
||||
\hfill
|
||||
\begin{tabular}[t]{ll}
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & <?lsmb invnumber ?> \\
|
||||
\textbf{<?lsmb text('Date') ?>} & <?lsmb invdate ?> \\
|
||||
\textbf{<?lsmb text('Due') ?>} & <?lsmb duedate ?> \\
|
||||
<?lsmb IF ponumber ?>
|
||||
\textbf{PO \#} & <?lsmb ponumber ?> \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF ordnumber ?>
|
||||
\textbf{<?lsmb text('Order #') ?>} & <?lsmb ordnumber ?> \\
|
||||
<?lsmb END ?>
|
||||
\textbf{<?lsmb text('Employee') ?>} & <?lsmb employee ?> \\
|
||||
\end{tabular}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}[t]{@{}llrX@{\hspace{1cm}}l@{}}
|
||||
<?lsmb FOREACH amount ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb accno.${lc} ?> &
|
||||
<?lsmb account.${lc} ?> &
|
||||
<?lsmb amount.${lc} ?> &
|
||||
<?lsmb linedescription.${lc} ?> &
|
||||
<?lsmb projectnumber.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
|
||||
\multicolumn{2}{r}{\textbf{Subtotal}} & <?lsmb subtotal ?> & \\
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
\multicolumn{2}{r}{\textbf{<?lsmb taxdescription.${lc} ?> @ <?lsmb taxrate.${lc} ?> \%}} & <?lsmb tax.${lc} ?> & \\
|
||||
<?lsmb END ?>
|
||||
|
||||
\multicolumn{2}{r}{\textbf{Total}} & <?lsmb invtotal ?> & \\
|
||||
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb text_amount ?> ***** <?lsmb decimal ?>/100 <?lsmb currency ?>
|
||||
|
||||
<?lsmb IF notes ?>
|
||||
\vspace{0.3cm}
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF paid_1 ?>
|
||||
\begin{tabular}{@{}lllr@{}}
|
||||
\multicolumn{5}{c}{\textbf{<?lsmb text('Payments') ?>}} \\
|
||||
\hline
|
||||
\textbf{<?lsmb text('Date') ?>} & & \textbf{<?lsmb text('Source') ?>} &
|
||||
\textbf{<?lsmb text('Amount') ?>} \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb FOREACH payment ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb paymentdate.${lc} ?> & <?lsmb paymentaccount.${lc} ?> & <?lsmb paymentsource.${lc} ?> & <?lsmb payment.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF paid_1 ?>
|
||||
\end{tabular}
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
\textbf{\scriptsize <?lsmb taxdescription.${lc} _ ' ' _ text('Registration') _ ' ' _ taxnumber.${lc} ?>} \\
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2024-10-08
|
||||
File: balance_sheet.csv
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.2 Restore 'heading_account' column (turning out not-spurious)
|
||||
1.1 Fix comparison columns and remove spurious 'heading_account' column
|
||||
|
||||
-?>
|
||||
account,description,is_heading,heading_account<?lsmb
|
||||
FOREACH col IN report.sorted_col_ids -?>
|
||||
,"<?lsmb report.cheads.ids.$col.props.description ?>"<?lsmb END; ?>
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids ; -?>
|
||||
<?lsmb report.rheads.ids.$row.props.account_number -?>,"<?lsmb report.rheads.ids.$row.props.account_description ?>",<?lsmb IF report.rheads.ids.$row.props.account_type == 'H' -?>Y<?lsmb ELSE ?>N<?lsmb END ?>,<?lsmb
|
||||
PARENT = report.rheads.ids.$row.parent_id ;
|
||||
report.rheads.ids.$PARENT.props.account_number ?><?lsmb
|
||||
FOREACH col IN report.sorted_col_ids ; -?>
|
||||
,<?lsmb report.cells.$row.$col -?><?lsmb
|
||||
END; ?>
|
||||
<?lsmb END; -?>
|
||||
|
Can't render this file because it contains an unexpected character in line 18 and column 53.
|
@@ -0,0 +1,411 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 2.3
|
||||
Date: 2026-02-19
|
||||
File: balance_sheet.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
2.0 Created clickable section heads to collapse parts of hierarchical reports
|
||||
2.1 Simplify indentation calculations; many values are provided as variables as-of 1.13
|
||||
2.2 Support sections in the column dimension (used for foreign currency reports)
|
||||
2.3 Fix company address not showing below company name
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb title ?></title>
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
||||
<style type="text/css">
|
||||
table.c1 {border-collapse: collapse}
|
||||
|
||||
.flat-hierarchy .balancesheet .report-head th {
|
||||
font-weight: bold;
|
||||
text-align: right;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.flat-hierarchy .balancesheet .section1.QL,
|
||||
.flat-hierarchy .income_statement .section1 {
|
||||
border: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.flat-hierarchy .balancesheet .section1,
|
||||
.flat-hierarchy .balancesheet .section2,
|
||||
.flat-hierarchy .income_statement .section2 {
|
||||
border-bottom: 3px double black;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy .heading1,
|
||||
.financial-statement.flat-hierarchy .balancesheet .heading2 {
|
||||
border-top: 1px solid black;
|
||||
font-weight: bold;
|
||||
height: 2em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy .income_statement .heading2 {
|
||||
border-top: 1px solid black;
|
||||
font-size: bigger;
|
||||
font-style: italic;
|
||||
height: 2em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy table {
|
||||
margin-top: 3em;
|
||||
min-width: 60ex;
|
||||
}
|
||||
|
||||
.financial-statement.flat-hierarchy table td,
|
||||
.financial-statement.flat-hierarchy table th {
|
||||
padding-bottom: 3px; /* add space for the dashed line underlining hovered amounts */
|
||||
}
|
||||
|
||||
.financial-statement .company-name {
|
||||
font-family: monospace;
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement .company-address {
|
||||
font-family: monospace;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#PNL a {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:link {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:visited {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL a:hover {
|
||||
background-color: inherit;
|
||||
border-bottom: thin dashed;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#PNL td.amount {
|
||||
padding-left: 0.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#PNL tr.separator {
|
||||
min-height: 1em;
|
||||
}
|
||||
|
||||
#PNL tr.sectionhead th {
|
||||
font-weight: bold;
|
||||
margin-top: 4em;
|
||||
padding-top: 2em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#PNL td.total {
|
||||
border: 0;
|
||||
border-color: black;
|
||||
border-style: solid;
|
||||
border-top: 1px;
|
||||
}
|
||||
|
||||
#PNL th {
|
||||
padding-left: 5px;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#PNL table {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#PNL h1,
|
||||
h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#PNL th[colspan="1"].indent {
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="2"].indent {
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="3"].indent {
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="4"].indent {
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="5"].indent {
|
||||
width: 5em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="6"].indent {
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="7"].indent {
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="8"].indent {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
#PNL th[colspan="9"].indent {
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
#PNL td.heading1,
|
||||
#PNL th.heading1 {
|
||||
border-bottom: 1px solid black;
|
||||
border-top: 1px solid black;
|
||||
font-weight: bold;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
#PNL td.heading2,
|
||||
#PNL th.heading2 {
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#PNL table.balancesheet {
|
||||
border-top: 1px solid black;
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
#PNL .amount {
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.financial-statement h1,
|
||||
.financial-statement h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement table {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.financial-statement td.amount {
|
||||
padding-left: 4em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.financial-statement tr.total td,
|
||||
.financial-statement tr.total th {
|
||||
padding-bottom: 2em;
|
||||
}
|
||||
|
||||
.financial-statement tr.total td.amount {
|
||||
border-top: thick double black;
|
||||
}
|
||||
|
||||
.financial-statement th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.financial-statement tr.section-head th,
|
||||
.financial-statement tr.total th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.financial-statement a,
|
||||
.financial-statement a:visited {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.heading3.H {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.heading2.H {
|
||||
padding-bottom: 1.5em;
|
||||
}
|
||||
.heading4.H {
|
||||
padding-bottom: 0.75em;
|
||||
}
|
||||
.section1 {
|
||||
font-size: 140%;
|
||||
}
|
||||
.section2 {
|
||||
font-size: 120%;
|
||||
}
|
||||
.section3 {
|
||||
font-size: 110%;
|
||||
}
|
||||
.H {
|
||||
font-style: italic;
|
||||
}
|
||||
.section4 {
|
||||
font-size: 105%;
|
||||
}
|
||||
th {
|
||||
font-weight: normal;
|
||||
}
|
||||
@media print {
|
||||
.non-printed {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
let lvl = {};
|
||||
function toggle(tgt,cls) {
|
||||
let elms = document.querySelectorAll(tgt+' .'+cls);
|
||||
let newState = lvl[cls] ? '' : 'none';
|
||||
lvl[cls] = !lvl[cls];
|
||||
for ( var e = elms.length - 1; e >= 0; e-- ) {
|
||||
elms[e].style.display = newState;
|
||||
}
|
||||
}
|
||||
</script></head><?lsmb
|
||||
|
||||
max_col_path_depth = report.cheads.max_path_depth;
|
||||
max_row_path_depth = report.rheads.max_path_depth;
|
||||
IF report.legacy_hierarchy ;
|
||||
hierarchy = 'flat-hierarchy';
|
||||
ELSE ;
|
||||
hierarchy = 'full-hierarchy';
|
||||
END ;
|
||||
?>
|
||||
<body class="financial-statement <?lsmb dojo_theme ?> <?lsmb hierarchy ?>">
|
||||
<div id="PNL" class="financial-statement <?lsmb hierarchy ?> balance-sheet">
|
||||
<!-- TODO: Find better name!! -->
|
||||
<h1><?lsmb text('Balance Sheet') ?></h1>
|
||||
<h2><?lsmb HLINES.1 ?></h2>
|
||||
<div class="company-name">
|
||||
<?lsmb SETTINGS.company_name ?>
|
||||
</div>
|
||||
<div class="company-address">
|
||||
<?lsmb SETTINGS.company_address ?>
|
||||
</div>
|
||||
<table class="balancesheet c1">
|
||||
<colgroup class="headings">
|
||||
<?lsmb i = 1;
|
||||
WHILE i <= max_row_path_depth;
|
||||
' <col class="level' _ i _ '" />';
|
||||
i = i + 1;
|
||||
END;
|
||||
?>
|
||||
</colgroup>
|
||||
<colgroup class="values">
|
||||
<?lsmb i = 1;
|
||||
FOREACH col IN report.sorted_col_ids ;
|
||||
IF report.cheads.ids.$col.is_leaf;
|
||||
NEXT;
|
||||
END;
|
||||
' <col class="values' _ i _ '" />';
|
||||
i = i + 1;
|
||||
END;
|
||||
?>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<?lsmb head_level = 1;
|
||||
WHILE head_level <= max_col_path_depth ; ?>
|
||||
<tr class="report-head">
|
||||
<th colspan="<?lsmb max_row_path_depth ?>"></th>
|
||||
<?lsmb FOREACH col IN report.sorted_col_ids;
|
||||
IF report.cheads.ids.$col.props.section_for;
|
||||
NEXT;
|
||||
END;
|
||||
IF head_level == report.cheads.ids.$col.path.size -?>
|
||||
<th data-id="<?lsmb col ?>"
|
||||
colspan="<?lsmb report.cheads.ids.$col.leaves ?>"
|
||||
rowspan="<?lsmb report.cheads.ids.$col.is_leaf ? (max_col_path_depth - report.cheads.ids.$col.path.size + 1) : 1 ?>"><?lsmb report.cheads.ids.$col.props.description ?></th>
|
||||
<?lsmb END -?><?lsmb END ?>
|
||||
</tr>
|
||||
<?lsmb head_level = head_level + 1;
|
||||
END ?>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids ;
|
||||
row_data = report.rheads.ids.$row;
|
||||
path_depth = row_data.path_depth;
|
||||
path_prefix_len = row_data.path_prefix_len;
|
||||
path_suffix_len = row_data.path_suffix_len;
|
||||
IF row_data.props.account_type == 'H' ;
|
||||
class = 'class="heading' _ path_depth _ ' ' _ row_data.props.account_type _ '"';
|
||||
clazz = "heading" _ path_depth _ ' ' _ row_data.props.account_type;
|
||||
row_type = 'H';
|
||||
ELSIF row_data.props.section_for ;
|
||||
class = 'class="section' _ path_depth _ ' ' _ row_data.heading_props.account_category _ '"';
|
||||
clazz = "section" _ path_depth _ ' ' _ row_data.heading_props.account_category;
|
||||
row_type = 'H';
|
||||
ELSE;
|
||||
class = 'class="account"';
|
||||
clazz = 'account';
|
||||
row_type = 'A';
|
||||
END;
|
||||
?>
|
||||
<tr class="<?lsmb FOREACH sec IN row_data.path ; IF NOT loop.last(); " sub-" _ sec ; END; END; ?>" <?lsmb IF row_type == 'H' ; ?> onclick="toggle('', 'sub-<?lsmb row_data.path.last ?>')" <?lsmb END ?> >
|
||||
<?lsmb IF report.legacy_hierarchy ?>
|
||||
<?lsmb IF path_prefix_len > 0 ?>
|
||||
<th colspan="<?lsmb path_prefix_len ?>" class="indent"> </th>
|
||||
<?lsmb END ?>
|
||||
<?lsmb ELSE ?>
|
||||
<?lsmb FILTER repeat(path_prefix_len) -?>
|
||||
<th class="indent"> </th>
|
||||
<?lsmb- END -?>
|
||||
<?lsmb END ?>
|
||||
<th colspan="<?lsmb path_suffix_len ?>" <?lsmb class ?>>
|
||||
<?lsmb IF row_data.props.section_for ;
|
||||
row_data.props.row_description ?></th>
|
||||
<th colspan="<?lsmb report.cheads.ids.size ?>" <?lsmb class ?>>
|
||||
<?lsmb ELSE -?>
|
||||
<?lsmb row_data.props.row_description ?></th><?lsmb FOREACH col IN report.sorted_col_ids;
|
||||
IF not report.cheads.ids.$col.is_leaf;
|
||||
NEXT;
|
||||
END;
|
||||
-?>
|
||||
<td class="amount <?lsmb clazz ?>">
|
||||
<?lsmb report.cells.$row.$col ?>
|
||||
</td><?lsmb END ?><?lsmb END ?>
|
||||
</tr><?lsmb END ?><!--
|
||||
<h2><?lsmb text('Key Ratios'); ?></h2>
|
||||
<h2><?lsmb text('First column only') ?></h2>
|
||||
<table>
|
||||
<tr><th><?lsmb text('Assets to Liabilities') ?></th>
|
||||
<td><?lsmb report.balance_sheet.ratios.AL ?></td>
|
||||
</tr>
|
||||
<tr><th><?lsmb text('Assets to Equity') ?></th>
|
||||
<td><?lsmb report.balance_sheet.ratios.AQ ?></td>
|
||||
</tr>
|
||||
<tr><th><?lsmb text('Equity to Liabilities') ?></th>
|
||||
<td><?lsmb report.balance_sheet.ratios.QL ?></td>
|
||||
</tr>
|
||||
-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="non-printed">Click on the headings to collapse sections.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,136 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.4
|
||||
Date: 2025-08-31
|
||||
File: balance_sheet.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
1.2 Fixed company address not showing
|
||||
1.3 Simplify indentation calculations; as of 1.13, many pre-calculated
|
||||
values are provided as variables
|
||||
1.4 Support for sections in the column dimension (used for
|
||||
foreign currency reports)
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } -?>
|
||||
|
||||
<?lsmb
|
||||
max_col_path_depth = report.cheads.max_path_depth;
|
||||
max_row_path_depth = report.rheads.max_path_depth;
|
||||
leaf_columns = 0;
|
||||
FOREACH col IN report.sorted_col_ids ;
|
||||
IF report.cheads.ids.$col.is_leaf ;
|
||||
leaf_columns = leaf_columns + 1;
|
||||
END;
|
||||
END;
|
||||
last_col_no = max_row_path_depth + 1 + leaf_columns;
|
||||
IF report.legacy_hierarchy ;
|
||||
hierarchy = 'flat-hierarchy';
|
||||
ELSE ;
|
||||
hierarchy = 'full-hierarchy';
|
||||
END ;
|
||||
|
||||
-?>
|
||||
|
||||
\documentclass[10pt]{article}
|
||||
\usepackage{longtable}
|
||||
\usepackage{multirow}
|
||||
\usepackage[<?lsmb SETTINGS.papersize ?>paper,top=2cm,bottom=1.5cm,left=1.1cm,right=1.5cm]{geometry}
|
||||
\begin{document}
|
||||
\renewcommand\baselinestretch{1.2}\selectfont
|
||||
\begin{center}
|
||||
\Huge{<?lsmb text('Balance Sheet') ?>}
|
||||
|
||||
<?lsmb HLINES.1 ?>
|
||||
|
||||
\small{
|
||||
\texttt{<?lsmb SETTINGS.company_name ?>}
|
||||
|
||||
|
||||
\texttt{<?lsmb SETTINGS.company_address ?>}
|
||||
}
|
||||
\end{center}
|
||||
|
||||
|
||||
\begin{longtable}{@{\extracolsep{10pt}}<?lsmb l = 'l'; l.repeat(max_row_path_depth) -?>p{2cm}<?lsmb
|
||||
l = 'r'; l.repeat(report.sorted_col_ids.size); -?>}
|
||||
\\
|
||||
<?lsmb head_level = 1;
|
||||
WHILE head_level <= max_col_path_depth; ?>
|
||||
\multicolumn{<?lsmb max_row_path_depth ?>}{l}{} &%
|
||||
<?lsmb
|
||||
FOREACH col IN report.sorted_col_ids;
|
||||
IF report.cheads.ids.$col.props.section_for;
|
||||
NEXT;
|
||||
END;
|
||||
IF head_level == report.cheads.ids.$col.path.size ;
|
||||
' & \multicolumn{'; report.cheads.ids.$col.leaves ; '}{l}{\multirow{'; report.cheads.ids.$col.is_leaf ? (max_col_path_depth - report.cheads.ids.$col.path.size + 1) : 1 ; '}{*}{\shortstack{';
|
||||
report.cheads.ids.$col.props.description ;
|
||||
'}}} ';
|
||||
ELSIF head_level > report.cheads.ids.$col.path.size ;
|
||||
' & ';
|
||||
END;
|
||||
END;
|
||||
?> \\
|
||||
<?lsmb head_level = head_level + 1;
|
||||
END ?>
|
||||
\\
|
||||
<?lsmb FOREACH row IN report.sorted_row_ids;
|
||||
row_data = report.rheads.ids.$row;
|
||||
path_depth = row_data.path_depth;
|
||||
path_prefix_len = row_data.path_prefix_len;
|
||||
path_suffix_len = row_data.path_suffix_len;
|
||||
IF row_data.props.section_for ;
|
||||
IF row_data.heading_props.account_category == 'QL';
|
||||
NEXT;
|
||||
END;
|
||||
END;
|
||||
|
||||
desc = row_data.props.row_description;
|
||||
IF report.rheads.ids.$row.props.account_type != 'A';
|
||||
IF NOT report.rheads.ids.$row.props.section_for ;
|
||||
'\cline{' _ path_depth _ '-' _ last_col_no _ '} ';
|
||||
ELSE;
|
||||
desc = '\Large{' _ row_data.props.row_description _ '}';
|
||||
END;
|
||||
desc = '\textbf{\emph{' _ desc _ '}}';
|
||||
END;
|
||||
-?>%
|
||||
<?lsmb amp = '& '; amp.repeat(path_prefix_len); -?>
|
||||
<?lsmb IF path_suffix_len > 1 -?>
|
||||
\multicolumn{<?lsmb path_suffix_len ?>}{l}{<?lsmb desc ?>}%
|
||||
<?lsmb ELSE; ?>
|
||||
<?lsmb desc ?>
|
||||
<?lsmb END -?>
|
||||
%
|
||||
& %
|
||||
<?lsmb FOREACH col IN report.sorted_col_ids;
|
||||
IF report.cheads.ids.$col.props.section_for;
|
||||
NEXT;
|
||||
END;
|
||||
' & '; report.cells.$row.$col;
|
||||
END; -?>
|
||||
%
|
||||
\\
|
||||
%
|
||||
<?lsmb IF row_data.props.account_type != 'A'; -?>
|
||||
<?lsmb IF row_data.props.section_for; -?>
|
||||
\cline{<?lsmb path_depth ?>-<?lsmb last_col_no ?>}
|
||||
\noalign{\vskip 2pt}
|
||||
\cline{<?lsmb path_depth ?>-<?lsmb last_col_no ?>}
|
||||
<?lsmb ELSE -?>
|
||||
\\
|
||||
<?lsmb END -?>
|
||||
|
||||
<?lsmb END ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{longtable}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: bin_list.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Bin List') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Bin List') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('From') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?> <?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF vendorphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?> <?lsmb END ?> <?lsmb IF vendorfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?> <?lsmb shiptocountry ?>
|
||||
<?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Order #') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Date') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Contact') ?></th><?lsmb IF warehouse ?>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Warehouse') ?></th><?lsmb END ?>
|
||||
<th width="17%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb ordnumber ?> </td><?lsmb IF shippingdate ?>
|
||||
<td><?lsmb shippingdate ?></td><?lsmb ELSE ?>
|
||||
<td><?lsmb orddate ?></td><?lsmb END ?>
|
||||
<td><?lsmb employee ?> </td><?lsmb IF warehouse ?>
|
||||
<td><?lsmb warehouse ?></td><?lsmb END ?>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="left"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Serialnumber') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Recd') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Bin') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td><?lsmb runningnumber.${loop_count} ?></td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td><?lsmb serialnumber.${loop_count} ?></td>
|
||||
<td><?lsmb deliverydate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb ship.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td><?lsmb bin.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,144 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: bin_list.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
% Breaking old pagebreak directives
|
||||
%<?xlsmb pagebreak 65 27 37 ?>
|
||||
%\end{tabularx}
|
||||
%
|
||||
%\newpage
|
||||
%
|
||||
%\markboth{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}
|
||||
%
|
||||
%\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
|
||||
% \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
|
||||
%<?xlsmb end pagebreak ?>
|
||||
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{<?lsmb text('From') ?>}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{<?lsmb text('Ship To') ?>}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Bin List') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{Order \#} & \textbf{Date} & \textbf{Contact}
|
||||
<?lsmb IF warehouse ?>
|
||||
& \textbf{<?lsmb text('Warehouse') ?>}
|
||||
<?lsmb END ?>
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>} & \textbf{<?lsmb text('Ship via') ?>} \\ [0.5em]
|
||||
\hline
|
||||
|
||||
<?lsmb ordnumber ?>
|
||||
<?lsmb IF shippingdate ?>
|
||||
& <?lsmb shippingdate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF NOT shippingdate ?>
|
||||
& <?lsmb orddate ?>
|
||||
<?lsmb END ?>
|
||||
& <?lsmb employee ?>
|
||||
<?lsmb IF warehouse ?>
|
||||
& <?lsmb warehouse ?>
|
||||
<?lsmb END ?>
|
||||
& <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}rllllrrll@{}}
|
||||
\textbf{<?lsmb text('Item') ?>} & \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>} &
|
||||
\textbf{<?lsmb text('Serial Number') ?>} &
|
||||
& \textbf{<?lsmb text('Qty') ?>} & \textbf{<?lsmb text('Recd') ?>} &
|
||||
& \textbf{<?lsmb text('Bin') ?>} \\
|
||||
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb serialnumber.${lc} ?> &
|
||||
<?lsmb deliverydate.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb ship.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb bin.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,44 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: check.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
\documentclass{scrartcl}
|
||||
\usepackage{iftex}
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\else
|
||||
\usepackage{fontspec}
|
||||
\fi
|
||||
\usepackage{tabularx}
|
||||
\usepackage[<?lsmb SETTINGS.papersize ?>paper,top=2cm,bottom=1.5cm,left=1.1cm,right=1.5cm]{geometry}
|
||||
\usepackage{graphicx}
|
||||
|
||||
<?lsmb REQUIRE check_base ?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb PROCESS check_single ?>
|
||||
|
||||
\end{document}
|
||||
<?lsmb END # FILTER latex { format="$FORMAT($PROCESSOR)" } -?>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: check_base.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb BLOCK check_single ?>
|
||||
\parbox[t]{12cm}{
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address ?>}
|
||||
\hfill
|
||||
\parbox[t]{6cm}{\hfill <?lsmb source ?>}
|
||||
|
||||
\vspace*{0.6cm}
|
||||
|
||||
<?lsmb text_amount ?> \dotfill <?lsmb decimal ?>/100 \makebox[0.5cm]{\hfill}
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
\hfill <?lsmb datepaid ?> \makebox[2cm]{\hfill} <?lsmb
|
||||
format_amount({amount = amount, format = '1,000.00', money = 1}) ?>
|
||||
|
||||
% different date format for datepaid
|
||||
% <?lsmb DD ?><?lsmb MM ?><?lsmb YYYY ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb street1 ?>
|
||||
|
||||
<?lsmb street2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END # state ?>
|
||||
|
||||
<?lsmb mail_code ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{1.8cm}
|
||||
|
||||
<?lsmb memo ?>
|
||||
|
||||
\vspace{0.8cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
<?lsmb name ?> \hfill <?lsmb datepaid ?> \hfill <?lsmb source ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
\begin{tabularx}{\textwidth}{lXrr@{}}
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Invoice Date') ?>}
|
||||
& \textbf{<?lsmb text('Amount Due') ?>} & \textbf{<?lsmb text('Applied') ?>} \\
|
||||
<?lsmb FOR inv = invoices ?>
|
||||
<?lsmb inv.invnumber ?> & <?lsmb inv.invoice_date ?> \dotfill
|
||||
& <?lsmb inv.due ?> & <?lsmb inv.paid ?> \\
|
||||
<?lsmb END # FOREACH inv ?>
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
<?lsmb memo ?>
|
||||
|
||||
\vfill
|
||||
<?lsmb message ?>
|
||||
<?lsmb END # BLOCK ?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: check_multiple.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
\documentclass{scrartcl}
|
||||
\usepackage{iftex}
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\else
|
||||
\usepackage{fontspec}
|
||||
\fi
|
||||
\usepackage{tabularx}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[<?lsmb SETTINGS.papersize ?>paper,top=2cm,bottom=1.5cm,left=1.1cm,right=1.5cm]{geometry}
|
||||
|
||||
<?lsmb PROCESS check_base ?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb FOR check = checks ?>
|
||||
<?lsmb name = check.name ?>
|
||||
<?lsmb INCLUDE check_single
|
||||
source = check.source
|
||||
control_code = check.control_code
|
||||
text_amount = check.text_amount
|
||||
decimal = check.decimal
|
||||
amount = check.amount
|
||||
legal_name = check.legal_name
|
||||
street1 = check.street1
|
||||
street2 = check.street2
|
||||
city = check.city
|
||||
state = check.state
|
||||
mail_code = check.mail_code
|
||||
country = check.country
|
||||
memo = check.memo
|
||||
invoices = check.invoices
|
||||
?>
|
||||
\clearpage
|
||||
<?lsmb END # FOR check ?>
|
||||
\end{document}
|
||||
<?lsmb END # FILTER latex { format="$FORMAT($PROCESSOR)" } -?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2025-05-02
|
||||
File: display_report.csv
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged 'dynatable.csv' into this template
|
||||
1.2 Fix missing newlines after each row
|
||||
|
||||
|
||||
-?>
|
||||
<?lsmb-
|
||||
|
||||
BLOCK do_quote ;
|
||||
IF VALUE.to_output.defined();
|
||||
value = VALUE.to_output();
|
||||
ELSE;
|
||||
value = VALUE;
|
||||
END;
|
||||
|
||||
IF value.match('[^0-9.+-]'); # any non-digit means run escaping
|
||||
'"'; value.replace('"', '""'); '"'; # " balance the double quotes
|
||||
ELSE;
|
||||
value;
|
||||
END;
|
||||
END;
|
||||
|
||||
BLOCK dynatable;
|
||||
SKIP_TYPES = ['hidden', 'radio', 'checkbox'];
|
||||
|
||||
FOREACH COL IN columns;
|
||||
IF SKIP_TYPES.grep(COL.type).empty();
|
||||
UNLESS loop.first();
|
||||
',';
|
||||
END;
|
||||
INCLUDE do_quote VALUE = COL.name;
|
||||
END;
|
||||
END;
|
||||
"\n";
|
||||
|
||||
FOREACH ROW IN tbody.rows;
|
||||
FOREACH COL IN columns;
|
||||
COL_ID = COL.col_id;
|
||||
IF SKIP_TYPES.grep(COL.type).empty();
|
||||
UNLESS loop.first();
|
||||
',';
|
||||
END;
|
||||
INCLUDE do_quote VALUE = ROW.$COL_ID;
|
||||
END;
|
||||
END;
|
||||
"\n";
|
||||
END;
|
||||
END;
|
||||
|
||||
|
||||
PROCESS dynatable tbody = {rows = rows };
|
||||
?>
|
||||
|
Can't render this file because it contains an unexpected character in line 27 and column 7.
|
@@ -0,0 +1,167 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2024-08-21
|
||||
File: display_report.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged 'dynatable.html' into this template
|
||||
|
||||
|
||||
-?>
|
||||
<?lsmb-
|
||||
|
||||
# Simplified block from UI/lib/dynatable.html; see that file for docs
|
||||
BLOCK dynatable -?>
|
||||
<table id="<?lsmb attributes.id ?>"
|
||||
class="dynatable <?lsmb attributes.class ?>"
|
||||
width="<?lsmb attributes.width ?>">
|
||||
<?lsmb- IF !hide_header -?>
|
||||
<thead>
|
||||
<tr>
|
||||
<?lsmb- FOREACH COL IN columns;
|
||||
IF COL.type != 'hidden'; -?>
|
||||
<th class="<?lsmb COL.col_id _ ' ' _ COL.class _ ' ' _ COL.type | html ?>"><?lsmb COL.name | html ?>
|
||||
</th>
|
||||
<?lsmb- END; END; -?>
|
||||
</tr>
|
||||
</thead>
|
||||
<?lsmb- END -?>
|
||||
<tbody>
|
||||
<?lsmb-
|
||||
PFX = attributes.input_prefix;
|
||||
FOREACH ROW IN tbody.rows; -?>
|
||||
<tr class="<?lsmb ROW.html_class _ ' ' _ ROW.row_id ?>">
|
||||
<?lsmb- FOREACH COL IN columns;
|
||||
ROWSPANNED = COL.col_id _ "_ROWSPANNED";
|
||||
IF ROW.$ROWSPANNED;
|
||||
NEXT;
|
||||
END;
|
||||
ROWSPAN = COL.col_id _ "_ROWSPAN";
|
||||
IF ROW.$ROWSPAN;
|
||||
ROWSPAN=" rowspan=\"" _ ROW.$ROWSPAN _ "\"";
|
||||
ELSE;
|
||||
ROWSPAN="";
|
||||
END;
|
||||
|
||||
TYPE = COL.type;
|
||||
NOHREF = COL.col_id _ "_NOHREF";
|
||||
IF (ROW.NOINPUT AND TYPE != 'href' AND TYPE != 'hidden')
|
||||
OR (ROW.$NOHREF AND TYPE == 'href');
|
||||
TYPE = 'text';
|
||||
END;
|
||||
|
||||
NEXT IF TYPE == 'hidden'; -?>
|
||||
<td class="<?lsmb COL.col_id _ ' ' _ COL.class _ ' ' _ COL.type | html ?>"<?lsmb ROWSPAN ?>>
|
||||
<?lsmb- IF TYPE == 'boolean_checkmark' OR TYPE == 'checkbox' OR TYPE == 'radio';
|
||||
IF ROW.${COL.col_id};
|
||||
'✓';
|
||||
END;
|
||||
|
||||
ELSIF TYPE == 'select';
|
||||
# ROW is passed as an argument if COL.options is a callback
|
||||
# function, which allows dropdown options to be dynamically
|
||||
# customised to each row. The ROW argument is harmlessly
|
||||
# ignored by Template Toolkit if COL.options is a static
|
||||
# arrayref common to every row.
|
||||
OPTION_LIST = COL.options(ROW);
|
||||
|
||||
FOREACH option IN OPTION_LIST;
|
||||
IF (option.value | html) == ROW.${COL.col_id};
|
||||
option.text | html;
|
||||
END;
|
||||
END;
|
||||
ELSE -?>
|
||||
<?lsmb ROW.${COL.col_id} ?>
|
||||
<?lsmb- END -?>
|
||||
</td>
|
||||
<?lsmb- END; END -?>
|
||||
</tr>
|
||||
<?lsmb- END ?>
|
||||
</tbody>
|
||||
<?lsmb- IF tfoot -?>
|
||||
<tfoot>
|
||||
<?lsmb- FOREACH ROW IN tfoot.rows;
|
||||
SPACECOUNT = 0 -?>
|
||||
<tr>
|
||||
<?lsmb- FOREACH COL IN columns;
|
||||
COL_ID = COL.col_id;
|
||||
IF tfoot.coltypes.$COL_ID;
|
||||
TYPE = tfoot.coltypes.$COL_ID;
|
||||
ELSE;
|
||||
TYPE = COL.type;
|
||||
END;
|
||||
|
||||
DOJO = tfoot.dojo_type.$COL_ID;
|
||||
DOJO_PROPS = tfoot.dojo_props.$COL_ID;
|
||||
IF tfoot.coltypes.${COL.col_id} == 'spacer';
|
||||
SPACECOUNT = SPACECOUNT + 1;
|
||||
ELSE;
|
||||
IF SPACECOUNT > 0 ?>
|
||||
<td colspan="<?lsmb SPACECOUNT ?>"> </td>
|
||||
<?lsmb END;
|
||||
NEXT IF TYPE == 'hidden';
|
||||
-?>
|
||||
<td class="<?lsmb COL.col_id | html ?>">
|
||||
<?lsmb- IF TYPE == 'boolean_checkmark' OR TYPE == 'checkbox' OR TYPE == 'radio';
|
||||
IF ROW.${COL.col_id};
|
||||
'✓';
|
||||
END;
|
||||
ELSE -?>
|
||||
<?lsmb ROW.${COL.col_id} ?>
|
||||
<?lsmb- END -?>
|
||||
</td>
|
||||
<?lsmb- END -?>
|
||||
</tr>
|
||||
<?lsmb- END -?>
|
||||
</tfoot>
|
||||
<?lsmb- END -?>
|
||||
</table>
|
||||
<?lsmb- END; -?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<style>
|
||||
table tbody tr:nth-child(2n) {
|
||||
background-color: #e6e6fa;
|
||||
}
|
||||
table tbody tr:nth-child(2n+1) {
|
||||
background-color: #ffeeec;
|
||||
}
|
||||
table td, table th {
|
||||
padding: 0.2em 1ex;
|
||||
}
|
||||
table thead {
|
||||
background-color: #bcd8f4;
|
||||
}
|
||||
label {
|
||||
font-weight: bold;
|
||||
}
|
||||
div.heading-section {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="heading-section">
|
||||
<div class="report-header">
|
||||
<label><?lsmb text('Report Name') ?>:</label>
|
||||
<span class="report-header"><?lsmb name ?></span>
|
||||
</div>
|
||||
<div class="report-header">
|
||||
<label><?lsmb text('Company') ?>:</label>
|
||||
<span class="report-header"><?lsmb SETTINGS.company_name ?></span>
|
||||
</div><?lsmb FOREACH LINE IN hlines ?>
|
||||
<div class="report-header">
|
||||
<label><?lsmb LINE.text ?>:</label>
|
||||
<span class="report-header"><?lsmb LINE.value ?></span>
|
||||
</div><?lsmb END ?>
|
||||
</div><?lsmb PROCESS dynatable tbody = {rows = rows }
|
||||
attributes = {class = 'report', order_url = order_url } ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2024-08-21
|
||||
File: display_report.odst
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged 'dynatable.odst' into this template
|
||||
|
||||
-?>
|
||||
<?lsmb-
|
||||
|
||||
BLOCK dynatable;
|
||||
ROWCOUNT = 1;
|
||||
IF tbody.rows.size;
|
||||
ROWCOUNT = ROWCOUNT + tbody.rows.size;
|
||||
END;
|
||||
IF tfoot.rows.size;
|
||||
ROWCOUNT = ROWCOUNT + tbody.rows.size;
|
||||
END;
|
||||
|
||||
-?>
|
||||
<worksheet name="<?lsmb attributes.id | html ?>" rows="<?lsmb ROWCOUNT ?>" columns="<?lsmb columns.size + 1 ?>">
|
||||
<format bottom="5" bg_color="lime" bottom_color="magenta">
|
||||
<?lsmb IF !hide_header -?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns;
|
||||
IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb COL.name | html ?>" />
|
||||
<?lsmb END; END; ?>
|
||||
</row>
|
||||
<?lsmb END -?>
|
||||
</format>
|
||||
<format align="right">
|
||||
<?lsmb FOREACH ROW IN tbody.rows -?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns -?>
|
||||
<?lsmb IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb ROW.${COL.col_id} | html ?>" />
|
||||
<?lsmb END;
|
||||
END -?>
|
||||
</row>
|
||||
<?lsmb END -?>
|
||||
<?lsmb- IF tfoot -?>
|
||||
<?lsmb- FOREACH ROW IN tfoot.rows; ?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns ?>
|
||||
<?lsmb IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb ROW.${COL.col_id} | html ?>" />
|
||||
<?lsmb END; END ?>
|
||||
</row>
|
||||
<?lsmb END;
|
||||
END ?>
|
||||
</format>
|
||||
</worksheet>
|
||||
<?lsmb
|
||||
|
||||
END; # BLOCK dynatable
|
||||
|
||||
|
||||
# MAIN template
|
||||
HEADS = 2;
|
||||
|
||||
IF hlines.size;
|
||||
HEADS = HEADS + hlines.size;
|
||||
END;
|
||||
|
||||
-?>
|
||||
<workbook>
|
||||
<worksheet name="<?lsmb text('Title Page') | html ?>" rows="<?lsmb HEADS ?>"
|
||||
columns="2">
|
||||
<row><cell text="<?lsmb text('Report Name') | html ?>:" />
|
||||
<cell text="<?lsmb name | html ?>" />
|
||||
</row>
|
||||
<row><cell text="<?lsmb text('Company') | html ?>:" />
|
||||
<cell text="<?lsmb SETTINGS.company_name | html ?>" />
|
||||
</row>
|
||||
<?lsmb FOREACH HLINE IN hlines -?>
|
||||
<row><cell text="<?lsmb HLINE.text | html ?>:" />
|
||||
<cell text="<?lsmb HLINE.value | html ?>" />
|
||||
</row>
|
||||
<?lsmb END -?>
|
||||
</worksheet>
|
||||
<?lsmb PROCESS dynatable
|
||||
attributes = {id = name }
|
||||
tbody = {rows = rows } ?>
|
||||
</workbook>
|
||||
@@ -0,0 +1,135 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.3
|
||||
Date: 2024-08-21
|
||||
File: display_report.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.3 Merged 'dynatable.html' into this template
|
||||
1.2 Simplified report header generation factored out of dynatable
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
|
||||
-?>
|
||||
<?lsmb-
|
||||
|
||||
BLOCK dynatable;
|
||||
|
||||
TOTAL_WIDTH=14; # cm. using A4 as a basis because it is slightly narrower than
|
||||
# US Letter. This way the dynatable works for both paper sizes.
|
||||
# This assumes a 1cm margin on either side. --CT
|
||||
DECLARED_WIDTH=0;
|
||||
|
||||
SKIP_TYPES = ['hidden', 'radio', 'checkbox'];
|
||||
|
||||
|
||||
FOREACH COL IN columns;
|
||||
DECLARED_WIDTH = DECLARED_WIDTH + COL.pwidth; # pwidth is arbitrary scale
|
||||
END;
|
||||
|
||||
IF DECLARED_WIDTH > 0;
|
||||
WIDTH_PER_P = TOTAL_WIDTH / DECLARED_WIDTH;
|
||||
ELSE;
|
||||
WIDTH_PER_P = 1;
|
||||
END;
|
||||
?>
|
||||
\begin{longtable}{<?lsmb-
|
||||
FOREACH COL IN columns;
|
||||
IF COL.psep_before;
|
||||
'|';
|
||||
END;
|
||||
IF 1 == SKIP_TYPES.grep(COL.type).size() or COL.html_only;
|
||||
'';
|
||||
ELSIF COL.pwidth;
|
||||
"p{" _ (COL.pwidth * WIDTH_PER_P) _ "cm}";
|
||||
ELSIF COL.palign;
|
||||
COL.palign;
|
||||
ELSE;
|
||||
'l';
|
||||
END;
|
||||
IF COL.psep_after;
|
||||
'|';
|
||||
END;
|
||||
END;
|
||||
-?>}
|
||||
<?lsmb
|
||||
FOREACH COL IN columns;
|
||||
IF 0 == SKIP_TYPES.grep(COL.type).size() AND ! COL.html_only;
|
||||
UNLESS loop.first();
|
||||
' & ';
|
||||
END;
|
||||
escape(COL.name);
|
||||
END;
|
||||
END;
|
||||
-?>\tabularnewline
|
||||
\hline\hline
|
||||
\endfirsthead
|
||||
<?lsmb
|
||||
FOREACH COL IN columns;
|
||||
IF 0 == SKIP_TYPES.grep(COL.type).size() AND ! COL.html_only;
|
||||
UNLESS loop.first() ;
|
||||
' & ';
|
||||
END;
|
||||
escape(COL.name);
|
||||
END;
|
||||
END;
|
||||
-?>\tabularnewline
|
||||
\hline\hline
|
||||
\endhead
|
||||
<?lsmb
|
||||
FOREACH ROW IN tbody.rows;
|
||||
FOREACH COL IN columns;
|
||||
IF 0 == SKIP_TYPES.grep(COL.type).size() AND ! COL.html_only;
|
||||
UNLESS loop.first();
|
||||
' & ';
|
||||
END;
|
||||
?>\begin{tabular}[t]{@{}l@{}}<?lsmb
|
||||
ROW.${COL.col_id};
|
||||
?>\end{tabular}<?lsmb
|
||||
END;
|
||||
END;
|
||||
?>\tabularnewline
|
||||
<?lsmb
|
||||
END; # FOREACH ?>
|
||||
\end{longtable}
|
||||
<?lsmb END; # block dynatable
|
||||
|
||||
|
||||
# MAIN template
|
||||
|
||||
SKIP_TYPES = ['hidden', 'radio', 'checkbox'];
|
||||
COLNUMBER = 0;
|
||||
|
||||
FOREACH COL IN columns;
|
||||
IF 0 == SKIP_TYPES.grep(COL.type).size() and ! COL.html_only.defined();
|
||||
COLNUMBER = COLNUMBER + 1;
|
||||
END;
|
||||
END;
|
||||
FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
|
||||
-?>
|
||||
\documentclass[<?lsmb SETTINGS.papersize ?>paper]{article}
|
||||
\usepackage{longtable}
|
||||
\usepackage[margin=1cm]{geometry}
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
\begin{tabular}{rl}
|
||||
\textbf{<?lsmb text('Report Name') ?>}: & <?lsmb name ?> \\
|
||||
\textbf{<?lsmb text('Company') ?>}: & <?lsmb SETTINGS.company_name ?> \\
|
||||
<?lsmb- newlines = new_heads(hlines);
|
||||
FOREACH LINE IN newlines -?>
|
||||
\textbf{<?lsmb LINE.text ?>}: & <?lsmb LINE.value ?> \\
|
||||
<?lsmb- END -?>
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
<?lsmb PROCESS dynatable
|
||||
tbody = { rows = rows };
|
||||
?>
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2024-08-21
|
||||
File: display_report.xlst
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged 'dynatable.xlst' into this template
|
||||
|
||||
|
||||
-?>
|
||||
<?lsmb-
|
||||
|
||||
BLOCK dynatable;
|
||||
ROWCOUNT = 1;
|
||||
IF tbody.rows.size;
|
||||
ROWCOUNT = ROWCOUNT + tbody.rows.size;
|
||||
END; #IF
|
||||
IF tfoot.rows.size;
|
||||
ROWCOUNT = ROWCOUNT + tbody.rows.size;
|
||||
END; # IF
|
||||
-?>
|
||||
<worksheet name="<?lsmb attributes.id | html ?>" rows="<?lsmb ROWCOUNT ?>" columns="<?lsmb columns.size + 1 ?>">
|
||||
<format bottom="5" bg_color="lime" bottom_color="magenta">
|
||||
<?lsmb IF !hide_header -?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns;
|
||||
IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb COL.name | html ?>" />
|
||||
<?lsmb END; # IF
|
||||
END; # FOREACH ?>
|
||||
</row>
|
||||
<?lsmb END; # IF -?>
|
||||
</format>
|
||||
<format align="right">
|
||||
<?lsmb FOREACH ROW IN tbody.rows -?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns -?>
|
||||
<?lsmb IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb ROW.${COL.col_id} | html ?>" />
|
||||
<?lsmb END; # IF
|
||||
END; #FOREACH -?>
|
||||
</row>
|
||||
<?lsmb END; #FOREACH -?>
|
||||
<?lsmb- IF tfoot -?>
|
||||
<?lsmb- FOREACH ROW IN tfoot.rows; ?>
|
||||
<row>
|
||||
<?lsmb FOREACH COL IN columns ?>
|
||||
<?lsmb IF COL.type != 'hidden'; -?>
|
||||
<cell text="<?lsmb ROW.${COL.col_id} | html ?>" />
|
||||
<?lsmb END; # IF
|
||||
END; # FOREACH ?>
|
||||
</row>
|
||||
<?lsmb END; # FOREACH
|
||||
END; #IF ?>
|
||||
</format>
|
||||
</worksheet>
|
||||
<?lsmb
|
||||
|
||||
END; # BLOCK dynatable
|
||||
|
||||
# MAIN template
|
||||
HEADS = 2;
|
||||
IF hlines.size;
|
||||
HEADS = HEADS + hlines.size;
|
||||
END;
|
||||
|
||||
?>
|
||||
<workbook>
|
||||
<worksheet name="<?lsmb text('Title Page') | html ?>" rows="<?lsmb HEADS ?>"
|
||||
columns="2">
|
||||
<row><cell text="<?lsmb text('Report Name') | html ?>:" />
|
||||
<cell text="<?lsmb name | html ?>" />
|
||||
</row>
|
||||
<row><cell text="<?lsmb text('Company') | html ?>:" />
|
||||
<cell text="<?lsmb SETTINGS.company_name | html ?>" />
|
||||
</row>
|
||||
<?lsmb FOREACH HLINE IN hlines -?>
|
||||
<row><cell text="<?lsmb HLINE.text | html ?>:" />
|
||||
<cell text="<?lsmb HLINE.value | html ?>" />
|
||||
</row>
|
||||
<?lsmb END -?>
|
||||
</worksheet>
|
||||
<?lsmb PROCESS dynatable
|
||||
attributes = {id = name }
|
||||
tbody = {rows = rows } ?>
|
||||
</workbook>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: envelope.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
\documentclass{scrartcl}
|
||||
\usepackage{iftex}
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\else
|
||||
\usepackage{fontspec}
|
||||
\fi
|
||||
\usepackage{tabularx}
|
||||
\usepackage[paperheight=11cm, paperwidth=23cm,top=3.5cm,bottom=3cm,left=12cm,right=1cm]{geometry}
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
\noindent <?lsmb name ?>\\
|
||||
<?lsmb address1 ?> \\
|
||||
<?lsmb- IF address2 ?>
|
||||
<?lsmb address2 ?> \\
|
||||
<?lsmb- END ?>
|
||||
<?lsmb city ?>
|
||||
<?lsmb- IF state -?>, <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>\\
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: invoice.894.edi
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
ISA*00* *00* *12*XXXXXXXXXX *01*XXXXXXXXXX *<?lsmb EDI_CURRENT_DATE ?>*<?lsmb EDI_CURRENT_TIME ?>*^*00501*<?lsmb FILTER format('%09d'); id ; END ?>*0*P*>~
|
||||
GS*DX*7196333434*031958655*<?lsmb EDI_CURRENT_DATE ?>*<?lsmb EDI_CURRENT_TIME ?>*0001*X*005010~
|
||||
ST*894*<?lsmb id ?>~
|
||||
G82*<?lsmb IF reverse; 'C'; ELSE; 'X'; END ?>*<?lsmb invnumber ?>*0001*0000*<?lsmb edidate(transdate) ?>~
|
||||
<?lsmb t_qty = 0; FOREACH n IN number; lc = loop.index; t_qty = t_qty + qty.${lc} -?>
|
||||
LS*<?lsmb loop.count ?>~
|
||||
G83*<?lsmb loop.count?>*<?lsmb qty.${lc} ?>*UC*<?lsmb number.${lc} ?>*<?lsmb FILTER format('%.4f'); sellprice.${lc}; END ?>**~
|
||||
LE*<?lsmb loop.count ?>~
|
||||
<?lsmb END # FOREACH n in number -?>
|
||||
G84*<?lsmb t_qty?>*<?lsmb invtotal ?>~
|
||||
SE*<?lsmb (3 * lc) + 7 ?>*<?lsmb id ?>~
|
||||
GE*1*0001~
|
||||
IEA*1*<?lsmb FILTER format('%09d'); id ; END ?>~
|
||||
@@ -0,0 +1,240 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.2
|
||||
Date: 2025-10-29
|
||||
File: invoice.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Extended with 'shiptoattn' (at the attention of)
|
||||
1.2 Add missing space before 'on' in tax specification row
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Invoice') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
span.c5 {font-size: 64%}
|
||||
span.c4 {font-size: 51%}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1">
|
||||
<?lsmb IF reverse; text('Credit Invoice'); ELSE; text('Invoice'); END; ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb contact ?><br>
|
||||
<?lsmb END ?> <?lsmb IF customerphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?> <?lsmb END ?> <?lsmb IF customerfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb IF shiptoattn ?><?lsmb shiptoattn ?><br><?lsmb END ?>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb shiptocontact ?><br>
|
||||
<?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?> <?lsmb IF shiptoemail ?><br>
|
||||
<?lsmb shiptoemail ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Invoice #') ?></th>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Date') ?></th>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Due') ?></th>
|
||||
<th width="14%" align="left"><?lsmb text('Order #') ?></th>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Salesperson') ?></th>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="14%" align="left" nowrap><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb invnumber ?></td>
|
||||
<td><?lsmb invdate ?></td>
|
||||
<td><?lsmb duedate ?></td>
|
||||
<td><?lsmb ordnumber ?> </td>
|
||||
<td><?lsmb employee ?> </td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th> </th>
|
||||
<th align="right"><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th align="right"><span class="c2"><?lsmb text('Unit Price') ?></span></th>
|
||||
<th align="right"><span class="c2"><?lsmb text('Disc %') ?></span></th>
|
||||
<th align="right"><span class="c2"><?lsmb text('Extended') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td><?lsmb deliverydate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb sellprice.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb discountrate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb linetotal.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="9">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr><?lsmb IF tax -?>
|
||||
<tr>
|
||||
<th colspan="7" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb subtotal ?></td>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?> on
|
||||
<?lsmb taxbase.${loop_count} ?> @ <?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td colspan="2" align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?><?lsmb END -?>
|
||||
<tr>
|
||||
<th colspan="7" align="right"><?lsmb text('Total') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb invtotal ?></td>
|
||||
</tr><?lsmb IF paymentdate.0 ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right"><?lsmb text('Paid') ?></th>
|
||||
<td colspan="2" align="right">- <?lsmb paid ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5"> </td>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5"> </td>
|
||||
<th colspan="2" align="right" nowrap><?lsmb text('Balance') ?></th>
|
||||
<th colspan="2" align="right"><?lsmb total ?></th>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<?lsmb IF notes ?>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td><?lsmb END ?>
|
||||
<td><?lsmb text_amount ?>***** <?lsmb decimal ?>/100</td>
|
||||
<td align="right" nowrap><?lsmb text('All prices in [_1]', currency) ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb IF paymentdate.0 ?>
|
||||
<tr>
|
||||
<td colspan="9">
|
||||
<table width="60%">
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Payments') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Date') ?></th>
|
||||
<th align="left"><?lsmb text('Account') ?></th>
|
||||
<th align="left"><?lsmb text('Source') ?></th>
|
||||
<th align="left"><?lsmb text('Amount') ?></th>
|
||||
</tr><?lsmb FOREACH payment ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<td><?lsmb paymentdate.${loop_count} ?></td>
|
||||
<td><?lsmb paymentaccount.${loop_count} ?></td>
|
||||
<td><?lsmb paymentsource.${loop_count} ?></td>
|
||||
<td><?lsmb payment.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?lsmb text('Thank you for your valued business!') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="60%"><span class="c4"><?lsmb text('Payment due by [_1].', duedate) ?>
|
||||
<?lsmb text('Items returned are subject to a 10% restocking charge. A return authorization must be obtained from [_1] before goods are returned. Returns must be shipped prepaid and properly insured. [_1] will not be responsible for damages during transit.', company) ?></span></td>
|
||||
<td width="40%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="9" align="left"><span class=
|
||||
"c5"><?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>
|
||||
<?lsmb text('Registration [_1]', taxnumber.${loop_count}) ?></span></th>
|
||||
</tr><?lsmb END ?><?lsmb IF taxincluded ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="8" align="left"><span class=
|
||||
"c5"><?lsmb text('Taxes shown are included in price.') ?></span></th>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,257 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.3
|
||||
Date: 2024-08-14
|
||||
File: invoice.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Fix spelling mistake (acrue -> accrue)
|
||||
1.2 Merged xelatex targetting templates with those targetting pdflatex
|
||||
1.3 Extended with 'shiptoattn' (at the attention of)
|
||||
|
||||
|
||||
The "$FORMAT($PROCESSOR)" below evaluates to e.g. "pdf(pdflatex)".
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb BLOCK multiline -?>
|
||||
\begin{minipage}{2in}
|
||||
\medskip
|
||||
\raggedright
|
||||
<?lsmb string ?>
|
||||
\end{minipage}
|
||||
<?lsmb- END -?>
|
||||
|
||||
\newsavebox{\ftr}
|
||||
\sbox{\ftr}{
|
||||
\parbox{\textwidth}{
|
||||
\tiny
|
||||
\rule[1.5em]{\textwidth}{0.5pt}
|
||||
<?lsmb text('Payment due NET [_1] Days from date of Invoice.', terms) ?>
|
||||
<?lsmb text('Interest on overdue amounts will accrue at the rate of 12% per annum starting from [_1] until paid in full. Items returned are subject to a 10% restocking charge.', duedate) ?>
|
||||
<?lsmb text('A return authorization must be obtained from [_1] before goods are returned. Returns must be shipped prepaid and properly insured. [_1] will not be responsible for damages during transit.', company) ?>
|
||||
}
|
||||
}
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb invnumber ?>}{<?lsmb company ?>\hfill <?lsmb invnumber ?>}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state -?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerphone ?>
|
||||
Tel: <?lsmb customerphone ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerfax ?>
|
||||
Fax: <?lsmb customerfax ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{<?lsmb text('Ship To') ?>}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb IF shiptoattn -?>
|
||||
<?lsmb shiptoattn ?>
|
||||
|
||||
<?lsmb END -?>
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate -?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?><?lsmb END ?> <?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb shiptocontact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
Tel: <?lsmb shiptophone ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
Fax: <?lsmb shiptofax ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb
|
||||
IF reverse;
|
||||
text('Credit Invoice');
|
||||
ELSE;
|
||||
text('Invoice');
|
||||
END; ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Date') ?>}
|
||||
& \textbf{<?lsmb text('Due') ?>} & \textbf{<?lsmb text('Order #') ?>}
|
||||
& \textbf{<?lsmb text('Salesperson') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5em]
|
||||
\hline
|
||||
<?lsmb invnumber ?> & <?lsmb invdate ?> & <?lsmb duedate ?> & <?lsmb ordnumber ?> & <?lsmb employee ?>
|
||||
& <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}r|llcrlrr|r}
|
||||
|
||||
\textbf{<?lsmb text('Item') ?>}
|
||||
& \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Delivery') ?>}
|
||||
& \textbf{<?lsmb text('Qty') ?>}
|
||||
& \textbf{<?lsmb text('Unit') ?>}
|
||||
& \textbf{<?lsmb text('Price') ?>}
|
||||
& \textbf{<?lsmb text('Disc %') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>} \\
|
||||
\hline
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb INCLUDE multiline string = item_description.${lc} ?> &
|
||||
<?lsmb deliverydate.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb sellprice.${lc} ?> &
|
||||
<?lsmb discountrate.${lc} ?> &
|
||||
<?lsmb linetotal.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
<?lsmb IF tax ?>
|
||||
\hline \hline
|
||||
\multicolumn{8}{r|}{<?lsmb text('Subtotal') ?>} & <?lsmb subtotal ?> \\*
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
\multicolumn{8}{r|}{<?lsmb taxdescription.${lc}
|
||||
?> on <?lsmb taxbase.${lc} ?> }
|
||||
& <?lsmb tax.${lc} ?> \\*
|
||||
<?lsmb END ?>
|
||||
<?lsmb END ?>
|
||||
\hline \hline
|
||||
\multicolumn{8}{r|}{<?lsmb text('Total') ?>} & <?lsmb invtotal ?> \\*
|
||||
|
||||
<?lsmb IF paymentdate.0 ?>
|
||||
\multicolumn{8}{r|}{ <?lsmb text('Paid') ?> } & - <?lsmb paid ?> \\*
|
||||
\hline
|
||||
\hline
|
||||
\multicolumn{8}{r|}{<?lsmb text('Balance') ?>} & <?lsmb total ?>\\
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
\hfill
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb text_amount ?> ***** <?lsmb decimal ?>/100
|
||||
\hfill
|
||||
<?lsmb text('All prices in [_1].', currency) ?>
|
||||
|
||||
\vspace{12pt}
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
<?lsmb IF paymentdate.0 ?>
|
||||
\begin{tabularx}{10cm}{@{}lXlr@{}}
|
||||
\textbf{<?lsmb text('Payments') ?>} & & & \\
|
||||
\hline
|
||||
\textbf{<?lsmb text('Date') ?>} & & \textbf{<?lsmb text('Source') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>} \\
|
||||
<?lsmb FOREACH payment ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb paymentdate.${lc} ?> & <?lsmb paymentaccount.${lc} ?> & <?lsmb paymentsource.${lc} ?> & <?lsmb payment.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{tabularx}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb FOR FILE IN file_list ?>
|
||||
\includegraphics[scale=0.3]{<?lsmb file_path _ '/' _ FILE.file_name ?>}
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\centerline{\textbf{<?lsmb text('Thank You for your valued business!') ?>}}
|
||||
|
||||
\rule{\textwidth}{0.5pt}
|
||||
|
||||
\usebox{\ftr}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,59 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: letterhead.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<h4><?lsmb company ?><br>
|
||||
<?lsmb address ?></h4>
|
||||
</td><?lsmb# using "comment block" template tag to suppress output
|
||||
|
||||
There are two options of including a picture in the output:
|
||||
|
||||
1. An external image available from your webserver
|
||||
This option has the downside that the webserver and image
|
||||
need to remain available for extended periods.
|
||||
|
||||
<img src="https://example.com/logo.png" border="0" height="58">
|
||||
|
||||
2. An image embedded in the invoice itself
|
||||
This option has the downside that the invoice file will
|
||||
be larger and the HTML source will be less readable, however,
|
||||
it eliminates external dependencies, retaining the integrity
|
||||
of the invoice, independent of what happens to publicly hosted
|
||||
images
|
||||
|
||||
<img src="data:image/png;base64,<-?lsmb dbfile_base64('logo.png') ?->"
|
||||
border="0" height="58">
|
||||
|
||||
Please note that this is dependent on having a file uploaded by
|
||||
the name 'logo.png' under "System - Files". Also, when using this
|
||||
option, please remove the hyphens from '<-?lsmb' and '?->'; they
|
||||
are used to hide the text from the template processor.
|
||||
|
||||
?>
|
||||
<th><!--Replace this comment with one of the two image tags above --></th>
|
||||
<td align="right">
|
||||
<h4><?lsmb text('Tel: [_1]', tel) ?><br>
|
||||
<?lsmb text('Fax: [_1]', fax) ?></h4>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: letterhead.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
\parbox{\textwidth}{%
|
||||
\parbox[b]{.42\textwidth}{%
|
||||
<?lsmb company ?>
|
||||
|
||||
<?lsmb address ?>
|
||||
}
|
||||
\parbox[b]{.2\textwidth}{
|
||||
<?lsmb# using "comment block" template tag to suppress output
|
||||
|
||||
To include a logo in your LaTeX document, it needs to be retrieved from
|
||||
the database and temporarily stored in a location accessible to the PDF
|
||||
generator. The function 'dbfile_path' handles that.
|
||||
|
||||
To use this functionality, (a) remove the percent sign before the
|
||||
\includegraphics command and (b) make sure all templates which INCLUDE
|
||||
'letterhead', contain '\usepackage{graphics}'
|
||||
|
||||
If the generated output is to be PDF output, make sure that the image is
|
||||
a PNG image as shown below. In case Postscript (PS) or EPS output, make
|
||||
sure the image is (E)PS.
|
||||
|
||||
For information on the avaliable options for the 'includegraphics'
|
||||
command, see https://en.wikibooks.org/wiki/LaTeX/Importing_Graphics
|
||||
|
||||
Example (remove the 3 %-signs):
|
||||
|
||||
?>
|
||||
|
||||
% \includegraphics[scale=0.3]{<%?lsmb dbfile_path('logo.png') ?%>}
|
||||
|
||||
|
||||
}\hfill
|
||||
\begin{tabular}[b]{rr@{}}
|
||||
<?lsmb text('Tel:') ?> & <?lsmb tel ?>\\
|
||||
<?lsmb text('Fax:') ?> & <?lsmb fax ?>
|
||||
\end{tabular}
|
||||
|
||||
\rule[1.5em]{\textwidth}{0.5pt}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: packing_list.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Packing List') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
span.c4 {font-size: 51%}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Packing List') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th width="50%" align="left"><span class="c2"><?lsmb text('Ship To:') ?></span></th>
|
||||
<th width="50%"> </th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?></td>
|
||||
<td><?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?> <?lsmb shiptoemail ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left"><?lsmb text('Invoice #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Order #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Date') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Contact') ?></th><?lsmb IF warehouse ?>
|
||||
<th width="17%" align="left"><?lsmb text('Warehouse') ?></th><?lsmb END ?>
|
||||
<th width="17%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb invnumber ?> </td>
|
||||
<td><?lsmb ordnumber ?> </td><?lsmb IF shippingdate ?>
|
||||
<td><?lsmb shippingdate ?></td><?lsmb ELSE ?>
|
||||
<td><?lsmb transdate ?></td><?lsmb END ?>
|
||||
<td><?lsmb employee ?> </td><?lsmb IF warehouse ?>
|
||||
<td><?lsmb warehouse ?> </td><?lsmb END ?>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="left"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Serial #') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Ship') ?></span></th>
|
||||
<th> </th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td><?lsmb runningnumber.${loop_count} ?></td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td><?lsmb serialnumber.${loop_count} ?></td>
|
||||
<td><?lsmb deliverydate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb ship.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr><?lsmb IF notes ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td>Notes</td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="70%"><span class=
|
||||
"c4"><?lsmb text('Items returned are subject to a 10% restocking charge. A return authorization must be obtained from [_1] before goods are returned. Returns must be shipped prepaid and properly insured. [_1] will not be responsible for damages during transit.', company) ?></span></td>
|
||||
<td width="30%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,166 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: packing_list.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
\newsavebox{\ftr}
|
||||
\sbox{\ftr}{
|
||||
\parbox{\textwidth}{
|
||||
\tiny
|
||||
\rule[1.5em]{\textwidth}{0.5pt}
|
||||
<?lsmb text('Items returned are subject to a 10% restocking charge.') ?>
|
||||
<?lsmb text('A return authorization must be obtained from [_1] before goods are returned. Returns must be shipped prepaid and properly insured. [_1] will not be responsible for damages during transit.', company) ?>
|
||||
}
|
||||
}
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
% Breaking old pagebreak directive
|
||||
%<?xlsmb pagebreak 65 27 37 ?>
|
||||
%\end{tabularx}
|
||||
%
|
||||
%\newpage
|
||||
%
|
||||
%\markboth{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}
|
||||
%
|
||||
%\begin{tabularx}{\textwidth}{@{}rlXllrrl@{}}
|
||||
% \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Ship} & \\
|
||||
%<?xlsmb end pagebreak ?>
|
||||
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}} \hfill
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
<?lsmb shiptocontact ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
Tel: <?lsmb shiptophone ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
Fax: <?lsmb shiptofax ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Packing List') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Order #') ?>}
|
||||
& \textbf{<?lsmb text('Date') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
<?lsmb IF warehouse ?>
|
||||
& \textbf{<?lsmb text('Warehouse') ?>}
|
||||
<?lsmb END ?>
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5em]
|
||||
\hline
|
||||
|
||||
<?lsmb invnumber ?> & <?lsmb ordnumber ?>
|
||||
<?lsmb IF shippingdate ?>
|
||||
& <?lsmb shippingdate ?>
|
||||
<?lsmb ELSE ?>
|
||||
& <?lsmb transdate ?>
|
||||
<?lsmb END ?>
|
||||
& <?lsmb employee ?>
|
||||
<?lsmb IF warehouse ?>
|
||||
& <?lsmb warehouse ?>
|
||||
<?lsmb END ?>
|
||||
& <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}rllllrrl@{}}
|
||||
\textbf{<?lsmb text('Item') ?>} & \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Serial Number') ?>} &
|
||||
& \textbf{<?lsmb text('Qty') ?>} & \textbf{<?lsmb text('Ship') ?>} & \\
|
||||
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb serialnumber.${lc} ?> &
|
||||
<?lsmb deliverydate.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb ship.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
\rule{\textwidth}{0.5pt}
|
||||
|
||||
\usebox{\ftr}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,117 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: pick_list.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Pick List') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Pick List') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th width="50%" align="left"><span class="c2"><?lsmb text('Ship To:')
|
||||
?></span></th>
|
||||
<th width="50%"> </th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?></td>
|
||||
<td><?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?> <?lsmb shiptoemail ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="15%" align="left"><?lsmb text('Invoice #') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Order #') ?></th>
|
||||
<th width="10%" align="left"><?lsmb text('Date') ?></th>
|
||||
<th width="15%" align="left" nowrap><?lsmb text('Contact') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Warehouse') ?></th>
|
||||
<th width="10%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="10%" align="left"><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb invnumber ?> </td>
|
||||
<td><?lsmb ordnumber ?> </td><?lsmb IF shippingdate ?>
|
||||
<td><?lsmb shippingdate ?></td><?lsmb ELSE ?>
|
||||
<td><?lsmb transdate ?></td><?lsmb END ?>
|
||||
<td><?lsmb employee ?> </td>
|
||||
<td><?lsmb warehouse ?> </td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="left"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Ship') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Bin') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td><?lsmb runningnumber.${loop_count} ?></td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td align="right">[ ]</td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb bin.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,134 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: pick_list.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
% Breaking old pagebreak directive
|
||||
%<?xlsmb pagebreak 65 27 37 ?>
|
||||
%\end{tabularx}
|
||||
%
|
||||
%\newpage
|
||||
%
|
||||
%\markboth{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}
|
||||
%
|
||||
%\begin{tabularx}{\textwidth}{@{}rlXrcll@{}}
|
||||
% \textbf{Item} & \textbf{Number} & \textbf{Description} &
|
||||
% \textbf{Qty} & \textbf{Ship} & & \textbf{Bin} \\
|
||||
%
|
||||
%<?xlsmb end pagebreak ?>
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
} \hfill
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
<?lsmb shiptocontact ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
Tel: <?lsmb shiptophone ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
Fax: <?lsmb shiptofax ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Pick List') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Order #') ?>}
|
||||
& \textbf{<?lsmb text('Date') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
& \textbf{<?lsmb text('Warehouse') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5em]
|
||||
\hline
|
||||
<?lsmb invnumber ?> & <?lsmb ordnumber ?>
|
||||
<?lsmb IF shippingdate ?>
|
||||
& <?lsmb shippingdate ?>
|
||||
<?lsmb ELSE ?>
|
||||
& <?lsmb transdate ?>
|
||||
<?lsmb END ?>
|
||||
& <?lsmb employee ?> & <?lsmb warehouse ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}rllrcll@{}}
|
||||
\textbf{<?lsmb text('Item') ?>} & \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>} &
|
||||
\textbf{<?lsmb text('Qty') ?>} & \textbf{<?lsmb text('Ship') ?>} &
|
||||
& \textbf{<?lsmb text('Bin') ?>} \\
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> & [\hspace{1cm}] &
|
||||
<?lsmb unit.${lc} ?> & <?lsmb bin.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,104 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: printPayment.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title></title>
|
||||
<style type="text/css">
|
||||
td.c7 {text-align:left}
|
||||
span.c6 {text-transform:uppercase}
|
||||
th.c5 {text-align:right}
|
||||
td.c4 {text-align:center}
|
||||
span.c3 {color: black}
|
||||
h1.c2 {text-transform:uppercase}
|
||||
th.c1 {text-align:left}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?lsmb column_count = 0 -?>
|
||||
<table width="100%" id="header_table">
|
||||
<tr id="header_bar">
|
||||
<th id="top_bar_header" colspan="2" width="30%" class="c1">
|
||||
<h5>LOGO AREA<br>
|
||||
<?lsmb text('Address: [_1]', company.address) ?><br>
|
||||
<?lsmb text('Tel: [_1]', company.telephone) ?></h5>
|
||||
</th>
|
||||
<th class="c1">
|
||||
<h1 class="c2"><?lsmb text('Payment Order Number [_1]', header.payment_reference) ?></h1>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="datarow" width="100%" cellspacing="0" cellpadding="0" border="1">
|
||||
<tr>
|
||||
<th class="titledatarow" align="center" width="7%"><span class=
|
||||
"c3"><?lsmb text('Invoice') ?> <?lsmb text('Number')?></span></th>
|
||||
<th class="titledatarow" align="center" width="11%"><span class=
|
||||
"c3"><?lsmb text('Account') ?></span></th>
|
||||
<th class="titledatarow" align="center" width="68%"><span class=
|
||||
"c3"><?lsmb text('Description') ?></span></th>
|
||||
<th class="titledatarow" align="center" width="14%"><span class=
|
||||
"c3"><?lsmb text('Source') ?></span></th>
|
||||
<th class="titledatarow" align="center" width="14%"><span class=
|
||||
"c3"><?lsmb text('Amount') ?></span></th>
|
||||
</tr><?lsmb FOREACH row IN rows -?>
|
||||
<tr valign="top">
|
||||
<td class="c4"><?lsmb row.invoice_number ?></td>
|
||||
<td class="c4"><?lsmb row.chart_description?>--<?lsmb row.chart_accno?></td>
|
||||
<td class="c4"><?lsmb row.memo -?></td>
|
||||
<td class="c4"><?lsmb row.source ?></td>
|
||||
<td class="c4"><?lsmb row.amount ?></td>
|
||||
</tr><?lsmb END -?>
|
||||
<tr valign="top">
|
||||
<th class="c5" colspan="4"> <?lsmb text('TOTAL') ?></th>
|
||||
<td class="c4"><?lsmb header.amount ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th class="titledatarow c1"><span class="c3"><?lsmb text('Currency') ?>:
|
||||
<?lsmb header.currency ?></span></th>
|
||||
<th class="titledatarow c1"><span class="c3"><?lsmb text('Date') ?>:
|
||||
<?lsmb header.payment_date ?></span></th>
|
||||
<th rowspan="5" width="30%" class="c1"><span class="c6"><?lsmb text('Signature') ?><br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
___________________________________________<br>
|
||||
<?lsmb text('Identification') ?></span></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="70%" class="c7" colspan="3"><span><b><?lsmb text('Pay in behalf of') ?>:</b>
|
||||
<?lsmb header.legal_name ?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="c7" colspan="3"><span><b><?lsmb text('The amount of') ?>:</b>
|
||||
<?lsmb header.amount2text -?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="c7" colspan="3"><span><b><?lsmb text('This document has been approved by')
|
||||
-?>:</b><?lsmb header.employee_first_name -?> <?lsmb header.employee_last_name -?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" class="c7"><span><b><?lsmb text('Approved signature')?>:</b>
|
||||
____________________________</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="c7" colspan="3"><span><b><?lsmb text('Notes') ?>:</b>
|
||||
<?lsmb header.notes ?></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,196 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2023-04-03
|
||||
File: print_cash_transfer.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta
|
||||
name="generator"
|
||||
content="HTML Tidy for HTML5 for Linux version 5.6.0"
|
||||
/>
|
||||
<title><?lsmb form.print_title ?></title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 10px 20px;
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
}
|
||||
label {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
margin-right: 15px;
|
||||
}
|
||||
label::after {
|
||||
content: ':';
|
||||
float: right;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
table, td, th {
|
||||
border: 0.5px solid darkgray;
|
||||
}
|
||||
th {
|
||||
background-color: lightgray;
|
||||
}
|
||||
h4 {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.header-area {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
}
|
||||
.logo {
|
||||
align-self: end;
|
||||
}
|
||||
.logo > img {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
}
|
||||
.company-info {
|
||||
align-self: end;
|
||||
padding-left: 20px;
|
||||
border-bottom: 2px solid black;
|
||||
}
|
||||
.company-name {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
.title {
|
||||
border-bottom: 2px solid black;
|
||||
align-self: end;
|
||||
}
|
||||
.title > h3 {
|
||||
margin: 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.voucher-header {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.flex-label {
|
||||
display: flex;
|
||||
}
|
||||
.flex-label > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.flex-label > div:first-child {
|
||||
width: fit-content;
|
||||
}
|
||||
.flex-label > div > * {
|
||||
padding: 3px 0;
|
||||
}
|
||||
.voucher-info {
|
||||
justify-self: end;
|
||||
margin-right: 40px;
|
||||
}
|
||||
.left-border {
|
||||
border: 0;
|
||||
border-left: 0.5px solid darkgray;
|
||||
width: 5em;
|
||||
padding: 10px 0;
|
||||
}
|
||||
.right-border {
|
||||
border: 0;
|
||||
border-right: 0.5px solid darkgray;
|
||||
padding-right: 10px;
|
||||
padding-top: 15px;
|
||||
}
|
||||
.signature-area {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.signature-area th,
|
||||
.signature-area td {
|
||||
padding-left: 20px;
|
||||
}
|
||||
footer {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?lsmb column_count = 0 -?>
|
||||
<div class="header-area">
|
||||
<div class="logo">
|
||||
<!-- If you want to use a logo uncomment following line, remove # from dbfile_base64 and set images file name -->
|
||||
<!-- <img class="logo" src="data:image/png;base64,<?lsmb #dbfile_base64('logo.jpg') ?>"/> -->
|
||||
</div>
|
||||
<div class="company-info">
|
||||
<h2 class="company-name"><?lsmb form.company ?></h2>
|
||||
<span class="company-address"><?lsmb form.address ?></span>
|
||||
<span class="company-phone">Ph: <?lsmb form.tel ?></span>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h3><?lsmb form.print_title ?></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="voucher-header">
|
||||
<div class="eca-info flex-label">
|
||||
<div>
|
||||
<label>Customer/Supplier Name</label>
|
||||
<label>Customer/Supplier Code</label>
|
||||
<label>Description</label>
|
||||
<label>Exchange Rate</label>
|
||||
<label>Amount</label>
|
||||
<label>In Words</label>
|
||||
<label>Additional Remarks</label>
|
||||
</div>
|
||||
<div>
|
||||
<span>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ </span>
|
||||
<span>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ </span>
|
||||
<span><?lsmb form.description ?></span>
|
||||
<span><?lsmb form.exchange_rate ?></span>
|
||||
<span><?lsmb form.amount ?> <?lsmb form.curr ?></span>
|
||||
<span style="text-transform: uppercase;"><?lsmb form.text_amount ?> <?lsmb form.curr ?> ONLY</span>
|
||||
<span><?lsmb form.notes ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="voucher-info flex-label">
|
||||
<div>
|
||||
<label>Voucher No</label>
|
||||
<label>Date</label>
|
||||
</div>
|
||||
<div>
|
||||
<span><?lsmb form.reference ?></span>
|
||||
<span><?lsmb form.transdate ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="signature-area">
|
||||
<table cellspacing="0">
|
||||
<tr>
|
||||
<th colspan="2" align="left">Approved By</th>
|
||||
<th colspan="2" align="left">Received By</th>
|
||||
<th colspan="2" align="left">Paid By</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,226 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2023-04-03
|
||||
File: print_journal_entry.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta
|
||||
name="generator"
|
||||
content="HTML Tidy for HTML5 for Linux version 5.6.0"
|
||||
/>
|
||||
<title><?lsmb form.print_title ?></title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 10px 20px;
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
}
|
||||
label {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
margin-right: 15px;
|
||||
}
|
||||
label::after {
|
||||
content: ':';
|
||||
float: right;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
table, td, th {
|
||||
border: 0.5px solid darkgray;
|
||||
}
|
||||
th {
|
||||
background-color: lightgray;
|
||||
}
|
||||
h4 {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.header-area {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
}
|
||||
.logo {
|
||||
align-self: end;
|
||||
}
|
||||
.logo > img {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
}
|
||||
.company-info {
|
||||
align-self: end;
|
||||
padding-left: 20px;
|
||||
border-bottom: 2px solid black;
|
||||
}
|
||||
.company-name {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
.title {
|
||||
border-bottom: 2px solid black;
|
||||
align-self: end;
|
||||
}
|
||||
.title > h3 {
|
||||
margin: 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.voucher-header {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.flex-label {
|
||||
display: flex;
|
||||
}
|
||||
.flex-label > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.flex-label > div:first-child {
|
||||
width: fit-content;
|
||||
}
|
||||
.flex-label > div > * {
|
||||
padding: 3px 0;
|
||||
}
|
||||
.voucher-info {
|
||||
justify-self: end;
|
||||
margin-right: 40px;
|
||||
}
|
||||
.left-border {
|
||||
border: 0;
|
||||
border-left: 0.5px solid darkgray;
|
||||
width: 5em;
|
||||
padding: 10px 0;
|
||||
}
|
||||
.right-border {
|
||||
border: 0;
|
||||
border-right: 0.5px solid darkgray;
|
||||
padding-right: 10px;
|
||||
padding-top: 15px;
|
||||
}
|
||||
.signature-area {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.signature-area th,
|
||||
.signature-area td {
|
||||
padding-left: 20px;
|
||||
}
|
||||
footer {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?lsmb column_count = 0 -?>
|
||||
<div class="header-area">
|
||||
<div class="logo">
|
||||
<!-- If you want to use a logo uncomment following line, remove # from dbfile_base64 and set images file name -->
|
||||
<!-- <img class="logo" src="data:image/png;base64,<?lsmb #dbfile_base64('logo.jpg') ?>"/> -->
|
||||
</div>
|
||||
<div class="company-info">
|
||||
<h2 class="company-name"><?lsmb form.company ?></h2>
|
||||
<span class="company-address"><?lsmb form.address ?></span>
|
||||
<span class="company-phone">Ph: <?lsmb form.tel ?></span>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h3><?lsmb form.print_title ?></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="voucher-header">
|
||||
<div class="eca-info flex-label">
|
||||
<div>
|
||||
<label>Reference</label>
|
||||
<label>Description</label>
|
||||
<label>Notes</label>
|
||||
</div>
|
||||
<div>
|
||||
<span><?lsmb form.reference ?></span>
|
||||
<span><?lsmb form.description ?></span>
|
||||
<span><?lsmb form.notes ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="voucher-info flex-label">
|
||||
<div>
|
||||
<label>Date</label>
|
||||
</div>
|
||||
<div>
|
||||
<span><?lsmb form.transdate ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="invoice-data">
|
||||
<table cellspacing="0">
|
||||
<tr align="center">
|
||||
<th>Account</th>
|
||||
<th>Curr</th>
|
||||
<th>Debit</th>
|
||||
<th>Credit</th>
|
||||
<th>Source</th>
|
||||
<th>Memo</th>
|
||||
<?lsmb FOREACH cls IN form.bu_class ?>
|
||||
<th class="listheading"><?lsmb cls.label ?></th>
|
||||
<?lsmb END ?>
|
||||
</tr>
|
||||
<?lsmb FOREACH displayrow IN displayrows;
|
||||
IF displayrow.accno; ?>
|
||||
<tr>
|
||||
<td><?lsmb displayrow.accno ?></td>
|
||||
<td><?lsmb displayrow.curr ?></td>
|
||||
<td align="right"><?lsmb displayrow.debit ?></td>
|
||||
<td align="right"><?lsmb displayrow.credit ?></td>
|
||||
<td><?lsmb displayrow.source ?></td>
|
||||
<td><?lsmb displayrow.memo ?></td>
|
||||
<?lsmb FOREACH cls IN form.bu_class ?>
|
||||
<td>
|
||||
<?lsmb clsid = cls.id;
|
||||
bucid = "b_unit_$clsid";
|
||||
displayrow.${bucid}; ?>
|
||||
</td>
|
||||
<?lsmb END ?>
|
||||
</tr>
|
||||
<?lsmb END;
|
||||
END -?>
|
||||
<tr>
|
||||
<td colspan="2"> </td>
|
||||
<td align="right"><?lsmb form.totaldebit ?></td>
|
||||
<td align="right"><?lsmb form.totalcredit ?></td>
|
||||
<td colspan="15"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="signature-area">
|
||||
<table cellspacing="0">
|
||||
<tr>
|
||||
<th colspan="2" align="left">Approved By</th>
|
||||
<th colspan="2" align="left">Received By</th>
|
||||
<th colspan="2" align="left">Paid By</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Signature</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
<td class="left-border">Name</td>
|
||||
<td class="right-border"><hr/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: product_receipt.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Product Receipt') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Product Receipt') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To:') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To:') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF vendorphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?> <?lsmb END ?> <?lsmb IF vendorfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left"><?lsmb text('Invoice #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Receipt Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Contact') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Ship Via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb invnumber ?></td>
|
||||
<td><?lsmb transdate ?></td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Price') ?></span></th>
|
||||
<th><span class="c2">%</span></th>
|
||||
<th><span class="c2"><?lsmb text('Amount') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb sellprice.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb discountrate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb linetotal.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="7" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="1" align="right"><?lsmb ordtotal ?></th><?lsmb ELSE ?>
|
||||
<th colspan="7" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td colspan="1" align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>on
|
||||
<?lsmb taxbase.${loop_count} ?> @ <?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td colspan="1" align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="4"> </td>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr><?lsmb IF NOT taxincluded ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right"><?lsmb text('Total') ?></th>
|
||||
<td colspan="1" align="right"><?lsmb ordtotal ?></td><?lsmb END ?><?lsmb IF terms ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4"><?lsmb text('Terms Net [_1] days', terms) ?></td>
|
||||
<th colspan="3" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="1" align="right"><?lsmb ordtotal ?></th>
|
||||
</tr><?lsmb END ?><?lsmb IF taxincluded ?>
|
||||
<tr>
|
||||
<td colspan="2"><?lsmb text('Tax included') ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr><?lsmb IF ordtotal ?>
|
||||
<tr>
|
||||
<td colspan="8" align="right"><?lsmb text('All prices in [_1] funds', currency) ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb IF notes ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td><?lsmb text('Notes') ?></td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="70%"> </td>
|
||||
<td width="30%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,180 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: product_receipt.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb invnumber ?>}{<?lsmb company ?>\hfill <?lsmb invnumber ?>}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb text('Attn: [_1]', contact) ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorphone ?>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorfax ?>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?>
|
||||
<?lsmb END ?>/
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Product Receipt') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Date') ?>}
|
||||
& \textbf{<?lsmb text('Required by') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5ex]
|
||||
\hline
|
||||
<?lsmb invnumber ?> & <?lsmb transdate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}llrlrr@{\extracolsep{0pt}}}
|
||||
\textbf{<?lsmb text('Number') ?>} & \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Qty') ?>} &
|
||||
\textbf{<?lsmb text('Unit') ?>} & \textbf{<?lsmb text('Price') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>} \\
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb sellprice.${lc} ?> &
|
||||
<?lsmb linetotal.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
\hfill
|
||||
\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
|
||||
& Total & <?lsmb invtotal ?>\\
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
\hfill
|
||||
<?lsmb text('All prices in [_1].', currency) ?>
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
|
||||
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
|
||||
|
||||
%\footnotetext[1]{\tiny }
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,188 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: purchase_order.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Purchase Order') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Purchase Order') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To:') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To:') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF vendorphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?> <?lsmb END ?> <?lsmb IF vendorfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left"><?lsmb text('Order #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Order Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Required by') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Contact') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Ship Via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb ordnumber ?></td>
|
||||
<td><?lsmb orddate ?></td>
|
||||
<td><?lsmb reqdate ?></td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Price') ?></span></th>
|
||||
<th><span class="c2">%</span></th>
|
||||
<th><span class="c2"><?lsmb text('Amount') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb sellprice.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb discountrate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb linetotal.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="7" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="1" align="right"><?lsmb ordtotal ?></th><?lsmb ELSE ?>
|
||||
<th colspan="7" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td colspan="1" align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>on
|
||||
<?lsmb taxbase.${loop_count} ?> @ <?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td colspan="1" align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="4"> </td>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr><?lsmb IF NOT taxincluded ?>
|
||||
<tr>
|
||||
<th colspan="7" align="right"><?lsmb text('Total') ?></th>
|
||||
<td colspan="1" align="right"><?lsmb ordtotal ?></td><?lsmb END ?><?lsmb IF terms ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4"><?lsmb text('Terms Net [_1] days', terms) ?></td>
|
||||
<th colspan="3" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="1" align="right"><?lsmb ordtotal ?></th>
|
||||
</tr><?lsmb END ?><?lsmb IF taxincluded ?>
|
||||
<tr>
|
||||
<td colspan="2"><?lsmb text('Tax included') ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr><?lsmb IF ordtotal ?>
|
||||
<tr>
|
||||
<td colspan="8" align="right"><?lsmb text('All prices in [_1] funds', currency) ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb IF notes ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td><?lsmb text('Notes') ?></td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="70%"> </td>
|
||||
<td width="30%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,186 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: purchase_order.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb text('Attn: [_1]', contact) ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorphone ?>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorfax ?>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?>
|
||||
<?lsmb END ?>/
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Purchase Order') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Order #') ?>} & \textbf{<?lsmb text('Date') ?>}
|
||||
& \textbf{<?lsmb text('Required by') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5ex]
|
||||
\hline
|
||||
<?lsmb ordnumber ?> & <?lsmb orddate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}llrlrr@{\extracolsep{0pt}}}
|
||||
\textbf{<?lsmb text('Number') ?>} & \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Qty') ?>} &
|
||||
\textbf{<?lsmb text('Unit') ?>} & \textbf{<?lsmb text('Price') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>} \\
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb sellprice.${lc} ?> &
|
||||
<?lsmb linetotal.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
\hfill
|
||||
\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
|
||||
& Subtotal & <?lsmb subtotal ?> \\
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
& <?lsmb taxdescription.${lc} ?> on <?lsmb taxbase.${lc} ?> & <?lsmb tax.${lc} ?>\\
|
||||
<?lsmb END ?>
|
||||
\hline
|
||||
& Total & <?lsmb ordtotal ?>\\
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
\hfill
|
||||
<?lsmb text('All prices in [_1].', currency) ?>
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
|
||||
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
|
||||
|
||||
%\footnotetext[1]{\tiny }
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,95 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: receipt.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
|
||||
\fi
|
||||
|
||||
\parbox[t]{12cm}{
|
||||
<?lsmb company ?>
|
||||
|
||||
<?lsmb address ?>}
|
||||
\hfill
|
||||
\parbox[t]{6cm}{\hfill <?lsmb source ?>}
|
||||
|
||||
\vspace*{0.6cm}
|
||||
|
||||
<?lsmb text_amount ?> \dotfill <?lsmb decimal ?>/100 \makebox[0.5cm]{\hfill}
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
\hfill <?lsmb datepaid ?> \makebox[2cm]{\hfill} <?lsmb amount ?>
|
||||
|
||||
% different date format for datepaid
|
||||
% <?lsmb DD ?><?lsmb MM ?><?lsmb YYYY ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{1.8cm}
|
||||
|
||||
<?lsmb memo ?>
|
||||
|
||||
\vspace{0.8cm}
|
||||
|
||||
<?lsmb company ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
<?lsmb name ?> \hfill <?lsmb datepaid ?> \hfill <?lsmb source ?>
|
||||
|
||||
\vspace{0.5cm}
|
||||
\begin{tabularx}{\textwidth}{lXrr@{}}
|
||||
\textbf{<?lsmb text('Invoice No.') ?>} & \textbf{<?lsmb text('Invoice Date') ?>}
|
||||
& \textbf{<?lsmb text('Due') ?>} & \textbf{<?lsmb text('Applied') ?>} \\
|
||||
<?lsmb FOREACH invnumber ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb invnumber.${lc} ?> & <?lsmb invdate.${lc} ?> \dotfill
|
||||
& <?lsmb due.${lc} ?> & <?lsmb paid.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
<?lsmb memo ?>
|
||||
|
||||
\vfill
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,144 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: request_quotation.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Request for Quotation') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Request for Quotation') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To:') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To:') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF vendorphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?> <?lsmb END ?> <?lsmb IF vendorfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddr2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb text('Attn: [_1]', shiptocontact) ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left"><?lsmb text('RFQ #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Required by') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Contact') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left"><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb quonumber ?></td>
|
||||
<td><?lsmb quodate ?></td>
|
||||
<td><?lsmb reqdate ?> </td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb text('Please provide price and delivery time for the following items:') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th align="right"><?lsmb text('Item') ?></th>
|
||||
<th align="left"><?lsmb text('Number') ?></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><?lsmb text('Qty') ?></th>
|
||||
<th> </th>
|
||||
<th><?lsmb text('Delivery') ?></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb IF notes ?>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,165 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: request_quotation.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}
|
||||
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{<?lsmb text('To') ?>}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorphone ?>
|
||||
<?lsmb text('Tel: [_1]', vendorphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF vendorfax ?>
|
||||
<?lsmb text('Fax: [_1]', vendorfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb shiptocontact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Request for Quotation') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{<?lsmb text('RFQ #') ?>} & \textbf{<?lsmb text('Date') ?>}
|
||||
& \textbf{<?lsmb text('Required by') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5ex]
|
||||
\hline
|
||||
<?lsmb quonumber ?> & <?lsmb quodate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
<?lsmb text('Please provide price and delivery time for the following items:') ?>
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}lcrllrr@{\extracolsep{\fill}}}
|
||||
\textbf{<?lsmb text('Number') ?>} & \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Qty') ?>} & & \textbf{<?lsmb text('Delivery') ?>}
|
||||
& \textbf{<?lsmb text('Unit Price') ?>} & \textbf{<?lsmb text('Extended') ?>}
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\hfill
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,185 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: sales_order.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Sales Order') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
span.c4 {font-size: 51%}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Sales Order') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF customerphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?> <?lsmb END ?> <?lsmb IF customerfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb shiptocontact ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?> <?lsmb IF shiptoemail ?><br>
|
||||
<?lsmb shiptoemail ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Order #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Order Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Required by') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Salesperson') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left" nowrap><?lsmb text('Ship Via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb ordnumber ?></td>
|
||||
<td><?lsmb orddate ?></td>
|
||||
<td><?lsmb reqdate ?></td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Price') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Disc %') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Amount') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb sellprice.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb discountrate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb linetotal.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="6" align="right"><?lsmb text('Total') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb invtotal ?></td><?lsmb ELSE ?>
|
||||
<th colspan="6" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="6" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>on
|
||||
<?lsmb taxbase.${loop_count} ?> @ <?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td colspan="2" align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="4"> </td>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4"><?lsmb text_amount ?>***** <?lsmb decimal ?>/100 <?lsmb IF terms ?><br>
|
||||
<?lsmb text('Terms Net [_1] days', terms) ?> <?lsmb END ?></td>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="2" align="right"><?lsmb ordtotal ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<?lsmb IF notes ?>
|
||||
<td><?lsmb text('Notes') ?></td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td><?lsmb END ?>
|
||||
<td align="right" nowrap><?lsmb text('All prices in [_1] Funds', currency) ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="60%"><span class=
|
||||
"c4"><?lsmb text('Special order items are subject to a 10% order cancellation fee.') ?></span></td>
|
||||
<td width="40%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,196 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: sales_order.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}{<?lsmb company ?>\hfill <?lsmb ordnumber ?>}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerphone ?>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerfax ?>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb shiptocontact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Sales Order') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Order #') ?>} & \textbf{<?lsmb text('Order Date') ?>}
|
||||
& \textbf{<?lsmb text('Required by') ?>}
|
||||
& \textbf{<?lsmb text('Salesperson') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship Via') ?>} \\ [0.5em]
|
||||
\hline
|
||||
<?lsmb ordnumber ?> & <?lsmb orddate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}rlcrlrrr@{\extracolsep{0pt}}}
|
||||
\textbf{<?lsmb text('Item') ?>} & \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>} & \textbf{<?lsmb text('Qty') ?>} &
|
||||
\textbf{<?lsmb text('Unit') ?>} & \textbf{<?lsmb text('Price') ?>}
|
||||
& \textbf{<?lsmb text('Disc %') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>}
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb sellprice.${lc} ?> &
|
||||
<?lsmb discountrate.${lc} ?> &
|
||||
<?lsmb linetotal.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
\hfill
|
||||
\begin{tabularx}{7cm}{Xr@{\hspace{1cm}}r@{}}
|
||||
& Subtotal & <?lsmb subtotal ?> \\
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
& <?lsmb taxdescription.${lc} ?> on <?lsmb taxbase.${lc} ?> & <?lsmb tax.${lc} ?>\\
|
||||
<?lsmb END ?>
|
||||
\hline
|
||||
& Total & <?lsmb ordtotal ?>\\
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb text_amount ?> ***** <?lsmb decimal ?>/100
|
||||
\hfill
|
||||
<?lsmb text('All prices in [_1].', currency) ?>
|
||||
|
||||
<?lsmb IF terms ?>
|
||||
<?lsmb text('Terms: Net [_1] days', terms) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
\centerline{\textbf{<?lsmb text('Thank You for your valued business!') ?>}}
|
||||
|
||||
\rule{\textwidth}{0.5pt}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: sales_quotation.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Quotation') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
span.c4 {font-size: 51%}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
th.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3" class="c1">
|
||||
<h4><?lsmb text('Quotation') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF customerphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?> <?lsmb END ?> <?lsmb IF customerfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Number') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Valid until') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Contact') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left" nowrap><?lsmb text('Ship via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb quonumber ?></td>
|
||||
<td><?lsmb quodate ?></td>
|
||||
<td><?lsmb reqdate ?></td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Price') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Disc %') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Amount') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?></td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb sellprice.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb discountrate.${loop_count} ?></td>
|
||||
<td align="right"><?lsmb linetotal.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?lsmb IF taxincluded ?>
|
||||
<th colspan="6" align="right"><?lsmb text('Total') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb invtotal ?></td><?lsmb ELSE ?>
|
||||
<th colspan="6" align="right"><?lsmb text('Subtotal') ?></th>
|
||||
<td colspan="2" align="right"><?lsmb subtotal ?></td><?lsmb END ?>
|
||||
</tr><?lsmb FOREACH tax ?><?lsmb loop_count = loop.index ?>
|
||||
<tr>
|
||||
<th colspan="6" align="right">
|
||||
<?lsmb taxdescription.${loop_count}.replace("\n","<br />") ?>on
|
||||
<?lsmb taxbase.${loop_count} ?> @ <?lsmb taxrate.${loop_count} ?> %</th>
|
||||
<td colspan="2" align="right"><?lsmb tax.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="4"> </td>
|
||||
<td colspan="4">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4"> <?lsmb IF terms ?> <?lsmb text('Terms Net [_1] days', terms) ?>
|
||||
<?lsmb END ?></td>
|
||||
<th colspan="2" align="right"><?lsmb text('Total') ?></th>
|
||||
<th colspan="2" align="right"><?lsmb quototal ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<?lsmb IF notes ?>
|
||||
<td><?lsmb text('Notes') ?></td>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td><?lsmb END ?>
|
||||
<td align="right"><?lsmb text('All prices in [_1] Funds', currency) ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td width="60%"><span class="c4"><?lsmb
|
||||
text('Special order items are subject to a 10% cancellation fee.')
|
||||
?></span></td>
|
||||
<td width="40%">
|
||||
X
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,163 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: sales_quotation.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\setlength\LTleft{0pt}
|
||||
\setlength\LTright{0pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
\newsavebox{\ftr}
|
||||
\sbox{\ftr}{
|
||||
\parbox{\textwidth}{
|
||||
\tiny
|
||||
\rule[1.5em]{\textwidth}{0.5pt}
|
||||
<?lsmb text('Special order items are subject to a 10\% cancellation fee.') ?>
|
||||
}
|
||||
}
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
\markboth{<?lsmb company ?>\hfill <?lsmb quonumber ?>}{<?lsmb company ?>\hfill <?lsmb quonumber ?>}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerphone ?>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?> ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerfax ?>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Quotation') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{<?lsmb text('Quotation #') ?>} & \textbf{<?lsmb text('Date') ?>}
|
||||
& \textbf{<?lsmb text('Valid until') ?>} & \textbf{<?lsmb text('Contact') ?>}
|
||||
& \textbf{<?lsmb text('Shipping Point') ?>}
|
||||
& \textbf{<?lsmb text('Ship via') ?>} \\ [0.5ex]
|
||||
\hline
|
||||
<?lsmb quonumber ?> & <?lsmb quodate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}llrlrrr@{\extracolsep{0pt}}}
|
||||
\textbf{<?lsmb text('Number') ?>} & \textbf{<?lsmb text('Description') ?>}
|
||||
& \textbf{<?lsmb text('Qty') ?>} & \textbf{<?lsmb text('Unit') ?>}
|
||||
& \textbf{<?lsmb text('Price') ?>} & \textbf{<?lsmb text('Disc %') ?>}
|
||||
& \textbf{<?lsmb text('Amount') ?>}
|
||||
\endhead
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb number.${lc} ?> &
|
||||
\begin{minipage}{2in}
|
||||
\raggedright
|
||||
<?lsmb item_description.${lc} ?>
|
||||
\end{minipage}&
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb sellprice.${lc} ?> &
|
||||
<?lsmb discountrate.${lc} ?> &
|
||||
<?lsmb linetotal.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\hline \hline
|
||||
\multicolumn{6}{r}{<?lsmb text('Subtotal') ?>} & <?lsmb subtotal ?> \\*
|
||||
<?lsmb FOREACH tax ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
\multicolumn{6}{r}{<?lsmb taxdescription.${lc}
|
||||
?> on <?lsmb taxbase.${lc} ?> }
|
||||
& <?lsmb tax.${lc} ?> \\*
|
||||
<?lsmb END ?>
|
||||
\multicolumn{6}{r}{<?lsmb text('Total') ?> } & <?lsmb quototal ?> \\*
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{0.2cm}
|
||||
|
||||
\hfill
|
||||
<?lsmb text('All prices in [_1].', currency) ?>
|
||||
|
||||
<?lsmb IF terms ?>
|
||||
<?lsmb text('Terms: [_1] days', terms) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
\hfill \parbox{7cm}{X \rule{6.5cm}{0.5pt}}
|
||||
|
||||
\rule{\textwidth}{0.5pt}
|
||||
|
||||
\usebox{\ftr}
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: shipping_label.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" } ?>
|
||||
\documentclass{scrartcl}
|
||||
\usepackage{iftex}
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\else
|
||||
\usepackage{fontspec}
|
||||
\fi
|
||||
\usepackage{tabularx}
|
||||
\usepackage[paperheight=10.5cm, paperwidth=16.2cm,top=1cm,bottom=1.5cm,left=2cm,right=2cm]{geometry}
|
||||
\begin{document}
|
||||
<?lsmb IF shiptoaddress1 ?>
|
||||
\noindent <?lsmb name ?>\\
|
||||
<?lsmb shiptoaddress1 ?>\\
|
||||
<?lsmb IF shiptoaddress2; shiptoaddress2 ?>\\ <?lsmb END ?>
|
||||
<?lsmb- shiptocity ?>
|
||||
<?lsmb IF shiptostate -?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?><?lsmb END ?> <?lsmb shiptozipcode ?>\\
|
||||
<?lsmb shiptocountry ?>
|
||||
<?lsmb ELSE ?>
|
||||
\noindent <?lsmb name ?>\\
|
||||
<?lsmb address1 ?> \\
|
||||
<?lsmb- IF address2; address2 ?> \\<?lsmb END ?>
|
||||
<?lsmb- city ?>
|
||||
<?lsmb- IF state -?>, <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>\\
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 2.0
|
||||
Date: 2024-03-16
|
||||
File: statement.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
2.0 Grouping of amounts by currency, in case of
|
||||
exposure in multiple currencies against a single customer
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Statement') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
tr.subtotal td { font-weight: bold }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?lsmb FOREACH statement IN statements ?>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Statement') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" align="right"><?lsmb statementdate ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="top">
|
||||
<td><?lsmb statement.entity.name ?><br>
|
||||
<?lsmb statement.address.line_one ?> <?lsmb IF statement.address.line_two ?><br>
|
||||
<?lsmb statement.address.line_two ?> <?lsmb END ?><br>
|
||||
<?lsmb statement.address.city ?> <?lsmb IF statement.address.state ?> ,
|
||||
<?lsmb statement.address.state ?> <?lsmb END ?>
|
||||
<?lsmb statement.address.mail_code ?><br></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Invoice #') ?></th>
|
||||
<th align="left"><?lsmb text('Order #') ?></th>
|
||||
<th width="10%"><?lsmb text('Date') ?></th>
|
||||
<th width="10%"><?lsmb text('Due') ?></th>
|
||||
<th width="10%"><?lsmb text('Current') ?></th>
|
||||
<th width="10%"><?lsmb text('30') ?></th>
|
||||
<th width="10%"><?lsmb text('60') ?></th>
|
||||
<th width="10%"><?lsmb text('90') ?></th>
|
||||
<th width="10%"><?lsmb text('Total') ?></th>
|
||||
<th width="10%"><?lsmb text('Currency') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10">
|
||||
<hr size="1">
|
||||
</td>
|
||||
</tr>
|
||||
<?lsmb- FOREACH invoice IN statement.aging.rows ;
|
||||
IF invoice.html_class.defined ;
|
||||
row_class = 'class="subtotal"';
|
||||
ELSE ;
|
||||
row_class = '';
|
||||
END; ?>
|
||||
<tr <?lsmb row_class ?> >
|
||||
<?lsmb- IF invoice.html_class.defined ?>
|
||||
<td><?lsmb text('Total') ?></td>
|
||||
<?lsmb- ELSE ?>
|
||||
<td><?lsmb invoice.invnumber ?></td>
|
||||
<?lsmb- END ?>
|
||||
<td><?lsmb invoice.ordnumber ?></td>
|
||||
<td><?lsmb invoice.transdate ?></td>
|
||||
<td><?lsmb invoice.duedate ?></td>
|
||||
<td align="right"><?lsmb invoice.c0_tc ?></td>
|
||||
<td align="right"><?lsmb invoice.c30_tc ?></td>
|
||||
<td align="right"><?lsmb invoice.c60_tc ?></td>
|
||||
<td align="right"><?lsmb invoice.c90_tc ?></td>
|
||||
<td align="right"><?lsmb invoice.total_tc ?></td>
|
||||
<td><?lsmb invoice.curr ?></td>
|
||||
</tr>
|
||||
<?lsmb- IF invoice.html_class == 'listsubtotal' ; ?>
|
||||
<tr class="subtotal">
|
||||
<td colspan="10">
|
||||
<hr size="1">
|
||||
</td>
|
||||
</tr>
|
||||
<?lsmb- END -?>
|
||||
<?lsmb END -?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table><?lsmb END ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,95 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 2.0
|
||||
Date: 2024-03-16
|
||||
File: statement.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
2.0 Grouping of amounts by currency, in case of
|
||||
exposure in multiple currencies against a single customer
|
||||
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
<?lsmb FOREACH statement IN statements ?>
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
<?lsmb statement.entity.name ?>
|
||||
|
||||
<?lsmb statement.address.line_one ?>
|
||||
<?lsmb statement.address.city ?> <?lsmb statement.address.state ?>
|
||||
<?lsmb statement.address.mail_code ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Statement') ?>}} \hfill
|
||||
\textbf{<?lsmb statementdate ?>}
|
||||
|
||||
\vspace{2cm}
|
||||
|
||||
\begin{tabular*}{\textwidth}{|ll@{\extracolsep\fill}ccrrrrrl|}
|
||||
\hline
|
||||
\textbf{<?lsmb text('Invoice #') ?>} & \textbf{<?lsmb text('Order #') ?>}
|
||||
& \textbf{<?lsmb text('Date') ?>} & \textbf{<?lsmb text('Due') ?>} &
|
||||
\textbf{<?lsmb text('Current') ?>} & \textbf{30} & \textbf{60} & \textbf{90} &
|
||||
\textbf{<?lsmb text('Total') ?>} & \textbf{<?lsmb text('Currency') ?>} \\
|
||||
\hline
|
||||
<?lsmb- FOREACH invoice IN statement.aging.rows -?>
|
||||
<?lsmb- IF invoice.html_class.defined -?>
|
||||
% \hline
|
||||
\textbf{<?lsmb text('Total') ?>} &
|
||||
& & &
|
||||
\textbf{<?lsmb invoice.c0_tc ?>} &
|
||||
\textbf{<?lsmb invoice.c30_tc ?>} &
|
||||
\textbf{<?lsmb invoice.c60_tc ?>} &
|
||||
\textbf{<?lsmb invoice.c90_tc ?>} &
|
||||
\textbf{<?lsmb invoice.total_tc ?>} &
|
||||
\textbf{<?lsmb invoice.curr ?>} \\
|
||||
<?lsmb- ELSE -?>
|
||||
<?lsmb invoice.invnumber ?> &
|
||||
<?lsmb invoice.ordnumber ?> &
|
||||
<?lsmb invoice.transdate ?> &
|
||||
<?lsmb invoice.duedate ?> &
|
||||
<?lsmb invoice.c0_tc ?> &
|
||||
<?lsmb invoice.c30_tc ?> &
|
||||
<?lsmb invoice.c60_tc ?> &
|
||||
<?lsmb invoice.c90_tc ?> &
|
||||
<?lsmb invoice.total_tc ?> &
|
||||
<?lsmb invoice.curr ?> \\
|
||||
<?lsmb- END -?>
|
||||
<?lsmb- IF invoice.html_class.defined -?>
|
||||
\hline
|
||||
<?lsmb- END -?>
|
||||
<?lsmb END ?>
|
||||
\end{tabular*}
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
\hfill
|
||||
\pagebreak
|
||||
<?lsmb END ?>
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,131 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: timecard.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Time Card') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Time Card') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Employee') ?></th>
|
||||
<td><?lsmb employee ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('ID') ?></th>
|
||||
<td><?lsmb employee_id ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td align="right">
|
||||
<table>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Card ID') ?></th>
|
||||
<td><?lsmb id ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Date') ?></th>
|
||||
<td><?lsmb transdate ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('In') ?></th>
|
||||
<td><?lsmb checkedin ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Out') ?></th>
|
||||
<td><?lsmb checkedout ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left" nowrap><?lsmb text('Hours') ?></th>
|
||||
<td><?lsmb qty ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr valign="bottom">
|
||||
<td>
|
||||
<table>
|
||||
<tr valign="top">
|
||||
<th align="left"><?lsmb text('Job/Project #') ?></th>
|
||||
<td><?lsmb projectnumber ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Description') ?></th>
|
||||
<td><?lsmb projectdescription ?></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th align="left"><?lsmb text('Labor/Service Code') ?></th>
|
||||
<td><?lsmb partnumber ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"><?lsmb text('Description') ?></th>
|
||||
<td><?lsmb description ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td align="right">
|
||||
<table>
|
||||
<tr>
|
||||
<th align="right"><?lsmb text('Rate') ?></th>
|
||||
<td><?lsmb sellprice ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="right"><?lsmb text('Total') ?></th>
|
||||
<td><?lsmb total ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr><?lsmb IF notes ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td>
|
||||
</tr><?lsmb END ?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: timecard.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
\centerline{\textbf{\MakeUppercase{<?lsmb text('Time Card') ?>}}}
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\begin{tabular}[t]{ll}
|
||||
\textbf{<?lsmb text('Employee') ?>} & <?lsmb employee ?> \\
|
||||
\textbf{<?lsmb text('ID') ?>} & <?lsmb employee_id ?> \\
|
||||
\end{tabular}
|
||||
\hfill
|
||||
\begin{tabular}[t]{ll}
|
||||
\textbf{<?lsmb text('Card ID') ?>} & <?lsmb id ?> \\
|
||||
\textbf{<?lsmb text('Date') ?>} & <?lsmb transdate ?> \\
|
||||
\textbf{<?lsmb text('In') ?>} & <?lsmb checkedin ?> \\
|
||||
\textbf{<?lsmb text('Out') ?>} & <?lsmb checkedout ?> \\
|
||||
\textbf{<?lsmb text('Hours') ?>} & <?lsmb qty ?> \\
|
||||
\end{tabular}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabular}[b]{ll}
|
||||
\textbf{<?lsmb text('Job/Project #') ?>} & <?lsmb projectnumber ?> \\
|
||||
\textbf{<?lsmb text('Description') ?>} & <?lsmb projectdescription ?> \\
|
||||
\textbf{<?lsmb text('Labor/Service Code') ?>} & <?lsmb partnumber ?> \\
|
||||
\textbf{<?lsmb text('Description') ?>} & <?lsmb description ?> \\
|
||||
\end{tabular}
|
||||
\hfill
|
||||
\begin{tabular}[b]{lr}
|
||||
\textbf{<?lsmb text('Rate') ?>} & <?lsmb sellprice ?> \\
|
||||
\textbf{<?lsmb text('Total') ?>} & <?lsmb total ?> \\
|
||||
\end{tabular}
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
@@ -0,0 +1,131 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.0
|
||||
Date: 2021-01-04
|
||||
File: work_order.html
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
-?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<title><?lsmb text('Work Order') ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: white;
|
||||
}
|
||||
tr.c3 {background-color: black}
|
||||
span.c2 {color: white}
|
||||
h4.c1 {text-transform:uppercase}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%">
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
<tr>
|
||||
<th colspan="3">
|
||||
<h4 class="c1"><?lsmb text('Work Order') ?></h4>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr class="c3">
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('To') ?></span></th>
|
||||
<th align="left" width="50%"><span class="c2"><?lsmb text('Ship To') ?></span></th>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td><?lsmb name ?><br>
|
||||
<?lsmb address1 ?> <?lsmb IF address2 ?><br>
|
||||
<?lsmb address2 ?> <?lsmb END ?><br>
|
||||
<?lsmb city ?> <?lsmb IF state ?> , <?lsmb state ?> <?lsmb END ?> <?lsmb zipcode ?>
|
||||
<?lsmb IF country ?><br>
|
||||
<?lsmb country ?> <?lsmb END ?><br>
|
||||
<?lsmb IF contact ?><br>
|
||||
<?lsmb text('Attn: [_1]', contact) ?> <?lsmb END ?> <?lsmb IF customerphone ?><br>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?> <?lsmb END ?> <?lsmb IF customerfax ?><br>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?> <?lsmb END ?> <?lsmb IF email ?><br>
|
||||
<?lsmb email ?> <?lsmb END ?></td>
|
||||
<td><?lsmb shiptoname ?><br>
|
||||
<?lsmb shiptoaddress1 ?> <?lsmb IF shiptoaddress2 ?><br>
|
||||
<?lsmb shiptoaddress2 ?> <?lsmb END ?><br>
|
||||
<?lsmb shiptocity ?> <?lsmb IF shiptostate ?> , <?lsmb shiptostate ?> <?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?> <?lsmb IF shiptocountry ?><br>
|
||||
<?lsmb shiptocountry ?> <?lsmb END ?><br>
|
||||
<?lsmb IF shiptocontact ?><br>
|
||||
<?lsmb shiptocontact ?> <?lsmb END ?> <?lsmb IF shiptophone ?><br>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?> <?lsmb END ?> <?lsmb IF shiptofax ?><br>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?> <?lsmb END ?> <?lsmb IF shiptoemail ?><br>
|
||||
<?lsmb shiptoemail ?> <?lsmb END ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="1">
|
||||
<tr>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Order #') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Order Date') ?></th>
|
||||
<th width="17%" align="left"><?lsmb text('Required by') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Salesperson') ?></th>
|
||||
<th width="17%" align="left" nowrap><?lsmb text('Shipping Point') ?></th>
|
||||
<th width="15%" align="left" nowrap><?lsmb text('Ship Via') ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?lsmb ordnumber ?></td>
|
||||
<td><?lsmb orddate ?></td>
|
||||
<td><?lsmb reqdate ?></td>
|
||||
<td><?lsmb employee ?></td>
|
||||
<td><?lsmb shippingpoint ?> </td>
|
||||
<td><?lsmb shipvia ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr class="c3">
|
||||
<th align="right"><span class="c2"><?lsmb text('Item') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Number') ?></span></th>
|
||||
<th align="left"><span class="c2"><?lsmb text('Description') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Qty') ?></span></th>
|
||||
<th> </th>
|
||||
<th><span class="c2"><?lsmb text('Bin') ?></span></th>
|
||||
<th><span class="c2"><?lsmb text('Serial #') ?></span></th>
|
||||
</tr><?lsmb FOREACH number ?><?lsmb loop_count = loop.index ?>
|
||||
<tr valign="top">
|
||||
<td align="right"><?lsmb runningnumber.${loop_count} ?>.</td>
|
||||
<td><?lsmb number.${loop_count} ?></td>
|
||||
<td><?lsmb item_description.${loop_count}.replace("\n","<br />") ?></td>
|
||||
<td align="right"><?lsmb qty.${loop_count} ?></td>
|
||||
<td><?lsmb unit.${loop_count} ?></td>
|
||||
<td><?lsmb bin.${loop_count} ?></td>
|
||||
<td><?lsmb serialnumber.${loop_count} ?></td>
|
||||
</tr><?lsmb END ?>
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<hr noshade>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><?lsmb IF notes ?>
|
||||
<td>
|
||||
<?lsmb FOREACH P IN notes.split('\n\n') ?>
|
||||
<p><?lsmb P ?></p><?lsmb END ?>
|
||||
</td><?lsmb END ?>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,168 @@
|
||||
<?lsmb# This is a comment block; it's ignored by the template engine.
|
||||
|
||||
Version: 1.1
|
||||
Date: 2022-07-22
|
||||
File: work_order.tex
|
||||
Set: demo
|
||||
|
||||
Template version numbers are explicitly not aligned across templates or
|
||||
releases. No explicit versioning was applied before 2021-01-04.
|
||||
|
||||
Version Changes
|
||||
1.1 Merged xelatex targetting templates with those targetting pdflatex
|
||||
|
||||
-?>
|
||||
<?lsmb FILTER latex { format="$FORMAT($PROCESSOR)" };
|
||||
# Uncomment the next line to overrule the value from System > Defaults;
|
||||
# The value should be without the 'paper' suffix. E.g. "a4" for "a4paper"
|
||||
# SETTINGS.papersize = "<your-format>";
|
||||
INCLUDE "preamble.tex"; -?>
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pagestyle{myheadings}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\ifpdftex
|
||||
%% (pdf)latex
|
||||
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
|
||||
\fi
|
||||
|
||||
<?lsmb INCLUDE letterhead ?>
|
||||
|
||||
|
||||
% Break old pagebreak directive
|
||||
%<?xlsmb pagebreak 65 27 48 ?>
|
||||
%\end{tabularx}
|
||||
%
|
||||
%\newpage
|
||||
%
|
||||
%\markboth{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}{<?xlsmb company ?>\hfill <?xlsmb ordnumber ?>}
|
||||
%
|
||||
%\begin{tabularx}{\textwidth}{@{}rlXrll@{}}
|
||||
% \textbf{Item} & \textbf{Number} & \textbf{Description} & \textbf{Qt'y} &
|
||||
% & \textbf{Serial Number} \\
|
||||
%<?xlsmb end pagebreak ?>
|
||||
|
||||
|
||||
\vspace*{0.5cm}
|
||||
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb name ?>
|
||||
|
||||
<?lsmb address1 ?>
|
||||
|
||||
<?lsmb address2 ?>
|
||||
|
||||
<?lsmb city ?>
|
||||
<?lsmb IF state ?>
|
||||
\hspace{-0.1cm}, <?lsmb state ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb zipcode ?>
|
||||
|
||||
<?lsmb country ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF contact ?>
|
||||
<?lsmb contact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerphone ?>
|
||||
<?lsmb text('Tel: [_1]', customerphone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF customerfax ?>
|
||||
<?lsmb text('Fax: [_1]', customerfax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb email ?>
|
||||
}
|
||||
\parbox[t]{.5\textwidth}{
|
||||
\textbf{Ship To}
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb shiptoname ?>
|
||||
|
||||
<?lsmb shiptoaddress1 ?>
|
||||
|
||||
<?lsmb shiptoaddress2 ?>
|
||||
|
||||
<?lsmb shiptocity ?>
|
||||
<?lsmb IF shiptostate ?>
|
||||
\hspace{-0.1cm}, <?lsmb shiptostate ?>
|
||||
<?lsmb END ?>
|
||||
<?lsmb shiptozipcode ?>
|
||||
|
||||
<?lsmb shiptocountry ?>
|
||||
|
||||
\vspace{0.3cm}
|
||||
|
||||
<?lsmb IF shiptocontact ?>
|
||||
<?lsmb shiptocontact ?>
|
||||
\vspace{0.2cm}
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptophone ?>
|
||||
<?lsmb text('Tel: [_1]', shiptophone) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb IF shiptofax ?>
|
||||
<?lsmb text('Fax: [_1]', shiptofax) ?>
|
||||
<?lsmb END ?>
|
||||
|
||||
<?lsmb shiptoemail ?>
|
||||
}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\textbf{\MakeUppercase{<?lsmb text('Work Order') ?>}}
|
||||
\hfill
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
|
||||
\textbf{Order \#} & \textbf{Order Date} & \textbf{Required by} & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship Via} \\ [0.5em]
|
||||
\hline
|
||||
<?lsmb ordnumber ?> & <?lsmb orddate ?> & <?lsmb reqdate ?> & <?lsmb employee ?> & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\begin{longtable}{@{\extracolsep{\fill}}rllrll@{}}
|
||||
\textbf{<?lsmb text('Item') ?>} & \textbf{<?lsmb text('Number') ?>}
|
||||
& \textbf{<?lsmb text('Description') ?>} & \textbf{<?lsmb text('Qty') ?>} &
|
||||
& \textbf{<?lsmb text('Serial Number') ?>} \\
|
||||
<?lsmb FOREACH number ?>
|
||||
<?lsmb lc = loop.index ?>
|
||||
<?lsmb runningnumber.${lc} ?> &
|
||||
<?lsmb number.${lc} ?> &
|
||||
<?lsmb item_description.${lc} ?> &
|
||||
<?lsmb qty.${lc} ?> &
|
||||
<?lsmb unit.${lc} ?> &
|
||||
<?lsmb serialnumber.${lc} ?> \\
|
||||
<?lsmb END ?>
|
||||
\end{longtable}
|
||||
|
||||
|
||||
\parbox{\textwidth}{
|
||||
\rule{\textwidth}{2pt}
|
||||
|
||||
\vspace{12pt}
|
||||
|
||||
<?lsmb FOREACH P IN notes.split('\n\n+') ?>
|
||||
<?lsmb P ?>\medskip
|
||||
|
||||
<?lsmb END ?>
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
\end{document}
|
||||
<?lsmb END -?>
|
||||
Reference in new issue
Block a user