X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Fbank%2Fbank_transactions.t;h=e79429b8ce6d3f6199922e74bf2e675393278faa;hb=7b447b4dd0e756dc1578c44601d352811b768514;hp=e2bb552075b33f2beb2852644b6d9e13f620ee53;hpb=445ac52b2ed42c5fc43cab3c36666c0f7934d674;p=kivitendo-erp.git diff --git a/t/bank/bank_transactions.t b/t/bank/bank_transactions.t index e2bb55207..e79429b8c 100644 --- a/t/bank/bank_transactions.t +++ b/t/bank/bank_transactions.t @@ -1,4 +1,4 @@ -use Test::More tests => 289; +use Test::More tests => 291; use strict; @@ -541,6 +541,17 @@ sub test_partial_payment { is($ar_transaction->paid , '100.00000' , "$testname: 'salesinv partial payment' was partially paid"); is($bt->invoice_amount , '100.00000' , "$testname: bt invoice amount was assigned partially paid amount"); + # addon test partial payment full point match + my $bt2 = create_bank_transaction(record => $ar_transaction, + bank_chart_id => $bank->id, + transdate => $dt, + valutadate => $dt, + amount => 19 + ) or die "Couldn't create bank_transaction"; + + my ($agreement, $rule_matches) = $bt2->get_agreement_with_invoice($ar_transaction); + is($agreement, 15, "points for exact partial payment ok"); + is($rule_matches, 'remote_account_number(3) exact_open_amount(4) depositor_matches(2) remote_name(2) payment_within_30_days(1) datebonus0(3) ', "rules_matches for exact partial payment ok"); }; sub test_full_workflow_ar_multiple_inv_skonto_reconciliate_and_undo { @@ -711,8 +722,8 @@ sub test_credit_note { transdate => $dt_10, ); my ($agreement, $rule_matches) = $bt->get_agreement_with_invoice($credit_note); - is($agreement, 13, "points for credit note ok"); - is($rule_matches, 'remote_account_number(3) exact_amount(4) wrong_sign(-1) depositor_matches(2) remote_name(2) payment_within_30_days(1) datebonus14(2) ', "rules_matches for credit note ok"); + is($agreement, 14, "points for credit note ok"); + is($rule_matches, 'remote_account_number(3) exact_amount(4) depositor_matches(2) remote_name(2) payment_within_30_days(1) datebonus14(2) ', "rules_matches for credit note ok"); $::form->{invoice_ids} = { $bt->id => [ $credit_note->id ] @@ -764,7 +775,7 @@ sub test_neg_ap_transaction { ); my ($agreement, $rule_matches) = $bt->get_agreement_with_invoice($invoice); - is($agreement, 15, "points for negative ap transaction ok"); + is($agreement, 16, "points for negative ap transaction ok"); $::form->{invoice_ids} = { $bt->id => [ $invoice->id ] @@ -1227,4 +1238,36 @@ sub test_closedto { } +sub test_skonto_exact_ap_transaction { + + my $testname = 'test_skonto_exact_ap_transaction'; + + $ap_transaction = test_ap_transaction(invnumber => 'ap transaction skonto', + payment_id => $payment_terms->id, + ); + + my $bt = create_bank_transaction(record => $ap_transaction, + bank_chart_id => $bank->id, + transdate => $dt, + valutadate => $dt, + amount => $ap_transaction->amount_less_skonto + ) or die "Couldn't create bank_transaction"; + + $::form->{invoice_ids} = { + $bt->id => [ $ap_transaction->id ] + }; + $::form->{invoice_skontos} = { + $bt->id => [ 'with_skonto_pt' ] + }; + + save_btcontroller_to_string(); + + $ap_transaction->load; + $bt->load; + is($ap_transaction->paid , '119.00000' , "$testname: ap transaction skonto was paid"); + is($ap_transaction->closed , 1 , "$testname: ap transaction skonto is closed"); + is($bt->invoice_amount , '113.05000' , "$testname: bt invoice amount was assigned"); + +}; + 1;