"transaction_description" => "dord.transaction_description"
);
- my $sortoder = "dord.id";
+ my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
+ my $sortorder = "dord.id";
if ($form->{sort} && grep($form->{sort}, keys(%allowed_sort_columns))) {
$sortorder = $allowed_sort_columns{$form->{sort}};
}
- $query .= qq| ORDER by | . $sortorder;
+ $query .= qq| ORDER by | . $sortorder . " $sortdir";
$form->{DO} = selectall_hashref_query($form, $dbh, $query, @values);
$form->save_status($dbh);
# Link this delivery order to the quotations it was created from.
- my @oe_ids = grep { $_ } map { $_ * 1 } split m/\s+/, $form->{oe_ids};
- delete $form->{oe_ids};
- if (scalar @oe_ids) {
- my @links = map { { 'from_table' => 'oe', 'from_id' => $_, 'to_table' => 'delivery_orders', 'to_id' => $form->{id} } } @oe_ids;
- RecordLinks->create_links('dbh' => $dbh, 'links' => \@links);
- }
+ RecordLinks->create_links('dbh' => $dbh,
+ 'mode' => 'ids',
+ 'from_table' => 'oe',
+ 'from_ids' => $form->{convert_from_oe_ids},
+ 'to_table' => 'delivery_orders',
+ 'to_id' => $form->{id},
+ );
+ delete $form->{convert_from_oe_ids};
$self->mark_orders_if_delivered('do_id' => $form->{id},
'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase',
my ($oe_id) = $links[0]->{from_id} if (scalar @links);
- $main::lxdebug->message(0, "oe_id $oe_id");
-
return $main::lxdebug->leave_sub() if (!$oe_id);
my $all_units = AM->retrieve_all_units();
- $query = qq|SELECT oi.parts_id, oi.qty, oi.unit, p.unit AS partunit
+ my $query = qq|SELECT oi.parts_id, oi.qty, oi.unit, p.unit AS partunit
FROM orderitems oi
LEFT JOIN parts p ON (oi.parts_id = p.id)
WHERE (oi.trans_id = ?)|;
'oe_id' => $oe_id,);
my %ordered = ();
- do_statement($form, $sth, $query, $oe_id);
-
while (my $ref = $sth->fetchrow_hashref()) {
$ref->{baseqty} = $ref->{qty} * $all_units->{$ref->{unit}}->{factor} / $all_units->{$ref->{partunit}}->{factor};
}
map { $form->{$_} = $ref->{$_} } keys %$ref if ($ref);
+ $form->{donumber_array} .= $form->{donumber} . ' ';
}
$sth->finish();
my $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || { 'factor' => 1 };
- push @{ $form->{runningnumber} }, $position;
- push @{ $form->{number} }, $form->{"partnumber_$i"};
- push @{ $form->{description} }, $form->{"description_$i"};
- push @{ $form->{longdescription} }, $form->{"longdescription_$i"};
- push @{ $form->{qty} }, $form->format_amount($myconfig, $form->{"qty_$i"});
- push @{ $form->{unit} }, $form->{"unit_$i"};
- push @{ $form->{partnotes} }, $form->{"partnotes_$i"};
- push @{ $form->{serialnumber} }, $form->{"serialnumber_$i"};
- push @{ $form->{reqdate} }, $form->{"reqdate_$i"};
- push @{ $form->{projectnumber} }, $projectnumbers{$form->{"project_id_$i"}};
+ push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position;
+ push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{longdescription} }, $form->{"longdescription_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{qty} }, $form->format_amount($myconfig, $form->{"qty_$i"});
+ push @{ $form->{TEMPLATE_ARRAYS}{unit} }, $form->{"unit_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{partnotes} }, $form->{"partnotes_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{serialnumber} }, $form->{"serialnumber_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{reqdate} }, $form->{"reqdate_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{projectnumber} }, $projectnumbers{$form->{"project_id_$i"}};
if ($form->{"assembly_$i"}) {
$sameitem = "";
do_statement($form, $h_bin_wh, $q_bin_wh, conv_i($si->{bin_id}), conv_i($si->{warehouse_id}));
my $bin_wh = $h_bin_wh->fetchrow_hashref();
- push @{ $form->{si_runningnumber} }, $num_si;
- push @{ $form->{si_number} }, $form->{"partnumber_$i"};
- push @{ $form->{si_description} }, $form->{"description_$i"};
- push @{ $form->{si_warehouse} }, $bin_wh->{warehouse};
- push @{ $form->{si_bin} }, $bin_wh->{bin};
- push @{ $form->{si_chargenumber} }, $si->{chargenumber};
- push @{ $form->{si_qty} }, $form->format_amount($myconfig, $si->{qty} * 1);
- push @{ $form->{si_unit} }, $si->{unit};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_runningnumber}[$position-1] }, $num_si;
+ push @{ $form->{TEMPLATE_ARRAYS}{si_number}[$position-1] }, $form->{"partnumber_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_description}[$position-1] }, $form->{"description_$i"};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_warehouse}[$position-1] }, $bin_wh->{warehouse};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_bin}[$position-1] }, $bin_wh->{bin};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_chargenumber}[$position-1] }, $si->{chargenumber};
+ push @{ $form->{TEMPLATE_ARRAYS}{si_qty}[$position-1] }, $form->format_amount($myconfig, $si->{qty} * 1);
+ push @{ $form->{TEMPLATE_ARRAYS}{si_unit}[$position-1] }, $si->{unit};
}
}
}
LEFT JOIN warehouse w ON (i.warehouse_id = w.id)
LEFT JOIN bin b ON (i.bin_id = b.id)
WHERE (i.parts_id IN (| . join(', ', ('?') x scalar(@parts_ids)) . qq|))
- AND qty > 0
GROUP BY i.warehouse_id, i.bin_id, i.chargenumber, i.parts_id, w.description, b.description
- ORDER BY LOWER(w.description), LOWER(b.description), LOWER(i.chargenumber)|;
-
+ HAVING SUM(qty) > 0
+ ORDER BY LOWER(w.description), LOWER(b.description), LOWER(i.chargenumber)
+|;
my $contents = selectall_hashref_query($form, $form->get_standard_dbh($myconfig), $query, @parts_ids);
$main::lxdebug->leave_sub();