4. Überarbeitung Prüfen beim Speichern, ob Dokument geändert ist
[kivitendo-erp.git] / SL / IC.pm
index e25e13e..d4b3413 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -72,6 +72,8 @@ sub get_part {
   # copy to $form variables
   map { $form->{$_} = $ref->{$_} } (keys %{$ref});
 
+  $form->{mtime} = $form->{itime} if !$form->{mtime};
+  $form->{lastmtime} = $form->{mtime};
   $form->{onhand} *= 1;
 
   # part or service item
@@ -397,6 +399,8 @@ sub save {
   );
   do_query($form, $dbh, $query, @values);
 
+  $form->new_lastmtime('parts');
+
   # delete translation records
   do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id}));
 
@@ -568,6 +572,8 @@ sub update_assembly {
              $qty * ($form->{weight} - $weight), conv_i($id));
   do_query($form, $dbh, $query, @values);
 
+  $form->new_lastmtime('parts') if $id == $form->{id};
+
   $main::lxdebug->leave_sub();
 }
 
@@ -671,7 +677,7 @@ sub assembly_item {
   my $query =
     qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
        p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost,
-       p.price_factor_id, pfac.factor AS price_factor
+       p.price_factor_id, pfac.factor AS price_factor, p.notes as longdescription
        FROM parts p
        LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
        LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id
@@ -1713,7 +1719,7 @@ sub prepare_parts_for_printing {
 
   $sth->finish();
 
-  my @columns = qw(ean image microfiche drawing weight);
+  my @columns = qw(ean image microfiche drawing);
 
   $query      = qq|SELECT id, | . join(', ', @columns) . qq|
                    FROM parts
@@ -1721,7 +1727,8 @@ sub prepare_parts_for_printing {
 
   my %data    = selectall_as_map($form, $dbh, $query, 'id', \@columns, @part_ids);
 
-  map { $form->{TEMPLATE_ARRAYS}{$_} = [] } (qw(make model), @columns);
+  my %template_arrays;
+  map { $template_arrays{$_} = [] } (qw(make model), @columns);
 
   foreach my $i (1 .. $rowcount) {
     my $id = $form->{"${prefix}${i}"};
@@ -1729,16 +1736,16 @@ sub prepare_parts_for_printing {
     next if (!$id);
 
     foreach (@columns) {
-      push @{ $form->{TEMPLATE_ARRAYS}{$_} }, $data{$id}->{$_};
+      push @{ $template_arrays{$_} }, $data{$id}->{$_};
     }
 
-    push @{ $form->{TEMPLATE_ARRAYS}{make} },  [];
-    push @{ $form->{TEMPLATE_ARRAYS}{model} }, [];
+    push @{ $template_arrays{make} },  [];
+    push @{ $template_arrays{model} }, [];
 
     next if (!$makemodel{$id});
 
     foreach my $ref (@{ $makemodel{$id} }) {
-      map { push @{ $form->{TEMPLATE_ARRAYS}{$_}->[-1] }, $ref->{$_} } qw(make model);
+      map { push @{ $template_arrays{$_}->[-1] }, $ref->{$_} } qw(make model);
     }
   }
 
@@ -1749,9 +1756,10 @@ sub prepare_parts_for_printing {
     my $id = $form->{"${prefix}${i}"};
     next unless $id;
 
-    push @{ $form->{TEMPLATE_ARRAYS}{part_type} },  $parts_by_id{$id}->type;
+    push @{ $template_arrays{part_type} },  $parts_by_id{$id}->type;
   }
 
+  return %template_arrays;
   $main::lxdebug->leave_sub();
 }