map { $form->{$_} = $form->parse_amount($myconfig, $form->{$_}) }
qw(rop weight listprice sellprice gv lastcost);
- my $makemodel = (($form->{make_1}) || ($form->{model_1})) ? 1 : 0;
+ my $makemodel = ($form->{make_1} || $form->{model_1} || ($form->{makemodel_rows} > 1)) ? 1 : 0;
$form->{assembly} = ($form->{item} eq 'assembly') ? 1 : 0;
if ($form->{"item"} ne "assembly") {
$subq_expense =
- qq|(SELECT bg.expense_accno_id_0
- FROM buchungsgruppen bg
- WHERE bg.id = | . conv_i($form->{"buchungsgruppen_id"}, 'NULL') . qq|)|;
+ qq|(SELECT tc.expense_accno_id
+ FROM taxzone_charts tc
+ WHERE tc.buchungsgruppen_id = | . conv_i($form->{"buchungsgruppen_id"}, 'NULL') . qq| and tc.taxzone_id = 0)|;
} else {
$subq_expense = "NULL";
}
buchungsgruppen_id = ?,
payment_id = ?,
inventory_accno_id = $subq_inventory,
- income_accno_id = (SELECT bg.income_accno_id_0 FROM buchungsgruppen bg WHERE bg.id = ?),
+ income_accno_id = (SELECT tc.income_accno_id FROM taxzone_charts tc WHERE tc.taxzone_id = 0 and tc.buchungsgruppen_id = ?),
expense_accno_id = $subq_expense,
obsolete = ?,
image = ?,
$query = qq|INSERT INTO prices (parts_id, pricegroup_id, price) VALUES(?, ?, ?)|;
$sth = prepare_query($form, $dbh, $query);
- # insert price records only if different to sellprice
for my $i (1 .. $form->{price_rows}) {
my $price = $form->parse_amount($myconfig, $form->{"price_$i"});
- next unless $price && ($price != $form->{sellprice});
+ next unless $price;
@values = (conv_i($form->{id}), conv_i($form->{"pricegroup_id_$i"}), $price);
do_statement($form, $sth, $query, @values);
my @apoe_filters = qw(transdate);
my @like_filters = (@simple_filters, @invoice_oi_filters);
my @all_columns = (@simple_filters, @makemodel_filters, @apoe_filters, @project_filters, qw(serialnumber));
- my @simple_l_switches = (@all_columns, qw(notes listprice sellprice lastcost priceupdate weight unit rop image));
+ my @simple_l_switches = (@all_columns, qw(notes listprice sellprice lastcost priceupdate weight unit rop image shop));
my @oe_flags = qw(bought sold onorder ordered rfq quoted);
my @qsooqr_flags = qw(invnumber ordnumber quonumber trans_id name module qty);
my @deliverydate_flags = qw(deliverydate);
push @bind_vars, $form->{"partsgroup_id"};
}
+ if ($form->{shop} ne '') {
+ $form->{l_shop} = '1'; # show the column
+ if ($form->{shop} eq '0' || $form->{shop} eq 'f') {
+ push @where_tokens, 'NOT p.shop';
+ $form->{shop} = 'f';
+ } else {
+ push @where_tokens, 'p.shop';
+ }
+ }
+
foreach (@like_filters) {
next unless $form->{$_};
$form->{"l_$_"} = '1'; # show the column
my $token_builder = $make_token_builder->(\%joins_needed);
- my @sort_cols = (@simple_filters, qw(id priceupdate onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate));
+ my @sort_cols = (@simple_filters, qw(id priceupdate onhand invnumber ordnumber quonumber name serialnumber soldtotal deliverydate 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');
$main::lxdebug->leave_sub();
- return wantarray ? @{ $form->{parts} } : $form->{parts};
+ return @{ $form->{parts} };
}
sub _create_filter_for_priceupdate {
SELECT
p.id, p.inventory_accno_id AS is_part,
bg.inventory_accno_id,
- bg.income_accno_id_$form->{taxzone_id} AS income_accno_id,
- bg.expense_accno_id_$form->{taxzone_id} AS expense_accno_id,
+ tc.income_accno_id AS income_accno_id,
+ tc.expense_accno_id AS expense_accno_id,
c1.accno AS inventory_accno,
c2.accno AS income_accno,
c3.accno AS expense_accno
FROM parts p
LEFT JOIN buchungsgruppen bg ON p.buchungsgruppen_id = bg.id
+ LEFT JOIN taxzone_charts tc on bg.id = tc.buchungsgruppen_id
LEFT JOIN chart c1 ON bg.inventory_accno_id = c1.id
- LEFT JOIN chart c2 ON bg.income_accno_id_$form->{taxzone_id} = c2.id
- LEFT JOIN chart c3 ON bg.expense_accno_id_$form->{taxzone_id} = c3.id
- WHERE p.id IN ($in)
+ LEFT JOIN chart c2 ON tc.income_accno_id = c2.id
+ LEFT JOIN chart c3 ON tc.expense_accno_id = c3.id
+ WHERE
+ tc.taxzone_id = '$form->{taxzone_id}'
+ and
+ p.id IN ($in)
SQL
my $sth_tax = prepare_query($::form, $dbh, <<SQL);
}
}
+ my $parts = SL::DB::Manager::Part->get_all(query => [ id => \@part_ids ]);
+ my %parts_by_id = map { $_->id => $_ } @$parts;
+
+ for my $i (1..$rowcount) {
+ my $id = $form->{"${prefix}${i}"};
+ next unless $id;
+
+ push @{ $form->{TEMPLATE_ARRAYS}{part_type} }, $parts_by_id{$id}->type;
+ }
+
$main::lxdebug->leave_sub();
}