Revision 36a93d2e
Von Jan Büren vor etwa 2 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
do_statement($self, $sth, $query, $self->{id});
|
||
|
||
# get exchangerate for currency
|
||
$self->{exchangerate} =
|
||
$self->check_exchangerate($myconfig, $self->{currency}, $self->{transdate}, $fld);
|
||
($self->{exchangerate}, $self->{record_forex}) = $self->check_exchangerate($myconfig, $self->{currency}, $self->{transdate}, $fld,
|
||
$self->{id}, $arap);
|
||
|
||
my $index = 0;
|
||
|
||
# store amounts in {acc_trans}{$key} for multiple accounts
|
||
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
|
||
# credit and debit bookings calc fx rate for positions
|
||
# also used as exchangerate_$i for payments
|
||
$ref->{exchangerate} =
|
||
$self->check_exchangerate($myconfig, $self->{currency}, $ref->{transdate}, $fld);
|
||
if (!($xkeyref{ $ref->{accno} } =~ /tax/)) {
|
bin/mozilla/ap.pl | ||
---|---|---|
|
||
# currencies
|
||
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
|
||
if ($form->{currency} ne $form->{defaultcurrency}) {
|
||
($form->{exchangerate}, $form->{record_forex}) = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, "sell", $form->{id}, 'ap');
|
||
if ($form->{currency} ne $form->{defaultcurrency} && !$form->{exchangerate}) {
|
||
($form->{exchangerate}, $form->{record_forex}) = $form->{id}
|
||
? $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, "sell", $form->{id}, 'ap')
|
||
: $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, "sell");
|
||
}
|
||
|
||
# format amounts
|
||
... | ... | |
$form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
|
||
|
||
for my $i (1 .. $form->{paidaccounts}) {
|
||
# hook for calc of of fx_paid and check if banktransaction has a record exchangerate
|
||
if ($form->{"exchangerate_$i"}) {
|
||
my $bt_acc_trans;
|
||
my $bt_acc_trans = SL::DB::Manager::BankTransactionAccTrans->find_by(acc_trans_id => $form->{"acc_trans_id_$i"});
|
||
if ($bt_acc_trans) {
|
||
if ($bt_acc_trans->bank_transaction->exchangerate > 0) {
|
||
$form->{"exchangerate_$i"} = $bt_acc_trans->bank_transaction->exchangerate;
|
||
$form->{"forex_$i"} = $form->{"exchangerate_$i"};
|
||
$form->{"record_forex_$i"} = 1;
|
||
}
|
||
}
|
||
$form->{"fx_paid_$i"} = $form->{"paid_$i"} / $form->{"exchangerate_$i"};
|
||
$form->{"fx_totalpaid"} += $form->{"fx_paid_$i"};
|
||
} # end hook fx_paid
|
||
# format amounts
|
||
if ($form->{"paid_$i"}) {
|
||
$form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
|
||
... | ... | |
$form->{'AP_paid_' . $i} . " " . SL::DB::Manager::Chart->find_by(accno => $form->{'AP_paid_' . $i})->description
|
||
: '';
|
||
}
|
||
|
||
$form->{paid_missing} = $form->{invtotal_unformatted} - $form->{totalpaid};
|
||
$form->{paid_missing} = $::form->{is_linked_bank_transaction} && $form->{invoice_obj}->forex ?
|
||
$form->{invoice_obj}->open_amount
|
||
: $form->{invtotal_unformatted} - $form->{totalpaid};
|
||
|
||
$form->{payment_id} = $form->{invoice_obj}->{payment_id} // $form->{payment_id};
|
||
print $form->parse_html_template('ap/form_header', {
|
||
... | ... | |
: $is_linked_bank_transaction ? 1
|
||
: $has_sepa_exports ? 1
|
||
: 0;
|
||
# and is_linked_bank_transaction
|
||
$::form->{is_linked_bank_transaction} = $is_linked_bank_transaction;
|
||
|
||
my $create_post_action = sub {
|
||
# $_[0]: description
|
||
# $_[1]: after_action
|
||
action => [
|
||
|
||
$_[0],
|
||
submit => [ '#form', { action => "post", after_action => $_[1] } ],
|
||
checks => [ 'kivi.validate_form', 'kivi.AP.check_fields_before_posting', 'kivi.AP.check_duplicate_invnumber' ],
|
bin/mozilla/ar.pl | ||
---|---|---|
|
||
my @payments;
|
||
for my $i (1 .. $form->{paidaccounts}) {
|
||
# hook for calc of of fx_paid and check if banktransaction has a record exchangerate
|
||
if ($form->{"exchangerate_$i"}) {
|
||
my $bt_acc_trans;
|
||
my $bt_acc_trans = SL::DB::Manager::BankTransactionAccTrans->find_by(acc_trans_id => $form->{"acc_trans_id_$i"});
|
||
if ($bt_acc_trans) {
|
||
if ($bt_acc_trans->bank_transaction->exchangerate > 0) {
|
||
$form->{"exchangerate_$i"} = $bt_acc_trans->bank_transaction->exchangerate;
|
||
$form->{"forex_$i"} = $form->{"exchangerate_$i"};
|
||
$form->{"record_forex_$i"} = 1;
|
||
}
|
||
}
|
||
$form->{"fx_paid_$i"} = $form->{"paid_$i"} / $form->{"exchangerate_$i"};
|
||
$form->{"fx_totalpaid"} += $form->{"fx_paid_$i"};
|
||
} # end hook fx_paid
|
||
my $payment = {
|
||
paid => $form->{"paid_$i"},
|
||
exchangerate => $form->{"exchangerate_$i"} || '',
|
||
... | ... | |
memo => $form->{"memo_$i"},
|
||
AR_paid => $form->{"AR_paid_$i"},
|
||
forex => $form->{"forex_$i"},
|
||
record_forex => $form->{"record_forex_$i"},
|
||
datepaid => $form->{"datepaid_$i"},
|
||
paid_project_id => $form->{"paid_project_id_$i"},
|
||
gldate => $form->{"gldate_$i"},
|
||
fx_paid => $form->{"fx_paid_$i"},
|
||
fx_totalpaid => $form->{"fx_totalpaid_$i"},
|
||
};
|
||
|
||
# default account for current assets (i.e. 1801 - SKR04) if no account is selected
|
||
... | ... | |
);
|
||
|
||
setup_ar_form_header_action_bar();
|
||
$::form->{paid_missing} = $form->{is_linked_bank_transaction} && $form->{invoice_obj}->forex ?
|
||
$form->{invoice_obj}->open_amount
|
||
: $::form->{invtotal} - $::form->{totalpaid};
|
||
|
||
$form->header;
|
||
print $::form->parse_html_template('ar/form_header', {
|
||
paid_missing => $::form->{invtotal} - $::form->{totalpaid},
|
||
paid_missing => $::form->{paidmissing},
|
||
show_exch => ($::form->{defaultcurrency} && ($::form->{currency} ne $::form->{defaultcurrency})),
|
||
payments => \@payments,
|
||
transactions => \@transactions,
|
||
... | ... | |
|
||
my $is_linked_bank_transaction;
|
||
if ($::form->{id}
|
||
&& SL::DB::Default->get->payments_changeable != 0
|
||
&& SL::DB::Manager::BankTransactionAccTrans->find_by(ar_id => $::form->{id})) {
|
||
|
||
$is_linked_bank_transaction = 1;
|
||
... | ... | |
: ($::form->{id} && $change_on_same_day_only) ? 1
|
||
: $is_linked_bank_transaction ? 1
|
||
: 0;
|
||
# and is_linked_bank_transaction
|
||
$::form->{is_linked_bank_transaction} = $is_linked_bank_transaction;
|
||
for my $bar ($::request->layout->get('actionbar')) {
|
||
$bar->add(
|
||
action => [
|
Auch abrufbar als: Unified diff
Wechselkurse für Belege oder Zahlungen für ar und ap holen und berechnen