X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Foe.pl;h=f4b32c0351746d9c775b2d570444cd3bda347e47;hb=024df846ffcf9d315f068a50f3fac8a992791902;hp=f9907cbf2855d00e5eec31d3a090d045f69360c9;hpb=b59ec96925334124e8e126e467181b766b7c701f;p=kivitendo-erp.git diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index f9907cbf2..f4b32c035 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -79,8 +79,9 @@ sub edit { # editing without stuff to edit? try adding it first if ($form->{rowcount}) { - map {$id++ if $form->{"id_$_"}} (1 .. $form->{rowcount}); + map { $id++ if $form->{"id_$_"} } (1 .. $form->{rowcount}); if (!$id) { + # reset rowcount undef $form->{rowcount}; &add; @@ -93,6 +94,13 @@ sub edit { } } + if ($form->{print_and_save}) { + $form->{action} = "print"; + $form->{resubmit} = 1; + $language_id = $form->{language_id}; + $printer_id = $form->{printer_id}; + } + if ($form->{type} eq 'purchase_order') { $form->{title} = $locale->text('Edit Purchase Order'); $form->{heading} = $locale->text('Purchase Order'); @@ -116,6 +124,10 @@ sub edit { &order_links; &prepare_order; + if ($form->{print_and_save}) { + $form->{language_id} = $language_id; + $form->{printer_id} = $printer_id; + } &display_form; $lxdebug->leave_sub(); @@ -130,19 +142,35 @@ sub order_links { # retrieve order/quotation $form->{webdav} = $webdav; - - # set jscalendar $form->{jscalendar} = $jscalendar; OE->retrieve(\%myconfig, \%$form); + if ($form->{payment_id}) { + $payment_id = $form->{payment_id}; + } + if ($form->{language_id}) { + $language_id = $form->{language_id}; + } + if ($form->{taxzone_id}) { + $taxzone_id = $form->{taxzone_id}; + } + + # if multiple rowcounts (== collective order) then check if the - # there were more than one customer (in that case OE::retrieve removes + # there were more than one customer (in that case OE::retrieve removes # the content from the field) - if ($form->{rowcount} && $form->{type} eq 'sales_order' && defined $form->{customer} && $form->{customer} eq '') { -# $main::lxdebug->message(0, "Detected Edit order with concurrent customers"); - $form->error($locale->text('Collective Orders only work for orders from one customer!')); + if ( $form->{rowcount} + && $form->{type} eq 'sales_order' + && defined $form->{customer} + && $form->{customer} eq '') { + + # $main::lxdebug->message(0, "Detected Edit order with concurrent customers"); + $form->error( + $locale->text( + 'Collective Orders only work for orders from one customer!') + ); } $taxincluded = $form->{taxincluded}; @@ -165,7 +193,15 @@ sub order_links { IS->get_customer(\%myconfig, \%$form); } $form->{cp_id} = $cp_id; - + if ($payment_id) { + $form->{payment_id} = $payment_id; + } + if ($language_id) { + $form->{language_id} = $language_id; + } + if ($taxzone_id) { + $form->{taxzone_id} = $taxzone_id; + } $form->{intnotes} = $intnotes; ($form->{ $form->{vc} }) = split /--/, $form->{ $form->{vc} }; $form->{"old$form->{vc}"} = @@ -219,42 +255,44 @@ sub prepare_order { $lxdebug->enter_sub(); $form->{format} = "pdf"; $form->{media} = "screen"; - $form->{formname} = $form->{type}; - - map { $form->{$_} =~ s/\"/"/g } - qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact); + $form->{formname} = $form->{type} unless $form->{formname}; - foreach $ref (@{ $form->{form_details} }) { - $form->{rowcount} = ++$i; + map { $form->{$_} =~ s/\"/"/g } + qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact); + my $i = 0; + foreach $ref (@{ $form->{form_details} }) { + $form->{rowcount} = ++$i; - map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref}; - } - for my $i (1 .. $form->{rowcount}) { - if ($form->{id}) { - $form->{"discount_$i"} = - $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100); - } else { - $form->{"discount_$i"} = - $form->format_amount(\%myconfig, $form->{"discount_$i"}); - } - ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/); - $dec = length $dec; - $decimalplaces = ($dec > 2) ? $dec : 2; - - # copy reqdate from deliverydate for invoice -> order conversion - $form->{"reqdate_$i"} = $form->{"deliverydate_$i"} unless $form->{"reqdate_$i"}; - - $form->{"sellprice_$i"} = - $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, - $decimalplaces); - - (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/); - $dec_qty = length $dec_qty; - $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty); - - map { $form->{"${_}_$i"} =~ s/\"/"/g } - qw(partnumber description unit); + map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref}; + } + for my $i (1 .. $form->{rowcount}) { + if ($form->{id}) { + $form->{"discount_$i"} = + $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100); + } else { + $form->{"discount_$i"} = + $form->format_amount(\%myconfig, $form->{"discount_$i"}); } + ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/); + $dec = length $dec; + $decimalplaces = ($dec > 2) ? $dec : 2; + + # copy reqdate from deliverydate for invoice -> order conversion + $form->{"reqdate_$i"} = $form->{"deliverydate_$i"} + unless $form->{"reqdate_$i"}; + + $form->{"sellprice_$i"} = + $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, + $decimalplaces); + + (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/); + $dec_qty = length $dec_qty; + $form->{"qty_$i"} = + $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty); + + map { $form->{"${_}_$i"} =~ s/\"/"/g } + qw(partnumber description unit); + } $lxdebug->leave_sub(); } @@ -269,6 +307,14 @@ sub form_header { $form->{jsscript} = $form->{jscalendar}; $jsscript = ""; + $payment = qq||; + foreach $item (@{ $form->{payment_terms} }) { + if ($form->{payment_id} eq $item->{id}) { + $payment .= qq||; + } else { + $payment .= qq||; + } + } if ($form->{jsscript}) { # with JavaScript Calendar @@ -315,7 +361,7 @@ sub form_header { } # set option selected - foreach $item ($form->{vc}, currency, department, employee, contact) { + foreach $item ($form->{vc}, currency, department, employee) { $form->{"select$item"} =~ s/ selected//; $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; @@ -324,20 +370,60 @@ sub form_header { #build contacts if ($form->{all_contacts}) { - $form->{selectcontact} = ""; + $form->{selectcontact} = ""; foreach $item (@{ $form->{all_contacts} }) { + my $department = ($item->{cp_abteilung}) ? "--$item->{cp_abteilung}" : ""; if ($form->{cp_id} == $item->{cp_id}) { $form->{selectcontact} .= - ""; + } else { + $form->{selectcontact} .= ""; + } + } + } else { + $form->{selectcontact} =~ s/ selected//g; + if ($form->{cp_id} ne "") { + $form->{selectcontact} =~ s/value=$form->{cp_id}/value=$form->{cp_id} selected/; + } + } + + + if (@{ $form->{SHIPTO} }) { + $form->{selectshipto} = ""; + foreach $item (@{ $form->{SHIPTO} }) { + if ($item->{id} == $form->{shipto_id}) { + $form->{selectshipto} .= + ""; } else { - $form->{selectcontact} .= ""; } + + } + } else { + $form->{selectshipto} =~ s/ selected//g; + if ($form->{shipto_id} ne "") { + $form->{selectshipto} =~ s/value=$form->{shipto_id}/value=$form->{shipto_id} selected/; } } + $shipto = qq| + | . $locale->text('Shipping Address') . qq| + + |; + + + + $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate}); + if (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) { + $creditwarning = 1; + } else { + $creditwarning = 0; + } + $form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0"); $form->{creditremaining} = @@ -345,7 +431,7 @@ sub form_header { $contact = ($form->{selectcontact}) - ? qq|\n| + ? qq|\n| : qq||; $exchangerate = qq| @@ -392,6 +478,58 @@ sub form_header { |; } + if ($form->{max_dunning_level}) { + $dunning = qq| + + + + + + + + + +
| . $locale->text('Max. Dunning Level') . qq|:$form->{max_dunning_level}| . $locale->text('Dunning Amount') . qq|:| + . $form->format_amount(\%myconfig, $form->{dunning_amount},2) + . qq|
+ + +|; + } + + if (@{ $form->{TAXZONE} }) { + $form->{selecttaxzone} = ""; + foreach $item (@{ $form->{TAXZONE} }) { + if ($item->{id} == $form->{taxzone_id}) { + $form->{selecttaxzone} .= + ""; + } else { + $form->{selecttaxzone} .= + ""; + } + + } + } else { + $form->{selecttaxzone} =~ s/ selected//g; + if ($form->{taxzone_id} ne "") { + $form->{selecttaxzone} =~ s/value=$form->{taxzone_id}/value=$form->{taxzone_id} selected/; + } + } + + if ($form->{rowcount} >0) { + $form->{selecttaxzone} =~ /