From: Martin Helmling martin.helmling@octosoft.eu Date: Mon, 12 Sep 2016 08:13:54 +0000 (+0200) Subject: Erstellen von Jahresabschluss-Buchungen(2) X-Git-Tag: release-3.5.4~2040 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c1c6288ab29bae1eaec8009a0a80aeb5ece70e4d;p=kivitendo-erp.git Erstellen von Jahresabschluss-Buchungen(2) Auf Wunsch exaktere Bezeichnung des Controllers etc, also statt yearly ==> yearend --- diff --git a/SL/Controller/YearEndTransactions.pm b/SL/Controller/YearEndTransactions.pm new file mode 100644 index 000000000..b9bca983e --- /dev/null +++ b/SL/Controller/YearEndTransactions.pm @@ -0,0 +1,286 @@ +package SL::Controller::YearEndTransactions; + +use strict; + +use parent qw(SL::Controller::Base); + +use DateTime; +use SL::Locale::String qw(t8); +use SL::ReportGenerator; +use SL::Helper::Flash; +use SL::DBUtils; + +use SL::DB::Chart; +use SL::DB::GLTransaction; +use SL::DB::AccTransaction; +use SL::DB::Helper::AccountingPeriod qw(get_balance_starting_date); + +use Rose::Object::MakeMethods::Generic ( + 'scalar --get_set_init' => [ qw(charts charts9000 cbob_chart cb_date cb_startdate ob_date cb_reference ob_reference cb_description ob_description) ], +); + +__PACKAGE__->run_before('check_auth'); + +sub action_filter { + my ($self) = @_; + + $self->ob_date(DateTime->today->truncate(to => 'year')) if !$self->ob_date; + $self->cb_date(DateTime->today->truncate(to => 'year')->add(days => -1)) if !$self->cb_date; + $self->ob_reference(t8('OB Transaction')) if !$self->ob_reference; + $self->cb_reference(t8('CB Transaction')) if !$self->cb_reference; + $self->ob_description(t8('OB Transaction')) if !$self->ob_description; + $self->cb_description(t8('CB Transaction')) if !$self->cb_description; + $self->render('gl/yearend_filter', + title => t8('CB/OB Transactions'), + make_title_of_chart => sub { $_[0]->accno.' '.$_[0]->description } + ); + +} + +sub action_list { + my ($self) = @_; + $main::lxdebug->enter_sub(); + + my $report = SL::ReportGenerator->new(\%::myconfig, $::form); + + $self->prepare_report($report); + + $report->set_options( + output_format => 'HTML', + raw_top_info_text => $::form->parse_html_template('gl/yearend_top', { SELF => $self }), + raw_bottom_info_text => $::form->parse_html_template('gl/yearend_bottom', { SELF => $self }), + allow_pdf_export => 0, + allow_csv_export => 0, + title => $::locale->text('CB/OB Transactions'), + ); + $report->generate_with_headers(); + $main::lxdebug->leave_sub(); +} + +sub action_generate { + my ($self) = @_; + + my $cnt = $self->make_booking(); + + flash('info', $::locale->text('#1 CB transactions and #1 OB transactions generated.',$cnt)) if $cnt > 0; + + $self->action_list; +} + +sub check_auth { + $::auth->assert('general_ledger'); +} + +# +# helpers +# + +sub make_booking { + my ($self) = @_; + $main::lxdebug->enter_sub(); + my @ids = map { $::form->{"trans_id_$_"} } grep { $::form->{"multi_id_$_"} } (1..$::form->{rowcount}); + my $cnt = 0; + $main::lxdebug->message(LXDebug->DEBUG2(),"generate for ".$::form->{cbob_chart}." # ".scalar(@ids)." charts"); + if (scalar(@ids) && $::form->{cbob_chart}) { + my $carryoverchart = SL::DB::Manager::Chart->get_first( query => [ id => $::form->{cbob_chart} ] ); + my $charts = SL::DB::Manager::Chart->get_all( query => [ id => \@ids ] ); + foreach my $chart (@{ $charts }) { + $main::lxdebug->message(LXDebug->DEBUG2(),"chart_id=".$chart->id." accno=".$chart->accno); + my $balance = $self->get_balance($chart); + if ( $balance != 0 ) { + # SB + $self->gl_booking($balance,$self->cb_date,$::form->{cb_reference},$::form->{cb_description},$chart,$carryoverchart,0,1); + # EB + $self->gl_booking($balance,$self->ob_date,$::form->{ob_reference},$::form->{ob_description},$carryoverchart,$chart,1,0); + $cnt++; + } + } + } + $main::lxdebug->leave_sub(); + return $cnt; +} + + +sub prepare_report { + my ($self,$report) = @_; + $main::lxdebug->enter_sub(); + my $idx = 1; + my $cgi = $::request->{cgi}; + + my %column_defs = ( + 'ids' => { 'text' => '', 'align' => 'center' }, + 'chart' => { 'text' => $::locale->text('Account'), }, + 'description' => { 'text' => $::locale->text('Description'), }, + 'saldo' => { 'text' => $::locale->text('Saldo'), 'align' => 'right'}, + 'sum_cb' => { 'text' => $::locale->text('Sum CB Transactions'), 'align' => 'right'}, ##close == Schluss + 'sum_ob' => { 'text' => $::locale->text('Sum OB Transactions'), 'align' => 'right'}, ##open == Eingang + ); + my @columns = qw(ids chart description saldo sum_cb sum_ob); + map { $column_defs{$_}->{visible} = 1 } @columns; + my $ob_next_date = $::locale->parse_date_to_object($self->ob_date)->add(years => 1)->add(days => -1)->to_kivitendo; + + $self->cb_startdate($self->get_balance_starting_date($self->cb_date)); + + my @custom_headers = (); + # Zeile 1: + push @custom_headers, [ + { 'text' => ' ', 'colspan' => 3 }, + { 'text' => $::locale->text("Timerange")."
".$self->cb_startdate." - ".$self->cb_date, 'colspan' => 2, 'align' => 'center'}, + { 'text' => $::locale->text("Timerange")."
".$self->ob_date." - ".$ob_next_date, 'align' => 'center'}, + ]; + + # Zeile 2: + my @line_2 = (); + map { push @line_2 , $column_defs{$_} } grep { $column_defs{$_}->{visible} } @columns; + push @custom_headers, [ @line_2 ]; + + $report->set_custom_headers(@custom_headers); + $report->set_columns(%column_defs); + $report->set_column_order(@columns); + + my $chart9actual = SL::DB::Manager::Chart->get_first( query => [ id => $self->cbob_chart ] ); + $self->{cbob_chartaccno} = $chart9actual->accno.' '.$chart9actual->description; + + foreach my $chart (@{ $self->charts }) { + my $balance = $self->get_balance($chart); + if ( $balance != 0 ) { + my $chart_id = $chart->id; + my $row = { map { $_ => { 'data' => '' } } @columns }; + $row->{ids} = { + 'raw_data' => $cgi->hidden('-name' => "trans_id_${idx}", '-value' => $chart_id) + . $cgi->checkbox('-name' => "multi_id_${idx}",' id' => "multi_id_id_".$chart_id, '-value' => 1, '-label' => ''), + 'valign' => 'center', + 'align' => 'center', + }; + $row->{chart}->{data} = $chart->accno; + $row->{description}->{data} = $chart->description; + if ( $balance > 0 ) { + $row->{saldo}->{data} = $::form->format_amount(\%::myconfig, $balance, 2)." H"; + } elsif ( $balance < 0 ) { + $row->{saldo}->{data} = $::form->format_amount(\%::myconfig,-$balance, 2)." S"; + } else { + $row->{saldo}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; + } + my $sum_cb = 0; + foreach my $acc ( @{ SL::DB::Manager::AccTransaction->get_all(where => [ chart_id => $chart->id, cb_transaction => 't', + transdate => { ge => $self->cb_startdate}, + transdate => { le => $self->cb_date }]) }) { + $sum_cb += $acc->amount; + } + my $sum_ob = 0; + foreach my $acc ( @{ SL::DB::Manager::AccTransaction->get_all(where => [ chart_id => $chart->id, ob_transaction => 't', + transdate => { ge => $self->ob_date}, + transdate => { le => $ob_next_date }]) }) { + $sum_ob += $acc->amount; + } + if ( $sum_cb > 0 ) { + $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig, $sum_cb, 2)." H"; + } elsif ( $sum_cb < 0 ) { + $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig,-$sum_cb, 2)." S"; + } else { + $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; + } + if ( $sum_ob > 0 ) { + $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig, $sum_ob, 2)." H"; + } elsif ( $sum_ob < 0 ) { + $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig,-$sum_ob, 2)." S"; + } else { + $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; + } + $report->add_data($row); + } + $idx++; + } + + $self->{row_count} = $idx; + $main::lxdebug->leave_sub(); +} + +sub get_balance { + $main::lxdebug->enter_sub(); + my ($self,$chart) = @_; + +## eigene Abfrage da SL:DB:Chart->get_balance keine cb_transactions mitzählt +## Alternative in Chart cb_transaction abfrage per neuem Parameter 'with_cb' disablen: +# my %balance_params = ( fromdate => $self->startdate, +# todate => $self->cb_date, +# accounting_method => 'accrual', +# with_cb => 1, ## in Chart cb_transaction abfrage disablen +# ); +# return $chart->get_balance(%balance_params); + + $main::lxdebug->message(LXDebug->DEBUG2(),"get_balance from=".$self->cb_startdate." to=".$self->cb_date); + my $query = qq|SELECT SUM(amount) AS sum FROM acc_trans WHERE chart_id = ? | . + qq| AND transdate >= ? AND transdate <= ? |; + my @query_args = ( $chart->id, $self->cb_startdate, $self->cb_date); + my ($balance) = selectfirst_array_query($::form, $chart->db->dbh, $query, @query_args); + + $main::lxdebug->leave_sub(); + return 0 unless $balance != 0; + return $balance; +} + +sub gl_booking { + my ($self, $amount, $transdate, $reference, $description, $konto, $gegenkonto, $ob, $cb) = @_; + $::form->get_employee(); + my $employee_id = $::form->{employee_id}; + $main::lxdebug->message(LXDebug->DEBUG2(),"employee_id=".$employee_id." ob=".$ob." cb=".$cb); + my $gl_entry = SL::DB::GLTransaction->new(); + $gl_entry->assign_attributes( + employee_id => $employee_id, + transdate => $transdate, + reference => $reference, + description => $description, + ob_transaction => $ob, + cb_transaction => $cb, + ); + $gl_entry->save; + my $kto_trans1 = SL::DB::AccTransaction->new(); + $kto_trans1->assign_attributes( + trans_id => $gl_entry->id, + transdate => $transdate, + ob_transaction => $ob, + cb_transaction => $cb, + chart_id => $gegenkonto->id, + chart_link => $konto->link, + tax_id => 0, + taxkey => 0, + amount => $amount, + ); + $kto_trans1->save; + my $kto_trans2 = SL::DB::AccTransaction->new(); + $kto_trans2->assign_attributes( + trans_id => $gl_entry->id, + transdate => $transdate, + ob_transaction => $ob, + cb_transaction => $cb, + chart_id => $konto->id, + chart_link => $konto->link, + tax_id => 0, + taxkey => 0, + amount => -$amount, + ); + $kto_trans2->save; +} + +sub init_cbob_chart { $::form->{cbob_chart} } +sub init_ob_date { $::form->{ob_date} } +sub init_ob_reference { $::form->{ob_reference} } +sub init_ob_description { $::form->{ob_description} } +sub init_cb_startdate { $::form->{cb_startdate} } +sub init_cb_date { $::form->{cb_date} } +sub init_cb_reference { $::form->{cb_reference} } +sub init_cb_description { $::form->{cb_description} } + +sub init_charts9000 { + # wie geht prüfen von länge auf 4 in rose ? + SL::DB::Manager::Chart->get_all( query => [ \ "accno like '9%' and length(accno) = 4"] ); + #SL::DB::Manager::Chart->get_all( query => [ accno => { like => '9%'}] ); +} + +sub init_charts { + # wie geht 'not like' in rose ? + SL::DB::Manager::Chart->get_all( query => [ \ "accno not like '9%'"], sort_by => 'accno ASC' ); +} + +1; diff --git a/SL/Controller/YearlyTransactions.pm b/SL/Controller/YearlyTransactions.pm deleted file mode 100644 index 2639ef66c..000000000 --- a/SL/Controller/YearlyTransactions.pm +++ /dev/null @@ -1,286 +0,0 @@ -package SL::Controller::YearlyTransactions; - -use strict; - -use parent qw(SL::Controller::Base); - -use DateTime; -use SL::Locale::String qw(t8); -use SL::ReportGenerator; -use SL::Helper::Flash; -use SL::DBUtils; - -use SL::DB::Chart; -use SL::DB::GLTransaction; -use SL::DB::AccTransaction; -use SL::DB::Helper::AccountingPeriod qw(get_balance_starting_date); - -use Rose::Object::MakeMethods::Generic ( - 'scalar --get_set_init' => [ qw(charts charts9000 cbob_chart cb_date cb_startdate ob_date cb_reference ob_reference cb_description ob_description) ], -); - -__PACKAGE__->run_before('check_auth'); - -sub action_filter { - my ($self) = @_; - - $self->ob_date(DateTime->today->truncate(to => 'year')) if !$self->ob_date; - $self->cb_date(DateTime->today->truncate(to => 'year')->add(days => -1)) if !$self->cb_date; - $self->ob_reference(t8('OB Transaction')) if !$self->ob_reference; - $self->cb_reference(t8('CB Transaction')) if !$self->cb_reference; - $self->ob_description(t8('OB Transaction')) if !$self->ob_description; - $self->cb_description(t8('CB Transaction')) if !$self->cb_description; - $self->render('gl/yearly_filter', - title => t8('CB/OB Transactions'), - make_title_of_chart => sub { $_[0]->accno.' '.$_[0]->description } - ); - -} - -sub action_list { - my ($self) = @_; - $main::lxdebug->enter_sub(); - - my $report = SL::ReportGenerator->new(\%::myconfig, $::form); - - $self->prepare_report($report); - - $report->set_options( - output_format => 'HTML', - raw_top_info_text => $::form->parse_html_template('gl/yearly_top', { SELF => $self }), - raw_bottom_info_text => $::form->parse_html_template('gl/yearly_bottom', { SELF => $self }), - allow_pdf_export => 0, - allow_csv_export => 0, - title => $::locale->text('CB/OB Transactions'), - ); - $report->generate_with_headers(); - $main::lxdebug->leave_sub(); -} - -sub action_generate { - my ($self) = @_; - - my $cnt = $self->make_booking(); - - flash('info', $::locale->text('#1 CB transactions and #1 OB transactions generated.',$cnt)) if $cnt > 0; - - $self->action_list; -} - -sub check_auth { - $::auth->assert('general_ledger'); -} - -# -# helpers -# - -sub make_booking { - my ($self) = @_; - $main::lxdebug->enter_sub(); - my @ids = map { $::form->{"trans_id_$_"} } grep { $::form->{"multi_id_$_"} } (1..$::form->{rowcount}); - my $cnt = 0; - $main::lxdebug->message(LXDebug->DEBUG2(),"generate for ".$::form->{cbob_chart}." # ".scalar(@ids)." charts"); - if (scalar(@ids) && $::form->{cbob_chart}) { - my $carryoverchart = SL::DB::Manager::Chart->get_first( query => [ id => $::form->{cbob_chart} ] ); - my $charts = SL::DB::Manager::Chart->get_all( query => [ id => \@ids ] ); - foreach my $chart (@{ $charts }) { - $main::lxdebug->message(LXDebug->DEBUG2(),"chart_id=".$chart->id." accno=".$chart->accno); - my $balance = $self->get_balance($chart); - if ( $balance != 0 ) { - # SB - $self->gl_booking($balance,$self->cb_date,$::form->{cb_reference},$::form->{cb_description},$chart,$carryoverchart,0,1); - # EB - $self->gl_booking($balance,$self->ob_date,$::form->{ob_reference},$::form->{ob_description},$carryoverchart,$chart,1,0); - $cnt++; - } - } - } - $main::lxdebug->leave_sub(); - return $cnt; -} - - -sub prepare_report { - my ($self,$report) = @_; - $main::lxdebug->enter_sub(); - my $idx = 1; - my $cgi = $::request->{cgi}; - - my %column_defs = ( - 'ids' => { 'text' => '', 'align' => 'center' }, - 'chart' => { 'text' => $::locale->text('Account'), }, - 'description' => { 'text' => $::locale->text('Description'), }, - 'saldo' => { 'text' => $::locale->text('Saldo'), 'align' => 'right'}, - 'sum_cb' => { 'text' => $::locale->text('Sum CB Transactions'), 'align' => 'right'}, ##close == Schluss - 'sum_ob' => { 'text' => $::locale->text('Sum OB Transactions'), 'align' => 'right'}, ##open == Eingang - ); - my @columns = qw(ids chart description saldo sum_cb sum_ob); - map { $column_defs{$_}->{visible} = 1 } @columns; - my $ob_next_date = $::locale->parse_date_to_object($self->ob_date)->add(years => 1)->add(days => -1)->to_kivitendo; - - $self->cb_startdate($self->get_balance_starting_date($self->cb_date)); - - my @custom_headers = (); - # Zeile 1: - push @custom_headers, [ - { 'text' => ' ', 'colspan' => 3 }, - { 'text' => $::locale->text("Timerange")."
".$self->cb_startdate." - ".$self->cb_date, 'colspan' => 2, 'align' => 'center'}, - { 'text' => $::locale->text("Timerange")."
".$self->ob_date." - ".$ob_next_date, 'align' => 'center'}, - ]; - - # Zeile 2: - my @line_2 = (); - map { push @line_2 , $column_defs{$_} } grep { $column_defs{$_}->{visible} } @columns; - push @custom_headers, [ @line_2 ]; - - $report->set_custom_headers(@custom_headers); - $report->set_columns(%column_defs); - $report->set_column_order(@columns); - - my $chart9actual = SL::DB::Manager::Chart->get_first( query => [ id => $self->cbob_chart ] ); - $self->{cbob_chartaccno} = $chart9actual->accno.' '.$chart9actual->description; - - foreach my $chart (@{ $self->charts }) { - my $balance = $self->get_balance($chart); - if ( $balance != 0 ) { - my $chart_id = $chart->id; - my $row = { map { $_ => { 'data' => '' } } @columns }; - $row->{ids} = { - 'raw_data' => $cgi->hidden('-name' => "trans_id_${idx}", '-value' => $chart_id) - . $cgi->checkbox('-name' => "multi_id_${idx}",' id' => "multi_id_id_".$chart_id, '-value' => 1, '-label' => ''), - 'valign' => 'center', - 'align' => 'center', - }; - $row->{chart}->{data} = $chart->accno; - $row->{description}->{data} = $chart->description; - if ( $balance > 0 ) { - $row->{saldo}->{data} = $::form->format_amount(\%::myconfig, $balance, 2)." H"; - } elsif ( $balance < 0 ) { - $row->{saldo}->{data} = $::form->format_amount(\%::myconfig,-$balance, 2)." S"; - } else { - $row->{saldo}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; - } - my $sum_cb = 0; - foreach my $acc ( @{ SL::DB::Manager::AccTransaction->get_all(where => [ chart_id => $chart->id, cb_transaction => 't', - transdate => { ge => $self->cb_startdate}, - transdate => { le => $self->cb_date }]) }) { - $sum_cb += $acc->amount; - } - my $sum_ob = 0; - foreach my $acc ( @{ SL::DB::Manager::AccTransaction->get_all(where => [ chart_id => $chart->id, ob_transaction => 't', - transdate => { ge => $self->ob_date}, - transdate => { le => $ob_next_date }]) }) { - $sum_ob += $acc->amount; - } - if ( $sum_cb > 0 ) { - $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig, $sum_cb, 2)." H"; - } elsif ( $sum_cb < 0 ) { - $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig,-$sum_cb, 2)." S"; - } else { - $row->{sum_cb}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; - } - if ( $sum_ob > 0 ) { - $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig, $sum_ob, 2)." H"; - } elsif ( $sum_ob < 0 ) { - $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig,-$sum_ob, 2)." S"; - } else { - $row->{sum_ob}->{data} = $::form->format_amount(\%::myconfig,0, 2)." "; - } - $report->add_data($row); - } - $idx++; - } - - $self->{row_count} = $idx; - $main::lxdebug->leave_sub(); -} - -sub get_balance { - $main::lxdebug->enter_sub(); - my ($self,$chart) = @_; - -## eigene Abfrage da SL:DB:Chart->get_balance keine cb_transactions mitzählt -## Alternative in Chart cb_transaction abfrage per neuem Parameter 'with_cb' disablen: -# my %balance_params = ( fromdate => $self->startdate, -# todate => $self->cb_date, -# accounting_method => 'accrual', -# with_cb => 1, ## in Chart cb_transaction abfrage disablen -# ); -# return $chart->get_balance(%balance_params); - - $main::lxdebug->message(LXDebug->DEBUG2(),"get_balance from=".$self->cb_startdate." to=".$self->cb_date); - my $query = qq|SELECT SUM(amount) AS sum FROM acc_trans WHERE chart_id = ? | . - qq| AND transdate >= ? AND transdate <= ? |; - my @query_args = ( $chart->id, $self->cb_startdate, $self->cb_date); - my ($balance) = selectfirst_array_query($::form, $chart->db->dbh, $query, @query_args); - - $main::lxdebug->leave_sub(); - return 0 unless $balance != 0; - return $balance; -} - -sub gl_booking { - my ($self, $amount, $transdate, $reference, $description, $konto, $gegenkonto, $ob, $cb) = @_; - $::form->get_employee(); - my $employee_id = $::form->{employee_id}; - $main::lxdebug->message(LXDebug->DEBUG2(),"employee_id=".$employee_id." ob=".$ob." cb=".$cb); - my $gl_entry = SL::DB::GLTransaction->new(); - $gl_entry->assign_attributes( - employee_id => $employee_id, - transdate => $transdate, - reference => $reference, - description => $description, - ob_transaction => $ob, - cb_transaction => $cb, - ); - $gl_entry->save; - my $kto_trans1 = SL::DB::AccTransaction->new(); - $kto_trans1->assign_attributes( - trans_id => $gl_entry->id, - transdate => $transdate, - ob_transaction => $ob, - cb_transaction => $cb, - chart_id => $gegenkonto->id, - chart_link => $konto->link, - tax_id => 0, - taxkey => 0, - amount => $amount, - ); - $kto_trans1->save; - my $kto_trans2 = SL::DB::AccTransaction->new(); - $kto_trans2->assign_attributes( - trans_id => $gl_entry->id, - transdate => $transdate, - ob_transaction => $ob, - cb_transaction => $cb, - chart_id => $konto->id, - chart_link => $konto->link, - tax_id => 0, - taxkey => 0, - amount => -$amount, - ); - $kto_trans2->save; -} - -sub init_cbob_chart { $::form->{cbob_chart} } -sub init_ob_date { $::form->{ob_date} } -sub init_ob_reference { $::form->{ob_reference} } -sub init_ob_description { $::form->{ob_description} } -sub init_cb_startdate { $::form->{cb_startdate} } -sub init_cb_date { $::form->{cb_date} } -sub init_cb_reference { $::form->{cb_reference} } -sub init_cb_description { $::form->{cb_description} } - -sub init_charts9000 { - # wie geht prüfen von länge auf 4 in rose ? - SL::DB::Manager::Chart->get_all( query => [ \ "accno like '9%' and length(accno) = 4"] ); - #SL::DB::Manager::Chart->get_all( query => [ accno => { like => '9%'}] ); -} - -sub init_charts { - # wie geht 'not like' in rose ? - SL::DB::Manager::Chart->get_all( query => [ \ "accno not like '9%'"], sort_by => 'accno ASC' ); -} - -1; diff --git a/menus/user/11-yearend-transactions.yaml b/menus/user/11-yearend-transactions.yaml new file mode 100644 index 000000000..6906cdc89 --- /dev/null +++ b/menus/user/11-yearend-transactions.yaml @@ -0,0 +1,16 @@ +# This is the main menu config file for user space menu entries. +# +# opendynamic features +# +--- +# +# SB/EB-Buchungen +# +- parent: general_ledger + id: general_ledger_cbob_transactions + name: CB/OB Transactions + icon: cbob + order: 470 + access: general_ledger + params: + action: YearEndTransactions/filter diff --git a/menus/user/11-yearly-transactions.yaml b/menus/user/11-yearly-transactions.yaml deleted file mode 100644 index f6667f8c9..000000000 --- a/menus/user/11-yearly-transactions.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# This is the main menu config file for user space menu entries. -# -# opendynamic features -# ---- -# -# SB/EB-Buchungen -# -- parent: general_ledger - id: general_ledger_cbob_transactions - name: CB/OB Transactions - icon: cbob - order: 470 - access: general_ledger - params: - action: YearlyTransactions/filter diff --git a/t/bank/cb_ob_transactions.t b/t/bank/cb_ob_transactions.t index e03934004..d72c1a800 100644 --- a/t/bank/cb_ob_transactions.t +++ b/t/bank/cb_ob_transactions.t @@ -25,7 +25,7 @@ use SL::DB::PaymentTerm; use SL::DB::PurchaseInvoice; use SL::DB::BankTransaction; use SL::DB::AccTransaction; -use SL::Controller::YearlyTransactions; +use SL::Controller::YearEndTransactions; use Data::Dumper; my ($customer, $vendor, $currency_id, @parts, $unit, $employee, $tax, $tax7, $tax_9, $taxzone, $payment_terms, $bank_account); @@ -222,7 +222,7 @@ sub test1 { $ap_transaction = test_ap_transaction(invnumber => 'purchaseinv1'); my $ar_transaction_2 = test_ar_transaction(invnumber => 'salesinv_2'); - my $yt_controller = SL::Controller::YearlyTransactions->new; + my $yt_controller = SL::Controller::YearEndTransactions->new; my $report = SL::ReportGenerator->new(\%::myconfig, $::form); $::form->{"ob_date"} = DateTime->today->truncate(to => 'year')->add(years => 1)->to_kivitendo; diff --git a/templates/webpages/gl/yearend_bottom.html b/templates/webpages/gl/yearend_bottom.html new file mode 100644 index 000000000..161217c59 --- /dev/null +++ b/templates/webpages/gl/yearend_bottom.html @@ -0,0 +1,25 @@ +[%- USE L %] +[%- USE LxERP %] + + + +
+ [%- L.hidden_tag("action","YearlyTransactions/dispatch") %] + [%- L.hidden_tag("cb_date",SELF.cb_date) %] + [%- L.hidden_tag("cb_startdate",SELF.cb_startdate) %] + [%- L.hidden_tag("cb_reference",SELF.cb_reference) %] + [%- L.hidden_tag("cb_description",SELF.cb_description) %] + [%- L.hidden_tag("ob_date",SELF.ob_date) %] + [%- L.hidden_tag("ob_reference",SELF.ob_reference) %] + [%- L.hidden_tag("ob_description",SELF.ob_description) %] + [%- L.hidden_tag("cbob_chart",SELF.cbob_chart) %] + [%- L.hidden_tag("rowcount",SELF.row_count) %] + [%- L.submit_tag("action_generate", LxERP.t8('generate cb/ob transactions for selected charts'), + confirm=LxERP.t8('Are you sure to generate cb/ob transactions?')) %] + [%- L.submit_tag("action_filter", LxERP.t8('back')) %] +
+ diff --git a/templates/webpages/gl/yearend_filter.html b/templates/webpages/gl/yearend_filter.html new file mode 100644 index 000000000..a99799cb4 --- /dev/null +++ b/templates/webpages/gl/yearend_filter.html @@ -0,0 +1,64 @@ +[%- USE HTML %] +[%- USE T8 %] +[%- USE L %] +[%- USE LxERP %] + +

