X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Ftax%2Ftax.t;h=88638bb0c8f852de0761c252cd79db08cf60f7ba;hb=a9d9ca02abd3a0ff1e43f23888142266174bec55;hp=f895bc38476a2c953aa234d3aed8e63cbb4f04c1;hpb=3ed1703890abcd350af3604740ad86a7d28ba232;p=kivitendo-erp.git diff --git a/t/tax/tax.t b/t/tax/tax.t index f895bc384..88638bb0c 100644 --- a/t/tax/tax.t +++ b/t/tax/tax.t @@ -1,4 +1,4 @@ -use Test::More tests => 46; +use Test::More tests => 48; use Test::Deep qw(cmp_deeply); use strict; @@ -9,6 +9,8 @@ use utf8; use Support::TestSetup; use Test::Exception; +use SL::DB::BankTransaction; +use SL::DB::BankTransactionAccTrans; use SL::DB::Customer; use SL::DB::Vendor; use SL::DB::Invoice; @@ -32,6 +34,9 @@ clear_up(); # neue Konten für 5% anlegen # Leistungszeitraum vs. Datum Zuord. Steuerperiodest + + + note('checking if all tax entries exist for Konjunkturprogramm'); # create dates to test on @@ -40,6 +45,30 @@ my $date_2020_1 = DateTime->new(year => 2020, month => 6, day => 15); my $date_2020_2 = DateTime->new(year => 2020, month => 7, day => 15); my $date_2021 = DateTime->new(year => 2021, month => 1, day => 15); +# dummy bt_id +my $bank_account = SL::DB::BankAccount->new( + account_number => '123', + bank_code => '123', + iban => '123', + bic => '123', + bank => '123', + chart_id => SL::DB::Manager::Chart->find_by( description => 'Bank' )->id, + name => SL::DB::Manager::Chart->find_by( description => 'Bank' )->description, + )->save; + + +my $currency_id = $::instance_conf->get_currency_id; +my $bt = SL::DB::BankTransaction->new( + local_bank_account_id => $bank_account->id, + transdate => $date_2021, + valutadate => $date_2021, + amount => 27332.32, + purpose => 'dummy', + currency => $currency_id, + ); + $bt->save || die $@; + + # The only way to discern the pre-2007 16% tax from the 2020 16% tax is by # their configured automatic tax charts, so look them up here: @@ -107,8 +136,8 @@ my $tax_vst_7 = SL::DB::Manager::Chart->find_by(accno => $chart_vst_7 ) or die; my $tax_ust_19 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_19) or die; # 19% my $tax_ust_16 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_16) or die; # 16% -my $tax_ust_5 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_5) or die; # 5% -my $tax_ust_7 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_7) or die; # 7% +my $tax_ust_5 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_5) or die; # 5% +my $tax_ust_7 = SL::DB::Manager::Chart->find_by(accno => $chart_ust_7) or die; # 7% my $chart_income_19 = SL::DB::Manager::Chart->find_by(accno => $income_19_accno) or die; my $chart_income_7 = SL::DB::Manager::Chart->find_by(accno => $income_7_accno) or die; @@ -122,7 +151,7 @@ my $payment_terms = create_payment_terms(); is(defined SL::DB::Manager::Tax->find_by(taxkey => 2, rate => 0.05), 1, "tax for taxkey 2 with 5% was created ok"); is(defined SL::DB::Manager::Tax->find_by(taxkey => 3, rate => 0.16, chart_id => $tax_ust_16->id), 1, "new sales tax for taxkey 3 with 16% exists ok"); is(defined SL::DB::Manager::Tax->find_by(taxkey => 3, rate => 0.19, chart_id => $tax_ust_19->id), 1, "old sales tax for taxkey 3 with 19% exists ok"); -is(defined SL::DB::Manager::Tax->find_by(taxkey => 5, rate => 0.16, chart_id => $tax_ust_16->id), 1, "new sales tax for taxkey 5 with 16% exists ok"); +# is(defined SL::DB::Manager::Tax->find_by(taxkey => 5, rate => 0.16, chart_id => $tax_ust_16->id), 1, "new sales tax for taxkey 5 with 16% exists ok"); # is(defined SL::DB::Manager::Tax->find_by(taxkey => 7, rate => 0.16, chart_id => $tax_ust_16->id), 1, "old purchase tax for taxkey 7 with 16% exists ok"); is(defined SL::DB::Manager::Tax->find_by(taxkey => 8, rate => 0.07, chart_id => $tax_vst_7->id ), 1, "purchase tax for taxkey 8 with 7% exists ok"); @@ -132,9 +161,9 @@ is(defined SL::DB::Manager::Tax->find_by(taxkey => 9, rate => 0.16, chart_id => my $vendor = new_vendor( name => 'Testvendor', payment_id => $payment_terms->id)->save; my $customer = new_customer(name => 'Testcustomer', payment_id => $payment_terms->id)->save; -# cmp_ok($chart_income_7->get_active_taxkey($date_2020_1)->tax->rate, '==', 0.07, "get_active_taxkey rate for 8300 in 2020_1 ok"); -# cmp_ok($chart_income_7->get_active_taxkey($date_2020_2)->tax->rate, '==', 0.05, "get_active_taxkey rate for 8300 in 2020_2 ok"); -# cmp_ok($chart_income_7->get_active_taxkey($date_2021 )->tax->rate, '==', 0.07, "get_active_taxkey rate for 8300 in 2021 ok"); +cmp_ok($chart_income_7->get_active_taxkey($date_2020_1)->tax->rate, '==', 0.07, "get_active_taxkey rate for 8300 in 2020_1 ok"); +cmp_ok($chart_income_7->get_active_taxkey($date_2020_2)->tax->rate, '==', 0.05, "get_active_taxkey rate for 8300 in 2020_2 ok"); +cmp_ok($chart_income_7->get_active_taxkey($date_2021 )->tax->rate, '==', 0.07, "get_active_taxkey rate for 8300 in 2021 ok"); cmp_ok($chart_income_7->get_active_taxkey($date_2020_1)->tax->rate, '==', 0.07, "get_active_taxkey rate for $income_7_accno in 2020_1 ok"); cmp_ok($chart_income_7->get_active_taxkey($date_2020_2)->tax->rate, '==', 0.05, "get_active_taxkey rate for $income_7_accno in 2020_2 ok"); cmp_ok($chart_income_7->get_active_taxkey($date_2021 )->tax->rate, '==', 0.07, "get_active_taxkey rate for $income_7_accno in 2021 ok"); @@ -245,17 +274,17 @@ note('ap transactions'); # would select the entries from the dropdown, as they may differ from the # default, so we have to pass the tax we want to create_ap_transaction -my $tax_9_16_old = SL::DB::Manager::Tax->find_by(taxkey => 7, rate => 0.16, chart_id => $tax_vst_16->id); +# my $tax_9_16_old = SL::DB::Manager::Tax->find_by(taxkey => 7, rate => 0.16, chart_id => $tax_vst_16->id); my $tax_9_19 = SL::DB::Manager::Tax->find_by(taxkey => 9, rate => 0.19, chart_id => $tax_vst_19->id) or die "missing 9_19"; my $tax_9_16 = SL::DB::Manager::Tax->find_by(taxkey => 9, rate => 0.16, chart_id => $tax_vst_16->id) or die "missing 9_16"; my $tax_8_7 = SL::DB::Manager::Tax->find_by(taxkey => 8, rate => 0.07, chart_id => $tax_vst_7->id) or die "missing 8_7"; my $tax_8_5 = SL::DB::Manager::Tax->find_by(taxkey => 8, rate => 0.05, chart_id => $tax_vst_5->id) or die "missing 8_5"; # simulate user selecting the "correct" taxes in dropdown: -my $ap_transaction_2006 = create_ap_transaction_for_date('2006', $date_2006, undef, $tax_9_16_old, $tax_8_7); -my $ap_transaction_2020_1 = create_ap_transaction_for_date('2020_1', $date_2020_1, undef, $tax_9_19, $tax_8_7); -my $ap_transaction_2020_2 = create_ap_transaction_for_date('2020_2', $date_2020_2, undef, $tax_9_16, $tax_8_5); -my $ap_transaction_2021 = create_ap_transaction_for_date('2021', $date_2021, undef, $tax_9_19, $tax_8_7); +my $ap_transaction_2006 = create_ap_transaction_for_date('2006', $date_2006, undef, $tax_9_16, $tax_8_7); +my $ap_transaction_2020_1 = create_ap_transaction_for_date('2020_1', $date_2020_1, undef, $tax_9_19, $tax_8_7); +my $ap_transaction_2020_2 = create_ap_transaction_for_date('2020_2', $date_2020_2, undef, $tax_9_16, $tax_8_5); +my $ap_transaction_2021 = create_ap_transaction_for_date('2021', $date_2021, undef, $tax_9_19, $tax_8_7); is($ap_transaction_2006->amount, 223, '2006 ap transaction has 16% and 7% tax ok'); # 116 + 7 @@ -403,6 +432,7 @@ note('testing payments with skonto'); my %params = ( chart_id => $chart_bank->id, payment_type => 'with_skonto_pt', + bt_id => $bt->id, ); $sales_invoice_2020_2->pay_invoice( %params, @@ -585,6 +615,9 @@ sub datev_test { } sub clear_up { + SL::DB::Manager::BankTransactionAccTrans->delete_all(all => 1); + SL::DB::Manager::BankTransaction->delete_all(all => 1); + SL::DB::Manager::BankAccount->delete_all(all => 1); SL::DB::Manager::OrderItem->delete_all(all => 1); SL::DB::Manager::Order->delete_all(all => 1); SL::DB::Manager::InvoiceItem->delete_all(all => 1);