Revision cbb8eb07
Von Sven Schöling vor fast 3 Jahren hinzugefügt
SL/Helper/ShippedQty.pm | ||
---|---|---|
270 | 270 |
$self->shipped_qty({}); |
271 | 271 |
} |
272 | 272 |
|
273 |
# some of the invocations never need to load all orderitems to copute their answers |
|
274 |
# delivered however needs oi_qty to be set for each orderitem to decide whether |
|
275 |
# delivered should be set or not. |
|
276 |
sub ensure_all_orderitems_for_orders { |
|
277 |
my ($self) = @_; |
|
278 |
|
|
279 |
return if $self->fill_up; |
|
280 |
|
|
281 |
my $oi_query = sprintf $fill_up_oi_query, join (', ', ('?')x@{ $self->oe_ids }); |
|
282 |
my $oi = selectall_hashref_query($::form, $self->dbh, $oi_query, @{ $self->oe_ids }); |
|
283 |
for (@$oi) { |
|
284 |
$self->{oi_qty}{ $_->{id} } //= $_->{qty}; |
|
285 |
$self->{oi2oe}{ $_->{id} } //= $_->{trans_id}; |
|
286 |
} |
|
287 |
} |
|
288 |
|
|
273 | 289 |
sub available_item_identity_fields { |
274 | 290 |
map { [ $_ => $item_identity_fields{$_} ] } @known_item_identity_fields; |
275 | 291 |
} |
... | ... | |
291 | 307 |
sub init_matches { [] } |
292 | 308 |
sub init_delivered { |
293 | 309 |
my ($self) = @_; |
310 |
|
|
311 |
$self->ensure_all_orderitems_for_orders; |
|
312 |
|
|
294 | 313 |
my $d = { }; |
295 | 314 |
for (keys %{ $self->oi_qty }) { |
296 | 315 |
my $oe_id = $self->oi2oe->{$_}; |
Auch abrufbar als: Unified diff
ShippedQty: delivered korrekt setzen
Wenn der Helper ohne fill_up aufgerufen wurde, wurden nicht existierende
Positionen für die delivered Berechnung ignoriert