[% title | html %]

+ +[%- PROCESS 'common/flash.html' %] + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[% 'Attention: Here will be generated a lot of CB/OB transactions.' | $T8 %]

[% 'CB Transactions' | $T8 %][% 'OB Transactions' | $T8 %] 
[% 'Date' | $T8 %][% L.date_tag('cb_date', SELF.cb_date) %][% 'Date' | $T8 %][% L.date_tag('ob_date', SELF.ob_date) %]
[% 'Reference' | $T8 %][% L.input_tag('cb_reference', SELF.cb_reference) %][% 'Reference' | $T8 %][% L.input_tag('ob_reference', SELF.ob_reference) %]
[% 'Description' | $T8 %][% L.input_tag('cb_description', SELF.cb_description) %][% 'Description' | $T8 %][% L.input_tag('ob_description', SELF.ob_description) %]

[% 'close chart' | $T8 %][% L.select_tag('cbob_chart', SELF.charts9000, title_sub=\make_title_of_chart, default=SELF.cbob_chart, style="width: 400px") %]
+ +[% L.hidden_tag('action', 'YearlyTransactions/dispatch') %] +

+[% L.submit_tag('action_list', LxERP.t8('Continue')) %] + +
diff --git a/templates/webpages/gl/yearend_top.html b/templates/webpages/gl/yearend_top.html new file mode 100644 index 000000000..84306d584 --- /dev/null +++ b/templates/webpages/gl/yearend_top.html @@ -0,0 +1,23 @@ +[%- USE LxERP %] +[%- INCLUDE 'common/flash.html' %] +
+ + + + + + + + + + + + + +
+ [%- LxERP.t8('Select charts for which the CB/OB transactions want to be posted.') %]
+ [%- LxERP.t8('There will be two transactions done:') %]
+ - [%- LxERP.t8('One SB-transaction') %] ( [% SELF.cb_date %], [% SELF.cb_reference %], [% SELF.cb_description %], [% SELF.cbob_chartaccno %] )
+ - [%- LxERP.t8('One OB-transaction') %] ( [% SELF.ob_date %], [% SELF.ob_reference %], [% SELF.ob_description %], [% SELF.cbob_chartaccno %] )
+ [%- LxERP.t8('No revert available.') %] +

