Compare commits

...

5 commits
main ... main

Author SHA1 Message Date
teutat3s d5e7cb73a8
Merge pull request 'dev: add editorconfig' (#3) from editorconfig into main
Reviewed-on: momo/invoiceplane-template#3
Reviewed-by: teutat3s <teutat3s@noreply.git.pub.solar>
2024-08-15 19:12:20 +00:00
b12f d59893ebcb
Merge pull request 'Improve check for non-existent variables' (#2) from custom-field-check-with-isset into main
Reviewed-on: momo/invoiceplane-template#2
Reviewed-by: teutat3s <teutat3s@noreply.git.pub.solar>
Reviewed-by: b12f <b12f@noreply.git.pub.solar>
2024-08-15 14:17:20 +00:00
b12f b0dabc8dfc
dev: add editorconfig 2024-08-15 16:00:19 +02:00
hensoko d8fb72b1b1
Update momo.php 2024-08-15 10:55:41 +02:00
Benjamin Yule Bädorf ba61a4fb5b
docs: add docs for custom fields, rename template 2024-08-12 11:31:37 +02:00
3 changed files with 127 additions and 43 deletions

76
.editorconfig Normal file
View file

@ -0,0 +1,76 @@
# Editor configuration, see http://editorconfig.org
root = true
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
indent_style = space
indent_size = 2
# Ignore diffs/patches
[*.{diff,patch}]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
indent_size = unset
charset = unset
indent_style = unset
indent_size = unset
[{.*,secrets}/**]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
indent_style = unset
indent_size = unset
[*.rom]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
indent_style = unset
indent_size = unset
[*.py]
indent_size = 4
[*.md]
max_line_length = off
trim_trailing_whitespace = false
# Ignore diffs/patches
[*.{diff,patch}]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
indent_size = unset
charset = unset
indent_style = unset
indent_size = unset
[{.*,secrets}/**]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
indent_style = unset
indent_size = unset
[*.rom]
end_of_line = unset
insert_final_newline = unset
trim_trailing_whitespace = unset
charset = unset
indent_style = unset
indent_size = unset
[*.py]
indent_size = 4
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View file

@ -8,10 +8,18 @@ This Template is adopted from the original one with some minor changes:
- Altered spacing and fields due to DIN 5008
- Moved zip-code in front of city
This Template has hardcoded German text.
## Installation
Simply add the files into `application/views/invoice_templates/pdf` and select them in Invoiceplane's *System Settings -> Invoices* as PDF templates.
### Extra fields
You can add a "Leistungszeitraum" for any invoice by defining the two custom date fields: `Leistungszeitraum-Anfang` and `Leistungszeitraum-Ende`. These will not be shown on the invoice if either is not set.
You can also add a description text for the full invoice by adding a text custom field called `Beschreibung`.
## Example
![Screenshot](screenshot.png)

View file

@ -103,49 +103,49 @@ footer .notes {
<div id="pm-3"><hr /></div>
<div id="client">
<div id="sichtfenster-absender">
<?php
echo htmlsc($invoice->user_name) . ' - ' . htmlsc($invoice->user_address_1) . ' - ' . htmlsc($invoice->user_zip) . ' ' . htmlsc($invoice->user_city);
?>
<hr />
</div>
<div>
<b><?php _htmlsc(format_client($invoice)); ?></b>
</div>
<?php if ($invoice->client_vat_id) {
echo '<div>' . trans('vat_id_short') . ': ' . $invoice->client_vat_id . '</div>';
}
if ($invoice->client_tax_code) {
echo '<div>' . trans('tax_code_short') . ': ' . $invoice->client_tax_code . '</div>';
}
if ($invoice->client_address_1) {
echo '<div>' . htmlsc($invoice->client_address_1) . '</div>';
}
if ($invoice->client_address_2) {
echo '<div>' . htmlsc($invoice->client_address_2) . '</div>';
}
if ($invoice->client_city || $invoice->client_state || $invoice->client_zip) {
echo '<div>';
<div id="sichtfenster-absender">
<?php
echo htmlsc($invoice->user_name) . ' - ' . htmlsc($invoice->user_address_1) . ' - ' . htmlsc($invoice->user_zip) . ' ' . htmlsc($invoice->user_city);
?>
<hr />
</div>
<div>
<b><?php _htmlsc(format_client($invoice)); ?></b>
</div>
<?php if ($invoice->client_vat_id) {
echo '<div>' . trans('vat_id_short') . ': ' . $invoice->client_vat_id . '</div>';
}
if ($invoice->client_tax_code) {
echo '<div>' . trans('tax_code_short') . ': ' . $invoice->client_tax_code . '</div>';
}
if ($invoice->client_address_1) {
echo '<div>' . htmlsc($invoice->client_address_1) . '</div>';
}
if ($invoice->client_address_2) {
echo '<div>' . htmlsc($invoice->client_address_2) . '</div>';
}
if ($invoice->client_city || $invoice->client_state || $invoice->client_zip) {
echo '<div>';
if ($invoice->client_zip) {
echo htmlsc($invoice->client_zip) . ' ';
}
if ($invoice->client_city) {
echo htmlsc($invoice->client_city) . ' ';
}
if ($invoice->client_state) {
echo htmlsc($invoice->client_state);
}
echo '</div>';
}
if ($invoice->client_country) {
echo '<div>' . get_country_name(trans('cldr'), $invoice->client_country) . '</div>';
}
echo htmlsc($invoice->client_zip) . ' ';
}
if ($invoice->client_city) {
echo htmlsc($invoice->client_city) . ' ';
}
if ($invoice->client_state) {
echo htmlsc($invoice->client_state);
}
echo '</div>';
}
if ($invoice->client_country) {
echo '<div>' . get_country_name(trans('cldr'), $invoice->client_country) . '</div>';
}
echo '<br/>';
echo '<br/>';
if ($invoice->client_phone) {
echo '<div>' . trans('phone_abbr') . ': ' . htmlsc($invoice->client_phone) . '</div>';
} ?>
if ($invoice->client_phone) {
echo '<div>' . trans('phone_abbr') . ': ' . htmlsc($invoice->client_phone) . '</div>';
} ?>
</div>
<header class="clearfix">
@ -156,7 +156,7 @@ footer .notes {
<h1 class="invoice-title"><?php echo trans('invoice'); ?></h1>
<!-- client is extracted due to absolute position -->
<!-- client is extracted due to absolute position -->
<div id="company">
<div><b><?php _htmlsc($invoice->user_name); ?></b></div>
@ -229,7 +229,7 @@ footer .notes {
<p class="invoice-meta">
Rechnungsnummer: <?php echo $invoice->invoice_number; ?><br />
<?php if ($custom_fields['invoice']['Leistungszeitraum-Anfang'] && $custom_fields['invoice']['Leistungszeitraum-Ende']): ?>
<?php if (isset($custom_fields['invoice']['Leistungszeitraum-Anfang']) && isset($custom_fields['invoice']['Leistungszeitraum-Ende'])): ?>
Leistungszeitraum:
<?php echo date_from_mysql($custom_fields['invoice']['Leistungszeitraum-Anfang'], true); ?>
-
@ -237,7 +237,7 @@ footer .notes {
<?php endif; ?>
</p>
<?php if ($custom_fields['invoice']['Beschreibung']): ?>
<?php if (isset($custom_fields['invoice']['Beschreibung'])): ?>
<p>
<?php echo $custom_fields['invoice']['Beschreibung']; ?>
</p>