X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdo.pl;h=b8cd626bc7d43dcb41a804a26dd2df633e33eb00;hb=65b7c724e;hp=d9312cc86bdb36059413804ed7b13d1aa84fbe43;hpb=5caaac6b3cd27f1915b5f2a953b69b4a6ba4112b;p=kivitendo-erp.git diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index d9312cc86..b8cd626bc 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -283,7 +283,7 @@ sub form_header { @old_ids_cond, ]); - $::form->{ALL_PROJECTS} = SL::DB::Manager::Project->get_all(query => \@conditions); + $::form->{ALL_PROJECTS} = SL::DB::Manager::Project->get_all_sorted(query => \@conditions); $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); $::form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); $::form->{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all_sorted(query => [ @@ -323,7 +323,7 @@ sub form_header { $form->{follow_up_trans_info} = $form->{donumber} .'('. $follow_up_vc .')'; - $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase ckeditor/ckeditor ckeditor/adapters/jquery)); + $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase ckeditor/ckeditor ckeditor/adapters/jquery kivi.io autocomplete_customer)); $form->header(); # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID' @@ -390,7 +390,6 @@ sub update_delivery_order { # Kunde mit Rabatt 20 -> Rabatt 5,5 i.O. $form->{payment_id} = $payment_id if $form->{payment_id} eq ""; - # for pricegroups my $i = $form->{rowcount}; if ( ($form->{"partnumber_$i"} eq "") @@ -428,15 +427,9 @@ sub update_delivery_order { map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] }; $form->{"marge_price_factor_$i"} = $form->{item_list}->[0]->{price_factor}; - $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"} * (1 - $form->{tradediscount})); + $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}); $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}); $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}); - - # get pricegroups for parts - IS->get_pricegroups_for_parts(\%myconfig, \%$form); - - # build up html code for prices_$i - &set_pricegroup($i); } display_form(); @@ -580,6 +573,9 @@ sub orders { if ($form->{vendor}) { push @options, $locale->text('Vendor') . " : $form->{vendor}"; } + if ($form->{cp_name}) { + push @options, $locale->text('Contact Person') . " : $form->{cp_name}"; + } if ($form->{department}) { my ($department) = split /--/, $form->{department}; push @options, $locale->text('Department') . " : $department"; @@ -846,13 +842,6 @@ sub invoice { } - # show pricegroup in newly loaded invoice when creating invoice from delivery order - for my $i (1 .. $form->{rowcount}) { - $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"}; - } - IS->get_pricegroups_for_parts(\%myconfig, \%$form); - set_pricegroup($form->{rowcount}); - display_form(); $main::lxdebug->leave_sub(); @@ -954,13 +943,6 @@ sub invoice_multi { invoice_links(); prepare_invoice(); - # show pricegroup in newly loaded invoice when creating invoice from delivery order - for my $i (1 .. $form->{rowcount}) { - $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"}; - } - IS->get_pricegroups_for_parts(\%myconfig, \%$form); - set_pricegroup($_) for 1 .. $form->{rowcount}; - display_form(); $main::lxdebug->leave_sub(); @@ -978,7 +960,7 @@ sub save_as_new { $form->{delivered} = 0; map { delete $form->{$_} } qw(printed emailed queued); delete @{ $form }{ grep { m/^stock_(?:in|out)_\d+/ } keys %{ $form } }; - + delete $form->{"delivery_order_items_id_$_"} for 1 .. $form->{"rowcount"}; # Let kivitendo assign a new order number if the user hasn't changed the # previous one. If it has been changed manually then use it as-is. $form->{donumber} =~ s/^\s*//g; @@ -1107,7 +1089,8 @@ sub update_stock_in { foreach my $i (1..$form->{rowcount}) { $form->{"qty_$i"} = $form->parse_amount(\%myconfig, $form->{"qty_$i"}); - push @{ $stock_info }, { map { $_ => $form->{"${_}_${i}"} } qw(warehouse_id bin_id chargenumber bestbefore qty unit) }; + push @{ $stock_info }, { map { $_ => $form->{"${_}_${i}"} } qw(warehouse_id bin_id chargenumber + bestbefore qty unit delivery_order_items_stock_id) }; } display_stock_in_form($stock_info); @@ -1190,7 +1173,7 @@ sub set_stock_in { next if ($form->{"qty_$i"} <= 0); - push @{ $stock_info }, { map { $_ => $form->{"${_}_${i}"} } qw(warehouse_id bin_id chargenumber bestbefore qty unit) }; + push @{ $stock_info }, { map { $_ => $form->{"${_}_${i}"} } qw(delivery_order_items_stock_id warehouse_id bin_id chargenumber bestbefore qty unit) }; } $form->{stock} = YAML::Dump($stock_info); @@ -1239,7 +1222,7 @@ sub stock_out_form { ($row->{chargenumber} ne $sinfo->{chargenumber}) || ($row->{bestbefore} ne $sinfo->{bestbefore})); - map { $row->{"stock_$_"} = $sinfo->{$_} } qw(qty unit error); + map { $row->{"stock_$_"} = $sinfo->{$_} } qw(qty unit error delivery_order_items_stock_id); } } @@ -1281,6 +1264,7 @@ sub set_stock_out { 'qty' => $form->{"qty_$i"}, 'unit' => $form->{"unit_$i"}, 'row' => $i, + 'delivery_order_items_stock_id' => $form->{"delivery_order_items_stock_id_$i"}, }; } @@ -1592,18 +1576,22 @@ sub transfer_in_out_default { my $base_unit_factor = $units->{ $part_info_map{$form->{"id_$i"}}->{unit} }->{factor} || 1; my $qty = $form->parse_amount(\%myconfig, $form->{"qty_$i"}) * $units->{$form->{"unit_$i"}}->{factor} / $base_unit_factor; + $form->show_generic_error($locale->text("Cannot transfer negative entries." ), 'back_button' => 1) if ($qty < 0); # if we do not want to transfer services and this part is a service, set qty to zero # ... and do not create a hash entry in %qty_parts below (will skip check for bins for the transfer == out case) # ... and push only a empty (undef) element to @all_requests (will skip check for bin_id and warehouse_id and will not alter the row) $qty = 0 if (!$::instance_conf->get_transfer_default_services && !defined($part_info_map{$form->{"id_$i"}}->{inventory_accno_id}) && !$part_info_map{$form->{"id_$i"}}->{assembly}); $qty_parts{$form->{"id_$i"}} += $qty; - delete $qty_parts{$form->{"id_$i"}} if $qty == 0; + if ($qty == 0) { + delete $qty_parts{$form->{"id_$i"}} unless $qty_parts{$form->{"id_$i"}}; + undef $form->{"stock_in_$i"}; + } $part_info_map{$form->{"id_$i"}}{bin_id} ||= $default_bin_id; $part_info_map{$form->{"id_$i"}}{warehouse_id} ||= $default_warehouse_id; - push @all_requests, ($qty == 0) ? undef : { + push @all_requests, ($qty == 0) ? { } : { 'chargenumber' => '', #?? die müsste entsprechend geholt werden #'bestbefore' => undef, # TODO wird nicht berücksichtigt 'bin_id' => $part_info_map{$form->{"id_$i"}}{bin_id}, @@ -1621,6 +1609,7 @@ sub transfer_in_out_default { # jetzt wird erst überprüft, ob die Stückzahl entsprechend stimmt. # check if bin (transfer in and transfer out and qty (transfer out) is correct foreach my $key (keys %qty_parts) { + $missing_default_bins{$key}{missing_bin} = 1 unless ($part_info_map{$key}{bin_id}); next unless ($part_info_map{$key}{bin_id}); # abbruch @@ -1687,10 +1676,11 @@ sub transfer_in_out_default { # dieser array_ref ist für DO->save da: # einmal die all_requests in YAML verwandeln, damit delivery_order_items_stock # gefüllt werden kann. - my $i = 1; + my $i = 0; foreach (@all_requests){ - $form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); $i++; + next unless scalar(%{ $_ }); + $form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); } save(no_redirect => 1); # Wir können auslagern, deshalb beleg speichern