Mandantenkonfiguration: Standardkonten als Chartpicker
authorG. Richardson <information@kivitendo-premium.de>
Tue, 13 Jan 2015 21:55:59 +0000 (22:55 +0100)
committerG. Richardson <information@kivitendo-premium.de>
Wed, 14 Jan 2015 14:31:31 +0000 (15:31 +0100)
Statt Dropdown werden die Standardkonten nun per Chartpicker ausgewählt.

Die Kontenlogik welche Konten als Standardkonten vorgeschlagen werden
steckt jetzt im Template in der Konfiguration des Chartpickers, nicht
mehr im ClientConfig Controller.

SL/Controller/ClientConfig.pm
templates/webpages/client_config/_default_accounts.html

index eac6956..ded1a33 100644 (file)
@@ -21,7 +21,7 @@ __PACKAGE__->run_before('check_auth');
 
 use Rose::Object::MakeMethods::Generic (
   'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates all_price_sources h_unit_name
-                                  posting_options payment_options accounting_options inventory_options profit_options accounts balance_startdate_method_options) ],
+                                  posting_options payment_options accounting_options inventory_options profit_options balance_startdate_method_options) ],
 );
 
 sub action_edit {
@@ -182,29 +182,6 @@ sub init_balance_startdate_method_options {
     { title => t8("Last opening balance or start of year"),     value => "last_ob_or_start_of_year"    }, ]
 }
 
-sub init_accounts {
-  my %accounts;
-
-  foreach my $chart (@{ SL::DB::Manager::Chart->get_all(where => [ link => { like => '%IC%' } ], sort_by => 'accno ASC') }) {
-    my %added;
-
-    foreach my $link (split m/:/, $chart->link) {
-      my $key = lc($link =~ /cogs/ ? 'IC_expense' : $link =~ /sale/ ? 'IC_income' : $link);
-      next if $added{$key};
-
-      $added{$key}      = 1;
-      $accounts{$key} ||= [];
-      push @{ $accounts{$key} }, $chart;
-    }
-  }
-
-  $accounts{fx_gain} = SL::DB::Manager::Chart->get_all(where => [ category => 'I', charttype => 'A' ], sort_by => 'accno ASC');
-  $accounts{fx_loss} = SL::DB::Manager::Chart->get_all(where => [ category => 'E', charttype => 'A' ], sort_by => 'accno ASC');
-  $accounts{ar_paid} = SL::DB::Manager::Chart->get_all(where => [ link => { like => '%AR_paid%' }   ], sort_by => 'accno ASC');
-
-  return \%accounts;
-}
-
 sub init_all_price_sources {
   my @classes = SL::PriceSource::ALL->all_price_sources;
 
index f893f54..0a6ec1e 100644 (file)
@@ -1,35 +1,38 @@
 [%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
-[% SET style="width: 600px" %]
+[% SET style="width: 500px" %]
+[%# L.dump( SELF.defaults ) %]
 <div id="default_accounts">
  <table>
   <tr>
    <td align="right">[% LxERP.t8("Inventory Account") %]</td>
-   <td>[% L.select_tag('defaults.inventory_accno_id', SELF.accounts.ic, default=SELF.defaults.inventory_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>
+   [% L.chart_picker('defaults.inventory_accno_id', SELF.defaults.inventory_accno_id, type='IC', choose=1, style=style) %]
+   <td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Revenue Account") %]</td>
-   <td>[% L.select_tag('defaults.income_accno_id', SELF.accounts.ic_income, default=SELF.defaults.income_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>[% L.chart_picker('defaults.income_accno_id', SELF.defaults.income_accno_id, type='IC_income,IC_sale', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Expense Account") %]</td>
-   <td>[% L.select_tag('defaults.expense_accno_id', SELF.accounts.ic_expense, default=SELF.defaults.expense_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>[% L.chart_picker('defaults.expense_accno_id', SELF.defaults.expense_accno_id, type='IC_expense,IC_cogs', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Foreign Exchange Gain") %]</td>
-   <td>[% L.select_tag('defaults.fxgain_accno_id', SELF.accounts.fx_gain, default=SELF.defaults.fxgain_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>[% L.chart_picker('defaults.fxgain_accno_id', SELF.defaults.fxgain_accno_id, category='I,A', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Foreign Exchange Loss") %]</td>
-   <td>[% L.select_tag('defaults.fxloss_accno_id', SELF.accounts.fx_loss, default=SELF.defaults.fxloss_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>[% L.chart_picker('defaults.fxloss_accno_id', SELF.defaults.fxloss_accno_id, category='E,A', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Current assets account") %]</td>
-   <td>[% L.select_tag('defaults.ar_paid_accno_id', SELF.accounts.ar_paid, default=SELF.defaults.ar_paid_accno_id, title_sub=\make_chart_title, style=style) %]</td>
+   <td>[% L.chart_picker('defaults.ar_paid_accno_id', SELF.defaults.ar_paid_accno_id, type='AR_paid', choose=1, style=style) %]<td>
   </tr>
  </table>
 </div>