X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fio.pl;h=6a0d2fc403a0ef94d01520f8361c5c4a17dd3767;hb=ad2e3220c7da79f7849f6931ed6cdb6e3f497feb;hp=5ac873e732b871bf34547064977ebc128a098ef6;hpb=0bbd98ca0d1bcd6a891868948c86bfa8b6bde992;p=kivitendo-erp.git diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 5ac873e73..6a0d2fc40 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -159,6 +159,7 @@ sub display_row { ); my @column_index = map { $_->{id} } grep { $_->{display} } @HEADER; + # cache units my $all_units = AM->retrieve_units(\%myconfig, $form); @@ -209,7 +210,9 @@ sub display_row { my %column_data = (); # undo formatting - map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(qty discount sellprice price_new price_old) unless ($form->{simple_save}); + map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } + qw(qty discount sellprice lastcost price_new price_old) + unless ($form->{simple_save}); # unit begin $form->{"unit_old_$i"} ||= $form->{"unit_$i"}; @@ -294,6 +297,7 @@ sub display_row { } $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value => $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces)); + } $column_data{discount} = $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"})); $column_data{linetotal} = $form->format_amount(\%myconfig, $linetotal, 2); @@ -338,7 +342,10 @@ sub display_row { map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent); - push @ROW2, { value => sprintf qq|%s %s  %s%%  %s %s  %s %s|, + push @ROW2, { value => sprintf qq| + %s %s  %s%% +  %s %s +  %s |, $marge_color, $locale->text('Ertrag'),$form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"}, $locale->text('LP'), $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2), $locale->text('EK'), $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) } @@ -361,8 +368,8 @@ sub display_row { my @hidden_vars; if ($is_delivery_order) { - map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount); - push @hidden_vars, qw(sellprice discount price_factor_id); + map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost); + push @hidden_vars, qw(sellprice discount price_factor_id lastcost); push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}"; } @@ -372,7 +379,7 @@ sub display_row { map { ($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } map { $_."_$i" } (qw(orderitems_id bo pricegroup_old price_old id inventory_accno bin partsgroup partnotes income_accno expense_accno listprice assembly taxaccounts ordnumber transdate cusordnumber - longdescription basefactor marge_absolut marge_percent marge_price_factor lastcost), @hidden_vars) + longdescription basefactor marge_absolut marge_percent marge_price_factor), @hidden_vars) ); map { $form->{"${_}_base"} += $linetotal } (split(/ /, $form->{"taxaccounts_$i"})); @@ -668,7 +675,7 @@ sub item_selected { map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces) - } qw(sellprice listprice) if $form->{item} ne 'assembly'; + } qw(sellprice listprice lastcost) if $form->{item} ne 'assembly'; # get pricegroups for parts IS->get_pricegroups_for_parts(\%myconfig, \%$form); @@ -750,7 +757,7 @@ sub check_form { #($form->{"sellprice_$i"},$form->{"$pricegroup_old_$i"}) = split /--/, $form->{"sellprice_$i"}; # fuer assemblies auskommentiert. siehe oben - # $form->{sellprice} += ($form->{"qty_$i"} * $form->{"sellprice_$i"} / ($form->{"price_factor_$i"} || 1)); + # $form->{sellprice} += ($form->{"qty_$i"} * $form->{"sellprice_$i"} / ($form->{"price_factor_$i"} || 1)); $form->{weight} += ($form->{"qty_$i"} * $form->{"weight_$i"} / ($form->{"price_factor_$i"} || 1)); $count++; } @@ -765,44 +772,9 @@ sub check_form { map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(listprice sellprice lastcost); } else { - my @flds = qw(id partnumber description qty ship sellprice unit - discount inventory_accno income_accno expense_accno listprice - taxaccounts bin assembly weight projectnumber project_id - oldprojectnumber runningnumber serialnumber partsgroup payment_id - not_discountable shop ve gv buchungsgruppen_id language_values - sellprice_pg pricegroup_old price_old price_new unit_old ordnumber - transdate longdescription basefactor marge_total marge_percent - marge_price_factor lastcost price_factor_id partnotes - stock_out stock_in has_sernumber); - - my $ic_cvar_configs = CVar->get_configs(module => 'IC'); - push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; - - # this section applies to invoices and orders - # remove any empty numbers - if ($form->{rowcount}) { - for my $i (1 .. $form->{rowcount} - 1) { - if ($form->{"partnumber_$i"}) { - push @a, {}; - my $j = $#a; - - map { $a[$j]->{$_} = $form->{"${_}_$i"} } @flds; - $count++; - if ($main::lizenzen) { - if ($form->{"licensenumber_$i"} == -1) { - &new_license($i); - exit; - } - } - } - } + remove_emptied_rows(1); - $form->redo_rows(\@flds, \@a, $count, $form->{rowcount}); - $form->{rowcount} = $count; - - $form->{creditremaining} -= &invoicetotal; - - } + $form->{creditremaining} -= &invoicetotal; } #sk @@ -825,6 +797,37 @@ sub check_form { $main::lxdebug->leave_sub(); } +sub remove_emptied_rows { + my $dont_add_empty = shift; + my $form = $::form; + + return unless $form->{rowcount}; + + my @flds = qw(id partnumber description qty ship sellprice unit + discount inventory_accno income_accno expense_accno listprice + taxaccounts bin assembly weight projectnumber project_id + oldprojectnumber runningnumber serialnumber partsgroup payment_id + not_discountable shop ve gv buchungsgruppen_id language_values + sellprice_pg pricegroup_old price_old price_new unit_old ordnumber + transdate longdescription basefactor marge_total marge_percent + marge_price_factor lastcost price_factor_id partnotes + stock_out stock_in has_sernumber); + + my $ic_cvar_configs = CVar->get_configs(module => 'IC'); + push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; + + my @new_rows; + for my $i (1 .. $form->{rowcount} - 1) { + next unless $form->{"partnumber_$i"}; + + push @new_rows, { map { $_ => $form->{"${_}_$i" } } @flds }; + } + + my $new_rowcount = scalar @new_rows; + $form->redo_rows(\@flds, \@new_rows, $new_rowcount, $form->{rowcount}); + $form->{rowcount} = $new_rowcount + ($dont_add_empty ? 0 : 1); +} + sub invoicetotal { $main::lxdebug->enter_sub(); @@ -879,7 +882,7 @@ sub validate_items { # check if items are valid if ($form->{rowcount} == 1) { &update; - exit; + ::end_of_request(); } for my $i (1 .. $form->{rowcount} - 1) { @@ -1181,7 +1184,9 @@ sub print_options { (!$options{no_html}) ? opthash("html", $form->{DF}{html}, "HTML") : undef, ($main::opendocument_templates && !$options{no_opendocument}) ? - opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef; + opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef, + ($main::excel_templates && !$options{no_excel}) ? + opthash("excel", $form->{DF}{excel}, $locale->text("Excel")) : undef; push @LANGUAGE_ID, map { opthash($_->{id}, ($_->{id} eq $form->{language_id} ? 'selected' : ''), $_->{description}) } +{}, @{ $form->{languages} } @@ -1260,7 +1265,7 @@ sub print { &save(); $form->{formname} = $formname; &edit(); - exit; + ::end_of_request(); } &print_form($old_form); @@ -1421,13 +1426,13 @@ sub print_form { call_sub($display_form); # saving the history - if(!exists $form->{addition}) { + if(!exists $form->{addition}) { $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; - $form->{addition} = "PRINTED"; - $form->save_history($form->dbconnect(\%myconfig)); + $form->{addition} = "PRINTED"; + $form->save_history; } # /saving the history - exit; + ::end_of_request(); } } @@ -1589,6 +1594,9 @@ sub print_form { } elsif ($form->{"format"} =~ /opendocument/) { $form->{opendocument} = 1; $extension = 'odt'; + } elsif ($form->{"format"} =~ /excel/) { + $form->{excel} = 1; + $extension = 'xls'; } my $email_extension = '_email' if (($form->{media} eq 'email') && (-f "$myconfig{templates}/$form->{formname}_email$form->{language}${printer_code}.${extension}")); @@ -1641,18 +1649,18 @@ sub print_form { if(!exists $form->{addition}) { $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; if($form->{media} =~ /printer/) { - $form->{addition} = "PRINTED"; + $form->{addition} = "PRINTED"; } elsif($form->{media} =~ /email/) { - $form->{addition} = "MAILED"; + $form->{addition} = "MAILED"; } elsif($form->{media} =~ /queue/) { - $form->{addition} = "QUEUED"; + $form->{addition} = "QUEUED"; } elsif($form->{media} =~ /screen/) { - $form->{addition} = "SCREENED"; + $form->{addition} = "SCREENED"; } - $form->save_history($form->dbconnect(\%myconfig)); + $form->save_history; } # /saving the history @@ -1697,7 +1705,7 @@ sub print_form { } call_sub($display_form); - exit; + ::end_of_request(); } my $msg = @@ -1708,7 +1716,7 @@ sub print_form { } if ($form->{printing}) { call_sub($display_form); - exit; + ::end_of_request(); } $main::lxdebug->leave_sub(); @@ -1809,72 +1817,72 @@ sub ship_to { - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| +
| . $locale->text('Billing Address') . qq|| + | . $locale->text('Shipping Address') . qq|
$number$form->{"$form->{vc}number"}
| . $locale->text('Company Name') . qq|$form->{name}
| . $locale->text('Department') . qq|$form->{department_1}
 $form->{department_2}
