X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/ae47d0606caf4d0b20e9d1e7d76d75db0cca3246..1a3b9961184e9321c4e6e034643fdfc6a640603e:/t/datev/invoices.t diff --git a/t/datev/invoices.t b/t/datev/invoices.t index 5a33d5f0c..45c68ca6d 100644 --- a/t/datev/invoices.t +++ b/t/datev/invoices.t @@ -16,10 +16,13 @@ Support::TestSetup::login(); clear_up(); +my $dbh = SL::DB->client->dbh; + my $buchungsgruppe7 = SL::DB::Manager::Buchungsgruppe->find_by(description => 'Standard 7%') || die "No accounting group for 7\%"; my $bank = SL::DB::Manager::Chart->find_by(description => 'Bank') || die 'Can\'t find chart "Bank"'; my $date = DateTime->new(year => 2017, month => 1, day => 1); my $payment_date = DateTime->new(year => 2017, month => 1, day => 5); +my $gldate = DateTime->new(year => 2017, month => 2, day => 9); # simulate bookings for Jan being made in Feb my $part1 = SL::Dev::Part::create_part(partnumber => '19', description => 'Part 19%')->save; my $part2 = SL::Dev::Part::create_part( @@ -30,6 +33,9 @@ my $part2 = SL::Dev::Part::create_part( my $invoice = SL::Dev::Record::create_sales_invoice( invnumber => "1 sales invoice", + itime => $gldate, + gldate => $gldate, + intnotes => 'booked in February', taxincluded => 0, transdate => $date, invoiceitems => [ SL::Dev::Record::create_invoice_item(part => $part1, qty => 3, sellprice => 70), @@ -78,8 +84,12 @@ cmp_bag $datev1->generate_datev_lines, [ }, ], "trans_id datev check ok"; +my $march_9 = DateTime->new(year => 2017, month => 3, day => 9); my $invoice2 = SL::Dev::Record::create_sales_invoice( invnumber => "2 sales invoice", + itime => $march_9, + gldate => $march_9, + intnotes => 'booked in March', taxincluded => 0, transdate => $date, invoiceitems => [ SL::Dev::Record::create_invoice_item(part => $part1, qty => 6, sellprice => 70), @@ -89,6 +99,9 @@ my $invoice2 = SL::Dev::Record::create_sales_invoice( my $credit_note = SL::Dev::Record::create_credit_note( invnumber => 'Gutschrift 34', + itime => $gldate, + gldate => $gldate, + intnotes => 'booked in February', taxincluded => 0, transdate => $date, invoiceitems => [ SL::Dev::Record::create_invoice_item(part => $part1, qty => 3, sellprice => 70), @@ -96,18 +109,37 @@ my $credit_note = SL::Dev::Record::create_credit_note( ] ); -my $startdate = DateTime->new(year => 2017, month => 1, day => 1); +my $startdate = DateTime->new(year => 2017, month => 1, day => 1); my $enddate = DateTime->new(year => 2017, month => 12, day => 31); my $datev = SL::DATEV->new( - dbh => $credit_note->db->dbh, + dbh => $dbh, + from => $startdate, + to => $enddate, +); +$datev->generate_datev_data(from_to => $datev->fromto); +my $datev_lines = $datev->generate_datev_lines; +my $umsatzsumme = sum map { $_->{umsatz} } @{ $datev_lines }; +cmp_ok($::form->round_amount($umsatzsumme,2), '==', 3924.5, "Sum of all bookings ok"); + +note('testing gldatefrom'); +my $datev = SL::DATEV->new( + dbh => $dbh, from => $startdate, - to => $enddate + to => DateTime->new(year => 2017, month => 01, day => 31), ); + +$::form = Support::TestSetup->create_new_form; +$::form->{gldatefrom} = DateTime->new(year => 2017, month => 3, day => 1)->to_kivitendo; + $datev->generate_datev_data(from_to => $datev->fromto); my $datev_lines = $datev->generate_datev_lines; my $umsatzsumme = sum map { $_->{umsatz} } @{ $datev_lines }; -is($umsatzsumme, 3924.50, "umsatzsumme ok"); +cmp_ok($umsatzsumme, '==', 1569.8, "Sum of bookings made after March 1st (only invoice2) ok"); + +$::form->{gldatefrom} = DateTime->new(year => 2017, month => 5, day => 1)->to_kivitendo; +$datev->generate_datev_data(from_to => $datev->fromto); +cmp_bag $datev->generate_datev_lines, [], "no bookings for January made after May 1st: ok"; done_testing(); clear_up(); @@ -120,6 +152,4 @@ sub clear_up { SL::DB::Manager::Part->delete_all( all => 1); }; - 1; -