X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=bin%2Fmozilla%2Fdatev.pl;fp=bin%2Fmozilla%2Fdatev.pl;h=79097022e8d10c7ef44b4d3f6f58731bf425c23f;hp=9572e74bd4c2059da5ba9761b196a1ba1b789d0b;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/bin/mozilla/datev.pl b/bin/mozilla/datev.pl index 9572e74bd..79097022e 100644 --- a/bin/mozilla/datev.pl +++ b/bin/mozilla/datev.pl @@ -18,7 +18,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Datev export module @@ -30,6 +31,8 @@ use Archive::Zip qw(:ERROR_CODES :CONSTANTS); use SL::Common; use SL::DATEV qw(:CONSTANTS); +use SL::Locale::String qw(t8); +use SL::DB::Department; use strict; @@ -47,6 +50,8 @@ sub export { my $stamm = SL::DATEV->new->get_datev_stamm; + setup_datev_export_action_bar(); + $::form->header; print $::form->parse_html_template('datev/export', $stamm); @@ -57,11 +62,8 @@ sub export2 { $::lxdebug->enter_sub; $::auth->assert('datev_export'); - if ($::form->{exporttype} == 0) { - export_bewegungsdaten(); - } else { - export_stammdaten(); - } + export_bewegungsdaten(); + $::lxdebug->leave_sub; } @@ -69,18 +71,16 @@ sub export_bewegungsdaten { $::lxdebug->enter_sub; $::auth->assert('datev_export'); - $::form->header; - print $::form->parse_html_template('datev/export_bewegungsdaten'); + setup_datev_export2_action_bar(); - $::lxdebug->leave_sub; -} + $::form->header; + $::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted; + $::form->{show_pk_option} = SL::DATEV->new->check_vcnumbers_are_valid_pk_numbers; -sub export_stammdaten { - $::lxdebug->enter_sub; - $::auth->assert('datev_export'); + # check if we have mismatching number length domains + SL::DATEV->new->check_valid_length_of_accounts; - $::form->header; - print $::form->parse_html_template('datev/export_stammdaten'); + print $::form->parse_html_template('datev/export_bewegungsdaten'); $::lxdebug->leave_sub; } @@ -91,20 +91,16 @@ sub export3 { my %data = ( exporttype => $::form->{exporttype} ? DATEV_ET_STAMM : DATEV_ET_BUCHUNGEN, - format => $::form->{kne} ? DATEV_FORMAT_KNE : DATEV_FORMAT_OBE, + format => $::form->{exportformat} eq 'kne' ? DATEV_FORMAT_KNE : DATEV_FORMAT_CSV, ); - if ($::form->{exporttype} == DATEV_ET_STAMM) { - $data{accnofrom} = $::form->{accnofrom}, - $data{accnoto} = $::form->{accnoto}, - } elsif ($::form->{exporttype} == DATEV_ET_BUCHUNGEN) { - @data{qw(from to)} = _get_dates( - $::form->{zeitraum}, $::form->{monat}, $::form->{quartal}, - $::form->{transdatefrom}, $::form->{transdateto}, - ); - } else { - die 'invalid exporttype'; - } + @data{qw(from to)} = _get_dates( + $::form->{zeitraum}, $::form->{monat}, $::form->{quartal}, + $::form->{transdatefrom}, $::form->{transdateto}, + ); + $data{use_pk} = $::form->{use_pk}; + $data{locked} = $::form->{locked}; + $data{imported} = $::form->{imported}; my $datev = SL::DATEV->new(%data); @@ -114,8 +110,10 @@ sub export3 { $datev->export; if (!$datev->errors) { + setup_datev_export3_action_bar(download_token => $datev->download_token); + $::form->header; - print $::form->parse_html_template('datev/export3', { datev => $datev }); + print $::form->parse_html_template('datev/export3', { WARNINGS => $datev->warnings }); } else { $::form->error("Export schlug fehl.\n" . join "\n", $datev->errors); } @@ -181,6 +179,9 @@ sub _get_dates { if ($mode eq "monat") { $fromdate = DateTime->new(day => 1, month => $month, year => DateTime->today->year); + # december export is usually in january/february + $fromdate = $fromdate->subtract(years => 1) if ($month == 12); + $todate = $fromdate->clone->add(months => 1)->add(days => -1); } elsif ($mode eq "quartal") { die 'quarter out of of bounds' if $quarter < 1 || $quarter > 4; @@ -198,3 +199,52 @@ sub _get_dates { return ($fromdate, $todate); } + +sub setup_datev_export_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Continue'), + submit => [ '#form', { action => 'export2' } ], + accesskey => 'enter', + ], + ); + } +} + +sub setup_datev_export2_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Export'), + submit => [ '#form', { action => 'export3' } ], + accesskey => 'enter', + ], + action => [ + t8('Back'), + call => [ 'kivi.history_back' ], + ], + ); + } +} + +sub setup_datev_export3_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + link => [ + t8('Download'), + link => [ 'datev.pl?action=download&download_token=' . $::form->escape($params{download_token}) ], + ], + action => [ + t8('Back'), + call => [ 'kivi.history_back' ], + ], + ); + } +}