-sub csv_buchungsexport {
- my $self = shift;
- my %params = @_;
-
- $self->generate_datev_data(from_to => $self->fromto);
- return if $self->errors;
-
- my @datev_lines = @{ $self->generate_datev_lines };
-
- my @csv_columns = SL::DATEV::CSV->kivitendo_to_datev();
- my @csv_headers = SL::DATEV::CSV->generate_csv_header(
- from => $self->from->ymd(''),
- to => $self->to->ymd(''),
- first_day_of_fiscal_year => $self->to->year . '0101',
- locked => 0
- );
-
- my @array_of_datev;
-
- # 2 Headers
- push @array_of_datev, \@csv_headers;
- push @array_of_datev, [ map { $_->{csv_header_name} } @csv_columns ];
-
- my @warnings;
- foreach my $row ( @datev_lines ) {
- my @current_datev_row;
-
- # shorten strings
- if ($row->{belegfeld1}) {
- $row->{buchungsbes} = $row->{belegfeld1} if $row->{belegfeld1};
- $row->{belegfeld1} = substr($row->{belegfeld1}, 0, 12);
- $row->{buchungsbes} = substr($row->{buchungsbes}, 0, 60);
- }
-
- $row->{datum} = datetofour($row->{datum}, 0);
- $row->{kost1} = substr($row->{kost1}, 0, 8) if $row->{kost1};
- $row->{kost2} = substr($row->{kost2}, 0, 8) if $row->{kost2};
-
- # , as decimal point and trim for UstID
- $row->{umsatz} =~ s/\./,/;
- $row->{ustid} =~ s/\s//g if $row->{ustid}; # trim whitespace