[% LxERP.t8('close chart') %][% SELF.cbob_chartaccno %]
diff --git a/templates/webpages/gl/yearly_bottom.html b/templates/webpages/gl/yearly_bottom.html deleted file mode 100644 index 161217c59..000000000 --- a/templates/webpages/gl/yearly_bottom.html +++ /dev/null @@ -1,25 +0,0 @@ -[%- USE L %] -[%- USE LxERP %] - - - -
- [%- L.hidden_tag("action","YearlyTransactions/dispatch") %] - [%- L.hidden_tag("cb_date",SELF.cb_date) %] - [%- L.hidden_tag("cb_startdate",SELF.cb_startdate) %] - [%- L.hidden_tag("cb_reference",SELF.cb_reference) %] - [%- L.hidden_tag("cb_description",SELF.cb_description) %] - [%- L.hidden_tag("ob_date",SELF.ob_date) %] - [%- L.hidden_tag("ob_reference",SELF.ob_reference) %] - [%- L.hidden_tag("ob_description",SELF.ob_description) %] - [%- L.hidden_tag("cbob_chart",SELF.cbob_chart) %] - [%- L.hidden_tag("rowcount",SELF.row_count) %] - [%- L.submit_tag("action_generate", LxERP.t8('generate cb/ob transactions for selected charts'), - confirm=LxERP.t8('Are you sure to generate cb/ob transactions?')) %] - [%- L.submit_tag("action_filter", LxERP.t8('back')) %] -
- diff --git a/templates/webpages/gl/yearly_filter.html b/templates/webpages/gl/yearly_filter.html deleted file mode 100644 index a99799cb4..000000000 --- a/templates/webpages/gl/yearly_filter.html +++ /dev/null @@ -1,64 +0,0 @@ -[%- USE HTML %] -[%- USE T8 %] -[%- USE L %] -[%- USE LxERP %] - -

