- $main::lxdebug->leave_sub();
-}
-
-sub get_shipped_qty {
- $main::lxdebug->enter_sub();
-
- my $self = shift;
- my %params = @_;
-
- Common::check_params(\%params, qw(type oe_id));
-
- my $myconfig = \%main::myconfig;
- my $form = $main::form;
-
- my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
-
- my @links = RecordLinks->get_links('dbh' => $dbh,
- 'from_table' => 'oe',
- 'from_id' => $params{oe_id},
- 'to_table' => 'delivery_orders');
- my @values = map { $_->{to_id} } @links;
-
- if (!scalar @values) {
- $main::lxdebug->leave_sub();
- return ();
- }
-
- my $query =
- qq|SELECT doi.parts_id, doi.qty, doi.unit, p.unit AS partunit
- FROM delivery_order_items doi
- LEFT JOIN delivery_orders o ON (doi.delivery_order_id = o.id)
- LEFT JOIN parts p ON (doi.parts_id = p.id)
- WHERE o.id IN (| . join(', ', ('?') x scalar @values) . qq|)|;
-
- my %ship = ();
- my $entries = selectall_hashref_query($form, $dbh, $query, @values);
- my $all_units = AM->retrieve_all_units();
-
- foreach my $entry (@{ $entries }) {
- $entry->{qty} *= AM->convert_unit($entry->{unit}, $entry->{partunit}, $all_units);
-
- if (!$ship{$entry->{parts_id}}) {
- $ship{$entry->{parts_id}} = $entry;
- } else {
- $ship{$entry->{parts_id}}->{qty} += $entry->{qty};
- }