my $token_builder = $make_token_builder->(\%joins_needed);
- my @sort_cols = (@simple_filters, qw(id priceupdate onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate insertdate shop));
+ my @sort_cols = (@simple_filters, qw(id onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate insertdate shop));
$form->{sort} = 'id' unless grep { $form->{"l_$_"} } grep { $form->{sort} eq $_ } @sort_cols; # sort by id if unknown or invisible column
my $sort_order = ($form->{revers} ? ' DESC' : ' ASC');
my $order_clause = " ORDER BY " . $token_builder->($form->{sort}) . ($form->{revers} ? ' DESC' : ' ASC');
# simple search for assemblies by items used in assemblies
if ($form->{bom} eq '2' && $form->{l_assembly}) {
+ # assembly_qty is the column name
+ $form->{l_assembly_qty} = 1;
# nuke where clause and bind vars
$where_clause = ' 1=1 AND p.id in (SELECT id from assembly where parts_id IN ' .
- ' (select id from parts where 1=1 AND ';
+ ' (select id from parts where 1=1';
@bind_vars = ();
# use only like filter for items used in assemblies
foreach (@like_filters) {
next unless $form->{$_};
$form->{"l_$_"} = '1'; # show the column
- $where_clause .= " $_ ILIKE ? ";
+ $where_clause .= " AND $_ ILIKE ? ";
push @bind_vars, like($form->{$_});
}
$where_clause .='))';
$order_clause
$limit_clause
SQL
-
$form->{parts} = selectall_hashref_query($form, $dbh, $query, @bind_vars);
map { $_->{onhand} *= 1 } @{ $form->{parts} };
my @assemblies;
if ($form->{l_assembly} && $form->{bom}) {
$query =
- qq|SELECT p.id, p.partnumber, p.description, a.qty AS onhand,
+ qq|SELECT p.id, p.partnumber, p.description, a.qty AS assembly_qty,
p.unit, p.notes, p.itime::DATE as insertdate,
p.sellprice, p.listprice, p.lastcost,
- p.rop, p.weight, p.priceupdate,
+ p.rop, p.weight,
p.image, p.drawing, p.microfiche,
pfac.factor
FROM parts p
# transdate madness.
my $transdate = "";
- if (($form->{type} eq "invoice") or ($form->{type} eq "credit_note") or ($form->{script} eq 'ir.pl')) {
+ if ( (any {$form->{type} eq $_} qw(invoice credit_note invoice_for_advance_payment)) or ($form->{script} eq 'ir.pl') ) {
# use deliverydate for sales and purchase invoice, if it exists
# also use deliverydate for credit notes
$transdate = $form->{tax_point} || $form->{deliverydate} || $form->{invdate};