Revision db101cc6
Von Cem Aydin vor mehr als 2 Jahren hinzugefügt
SL/IS.pm | ||
---|---|---|
use SL::IO;
|
||
use SL::TransNumber;
|
||
use SL::DB::Chart;
|
||
use SL::DB::Customer;
|
||
use SL::DB::Default;
|
||
use SL::DB::Draft;
|
||
use SL::DB::Tax;
|
||
... | ... | |
use SL::TransNumber;
|
||
use SL::DB;
|
||
use SL::Presenter::Part qw(type_abbreviation classification_abbreviation);
|
||
use SL::Helper::QrBillFunctions qw(get_qrbill_account assemble_ref_number);
|
||
use Data::Dumper;
|
||
|
||
use strict;
|
||
... | ... | |
|
||
$amount = $form->round_amount( $netamount + $tax, 2, 1);
|
||
|
||
# qr reference
|
||
my $qr_reference;
|
||
if ($form->{has_qr_reference}) {
|
||
# (re-)generate reference number
|
||
|
||
# get qr-account data
|
||
my ($qr_account, $error) = get_qrbill_account();
|
||
die $error if !$qr_account;
|
||
|
||
# get customer object
|
||
my $customer_obj = SL::DB::Customer->load_cached(conv_i($form->{customer_id}));
|
||
|
||
# assemble reference number with check digit
|
||
($qr_reference, $error) = assemble_ref_number($qr_account->{bank_account_id},
|
||
$customer_obj->{customernumber},
|
||
$form->{ordnumber},
|
||
$form->{invnumber});
|
||
die $error if !$qr_reference;
|
||
} else {
|
||
# if the reference number has been previously defined keep it
|
||
if (defined $form->{qr_reference}) {
|
||
$qr_reference = $form->{qr_reference};
|
||
} else {
|
||
$qr_reference = undef;
|
||
}
|
||
}
|
||
|
||
# save AR record
|
||
#erweiterung fuer lieferscheinnummer (donumber) 12.02.09 jb
|
||
|
||
... | ... | |
globalproject_id = ?, delivery_customer_id = ?,
|
||
transaction_description = ?, delivery_vendor_id = ?,
|
||
donumber = ?, invnumber_for_credit_note = ?, direct_debit = ?, qrbill_without_amount = ?,
|
||
delivery_term_id = ?
|
||
qr_reference = ?, delivery_term_id = ?
|
||
WHERE id = ?|;
|
||
@values = ( $form->{"invnumber"}, $form->{"ordnumber"}, $form->{"quonumber"}, $form->{"cusordnumber"},
|
||
conv_date($form->{"invdate"}), conv_date($form->{"orddate"}), conv_date($form->{"quodate"}), conv_date($form->{tax_point}), conv_i($form->{"customer_id"}),
|
||
... | ... | |
conv_i($form->{"globalproject_id"}), conv_i($form->{"delivery_customer_id"}),
|
||
$form->{transaction_description}, conv_i($form->{"delivery_vendor_id"}),
|
||
$form->{"donumber"}, $form->{"invnumber_for_credit_note"}, $form->{direct_debit} ? 't' : 'f', $form->{qrbill_without_amount} ? 't' : 'f',
|
||
conv_i($form->{delivery_term_id}),
|
||
$qr_reference, conv_i($form->{delivery_term_id}),
|
||
conv_i($form->{"id"}));
|
||
do_query($form, $dbh, $query, @values);
|
||
|
||
... | ... | |
a.mtime, a.itime,
|
||
a.language_id, a.delivery_customer_id, a.delivery_vendor_id, a.type,
|
||
a.transaction_description, a.donumber, a.invnumber_for_credit_note,
|
||
a.marge_total, a.marge_percent, a.direct_debit, a.qrbill_without_amount, a.delivery_term_id,
|
||
a.marge_total, a.marge_percent, a.direct_debit, a.qrbill_without_amount, a.qr_reference, a.delivery_term_id,
|
||
dc.dunning_description,
|
||
e.name AS employee
|
||
FROM ar a
|
SL/Template/OpenDocument.pm | ||
---|---|---|
|
||
use SL::DB::BankAccount;
|
||
use SL::Helper::QrBill;
|
||
use SL::Helper::QrBillFunctions qw(get_qrbill_account assemble_ref_number
|
||
get_ref_number_formatted get_iban_formatted get_amount_formatted);
|
||
use SL::Helper::QrBillFunctions qw(get_qrbill_account get_ref_number_formatted
|
||
get_iban_formatted get_amount_formatted);
|
||
use SL::Helper::ISO3166;
|
||
|
||
use Cwd;
|
||
... | ... | |
|
||
my %ref_nr_data;
|
||
if ($::instance_conf->get_create_qrbill_invoices == 1) {
|
||
# generate ref.-no. with check digit
|
||
my ($ref_number, $error) = assemble_ref_number(
|
||
$qr_account->{'bank_account_id'},
|
||
$form->{'customernumber'},
|
||
$form->{'ordnumber'},
|
||
$form->{'invnumber'},
|
||
);
|
||
if (!$ref_number) {
|
||
$::form->error($error);
|
||
}
|
||
%ref_nr_data = (
|
||
'type' => 'QRR',
|
||
'ref_number' => $ref_number,
|
||
'ref_number' => $form->{'qr_reference'},
|
||
);
|
||
# get ref. number/iban formatted with spaces and set into form for template
|
||
# processing
|
||
$form->{'ref_number'} = $ref_number;
|
||
$form->{'ref_number_formatted'} = get_ref_number_formatted($ref_number);
|
||
$form->{'ref_number'} = $form->{'qr_reference'};
|
||
$form->{'ref_number_formatted'} = get_ref_number_formatted($form->{'qr_reference'});
|
||
} elsif ($::instance_conf->get_create_qrbill_invoices == 2) {
|
||
%ref_nr_data = (
|
||
'type' => 'NON',
|
bin/mozilla/is.pl | ||
---|---|---|
use SL::DB::Invoice;
|
||
use SL::DB::PaymentTerm;
|
||
use SL::DB::ValidityToken;
|
||
use SL::Helper::QrBillFunctions qw(get_ref_number_formatted);
|
||
|
||
require "bin/mozilla/common.pl";
|
||
require "bin/mozilla/io.pl";
|
||
... | ... | |
$TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update};
|
||
$TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/;
|
||
|
||
# qr reference
|
||
my $has_qr_reference = $::instance_conf->get_create_qrbill_invoices == 1 &&
|
||
$form->{formname} eq 'invoice' ? 1 : 0;
|
||
$TMPL_VAR{has_qr_reference} = $has_qr_reference;
|
||
|
||
if ($has_qr_reference && defined $form->{qr_reference}) {
|
||
$TMPL_VAR{qr_reference_formatted} = get_ref_number_formatted($form->{qr_reference});
|
||
}
|
||
|
||
# set option selected
|
||
foreach my $item (qw(AR)) {
|
||
$form->{"select$item"} =~ s/ selected//;
|
locale/de/all | ||
---|---|---|
'Purpose (if field names purpose, purpose1, purpose2 ... exist they will all combined into the field "purpose")' => 'Verwendungszweck (wenn die Spalten purpose, purpose1, purpose2 ... existieren werden diese zum Feld "purpose" zusammengefügt)',
|
||
'Purpose/Reference' => 'Verwendungszweck und Referenz',
|
||
'QR bill without amount' => 'QR-Rechnung ohne Betrag',
|
||
'QR reference' => 'QR-Referenz',
|
||
'QR-Code placeholder image: QRCodePlaceholder not found in template.' => 'QR-Code Platzhalter Bild: QRCodePlaceholder nicht in Druckvorlage gefunden.',
|
||
'QR-Image generation failed: ' => 'QR-Code Erzeugung fehlgeschlagen: ',
|
||
'QUEUED' => 'In Warteschlange',
|
locale/en/all | ||
---|---|---|
'Purpose (if field names purpose, purpose1, purpose2 ... exist they will all combined into the field "purpose")' => '',
|
||
'Purpose/Reference' => '',
|
||
'QR bill without amount' => '',
|
||
'QR reference' => '',
|
||
'QR-Code placeholder image: QRCodePlaceholder not found in template.' => '',
|
||
'QR-Image generation failed: ' => '',
|
||
'QUEUED' => '',
|
templates/webpages/is/form_header.html | ||
---|---|---|
<input type="hidden" name="follow_up_rowcount" id="follow_up_rowcount" value="1">
|
||
<input type="hidden" name="lastmtime" id="lastmtime" value="[% HTML.escape(lastmtime) %]">
|
||
<input type="hidden" name="already_printed_flag" id="already_printed_flag" value="0">
|
||
<input type="hidden" name="has_qr_reference" id="has_qr_reference" value="[% has_qr_reference %]">
|
||
[%- IF qr_reference %]
|
||
[% L.hidden_tag("qr_reference", qr_reference) %]
|
||
[%- END %]
|
||
[% IF !id %]
|
||
[% L.hidden_tag('form_validity_token', form_validity_token) %]
|
||
[% END %]
|
||
... | ... | |
[%- L.select_tag('globalproject_id', ALL_PROJECTS, title_key = 'projectnumber', default = globalproject_id, with_empty = '1', onChange = "document.getElementById('update_button').click();") %]
|
||
</td>
|
||
</tr>
|
||
[%- IF has_qr_reference %]
|
||
<tr>
|
||
<th align="right" nowrap>[% 'QR reference' | $T8 %]</th>
|
||
<td>
|
||
[%- IF qr_reference %]
|
||
[% HTML.escape(qr_reference_formatted) %]
|
||
[%- ELSE %]
|
||
[% LxERP.t8("will be set upon posting") %]
|
||
[%- END %]
|
||
</td>
|
||
</tr>
|
||
[%- END %]
|
||
</table>
|
||
</td>
|
||
</tr>
|
Auch abrufbar als: Unified diff
Swiss QR-Bill: QR-Referenz soll in der jeweiligen Rechnung gespeichert werden