X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=3d92746b55db2bfcf5beb45bc65a4dd2bc5eb427;hb=a3511b2d8974c72e4d26b2d85c5cf1cd711ccb6f;hp=ae3ff08075698a66234b57633abd2893ea8ce2b3;hpb=1e542cc70c846448b75be1f36becd61601a4b3d3;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index ae3ff0807..3d92746b5 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -46,6 +46,7 @@ use SL::DB::Status; use SL::DB::Tax; use SL::DBUtils; use SL::IC; +use SL::TransNumber; use strict; @@ -314,6 +315,10 @@ sub save { my $ml = ($form->{type} eq 'sales_order') ? 1 : -1; + my $number_field = $form->{type} =~ m{order} ? 'ordnumber' : 'quonumber'; + my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{$number_field}, id => $form->{id}); + $form->{$number_field} ||= $trans_number->create_unique; + if ($form->{id}) { $query = qq|DELETE FROM custom_variables WHERE (config_id IN (SELECT id FROM custom_variable_configs WHERE module = 'IC')) @@ -1070,10 +1075,10 @@ sub order_details { %projects_by_id = map { $_->id => $_ } @$projects; } - $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; - $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; - if ($projects_by_id{$form->{"globalproject_id"}}) { + $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; + $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; + for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) { $form->{"project_cvar_" . $_->config->name} = $_->value_as_text; }