| . $locale->text('Street') . qq|$form->{street}
| . $locale->text('Zipcode') . qq|$form->{zipcode}
| . $locale->text('City') . qq|$form->{city}
| . $locale->text('Country') . qq|$form->{country}
| . $locale->text('Contact') . qq|$form->{contact}
| . $locale->text('Phone') . qq|$form->{phone}
| . $locale->text('Fax') . qq|$form->{fax}
| . $locale->text('E-mail') . qq|$form->{email}
$number$form->{"$form->{vc}number"}
| . $locale->text('Company Name') . qq|$form->{name}
| . $locale->text('Department') . qq|$form->{department_1}
 $form->{department_2}
| . $locale->text('Street') . qq|$form->{street}
| . $locale->text('Zipcode') . qq|$form->{zipcode}
| . $locale->text('City') . qq|$form->{city}
| . $locale->text('Country') . qq|$form->{country}
| . $locale->text('Contact') . qq|$form->{contact}
| . $locale->text('Phone') . qq|$form->{phone}
| . $locale->text('Fax') . qq|$form->{fax}
| . $locale->text('E-mail') . qq|$form->{email}
@@ -1885,7 +1893,7 @@ sub ship_to { # delete shipto - map({ delete $form->{$_} } (@shipto_vars, qw(header))); + map({ delete $form->{$_} } (@shipto_vars, qw(header shipto_id))); $form->{title} = $title; foreach my $key (keys %$form) { @@ -1944,13 +1952,11 @@ sub new_license { $form->{script} = "licenses.pl"; - our $name; - map { $form->{$_} = $form->{"old_$_"} } qw(partnumber description); map { $form->{$_} = $form->escape($form->{$_}, 1) } qw(partnumber description); $form->{callback} = - qq|$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|; + qq|$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$form->{name}&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|; $form->redirect; $main::lxdebug->leave_sub(); @@ -2071,7 +2077,7 @@ sub _update_custom_variables { my $form = $main::form; $form->{CVAR_CONFIGS} ||= { }; - $form->{CVAR_CONFIGS}->{IC} = CVar->get_configs(module => 'IC'); + $form->{CVAR_CONFIGS}->{IC} ||= CVar->get_configs(module => 'IC'); $main::lxdebug->leave_sub(); } @@ -2088,30 +2094,31 @@ sub _render_custom_variables_inputs { return; } - foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) { - $cvar->{valid} = $params{part_id} - ? CVar->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{part_id}) - : 0; - - $cvar->{value} = $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"}; - } - - CVar->render_inputs(hide_non_editable => 1, - variables => $form->{CVAR_CONFIGS}->{IC}, - name_prefix => 'ic_', - name_postfix => "_$params{row}"); + my $valid = CVar->custom_variables_validity_by_trans_id(trans_id => $params{part_id}); my $num_visible_cvars = 0; foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) { + $cvar->{valid} = $params{part_id} && $valid->($cvar->{id}); + my $description = ''; if ($cvar->{flag_editable} && $cvar->{valid}) { $num_visible_cvars++; $description = $cvar->{description} . ' '; } - push @{ $params{ROW2} }, { line_break => $num_visible_cvars == 1, - value => $description . $cvar->{HTML_CODE}, - }; + push @{ $params{ROW2} }, { + line_break => $num_visible_cvars == 1, + description => $description, + cvar => 1, + render_options => { + hide_non_editable => 1, + var => $cvar, + name_prefix => 'ic_', + name_postfix => "_$params{row}", + valid => $cvar->{valid}, + value => $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"}, + } + }; } $main::lxdebug->leave_sub(2);