X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Foe.pl;h=d2cceeaf30b49481b6ec9e087fa6d43c1f7f50c9;hb=249c0c6f38350cc67eb2304538aa4ef7f329eb79;hp=321bec31b3f3058ad6a033509874a96df8999696;hpb=9a14696176033f03c97244f420d93f9c15efed61;p=kivitendo-erp.git diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 321bec31b..d2cceeaf3 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -525,7 +525,8 @@ sub form_header { "price_factors" => "ALL_PRICE_FACTORS"); $form->{ALL_PAYMENTS} = SL::DB::Manager::PaymentTerm->get_all( where => [ or => [ obsolete => 0, id => $form->{payment_id} || undef ] ]); - $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all; + $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted; + $form->{ALL_LANGUAGES} = SL::DB::Manager::Language->get_all_sorted; # Projects my @old_project_ids = uniq grep { $_ } map { $_ * 1 } ($form->{"globalproject_id"}, map { $form->{"project_id_$_"} } 1..$form->{"rowcount"}); @@ -2049,8 +2050,7 @@ sub delivery_order { $main::lxdebug->leave_sub(); } -sub oe_delivery_order_from_order { - +sub oe_prepare_xyz_from_order { return if !$::form->{id}; my $order = SL::DB::Order->new(id => $::form->{id})->load; @@ -2067,27 +2067,15 @@ sub oe_delivery_order_from_order { $::form->{rowcount}++; _update_ship(); +} + +sub oe_delivery_order_from_order { + oe_prepare_xyz_from_order(); delivery_order(); } sub oe_invoice_from_order { - - return if !$::form->{id}; - - my $order = SL::DB::Order->new(id => $::form->{id})->load; - $order->flatten_to_form($::form, format_amounts => 1); - - # hack: add partsgroup for first row if it does not exists, - # because _remove_billed_or_delivered_rows and _remove_full_delivered_rows - # determine fields to handled by existing fields for the first row. If partsgroup - # is missing there, for deleted rows the partsgroup_field is not emptied and in - # update_delivery_order it will not considered an empty row ... - $::form->{partsgroup_1} = '' if !exists $::form->{partsgroup_1}; - - # fake last empty row - $::form->{rowcount}++; - - _update_ship(); + oe_prepare_xyz_from_order(); invoice(); } @@ -2179,10 +2167,12 @@ sub edit_periodic_invoices_config { }; } # for older configs, replace email preset text if not yet set. - $config->{email_subject} ||= GenericTranslations->get(language_id => $::form->{lanuage_id}, - translation_type =>"preset_text_periodic_invoices_email_subject"); - $config->{email_body} ||= GenericTranslations->get(language_id => $::form->{lanuage_id}, - translation_type =>"preset_text_periodic_invoices_email_body"); + $config->{email_subject} ||= GenericTranslations->get(language_id => $::form->{lanuage_id}, translation_type => "preset_text_periodic_invoices_email_subject"); + $config->{email_body} ||= GenericTranslations->get(language_id => $::form->{lanuage_id}, translation_type => "salutation_general") + . GenericTranslations->get(language_id => $::form->{lanuage_id}, translation_type => "salutation_punctuation_mark") + . "\n\n" + . GenericTranslations->get(language_id => $::form->{lanuage_id}, translation_type => "preset_text_periodic_invoices_email_body"); + $config->{email_body} =~ s{\A[ \n\r]+|[ \n\r]+\Z}{}g; $config->{periodicity} = 'm' if none { $_ eq $config->{periodicity} } @SL::DB::PeriodicInvoicesConfig::PERIODICITIES; $config->{order_value_periodicity} = 'p' if none { $_ eq $config->{order_value_periodicity} } ('p', @SL::DB::PeriodicInvoicesConfig::ORDER_VALUE_PERIODICITIES); @@ -2196,6 +2186,7 @@ sub edit_periodic_invoices_config { if ($::form->{customer_id}) { $::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all_sorted(where => [ cp_cv_id => $::form->{customer_id} ]); + $::form->{email_recipient_invoice_address} = SL::DB::Manager::Customer->find_by(id => $::form->{customer_id})->invoice_mail; } $::form->header(no_layout => 1); @@ -2255,7 +2246,7 @@ sub _remove_full_delivered_rows { next unless $::form->{"id_$row"}; my $base_factor = SL::DB::Manager::Unit->find_by(name => $::form->{"unit_$row"})->base_factor; my $base_qty = $::form->parse_amount(\%::myconfig, $::form->{"qty_$row"}) * $base_factor; - my $ship_qty = $::form->parse_amount(\%::myconfig, $::form->{"ship_$row"}) * $base_factor; + my $ship_qty = $::form->{"ship_$row"} * $base_factor; #$main::lxdebug->message(LXDebug->DEBUG2(),"shipto=".$ship_qty." qty=".$base_qty); if (!$ship_qty || ($ship_qty < $base_qty)) {