Revision 529e6feb
Von Moritz Bunkus vor mehr als 10 Jahren hinzugefügt
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
SL::DB::Part,Helper::PriceTaxCalculator: agressiveres Caching
Damit wird für ziemlich jeden Objekttyp nur noch ein einziges Query
abgesetzt.