X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fio.pl;h=883843e9b1755440f979227d68e438cbf0027b67;hb=bbc9fa5eef6ad9cfadb370029cab8429fb82de88;hp=49d2d4331bc88a393002ec3d31156b30c223f928;hpb=992f833ae4a90b4ccb05c8765379438a164cb0fd;p=kivitendo-erp.git diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 49d2d4331..883843e9b 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -103,7 +103,10 @@ sub display_row { push @column_index, qw(unit); #for pricegroups column - if ($form->{type} =~ (/sales_quotation/) or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) or ($form->{type} =~ /sales_order/)) { + if ( $form->{type} =~ (/sales_quotation/) + or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) + or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) + or ($form->{type} =~ /sales_order/)) { push @column_index, qw(sellprice_drag); } @@ -199,6 +202,7 @@ sub display_row { $serialnumber = $locale->text('Serial No.'); $projectnumber = $locale->text('Project'); $partsgroup = $locale->text('Group'); + $reqdate = $locale->text('Reqdate'); $delvar = 'deliverydate'; @@ -251,8 +255,13 @@ sub display_row { qq||; } + (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/); + $qty_dec = length $qty_dec; + $column_data{qty} = - qq|format_amount(\%myconfig, $form->{"qty_$i"},0).qq|>|; + qq|format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec) + . qq|>|; $column_data{ship} = qq|format_amount(\%myconfig, $form->{"ship_$i"}) @@ -260,36 +269,37 @@ sub display_row { $column_data{unit} = qq||; - - # build in dragdrop for pricesgroups if ($form->{"prices_$i"}) { - $price_tmp = $form->format_amount(\%myconfig, $form->{"price_new_$i"}, 2); + $price_tmp = + $form->format_amount(\%myconfig, $form->{"price_new_$i"}, 2); $column_data{sellprice_drag} = qq||; $column_data{sellprice} = qq||; } else { + # for last row and report # set pricegroup dragdrop from report menu if ($form->{"sellprice_$i"} != 0) { $prices = - qq|\n|; + qq|\n|; $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"}; $column_data{sellprice_drag} = qq||; - }else { - # for last row - $column_data{sellprice_drag} = - qq|format_amount(\%myconfig, $form->{"prices_$i"}, - $decimalplaces) - . qq|>|; - } + } else { + + # for last row + $column_data{sellprice_drag} = + qq|format_amount(\%myconfig, $form->{"prices_$i"}, + $decimalplaces) + . qq|>|; + } $column_data{sellprice} = qq|{"pricegroup_old_$i"}> {"price_old_$i"}> -format_amount(\%myconfig,$form->{"price_new_$i"}).qq|> +format_amount(\%myconfig, $form->{"price_new_$i"}) . qq|> {"id_$i"}> {"inventory_accno_$i"}> @@ -347,6 +358,9 @@ sub display_row { + + + |; @@ -383,6 +397,18 @@ sub display_row { $projectnumber  +|; + if ($form->{type} eq 'invoice' or $form->{type} =~ /order/) { + my $reqdate_term = + ($form->{type} eq 'invoice') + ? 'deliverydate' + : 'reqdate'; # invoice uses a different term for the same thing. + print qq| + ${$reqdate_term}  +|; + } + + print qq| @@ -412,30 +438,40 @@ sub set_pricegroup { my $rowcount = shift; $lxdebug->enter_sub(); for $j (1 .. $rowcount) { - my $pricegroup_old = $form->{"pricegroup_old_$i"}; - if ($form->{PRICES}{ $j }) { + if ($form->{PRICES}{$j}) { $len = 0; $prices = ''; - $price = 0; - foreach $item (@{ $form->{PRICES}{ $j } }) { - $price = $form->round_amount($myconfig, $item->{price},5); - $price = $form->format_amount($myconfig, $item->{price},2); + $price = 0; + foreach $item (@{ $form->{PRICES}{$j} }) { + + #$price = $form->round_amount($myconfig, $item->{price}, 5); + #$price = $form->format_amount($myconfig, $item->{price}, 2); $price = $item->{price}; $pricegroup_id = $item->{pricegroup_id}; $pricegroup = $item->{pricegroup}; + # build dragdrop for pricegroups $prices .= - qq|\n|; + qq|\n|; $len += 1; + + # map { + # $form->{"${_}_$j"} = + # $form->format_amount(\%myconfig, $form->{"${_}_$j"}) + # } qw(sellprice price_new price_old); + # set new selectedpricegroup_id and prices for "Preis" - if ($item->{selected}) { + if ($item->{selected} && ($pricegroup_id != 0)) { $form->{"pricegroup_old_$j"} = $pricegroup_id; - $form->{"price_new_$j"} = $price; - $form->{"sellprice_$j"} = $price; + $form->{"price_new_$j"} = $price; + $form->{"sellprice_$j"} = $price; + } + if ($pricegroup_id == 0) { + $form->{"price_new_$j"} = $form->{"sellprice_$j"}; } - if ($len >= 1) { + if ($len > 1) { $form->{"prices_$j"} = $prices; } } @@ -497,7 +533,8 @@ sub select_item { } map { $ref->{$_} =~ s/\"/"/g } qw(partnumber description unit); -#sk tradediscount + + #sk tradediscount $ref->{sellprice} = $form->round_amount($ref->{sellprice} * (1 - $form->{tradediscount}), 2); $column_data{ndx} = @@ -581,6 +618,7 @@ sub select_item { sub item_selected { $lxdebug->enter_sub(); + # replace the last row with the checked row $i = $form->{rowcount}; $i = $form->{assembly_rows} if ($form->{item} eq 'assembly'); @@ -655,7 +693,7 @@ sub item_selected { IS->get_pricegroups_for_parts(\%myconfig, \%$form); # build up html code for prices_$i - set_pricegroup(); + set_pricegroup($form->{rowcount}); &display_form; @@ -738,44 +776,47 @@ sub display_form { &{"$form->{display_form}"}; exit; } - if ( $form->{print_and_post} - && $form->{second_run} - && ($form->{action} eq "display_form")) { - for (keys %$form) { $old_form->{$_} = $form->{$_} } - $old_form->{rowcount}++; - - #$form->{rowcount}--; - #$form->{rowcount}--; - - $form->{print_and_post} = 0; - - &print_form($old_form); - exit; - } - - $form->{action} = ""; - $form->{resubmit} = 0; - - if ($form->{print_and_post} && !$form->{second_run}) { - $form->{second_run} = 1; - $form->{action} = "display_form"; - $form->{rowcount}--; - my $rowcount = $form->{rowcount}; - # get pricegroups for parts - IS->get_pricegroups_for_parts(\%myconfig, \%$form, "new"); - # build up html code for prices_$i - set_pricegroup($rowcount); - - $form->{resubmit} = 1; - - } + # if ( $form->{print_and_post} + # && $form->{second_run} + # && ($form->{action} eq "display_form")) { + # for (keys %$form) { $old_form->{$_} = $form->{$_} } + # $old_form->{rowcount}++; + # + # #$form->{rowcount}--; + # #$form->{rowcount}--; + # + # $form->{print_and_post} = 0; + # + # &print_form($old_form); + # exit; + # } + # + # $form->{action} = ""; + # $form->{resubmit} = 0; + # + # if ($form->{print_and_post} && !$form->{second_run}) { + # $form->{second_run} = 1; + # $form->{action} = "display_form"; + # $form->{rowcount}--; + # my $rowcount = $form->{rowcount}; + # + # # get pricegroups for parts + # IS->get_pricegroups_for_parts(\%myconfig, \%$form); + # + # # build up html code for prices_$i + # set_pricegroup($rowcount); + # + # $form->{resubmit} = 1; + # + # } &form_header; $numrows = ++$form->{rowcount}; $subroutine = "display_row"; if ($form->{item} eq 'part') { + #set preisgruppenanzahl $numrows = $form->{price_rows}; $subroutine = "price_row"; @@ -801,7 +842,7 @@ sub display_form { $subroutine = "assembly_row"; } if ($form->{item} eq 'service') { - $numrows = ++$form->{price_rows}; + $numrows = $form->{price_rows}; $subroutine = "price_row"; &{$subroutine}($numrows); @@ -921,17 +962,20 @@ sub check_form { } } - - #sk + + #sk # if pricegroups - if ($form->{type} =~ (/sales_quotation/) or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) or ($form->{type} =~ /sales_order/)) { - - # get pricegroups for parts - IS->get_pricegroups_for_parts(\%myconfig, \%$form); + if ( $form->{type} =~ (/sales_quotation/) + or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/)) + or (($form->{level} eq undef) and ($form->{type} =~ /invoice/)) + or ($form->{type} =~ /sales_order/)) { + + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup($form->{rowcount}); - # build up html code for prices_$i - set_pricegroup(); - } &display_form; @@ -979,6 +1023,7 @@ sub invoicetotal { sub validate_items { $lxdebug->enter_sub(); + # check if items are valid if ($form->{rowcount} == 1) { &update; @@ -1105,7 +1150,7 @@ sub e_mail { $lxdebug->enter_sub(); if ($form->{second_run}) { $form->{print_and_post} = 0; - $form->{resubmit} = 0; + $form->{resubmit} = 0; } if ($myconfig{role} eq 'admin') { $bcc = qq| @@ -1222,7 +1267,7 @@ sub print_options { $form->{copies} = 3 unless $form->{copies}; $form->{PD}{ $form->{formname} } = "selected"; - $form->{DF}{ $form->{format} } = ""; + $form->{DF}{ $form->{format} } = "selected"; $form->{OP}{ $form->{media} } = "selected"; $form->{SM}{ $form->{sendmode} } = "selected"; @@ -1253,7 +1298,10 @@ sub print_options { if ($form->{type} eq 'invoice') { $type = qq| |; %lang = (de => "deutsch", en => "englisch", fr => "französisch"); foreach $item (keys %lang) { if ($form->{language} eq $item) { - $language .= qq||; + $language_select .= qq||; } else { - $language .= qq||; + $language_select .= qq||; } } @@ -1318,12 +1373,12 @@ sub print_options { - |; - if ($myconfig{printer} && $latex && $form->{media} ne 'email') { + if ($myconfig{printer} && $latex_templates && $form->{media} ne 'email') { print qq| @@ -1374,9 +1429,7 @@ sub print_options { sub print { $lxdebug->enter_sub(); - if ($form->{second_run}) { - $form->{print_and_post} = 0; - } + # if this goes to the printer pass through if ($form->{media} eq 'printer' || $form->{media} eq 'queue') { $form->error($locale->text('Select postscript or PDF!')) @@ -1395,8 +1448,8 @@ sub print_form { $lxdebug->enter_sub(); my ($old_form) = @_; - $inv = "inv"; - $due = "due"; + $inv = "inv"; + $due = "due"; $numberfld = "invnumber"; $display_form = @@ -1429,6 +1482,8 @@ sub print_form { $form->{invdate} = $form->{"${inv}date"} = $form->{transdate}; $form->{label} = $locale->text('Packing List'); $order = 1; + # set invnumber for template packing_list + $form->{invnumber} = $form->{ordnumber}; } if ($form->{formname} eq 'pick_list') { $inv = "ord"; @@ -1488,13 +1543,12 @@ sub print_form { if (!$form->{"${inv}number"} && !$form->{preview}) { $form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld); if ($form->{media} ne 'email') { - - $i = $form->{rowcount}; - # get pricegroups for parts - IS->get_pricegroups_for_parts(\%myconfig, \%$form); - # build up html code for prices_$i - set_pricegroup(); + # get pricegroups for parts + IS->get_pricegroups_for_parts(\%myconfig, \%$form); + + # build up html code for prices_$i + set_pricegroup($form->{rowcount}); $form->{rowcount}--; @@ -1509,9 +1563,9 @@ sub print_form { my ($saved_email, $saved_cc, $saved_bcc) = ($form->{"email"}, $form->{"cc"}, $form->{"bcc"}); - $language = $form->{language}; + $language_saved = $form->{language}; &{"$form->{vc}_details"}; - $form->{language} = $language; + $form->{language} = $language_saved; $form->{"email"} = $saved_email if ($saved_email); $form->{"cc"} = $saved_cc if ($saved_cc); @@ -1522,7 +1576,8 @@ sub print_form { push @a, ("partnumber_$i", "description_$i", "partsgroup_$i", "serialnumber_$i", - "bin_$i", "unit_$i"); + "bin_$i", "unit_$i", + "transdate_$i", "ordnumber_$i"); } map { push @a, "${_}_description" } split / /, $form->{taxaccounts}; @@ -1547,8 +1602,16 @@ sub print_form { IS->invoice_details(\%myconfig, \%$form, $locale); } + # format global dates map { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, 1) } - ("${inv}date", "${due}date", "shippingdate"); + ("${inv}date", "${due}date", "shippingdate", "deliverydate"); + + # format item dates + for my $field (qw(transdate_oe deliverydate_oe)) { + map { + $form->{$field}[$_] = $locale->date(\%myconfig, $form->{$field}[$_], 1); + } 0 .. $#{ $form->{$field} }; + } @a = qw(name street zipcode city country); @@ -1576,9 +1639,9 @@ sub print_form { # some of the stuff could have umlauts so we translate them push @a, - qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptoemail shippingpoint shipvia company address signature employee contact); + qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptoemail shippingpoint shipvia company address signature employee contact department_1 department_2); - push @a, ("${inv}date", "${due}date", email, cc, bcc); + push @a, ("${inv}date", "${due}date", "deliverydate", email, cc, bcc); $form->format_string(@a); @@ -1684,8 +1747,6 @@ sub print_form { ? $locale->text('sent to printer') : $locale->text('emailed to') . " $form->{email}"; $form->redirect(qq|$form->{label} $form->{"${inv}number"} $msg|); - } else { - &{"$display_form"}; } $lxdebug->leave_sub(); @@ -1728,7 +1789,6 @@ sub ship_to { map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); - # get details for name &{"$form->{vc}_details"}; @@ -1737,12 +1797,11 @@ sub ship_to { ? $locale->text('Customer Number') : $locale->text('Vendor Number'); - $i = $form->{rowcount}; # get pricegroups for parts IS->get_pricegroups_for_parts(\%myconfig, \%$form); # build up html code for prices_$i - set_pricegroup(); + set_pricegroup($form->{rowcount}); $nextsub = ($form->{display_form}) ? $form->{display_form} : "display_form";
$type$language + ${language_select} $format $media| . $locale->text('Copies') . qq| {copies}>