Revision 6b4a71ff
Von Bernd Bleßmann vor fast 10 Jahren hinzugefügt
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
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)