[% title | html %]

- -[%- PROCESS 'common/flash.html' %] - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[% 'Attention: Here will be generated a lot of CB/OB transactions.' | $T8 %]

[% 'CB Transactions' | $T8 %][% 'OB Transactions' | $T8 %] 
[% 'Date' | $T8 %][% L.date_tag('cb_date', SELF.cb_date) %][% 'Date' | $T8 %][% L.date_tag('ob_date', SELF.ob_date) %]
[% 'Reference' | $T8 %][% L.input_tag('cb_reference', SELF.cb_reference) %][% 'Reference' | $T8 %][% L.input_tag('ob_reference', SELF.ob_reference) %]
[% 'Description' | $T8 %][% L.input_tag('cb_description', SELF.cb_description) %][% 'Description' | $T8 %][% L.input_tag('ob_description', SELF.ob_description) %]

[% 'close chart' | $T8 %][% L.select_tag('cbob_chart', SELF.charts9000, title_sub=\make_title_of_chart, default=SELF.cbob_chart, style="width: 400px") %]
- -[% L.hidden_tag('action', 'YearlyTransactions/dispatch') %] -

-[% L.submit_tag('action_list', LxERP.t8('Continue')) %] - -
diff --git a/templates/webpages/gl/yearly_top.html b/templates/webpages/gl/yearly_top.html deleted file mode 100644 index 84306d584..000000000 --- a/templates/webpages/gl/yearly_top.html +++ /dev/null @@ -1,23 +0,0 @@ -[%- USE LxERP %] -[%- INCLUDE 'common/flash.html' %] -
- - - - - - - - - - - - - -
- [%- LxERP.t8('Select charts for which the CB/OB transactions want to be posted.') %]
- [%- LxERP.t8('There will be two transactions done:') %]
- - [%- LxERP.t8('One SB-transaction') %] ( [% SELF.cb_date %], [% SELF.cb_reference %], [% SELF.cb_description %], [% SELF.cbob_chartaccno %] )
- - [%- LxERP.t8('One OB-transaction') %] ( [% SELF.ob_date %], [% SELF.ob_reference %], [% SELF.ob_description %], [% SELF.cbob_chartaccno %] )
- [%- LxERP.t8('No revert available.') %] -

[% LxERP.t8('close chart') %][% SELF.cbob_chartaccno %]