Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 529e6feb

Von Moritz Bunkus vor mehr als 10 Jahren hinzugefügt

  • ID 529e6feb7d1ceb388822957e9efd1b919edd5e97
  • Vorgänger db0ab48c
  • Nachfolger d7fddb8d

SL::DB::Part,Helper::PriceTaxCalculator: agressiveres Caching

Damit wird für ziemlich jeden Objekttyp nur noch ein einziges Query
abgesetzt.

Unterschiede anzeigen:

SL/DB/Part.pm
153 153
  if (!exists $cache->{$date}) {
154 154
    $cache->{$date} =
155 155
      $self->get_chart(type => $is_sales ? 'income' : 'expense', taxzone => $taxzone)
156
      ->load
157 156
      ->get_active_taxkey($date);
158 157
  }
159 158

  
......
172 171
  $charts->{$taxzone} ||= { };
173 172

  
174 173
  if (!exists $charts->{$taxzone}->{$type}) {
175
    my $bugru    = $self->buchungsgruppe;
174
    require SL::DB::Buchungsgruppe;
175
    my $bugru    = SL::DB::Buchungsgruppe->load_cached($self->buchungsgruppen_id);
176 176
    my $chart_id = ($type eq 'inventory') ? ($self->inventory_accno_id ? $bugru->inventory_accno_id : undef)
177 177
                 :                          $bugru->call_sub("${type}_accno_id_${taxzone}");
178 178

  
179 179
    if ($chart_id) {
180
      my $chart                    = $all_charts->{$chart_id} // SL::DB::Chart->new(id => $chart_id)->load;
180
      my $chart                    = $all_charts->{$chart_id} // SL::DB::Chart->load_cached($chart_id)->load;
181 181
      $all_charts->{$chart_id}     = $chart;
182 182
      $charts->{$taxzone}->{$type} = $chart;
183 183
    }

Auch abrufbar als: Unified diff