X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/cd00276834b562cc46ba1af57c604a7f08ac8c3c..862bc8ce30cd40b67d2856ac7f1d11d5e4322f09:/SL/IC.pm diff --git a/SL/IC.pm b/SL/IC.pm index d70c214d2..84e913eb3 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -79,9 +79,7 @@ sub get_part { $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 = @@ -256,14 +254,13 @@ sub _save { 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; @@ -276,7 +273,7 @@ sub _save { # 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})); } @@ -290,7 +287,7 @@ sub _save { $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; @@ -300,7 +297,7 @@ sub _save { $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; } @@ -311,7 +308,7 @@ sub _save { } 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 @@ -320,7 +317,7 @@ sub _save { $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 @@ -336,7 +333,6 @@ sub _save { partnumber = ?, description = ?, makemodel = ?, - assembly = ?, listprice = ?, sellprice = ?, lastcost = ?, @@ -362,6 +358,7 @@ sub _save { has_sernumber = ?, not_discountable = ?, microfiche = ?, + part_type = ?, partsgroup_id = ?, price_factor_id = ? $priceupdate @@ -369,7 +366,6 @@ sub _save { @values = ($form->{partnumber}, $form->{description}, $makemodel ? 't' : 'f', - $form->{assembly} ? 't' : 'f', $form->{listprice}, $form->{sellprice}, $form->{lastcost}, @@ -393,6 +389,7 @@ sub _save { $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}) @@ -459,7 +456,7 @@ sub _save { } # 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 @@ -576,7 +573,7 @@ sub retrieve_assemblies { 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); @@ -893,10 +890,9 @@ sub all_parts { } 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}) {