From: Sven Schöling Date: Thu, 10 Dec 2009 15:12:48 +0000 (+0100) Subject: ir.pl: template footer, payments. X-Git-Tag: release-2.6.1beta1~72^2~11 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=e50a00d20a90057f9b04dc524b6d13afffb0c750;p=kivitendo-erp.git ir.pl: template footer, payments. --- diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index 2f2f04374..0e64a5b8a 100644 --- a/bin/mozilla/ir.pl +++ b/bin/mozilla/ir.pl @@ -265,7 +265,6 @@ sub form_header { $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); - $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0; my $set_duedate_url = "$form->{script}?action=set_duedate"; @@ -354,368 +353,61 @@ sub form_footer { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; - - $main::auth->assert('vendor_invoice_edit'); - $form->{invtotal} = $form->{invsubtotal}; - - my ($rows, $introws); - if (($rows = $form->numtextrows($form->{notes}, 25, 8)) < 2) { - $rows = 2; - } - if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) { - $introws = 2; - } - $rows = ($rows > $introws) ? $rows : $introws; - my $notes = - qq||; - my $intnotes = - qq||; - - $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : ""; - - my $taxincluded = ""; - if ($form->{taxaccounts}) { - $taxincluded = qq| - {taxincluded}> | - . $locale->text('Tax Included') . qq| -|; - } - - my ($tax, $subtotal); - if (!$form->{taxincluded}) { - - foreach my $item (split / /, $form->{taxaccounts}) { - if ($form->{"${item}_base"}) { - $form->{invtotal} += $form->{"${item}_total"} = - $form->round_amount( - $form->{"${item}_base"} * $form->{"${item}_rate"}, - 2); - $form->{"${item}_total"} = - $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2); - - $tax .= qq| - - $form->{"${item}_description"} | - . $form->{"${item}_rate"} * 100 .qq|% - $form->{"${item}_total"} - -|; - } - } + $main::auth->assert('invoice_edit'); - $form->{invsubtotal} = - $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0); + $form->{invtotal} = $form->{invsubtotal}; + $form->{oldinvtotal} = $form->{invtotal}; - $subtotal = qq| - - | . $locale->text('Subtotal') . qq| - $form->{invsubtotal} - -|; + # note rows + $form->{rows} = max 2, + $form->numtextrows($form->{notes}, 26, 8), + $form->numtextrows($form->{intnotes}, 35, 8); - } - if ($form->{taxincluded}) { - foreach my $item (split / /, $form->{taxaccounts}) { - if ($form->{"${item}_base"}) { - $form->{"${item}_total"} = - $form->round_amount( - ($form->{"${item}_base"} * $form->{"${item}_rate"} / - (1 + $form->{"${item}_rate"}) - ), - 2); - $form->{"${item}_base"} = - $form->round_amount($form->{"${item}_base"}, 2); - $form->{"${item}_netto"} = - $form->round_amount( - ($form->{"${item}_base"} - $form->{"${item}_total"}), - 2); - $form->{"${item}_netto"} = - $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2); - $form->{"${item}_total"} = - $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2); - - $tax .= qq| - - Enthaltene $form->{"${item}_description"} | - . $form->{"${item}_rate"} * 100 .qq|% - $form->{"${item}_total"} - - - Nettobetrag - $form->{"${item}_netto"} - -|; + # tax, total and subtotal calculations + my ($tax, $subtotal); + $form->{taxaccounts_array} = [ split / /, $form->{taxaccounts} ]; + + foreach my $item (@{ $form->{taxaccounts_array} }) { + if ($form->{"${item}_base"}) { + if ($form->{taxincluded}) { + $form->{"${item}_total"} = $form->round_amount( ($form->{"${item}_base"} * $form->{"${item}_rate"} + / (1 + $form->{"${item}_rate"})), 2); + $form->{"${item}_netto"} = $form->round_amount( ($form->{"${item}_base"} - $form->{"${item}_total"}), 2); + } else { + $form->{"${item}_total"} = $form->round_amount( $form->{"${item}_base"} * $form->{"${item}_rate"}, 2); + $form->{invtotal} += $form->{"${item}_total"}; } } - } - $form->{oldinvtotal} = $form->{invtotal}; - $form->{invtotal} = - $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0); - - my $follow_ups_block; + # follow ups if ($form->{id}) { - my $follow_ups = FU->follow_ups('trans_id' => $form->{id}); - - if (@{ $follow_ups} ) { - my $num_due = sum map { $_->{due} * 1 } @{ $follow_ups }; - $follow_ups_block = qq| - - | . $locale->text("There are #1 unfinished follow-ups of which #2 are due.", scalar @{ $follow_ups }, $num_due) . qq| - -|; - } - } - - our $colspan; - print qq| - - - - - - - -
- - - - - - - - - - $follow_ups_block -
| . $locale->text('Notes') . qq|| . $locale->text('Internal Notes') . qq|
$notes$intnotes
-
- $taxincluded -
- - $subtotal - $tax - - - - -
| . $locale->text('Total') . qq|$form->{invtotal}
-
- - -|; - my $webdav_list; - if ($main::webdav) { - $webdav_list = qq| - -
- - - Dokumente im Webdav-Repository - - - - -|; - foreach my $file (@{ $form->{WEBDAV} }) { - $webdav_list .= qq| - - - - -|; - } - $webdav_list .= qq| -
DateinameWebdavlink
$file->{name}$file->{type}
- -|; - - print $webdav_list; - } - print qq| - - - - - - -|; - - my @column_index; - if ($form->{currency} eq $form->{defaultcurrency}) { - @column_index = qw(datepaid source memo paid AP_paid); - } else { - @column_index = qw(datepaid source memo paid exchangerate AP_paid); + $form->{follow_ups} = FU->follow_ups('trans_id' => $form->{id}) || []; + $form->{follow_ups_unfinished} = ( sum map { $_->{due} * 1 } @{ $form->{follow_ups} } ) || 0; } - my %column_data; - $column_data{datepaid} = ""; - $column_data{paid} = ""; - $column_data{exchangerate} = ""; - $column_data{AP_paid} = ""; - $column_data{source} = ""; - $column_data{memo} = ""; - - print qq| - -|; - map { print "$column_data{$_}\n" } @column_index; - print qq| - -|; - - my @triggers = (); + # payments my $totalpaid = 0; - $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"}); - for my $i (1 .. $form->{paidaccounts}) { - - print qq| - -|; + $form->{paid_indices} = [ 1 .. $form->{paidaccounts} ]; + for my $i (1 .. $form->{paidaccounts}) { $form->{"selectAP_paid_$i"} = $form->{selectAP_paid}; - $form->{"selectAP_paid_$i"} =~ - s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/; - + $form->{"selectAP_paid_$i"} =~ s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/; $totalpaid += $form->{"paid_$i"}; - - # format amounts - if ($form->{"paid_$i"}) { - $form->{"paid_$i"} = - $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2); - } - $form->{"exchangerate_$i"} = - $form->format_amount(\%myconfig, $form->{"exchangerate_$i"}); - - my $exchangerate = qq| |; - if ($form->{currency} ne $form->{defaultcurrency}) { - if ($form->{"forex_$i"}) { - $exchangerate = - qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|; - } else { - $exchangerate = - qq|{"exchangerate_$i"}>|; - } - } - $exchangerate .= qq| -{"forex_$i"}> -|; - - $column_data{"paid_$i"} = - qq||; - $column_data{"exchangerate_$i"} = qq||; - $column_data{"AP_paid_$i"} = - qq||; - $column_data{"datepaid_$i"} = - qq||; - $column_data{"source_$i"} = - qq||; - $column_data{"memo_$i"} = - qq||; - - map { print qq|$column_data{"${_}_$i"}\n| } @column_index; - - print qq| - -|; - push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i"); - } - - my $paid_missing = $form->{oldinvtotal} - $totalpaid; - - print qq| - - - - - - - - - - - - - - {oldinvtotal}> - {paidaccounts}> - -
| . $locale->text('Payments') . qq|
" . $locale->text('Date') . "" . $locale->text('Amount') . "" . $locale->text('Exch') . "" . $locale->text('Account') . "" . $locale->text('Source') . "" . $locale->text('Memo') . "
$exchangerate -
| . $locale->text('Total') . qq|| . H($form->format_amount(\%myconfig, $totalpaid, 2)) . qq|
| . $locale->text('Missing amount') . qq|| . H($form->format_amount(\%myconfig, $paid_missing, 2)) . qq|
- - - -
- - -
-|; - - my $invdate = $form->datetonum($form->{invdate}, \%myconfig); - my $closedto = $form->datetonum($form->{closedto}, \%myconfig); - - print qq| -|; - - if ($form->{id}) { - my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && (($totalpaid == 0) || ($totalpaid eq "")); - - print qq| -|; - print qq| -| if ($show_storno); - if ($form->{radier}) { - print qq| - -|; - } - print qq| - -|; - } - if (!$form->{id} && ($invdate > $closedto)) { - print qq| | . - NTI($cgi->submit('-name' => 'action', '-value' => $locale->text('Save draft'), - '-class' => 'submit')); - } - - print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers); - $form->hide_form(qw(rowcount callback draft_id draft_description vendor_discount)); - - # button for saving history - if($form->{id} ne "") { - print qq| - |; - } - # /button for saving history - # mark_as_paid button - if($form->{id} ne "") { - print qq| |; - } - # /mark_as_paid button -print qq| - - -|; + print $form->parse_html_template('ir/form_footer', { + is_type_credit_note => ($form->{type} eq "credit_note"), + totalpaid => $totalpaid, + paid_missing => $form->{invtotal} - $totalpaid, + show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && !$totalpaid, + show_delete => ($form->current_date(\%myconfig) eq $form->{gldate}), + }); +##print $form->parse_html_template('ir/_payments'); # parser +##print $form->parse_html_template('webdav/_list'); # parser $main::lxdebug->leave_sub(); } diff --git a/locale/de/ir b/locale/de/ir index f0882c65d..3856ab26e 100644 --- a/locale/de/ir +++ b/locale/de/ir @@ -9,7 +9,6 @@ $self->{texts} = { 'AP Transaction' => 'Kreditorenbuchung', 'AR' => 'Verkauf', 'AR Transaction' => 'Debitorenbuchung', - 'Account' => 'Konto', 'Add Purchase Order' => 'Lieferantenauftrag erfassen', 'Add Quotation' => 'Angebot erfassen', 'Add Request for Quotation' => 'Anfrage erfassen', @@ -18,7 +17,6 @@ $self->{texts} = { 'Address' => 'Adresse', 'Advance turnover tax return' => 'Umsatzsteuervoranmeldung', 'All reports' => 'Alle Berichte (Kontenübersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)', - 'Amount' => 'Betrag', 'Apr' => 'Apr', 'April' => 'April', 'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:', @@ -88,7 +86,6 @@ $self->{texts} = { 'Date' => 'Datum', 'Dec' => 'Dez', 'December' => 'Dezember', - 'Delete' => 'Löschen', 'Delete drafts' => 'Entwürfe löschen', 'Delivered' => 'Geliefert', 'Delivery Date' => 'Lieferdatum', @@ -108,7 +105,6 @@ $self->{texts} = { 'Enter longdescription' => 'Langtext eingeben', 'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', 'Ertrag' => 'Ertrag', - 'Exch' => 'Wechselkurs.', 'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs für die Bezahlung!', 'Exchangerate missing!' => 'Es fehlt der Wechselkurs!', 'Extended' => 'Gesamt', @@ -116,13 +112,11 @@ $self->{texts} = { 'Feb' => 'Feb', 'February' => 'Februar', 'File' => 'Datei', - 'Follow-Up' => 'Wiedervorlage', 'GL Transaction' => 'Dialogbuchung', 'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr', 'Group' => 'Warengruppe', 'History' => 'Historie', 'In-line' => 'im Text', - 'Internal Notes' => 'interne Bemerkungen', 'Invnumber missing!' => 'Rechnungsnummer fehlt!', 'Invoice' => 'Rechnung', 'Invoice Date missing!' => 'Rechnungsdatum fehlt!', @@ -148,11 +142,9 @@ $self->{texts} = { 'May' => 'Mai', 'May ' => 'Mai', 'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen', - 'Memo' => 'Memo', 'Message' => 'Nachricht', 'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.', 'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.', - 'Missing amount' => 'Fehlbetrag', 'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.', 'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.', 'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.', @@ -166,7 +158,6 @@ $self->{texts} = { 'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.', 'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.', 'No.' => 'Position', - 'Notes' => 'Bemerkungen', 'Nov' => 'Nov', 'November' => 'November', 'Number' => 'Nummer', @@ -192,12 +183,9 @@ $self->{texts} = { 'Part description' => 'Artikelbeschreibung', 'Payment date missing!' => 'Tag der Zahlung fehlt!', 'Payment posted!' => 'Zahlung gebucht!', - 'Payments' => 'Zahlungsausgänge', 'Phone' => 'Telefon', 'Pick List' => 'Sammelliste', 'Please enter values' => 'Bitte Werte eingeben', - 'Post' => 'Buchen', - 'Post Payment' => 'Zahlung buchen', 'Postscript' => 'Postscript', 'Preview' => 'Druckvorschau', 'Price' => 'Preis', @@ -229,7 +217,6 @@ $self->{texts} = { 'Sales Invoice' => 'Rechnung', 'Sales Order' => 'Kundenauftrag', 'Sales quotation' => 'Angebot', - 'Save draft' => 'Entwurf speichern', 'Screen' => 'Bildschirm', 'Select a Customer' => 'Endkunde auswählen', 'Select a customer' => 'Einen Kunden auswählen', @@ -248,14 +235,11 @@ $self->{texts} = { 'Shipping Address' => 'Lieferadresse', 'Show details' => 'Details anzeigen', 'Skip' => 'Überspringen', - 'Source' => 'Beleg', - 'Storno' => 'Storno', 'Storno Invoice' => 'Stornorechnung', 'Storno Packing List' => 'Stornolieferschein', 'Street' => 'Straße', 'Subject' => 'Betreff', 'Subtotal' => 'Zwischensumme', - 'Tax Included' => 'Steuer im Preis inbegriffen', 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.', 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.', 'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ungütigen Perl-Code:', @@ -264,16 +248,12 @@ $self->{texts} = { 'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:', 'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:', 'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:', - 'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.', 'To (email)' => 'An', - 'Total' => 'Summe', 'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen', 'Transfer To Stock' => 'Lagereingang', 'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.', 'Unit' => 'Einheit', 'Unknown dependency \'%s\'.' => 'Unbekannte Abhängigkeit \'%s\'.', - 'Update' => 'Erneuern', - 'Use As Template' => 'Als Vorlage verwenden', 'Value' => 'Wert', 'Variable' => 'Variable', 'Vendor' => 'Lieferant', @@ -297,9 +277,7 @@ $self->{texts} = { 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Benötigt werden "host", "attribute" und "base_dn".', 'customer' => 'Kunde', 'emailed to' => 'gemailt an', - 'history' => 'Historie', 'invoice' => 'Rechnung', - 'mark as paid' => 'als bezahlt markieren', 'no' => 'nein', 'none (pricegroup)' => 'keine', 'packing_list' => 'Versandliste', @@ -409,6 +387,7 @@ $self->{subs} = { 'buchen' => 'post', 'zahlung_buchen' => 'post_payment', 'entwurf_speichern' => 'save_draft', + 'entwurf_speichern' => 'save_draft', 'Überspringen' => 'skip', 'storno' => 'storno', 'erneuern' => 'update', diff --git a/templates/webpages/ir/_payments_de.html b/templates/webpages/ir/_payments_de.html new file mode 100644 index 000000000..4b5119fe3 --- /dev/null +++ b/templates/webpages/ir/_payments_de.html @@ -0,0 +1,87 @@ +[%- USE LxERP %] + + + + +[% IF is_type_credit_note %] + +[% ELSE %] + +[%- END %] + + + + + + + + +[% IF show_exchangerate %] + +[% END %] + + + + +[% FOREACH i = paid_indices %] + [% SET datepaid = 'datepaid_' _ i %] + [% SET source = 'source_' _ i %] + [% SET memo = 'memo_' _ i %] + [% SET paid = 'paid_' _ i %] + [% SET selectAP_paid_ref = 'selectAP_paid_' _ i %] + + + + + + + +[% IF show_exchangerate %] + +[% END %] + + + + + +[% END # foreach %] + + + + + + + + + + + + + + + + + + + +
ZahlungsausgängeZahlungseingänge
DatumBelegMemoBetragWechselkurs.Konto
+ + + + [% SET forex = 'forex_' _ i %] + [% SET exchangerate = 'exchangerate_' _ i %] + [% IF forex %] + + [% LxERP.format_amount(exchangerate, 2) %] + [% ELSE %] + + [% END %] + ; +
Summe[% LxERP.foramt_amount(totalpaid, 2) | html %]
Fehlbetrag[% LxERP.format_amount(paid_missing, 2) | html %]
+ + + diff --git a/templates/webpages/ir/_payments_master.html b/templates/webpages/ir/_payments_master.html new file mode 100644 index 000000000..d2e6bf88c --- /dev/null +++ b/templates/webpages/ir/_payments_master.html @@ -0,0 +1,87 @@ +[%- USE LxERP %] + + + + +[% IF is_type_credit_note %] + +[% ELSE %] + +[%- END %] + + + + + + + + +[% IF show_exchangerate %] + +[% END %] + + + + +[% FOREACH i = paid_indices %] + [% SET datepaid = 'datepaid_' _ i %] + [% SET source = 'source_' _ i %] + [% SET memo = 'memo_' _ i %] + [% SET paid = 'paid_' _ i %] + [% SET selectAP_paid_ref = 'selectAP_paid_' _ i %] + + + + + + + +[% IF show_exchangerate %] + +[% END %] + + + + + +[% END # foreach %] + + + + + + + + + + + + + + + + + + + +
PaymentsIncoming Payments
DateSourceMemoAmountExchAccount
+ + + + [% SET forex = 'forex_' _ i %] + [% SET exchangerate = 'exchangerate_' _ i %] + [% IF forex %] + + [% LxERP.format_amount(exchangerate, 2) %] + [% ELSE %] + + [% END %] + ; +
Total[% LxERP.foramt_amount(totalpaid, 2) | html %]
Missing amount[% LxERP.format_amount(paid_missing, 2) | html %]
+ + + diff --git a/templates/webpages/ir/form_footer_de.html b/templates/webpages/ir/form_footer_de.html new file mode 100644 index 000000000..9208ab41c --- /dev/null +++ b/templates/webpages/ir/form_footer_de.html @@ -0,0 +1,133 @@ +[%- USE HTML %] +[%- USE LxERP %] + + + + + + + +
+ + + + + + + + + +[%- IF id && follow_ups.size %] + + +[%- END %] +
Bemerkungeninterne Bemerkungen
+ + + +
+ [%- LxERP.format_string('Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.', + follow_ups.size, follow_ups_unfinished) | html + %] + +
+
+ [%- IF taxaccounts %] + + Steuer im Preis inbegriffen +
+
+ [%- END %] + + +[%- UNLESS taxincluded %] + + + + +[%- END %] + +[%# tax %] +[% FOREACH item = taxaccounts_array %] +[% SET description_ref = item _ '_description' %] +[% SET rate_ref = item _ '_rate' %] +[% SET total_ref = item _ '_total' %] +[% SET netto_ref = item _ '_netto' %] + + + + + [%- IF taxincluded %] + + + + + [%- END %] +[%- END %] + + + + + +
Zwischensumme[% LxERP.format_amount(invsubtotal, 2) %]
Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%[% LxERP.format_amount($total_ref, 2) %]
Nettobetrag[% LxERP.format_amount($netto_ref, 2) %]
Summe[% LxERP.format_amount(invtotal, 2) %]
+
+ + + +[% PROCESS 'webdav/_list_de.html' %] + +[% PROCESS 'ir/_payments_de.html' %] + + +
+ + + +[% print_options %] + + + + + + + [% IF id %] + + +[% IF show_storno %] + +[% END %] + + + +[% IF show_delete %] + +[% END %] + + + + [% ELSE # no id %] + [% UNLESS locked %] + + + + [%- END %] + [% END # id %] + + [% IF id %] + [%#- button for saving history %] + + + + [% END %] + + + + + + + + + + + + diff --git a/templates/webpages/ir/form_footer_master.html b/templates/webpages/ir/form_footer_master.html new file mode 100644 index 000000000..2b4793aa4 --- /dev/null +++ b/templates/webpages/ir/form_footer_master.html @@ -0,0 +1,133 @@ +[%- USE HTML %] +[%- USE LxERP %] + + + + + + + +
+ + + + + + + + + +[%- IF id && follow_ups.size %] + + +[%- END %] +
NotesInternal Notes
+ + + +
+ [%- LxERP.format_string('There are #1 unfinished follow-ups of which #2 are due.', + follow_ups.size, follow_ups_unfinished) | html + %] + +
+
+ [%- IF taxaccounts %] + + Tax Included +
+
+ [%- END %] + + +[%- UNLESS taxincluded %] + + + + +[%- END %] + +[%# tax %] +[% FOREACH item = taxaccounts_array %] +[% SET description_ref = item _ '_description' %] +[% SET rate_ref = item _ '_rate' %] +[% SET total_ref = item _ '_total' %] +[% SET netto_ref = item _ '_netto' %] + + + + + [%- IF taxincluded %] + + + + + [%- END %] +[%- END %] + + + + + +
Subtotal[% LxERP.format_amount(invsubtotal, 2) %]
Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%[% LxERP.format_amount($total_ref, 2) %]
Nettobetrag[% LxERP.format_amount($netto_ref, 2) %]
Total[% LxERP.format_amount(invtotal, 2) %]
+
+ + + +[% PROCESS 'webdav/_list_master.html' %] + +[% PROCESS 'ir/_payments_master.html' %] + + +
+ + + +[% print_options %] + + + + + + + [% IF id %] + + +[% IF show_storno %] + +[% END %] + + + +[% IF show_delete %] + +[% END %] + + + + [% ELSE # no id %] + [% UNLESS locked %] + + + + [%- END %] + [% END # id %] + + [% IF id %] + [%#- button for saving history %] + + + + [% END %] + + + + + + + + + + + +