X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=9692e48cd86f7494c755a82549ea23cb82ebd627;hb=a8b18c65bfd47c845e641fb0fff9587f4122bf9d;hp=1c75511fd334d5653b8826f83559d0e13a64bafe;hpb=0e470b13db4ca16d13d406ad56f9b1714d8c831b;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 1c75511fd..9692e48cd 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -557,7 +557,7 @@ sub save { UPDATE orderitems SET trans_id = ?, position = ?, parts_id = ?, description = ?, longdescription = ?, qty = ?, base_qty = ?, sellprice = ?, discount = ?, unit = ?, reqdate = ?, project_id = ?, serialnumber = ?, ship = ?, - pricegroup_id = ?, ordnumber = ?, transdate = ?, cusordnumber = ?, subtotal = ?, + pricegroup_id = ?, subtotal = ?, marge_percent = ?, marge_total = ?, lastcost = ?, price_factor_id = ?, active_price_source = ?, active_discount_source = ?, price_factor = (SELECT factor FROM price_factors WHERE id = ?), marge_price_factor = ? @@ -569,9 +569,8 @@ SQL $form->{"qty_$i"}, $baseqty, $fxsellprice, $form->{"discount_$i"}, $form->{"unit_$i"}, conv_date($reqdate), conv_i($form->{"project_id_$i"}), - $form->{"serialnumber_$i"}, $form->{"ship_$i"}, $pricegroup_id, - $form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}), - $form->{"cusordnumber_$i"}, $form->{"subtotal_$i"} ? 't' : 'f', + $form->{"serialnumber_$i"}, $form->{"ship_$i"}, + $pricegroup_id, $form->{"subtotal_$i"} ? 't' : 'f', $form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"}, $form->{"lastcost_$i"}, conv_i($form->{"price_factor_id_$i"}), $form->{"active_price_source_$i"}, $form->{"active_discount_source_$i"}, @@ -763,7 +762,7 @@ sub load_periodic_invoice_config { if ($config_obj) { my $config = { map { $_ => $config_obj->$_ } qw(active terminated periodicity order_value_periodicity start_date_as_date end_date_as_date first_billing_date_as_date extend_automatically_by ar_chart_id - print printer_id copies) }; + print printer_id copies direct_debit) }; $form->{periodic_invoices_config} = YAML::Dump($config); } } @@ -865,7 +864,16 @@ sub retrieve { # and remember for the rest of the function my $is_collective_order = scalar @ids; - $form->{useasnew} = !!$is_collective_order; + + # If collective order was created from exactly 1 order, we assume the same + # behaviour as a "save as new" from within an order is actually desired, i.e. + # the original order isn't part of a workflow where we want to remember + # record_links, but simply a quick way of generating a new order from an old + # one without having to enter everything again. + # Setting useasnew will prevent the creation of record_links for the items + # when saving the new order. + # This form variable is probably not necessary, could just set saveasnew instead + $form->{useasnew} = 1 if $is_collective_order == 1; if (!$form->{id}) { my $extra_days = $form->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : 1; @@ -1070,6 +1078,8 @@ sub retrieve { } # delete orderitems_id in collective orders, so that they get cloned no matter what + # is this correct? or is the following meant? + # remember orderitems_ids in converted_from_orderitems_ids, so that they may be linked $ref->{converted_from_orderitems_id} = delete $ref->{orderitems_id} if $is_collective_order; # get tax rates and description @@ -1508,7 +1518,7 @@ sub order_details { $form->{delivery_term} = SL::DB::Manager::DeliveryTerm->find_by(id => $form->{delivery_term_id} || undef); $form->{delivery_term}->description_long($form->{delivery_term}->translated_attribute('description_long', $form->{language_id})) if $form->{delivery_term} && $form->{language_id}; - $::form->{order} = SL::DB::Manager::Order->find_by(id => $::form->{id}); + $form->{order} = SL::DB::Manager::Order->find_by(id => $form->{id}) if $form->{id}; $main::lxdebug->leave_sub(); }