Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d975f05c

Von Kivitendo Admin vor etwa 8 Jahren hinzugefügt

  • ID d975f05c964dbc034da664b156744fdb3088c2a0
  • Vorgänger ab725987
  • Nachfolger 280b772d

SL::Dev::Payment create_bank_transaction nutzt param bank_chart_id

Unterschiede anzeigen:

SL/Dev/Payment.pm
my $amount = (delete $params{amount} || $record->amount) * $multiplier;
my $bank_chart;
if ( $params{chart_id} ) {
$bank_chart = SL::DB::Manager::Chart->find_by(chart_id => $params{chart_id}) or die "Can't find bank chart";
if ( $params{bank_chart_id} ) {
$bank_chart = SL::DB::Manager::Chart->find_by(id => delete $params{bank_chart_id}) or die "Can't find bank chart";
} elsif ( $::instance_conf->get_ar_paid_accno_id ) {
$bank_chart = SL::DB::Manager::Chart->find_by(id => $::instance_conf->get_ar_paid_accno_id);
} else {
......
=head2 C<create_bank_transaction %PARAMS>
Create a bank transaction that matches an existing invoice record, e.g. to be able to
test the point system.
Required params: record (an SL::DB::Invoice or SL::DB::PurchaseInvoice object)
Optional params: bank_chart_id : the chart id of a configured bank account
amount : the amount of the bank transaction
$params{amount} should always be relative to the absolute amount of the invoice, i.e. use positive
values for sales and purchases.
If no bank_chart_id is given, it tries to find a chart via defaults
(ar_paid_accno_id) or by searching for the chart named "Bank". The chart must
be connected to an existing BankAccount.
Create a bank transaction that matches an existing invoice record, e.g. to be able to
test the point system.
Param amount should always be relative to the absolute amount of the invoice, i.e. use positive
values for sales and purchases.
Example:
my $payment_terms = SL::Dev::Record::create_payment_terms;
t/bank/bank_transactions.t
payment_id => $payment_terms->id,
);
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => $ar_transaction->amount_less_skonto
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
bank_chart_id => $bank->id,
amount => $ar_transaction->amount_less_skonto
) or die "Couldn't create bank_transaction";
$::form->{invoice_ids} = {
......
my $ar_transaction_1 = test_ar_transaction(invnumber => 'salesinv_1');
my $ar_transaction_2 = test_ar_transaction(invnumber => 'salesinv_2');
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction_1,
amount => ($ar_transaction_1->amount + $ar_transaction_2->amount),
purpose => "Rechnungen " . $ar_transaction_1->invnumber . " und " . $ar_transaction_2->invnumber,
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction_1,
amount => ($ar_transaction_1->amount + $ar_transaction_2->amount),
purpose => "Rechnungen " . $ar_transaction_1->invnumber . " und " . $ar_transaction_2->invnumber,
bank_chart_id => $bank->id,
) or die "Couldn't create bank_transaction";
$::form->{invoice_ids} = {
......
$ar_transaction = test_ar_transaction(invnumber => 'salesinv overpaid');
# amount 135 > 119
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => 135
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
bank_chart_id => $bank->id,
amount => 135
) or die "Couldn't create bank_transaction";
$::form->{invoice_ids} = {
......
$ar_transaction = test_ar_transaction(invnumber => 'salesinv overpaid partial');
my $bt_1 = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => 10
my $bt_1 = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
bank_chart_id => $bank->id,
amount => 10
) or die "Couldn't create bank_transaction";
my $bt_2 = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => 119,
transdate => DateTime->today->add(days => 5),
my $bt_2 = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => 119,
transdate => DateTime->today->add(days => 5),
bank_chart_id => $bank->id,
) or die "Couldn't create bank_transaction";
$::form->{invoice_ids} = {
......
$ar_transaction = test_ar_transaction(invnumber => 'salesinv partial payment');
# amount 100 < 119
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
amount => 100
my $bt = SL::Dev::Payment::create_bank_transaction(record => $ar_transaction,
bank_chart_id => $bank->id,
amount => 100
) or die "Couldn't create bank_transaction";
$::form->{invoice_ids} = {

Auch abrufbar als: Unified diff