Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6b4a71ff

Von Bernd Bleßmann vor fast 10 Jahren hinzugefügt

  • ID 6b4a71ff376e8337b708127f9f6c63c1d70d0af3
  • Vorgänger 0e92b99c
  • Nachfolger e24e3284

Nicht editierbare CVars nicht rendern, aber richtig speichern und drucken.

Dazu werden die Werte dieser Variablen aus der DB gelesen, nämlich:
- aus custom_variables zu den Stammdaten, wenn die Artikelzeile neu
hinzugekommen ist
- aus custom_variables zur Artikelzeile, wenn die Zeile schon im Beleg
gespeichert war

Hier für Angebote/Aufträge und Lieferscheine.

Todo:
- Für Rechnungen muss das noch gemacht werden (wenn dort die item-ids persistent
sind).

- Gruppieren nach Warengruppen im Ausdruck muss getestet werden, aber das geht im
Moment ohnehin nicht.

Siehe auch Ticket 1836 (trac.kivitendo.de) bzw. 4 und 25 (redmine.kivitendo-premium.de)

Unterschiede anzeigen:

SL/DO.pm
298 298

  
299 299
    my $position = $i;
300 300

  
301
    my $cvars;
301 302
    if (!$form->{"delivery_order_items_id_$i"}) {
302 303
      # there is no persistent id, therefore create one with all necessary constraints
303 304
      my $q_item_id = qq|SELECT nextval('delivery_order_items_id')|;
......
308 309
      do_query($form, $dbh, $query, conv_i($form->{"delivery_order_items_id_$i"}),
309 310
                conv_i($form->{"id"}), conv_i($position), conv_i($form->{"id_$i"}));
310 311
      $h_item_id->finish();
312

  
313
      # get values for CVars from master data for new items
314
      $cvars = CVar->get_custom_variables(dbh      => $dbh,
315
                                          module   => 'IC',
316
                                          trans_id => $form->{"id_$i"},
317
                                         );
318
    } else {
319
      # get values for CVars from custom_variables for existing items
320
      $cvars = CVar->get_custom_variables(dbh        => $dbh,
321
                                          module     => 'IC',
322
                                          sub_module => 'delivery_order_items',
323
                                          trans_id   => $form->{"delivery_order_items_id_$i"},
324
                                         );
311 325
    }
326
    # map only non-editable CVars to form (editable ones are already there)
327
    map { $form->{"ic_cvar_$_->{name}_$i"} = $_->{value} unless $_->{flag_editable} } @{ $cvars };
328

  
312 329
    $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"});
313 330

  
314 331
    my $item_unit = $part_unit_map{$form->{"id_$i"}};
......
983 1000
      }
984 1001
    }
985 1002

  
1003
    my $cvars;
1004
    if (! $form->{"delivery_order_items_id_$i"}) {
1005
      # get values for CVars from master data for new items
1006
      $cvars = CVar->get_custom_variables(dbh      => $dbh,
1007
                                          module   => 'IC',
1008
                                          trans_id => $form->{"id_$i"},
1009
                                         );
1010
    } else {
1011
      # get values for CVars from custom_variables for existing items
1012
      $cvars = CVar->get_custom_variables(dbh        => $dbh,
1013
                                          module     => 'IC',
1014
                                          sub_module => 'delivery_order_items',
1015
                                          trans_id   => $form->{"delivery_order_items_id_$i"},
1016
                                         );
1017
    }
1018
    # map only non-editable CVars to form (editable ones are already there)
1019
    map { $form->{"ic_cvar_$_->{name}_$i"} = $_->{value} unless $_->{flag_editable} } @{ $cvars };
1020

  
986 1021
    push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} },
987 1022
      CVar->format_to_template(CVar->parse($form->{"ic_cvar_$_->{name}_$i"}, $_), $_)
988 1023
        for @{ $ic_cvar_configs };

Auch abrufbar als: Unified diff