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(
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),
},
], "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),
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),
]
);
-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();
SL::DB::Manager::Part->delete_all( all => 1);
};
-
1;
-