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/OE.pm
512 512
      my $position = $i;
513 513

  
514 514
      # save detail record in orderitems table
515
      my $cvars;
515 516
      if (! $form->{"orderitems_id_$i"}) {
516 517
        $query = qq|SELECT nextval('orderitemsid')|;
517 518
        ($form->{"orderitems_id_$i"}) = selectrow_query($form, $dbh, $query);
518 519

  
519 520
        $query = qq|INSERT INTO orderitems (id, position) VALUES (?, ?)|;
520 521
        do_query($form, $dbh, $query, $form->{"orderitems_id_$i"}, conv_i($position));
522

  
523
        # get values for CVars from master data for new items
524
        $cvars = CVar->get_custom_variables(dbh      => $dbh,
525
                                            module   => 'IC',
526
                                            trans_id => $form->{"id_$i"},
527
                                           );
528
      } else {
529
        # get values for CVars from custom_variables for existing items
530
        $cvars = CVar->get_custom_variables(dbh        => $dbh,
531
                                            module     => 'IC',
532
                                            sub_module => 'orderitems',
533
                                            trans_id   => $form->{"orderitems_id_$i"},
534
                                           );
521 535
      }
536
      # map only non-editable CVars to form (editable ones are already there)
537
      map { $form->{"ic_cvar_$_->{name}_$i"} = $_->{value} unless $_->{flag_editable} } @{ $cvars };
538

  
522 539
      my $orderitems_id = $form->{"orderitems_id_$i"};
523 540
      push @processed_orderitems, $orderitems_id;
524 541

  
......
1377 1394
        $sth->finish;
1378 1395
      }
1379 1396

  
1397
      my $cvars;
1398
      if (! $form->{"orderitems_id_$i"}) {
1399
        # get values for CVars from master data for new items
1400
        $cvars = CVar->get_custom_variables(dbh      => $dbh,
1401
                                            module   => 'IC',
1402
                                            trans_id => $form->{"id_$i"},
1403
                                           );
1404
      } else {
1405
        # get values for CVars from custom_variables for existing items
1406
        $cvars = CVar->get_custom_variables(dbh        => $dbh,
1407
                                            module     => 'IC',
1408
                                            sub_module => 'orderitems',
1409
                                            trans_id   => $form->{"orderitems_id_$i"},
1410
                                           );
1411
      }
1412
      # map only non-editable CVars to form (editable ones are already there)
1413
      map { $form->{"ic_cvar_$_->{name}_$i"} = $_->{value} unless $_->{flag_editable} } @{ $cvars };
1414

  
1380 1415
      push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} },
1381 1416
        CVar->format_to_template(CVar->parse($form->{"ic_cvar_$_->{name}_$i"}, $_), $_)
1382 1417
          for @{ $ic_cvar_configs };

Auch abrufbar als: Unified diff