use SL::TransNumber;
use SL::Util qw(trim);
use SL::DB;
+use Carp;
use strict;
$form->{onhand} *= 1;
# part or service item
- $form->{item} = ($form->{inventory_accno}) ? 'part' : 'service';
- if ($form->{assembly}) {
- $form->{item} = 'assembly';
+ if ($form->{part_type} eq 'assembly') {
# retrieve assembly items
$query =
my $makemodel = ($form->{make_1} || $form->{model_1} || ($form->{makemodel_rows} > 1)) ? 1 : 0;
- $form->{assembly} = ($form->{item} eq 'assembly') ? 1 : 0;
my ($query, $sth);
my $priceupdate = ', priceupdate = current_date';
if ($form->{id}) {
- my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
+ my $trans_number = SL::TransNumber->new(type => $form->{part_type}, dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
if (!$trans_number->is_unique) {
$::lxdebug->leave_sub;
return 3;
# delete makemodel records
do_query($form, $dbh, qq|DELETE FROM makemodel WHERE parts_id = ?|, conv_i($form->{id}));
- if ($form->{item} eq 'assembly') {
+ if ($form->{part_type} eq 'assembly') {
# delete assembly records
do_query($form, $dbh, qq|DELETE FROM assembly WHERE id = ?|, conv_i($form->{id}));
}
$priceupdate = '' if (all { $previous_values->{$_} == $form->{$_} } qw(sellprice lastcost listprice));
} else {
- my $trans_number = SL::TransNumber->new(type => $form->{item}, dbh => $dbh, number => $form->{partnumber}, save => 1);
+ my $trans_number = SL::TransNumber->new(type => $form->{part_type}, dbh => $dbh, number => $form->{partnumber}, save => 1);
if ($form->{partnumber} && !$trans_number->is_unique) {
$::lxdebug->leave_sub;
$form->{partnumber} ||= $trans_number->create_unique;
($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('id')|);
- do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit) VALUES (?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit});
+ do_query($form, $dbh, qq|INSERT INTO parts (id, partnumber, unit, part_type) VALUES (?, ?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit}, $form->{part_type});
$form->{orphaned} = 1;
}
}
my ($subq_inventory, $subq_expense, $subq_income);
- if ($form->{"item"} eq "part") {
+ if ($form->{part_type} eq "part") {
$subq_inventory =
qq|(SELECT bg.inventory_accno_id
FROM buchungsgruppen bg
$subq_inventory = "NULL";
}
- if ($form->{"item"} ne "assembly") {
+ if ($form->{part_type} ne "assembly") {
$subq_expense =
qq|(SELECT tc.expense_accno_id
FROM taxzone_charts tc
partnumber = ?,
description = ?,
makemodel = ?,
- assembly = ?,
listprice = ?,
sellprice = ?,
lastcost = ?,
has_sernumber = ?,
not_discountable = ?,
microfiche = ?,
+ part_type = ?,
partsgroup_id = ?,
price_factor_id = ?
$priceupdate
@values = ($form->{partnumber},
$form->{description},
$makemodel ? 't' : 'f',
- $form->{assembly} ? 't' : 'f',
$form->{listprice},
$form->{sellprice},
$form->{lastcost},
$form->{has_sernumber} ? 't' : 'f',
$form->{not_discountable} ? 't' : 'f',
$form->{microfiche},
+ $form->{part_type},
conv_i($partsgroup_id),
conv_i($form->{price_factor_id}),
conv_i($form->{id})
}
# add assembly records
- if ($form->{item} eq 'assembly') {
+ if ($form->{part_type} eq 'assembly') {
# check additional assembly row
my $i = $form->{assembly_rows};
# if last row is not empty add them
FROM parts p2, assembly a
WHERE (p2.id = a.parts_id) AND (a.id = p.id)) AS inventory
FROM parts p
- WHERE NOT p.obsolete AND p.assembly $where|;
+ WHERE NOT p.obsolete AND p.part_type = 'assembly' $where|;
$form->{assembly_items} = selectall_hashref_query($form, $dbh, $query, @values);
}
for ($form->{searchitems}) {
- push @where_tokens, 'p.inventory_accno_id > 0' if /part/;
- push @where_tokens, 'p.inventory_accno_id IS NULL' if /service/;
- push @where_tokens, 'NOT p.assembly' if /service/;
- push @where_tokens, ' p.assembly' if /assembly/;
+ push @where_tokens, "p.part_type = 'part'" if /part/;
+ push @where_tokens, "p.part_type = 'service'" if /service/;
+ push @where_tokens, "p.part_type = 'assembly'" if /assembly/;
}
for ($form->{itemstatus}) {
my %accno_by_part = map { $_->{id} => $_ }
selectall_hashref_query($form, $dbh, <<SQL, @part_ids);
SELECT
- p.id, p.inventory_accno_id AS is_part,
+ p.id, p.part_type,
bg.inventory_accno_id,
tc.income_accno_id AS income_accno_id,
tc.expense_accno_id AS expense_accno_id,
while (my ($index => $part_id) = each %args) {
my $ref = $accno_by_part{$part_id} or next;
- $ref->{"inventory_accno_id"} = undef unless $ref->{"is_part"};
+ $ref->{"inventory_accno_id"} = undef unless $ref->{"part_type"} eq 'part';
my %accounts;
for my $type (qw(inventory income expense)) {