X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdo.pl;h=b4ccfe3c49748a033ab0aba5ee6003f614d1277e;hb=1a500c31f23ea9fef89b35af688249f18afeb939;hp=8cc81f854f222b30acb727ab63821c389cff535e;hpb=330cfa6d7507da52bc1c2a3874b46eb23255538f;p=kivitendo-erp.git diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index 8cc81f854..b4ccfe3c4 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -409,7 +409,7 @@ sub orders { ($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} }); - $form->{sort} ||= 'transdate'; + report_generator_set_default_sort('transdate', 1); DO->transactions(); @@ -456,7 +456,8 @@ sub orders { ); foreach my $name (qw(id transdate donumber ordnumber name employee shipvia)) { - $column_defs{$name}->{link} = $href . "&sort=$name"; + my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir}; + $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir"; } $form->{"l_type"} = "Y"; @@ -469,7 +470,7 @@ sub orders { $report->set_export_options('orders', @hidden_variables); - $report->set_sort_indicator($form->{sort}, 1); + $report->set_sort_indicator($form->{sort}, $form->{sortdir}); my @options; if ($form->{customer}) { @@ -648,15 +649,15 @@ sub invoice { check_do_access(); $auth->assert($form->{type} eq 'purchase_delivery_order' ? 'vendor_invoice_edit' : 'invoice_edit'); - $form->{deliverydate} = $form->{transdate}; - $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig); - $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); + $form->{convert_from_do_ids} = $form->{id}; + $form->{deliverydate} = $form->{transdate}; + $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig); + $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); + $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); - $form->{id} = ''; - $form->{closed} = 0; $form->{rowcount}--; - $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); + delete @{$form}{qw(id closed delivered)}; if ($form->{type} eq 'purchase_delivery_order') { $form->{title} = $locale->text('Add Vendor Invoice'); @@ -740,12 +741,13 @@ sub invoice_multi { 'back_button' => 1); } - $form->{deliverydate} = $form->{transdate}; - $form->{transdate} = $form->current_date(\%myconfig); - $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); - $form->{type} = "invoice"; - $form->{closed} = 0; - $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); + $form->{convert_from_do_ids} = join ' ', @do_ids; + $form->{deliverydate} = $form->{transdate}; + $form->{transdate} = $form->current_date(\%myconfig); + $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); + $form->{type} = "invoice"; + $form->{closed} = 0; + $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); my $buysell; if ($form->{type} eq 'purchase_delivery_order') { @@ -789,6 +791,7 @@ sub save_as_new { $form->{saveasnew} = 1; $form->{closed} = 0; + $form->{delivered} = 0; map { delete $form->{$_} } qw(printed emailed queued); # Let Lx-Office assign a new order number if the user hasn't changed the @@ -905,9 +908,9 @@ sub update_stock_in { my $stock_info = []; 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 qty unit) }; } - $main::lxdebug->dump(0, "si", $stock_info); display_stock_in_form($stock_info); @@ -939,7 +942,7 @@ sub display_stock_in_form { $form->get_lists('warehouses' => { 'key' => 'WAREHOUSES', 'bins' => 'BINS' }); - redo_stock_info('stock_info' => $stock_info, 'add_empty_row' => !$form->{closed}); + redo_stock_info('stock_info' => $stock_info, 'add_empty_row' => !$form->{delivered}); get_basic_bin_wh_info($stock_info); @@ -986,7 +989,7 @@ sub stock_out_form { my $stock_info = DO->unpack_stock_information('packed' => $form->{stock}); - if (!$form->{closed}) { + if (!$form->{delivered}) { foreach my $row (@contents) { $row->{available_qty} = $form->format_amount_units('amount' => $row->{qty} * 1, 'part_unit' => $part_info->{unit}, @@ -1012,7 +1015,7 @@ sub stock_out_form { $form->header(); print $form->parse_html_template('do/stock_out_form', { 'UNITS' => $units_data, - 'WHCONTENTS' => $form->{closed} ? $stock_info : \@contents, + 'WHCONTENTS' => $form->{delivered} ? $stock_info : \@contents, 'PART_INFO' => $part_info, }); $lxdebug->leave_sub(); @@ -1056,9 +1059,13 @@ sub set_stock_out { $lxdebug->leave_sub(); } -sub transfer_in_and_close { +sub transfer_in { $lxdebug->enter_sub(); + if (DO->is_marked_as_delivered('id' => $form->{id})) { + $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred in.'), 'back_button' => 1); + } + my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_in_${_}"} } (1 .. $form->{rowcount}); my @all_requests; @@ -1093,7 +1100,7 @@ sub transfer_in_and_close { } if (@{ $form->{ERRORS} }) { - push @{ $form->{ERRORS} }, $locale->text('The delivery order has not been closed. The warehouse contents have not changed.'); + push @{ $form->{ERRORS} }, $locale->text('The delivery order has not been marked as delivered. The warehouse contents have not changed.'); update(); $lxdebug->leave_sub(); @@ -1105,7 +1112,6 @@ sub transfer_in_and_close { DO->transfer_in_out('direction' => 'in', 'requests' => \@all_requests); - $form->{closed} = 1; $form->{delivered} = 1; save(); @@ -1113,9 +1119,13 @@ sub transfer_in_and_close { $lxdebug->leave_sub(); } -sub transfer_out_and_close { +sub transfer_out { $lxdebug->enter_sub(); + if (DO->is_marked_as_delivered('id' => $form->{id})) { + $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred out.'), 'back_button' => 1); + } + my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_out_${_}"} } (1 .. $form->{rowcount}); my @all_requests; @@ -1186,7 +1196,7 @@ sub transfer_out_and_close { } if (@{ $form->{ERRORS} }) { - push @{ $form->{ERRORS} }, $locale->text('The delivery order has not been closed. The warehouse contents have not changed.'); + push @{ $form->{ERRORS} }, $locale->text('The delivery order has not been marked as delivered. The warehouse contents have not changed.'); update(); $lxdebug->leave_sub(); @@ -1198,7 +1208,6 @@ sub transfer_out_and_close { DO->transfer_in_out('direction' => 'out', 'requests' => \@all_requests); - $form->{closed} = 1; $form->{delivered} = 1; save(); @@ -1206,6 +1215,19 @@ sub transfer_out_and_close { $lxdebug->leave_sub(); } +sub mark_closed { + $lxdebug->enter_sub(); + + DO->close_orders('ids' => [ $form->{id} ]); + + $form->{closed} = 1; + + update(); + + $lxdebug->leave_sub(); +} + + sub yes { call_sub($form->{yes_nextsub}); }