]> wagnertech.de Git - mfinanz.git/blobdiff - SL/IC.pm
SL/Dev/CustomerVendor um create_vendor erweitert
[mfinanz.git] / SL / IC.pm
index 942831bfa34124d88a313d184026bf55591794cc..2cf7996fb14260f7f709e3f8d10c99f1f3a1aad6 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -44,6 +44,7 @@ use SL::HTML::Restrict;
 use SL::TransNumber;
 use SL::Util qw(trim);
 use SL::DB;
+use Carp;
 
 use strict;
 
@@ -78,10 +79,8 @@ sub get_part {
   $form->{lastmtime} = $form->{mtime};
   $form->{onhand} *= 1;
 
-  die "part needs a part_type" unless $form->{part_type}; # TODO from part_type enum conversion
   # part or service item
-  $form->{item} = $form->{part_type};
-  if ($form->{item} eq 'assembly') {
+  if ($form->{part_type} eq 'assembly') {
 
     # retrieve assembly items
     $query =
@@ -262,7 +261,7 @@ sub _save {
   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;
@@ -275,7 +274,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}));
     }
@@ -289,7 +288,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;
@@ -299,7 +298,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, part_type) VALUES (?, ?, ?, ?)|, $form->{id}, $form->{partnumber}, $form->{unit}, $form->{item});
+    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;
   }
@@ -310,7 +309,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
@@ -319,7 +318,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
@@ -391,7 +390,7 @@ sub _save {
              $form->{has_sernumber} ? 't' : 'f',
              $form->{not_discountable} ? 't' : 'f',
              $form->{microfiche},
-             $form->{item},
+             $form->{part_type},
              conv_i($partsgroup_id),
              conv_i($form->{price_factor_id}),
              conv_i($form->{id})
@@ -458,7 +457,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
@@ -1564,7 +1563,7 @@ sub retrieve_accounts {
   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,
@@ -1597,7 +1596,7 @@ SQL
   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)) {