X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDO.pm;h=e555dc273ebc1d90219f6126154559ef6c8bce67;hb=20bb56c1d57dde9492fef150edbfe0149a07ff08;hp=9bc76a15ec566bbb817290980a5df594ce199d14;hpb=a6161998f4ec82462646ca5471d31cdfa4af4b5e;p=kivitendo-erp.git diff --git a/SL/DO.pm b/SL/DO.pm index 9bc76a15e..e555dc273 100644 --- a/SL/DO.pm +++ b/SL/DO.pm @@ -38,6 +38,7 @@ use YAML; use SL::AM; use SL::Common; +use SL::CVar; use SL::DBUtils; use SL::RecordLinks; @@ -190,6 +191,9 @@ sub save { my $all_units = AM->retrieve_units($myconfig, $form); $form->{all_units} = $all_units; + my $ic_cvar_configs = CVar->get_configs(module => 'IC', + dbh => $dbh); + $form->{donumber} = $form->update_defaults($myconfig, $form->{type} eq 'sales_delivery_order' ? 'sdonumber' : 'pdonumber', $dbh) unless $form->{donumber}; $form->{employee_id} = (split /--/, $form->{employee})[1] if !$form->{employee_id}; $form->get_employee($dbh) unless ($form->{employee_id}); @@ -300,6 +304,15 @@ sub save { conv_i($sinfo->{bin_id}), $sinfo->{chargenumber}); do_statement($form, $h_item_stock, $q_item_stock, @values); } + + CVar->save_custom_variables(module => 'IC', + sub_module => 'delivery_order_items', + trans_id => $item_id, + configs => $ic_cvar_configs, + variables => $form, + name_prefix => 'ic_', + name_postfix => "_$i", + dbh => $dbh); } $h_item_id->finish(); @@ -545,6 +558,9 @@ sub retrieve { my ($query, $query_add, @values, $sth, $ref); + my $ic_cvar_configs = CVar->get_configs(module => 'IC', + dbh => $dbh); + my $vc = $params{vc} eq 'customer' ? 'customer' : 'vendor'; my $mode = !$params{ids} ? 'default' : ref $params{ids} eq 'ARRAY' ? 'multi' : 'single'; @@ -577,7 +593,7 @@ sub retrieve { d.description AS department, dord.language_id, dord.shipto_id, dord.globalproject_id, dord.delivered, dord.transaction_description, - dort.taxzone_id, dord.taxincluded, dord.terms, dord.curr + dord.taxzone_id, dord.taxincluded, dord.terms, dord.curr FROM delivery_orders dord JOIN ${vc} cv ON (dord.${vc}_id = cv.id) LEFT JOIN employee e ON (dord.employee_id = e.id) @@ -654,6 +670,16 @@ sub retrieve { $form->{form_details} = selectall_hashref_query($form, $dbh, $query, @do_ids); + # Retrieve custom variables. + foreach my $doi (@{ $form->{form_details} }) { + my $cvars = CVar->get_custom_variables(dbh => $dbh, + module => 'IC', + sub_module => 'delivery_order_items', + trans_id => $doi->{delivery_order_items_id}, + ); + map { $doi->{"ic_cvar_$_->{name}"} = $_->{value} } @{ $cvars }; + } + if ($mode eq 'single') { my $in_out = $form->{type} =~ /^sales/ ? 'out' : 'in'; @@ -748,12 +774,16 @@ sub order_details { my $num_si = 0; + my $ic_cvar_configs = CVar->get_configs(module => 'IC'); + my @arrays = qw(runningnumber number description longdescription qty unit partnotes serialnumber reqdate projectnumber si_runningnumber si_number si_description si_warehouse si_bin si_chargenumber si_qty si_unit); + push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; + my $sameitem = ""; foreach $item (sort { $a->[1] cmp $b->[1] } @partsgroup) { $i = $item->[0]; @@ -832,6 +862,8 @@ sub order_details { push @{ $form->{TEMPLATE_ARRAYS}{si_unit}[$position-1] }, $si->{unit}; } } + + map { push @{ $form->{TEMPLATE_ARRAYS}->{"ic_cvar_$_->{name}"} }, $form->{"ic_cvar_$_->{name}_$i"} } @{ $ic_cvar_configs }; } $h_pg->finish();