X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fcp.pl;h=a8caa526b1f1d3eda12614bd57f9f2b94a730197;hb=5f3f953a9ccd519fbe329d65a49239271b1b520d;hp=86a5890bd5153c9c50689497fd486e99e73d9f60;hpb=004ecc3f815948d90e28f01dd06357bd3d87b6fd;p=kivitendo-erp.git diff --git a/bin/mozilla/cp.pl b/bin/mozilla/cp.pl index 86a5890bd..a8caa526b 100644 --- a/bin/mozilla/cp.pl +++ b/bin/mozilla/cp.pl @@ -36,6 +36,7 @@ use SL::IS; use SL::IR; use SL::AR; use SL::AP; +use Data::Dumper; use strict; #use warnings; @@ -66,25 +67,31 @@ sub payment { } else { CP->get_openvc(\%myconfig, \%$form); } - + # Auswahlliste für vc zusammenbauen + # Erweiterung für schliessende option und erweiterung um value + # für bugfix 1771 (doppelte Leerzeichen werden nicht 'gepostet') $form->{"select$form->{vc}"} = ""; + $form->{selectcustomer} .= "\n" if $form->{vc} eq "customer"; + if ($form->{"all_$form->{vc}"}) { # s.o. jb 12.10.2010 $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id}; - map { $form->{"select$form->{vc}"} .= "\n" } @{ $form->{"all_$form->{vc}"} }; } - CP->paymentaccounts(\%myconfig, \%$form); # Standard Konto für Umlaufvermögen my $accno_arap = IS->get_standard_accno_current_assets(\%myconfig, \%$form); - + # Entsprechend präventiv die Auswahlliste für Kontonummer + # auch mit value= zusammenbauen (s.a. oben bugfix 1771) + # Wichtig: Auch das Template anpassen, damit hidden input korrekt die " + # escaped. $form->{selectaccount} = ""; $form->{"select$form->{ARAP}"} = ""; - map { $form->{selectaccount} .= "\n"; $form->{account} = "$_->{accno}--$_->{description}" if ($_->{accno} eq $accno_arap) } @{ $form->{PR}{"$form->{ARAP}_paid"} }; # Braucht man das hier überhaupt? Erstmal auskommentieren .. jan 18.12.2010 @@ -107,8 +114,10 @@ sub payment { $form->{defaultcurrency} = $form->{currency} = $form->{oldcurrency} = $curr[0]; + # Entsprechend präventiv die Auswahlliste für Währungen + # auch mit value= zusammenbauen (s.a. oben bugfix 1771) $form->{selectcurrency} = ""; - map { $form->{selectcurrency} .= "\n" } @curr; &form_header; @@ -129,9 +138,20 @@ sub form_header { map { $form->{"addr$_"} = "" } (1 .. 4); } + # sometimes it happens that values in customer arrive without the signs '--' + # but in order to select the right option field we need values with '--' + if ($form->{vc} eq "customer"){ + my ($customername) = split /--/, $form->{ $form->{vc} }; + $form->{ $form->{vc} } = $customername . "--" . $form->{customer_id}; + } + # bugfix 1771 + # geändert von + # offen: $form->{ARAP} kann raus? for my $item ($form->{vc}, "account", "currency", $form->{ARAP}) { $form->{"select$item"} =~ s/ selected//; - $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; + $form->{"select$item"} =~ s/option value="\Q$form->{$item}\E">\Q$form->{$item}\E/option selected value="$form->{$item}">$form->{$item}/; } $vc = @@ -241,15 +261,30 @@ sub update { } } + # search by customernumber + # the customernumber has to be correct otherwise nothing is found + if ($form->{vc} eq 'customer' and $form->{customernumber} and $form->{ARAP} eq 'AR') { + $form->{open} ='Y'; # only open invoices + # ar_transactions automatically searches by $form->{customer_id} or else + # $form->{customer} if available, and these variables will always be set + # so we have to empty these values first + $form->{customer_id} = ''; + $form->{customer} = ''; + AR->ar_transactions(\%myconfig, \%$form); + + # Here we just take the first returned value even if the custumernumber + # may not be unique + $form->{customer} = $form->{AR}[0]{name}; + $form->{customer_id} = $form->{AR}[0]{customer_id}; + } + # search by invoicenumber, if ($form->{invnumber}) { - $form->{open} ='Y'; # nur die offenen rechnungen + $form->{open} ='Y'; # only open invoices if ($form->{ARAP} eq 'AR'){ - # ar_transactions automatically searches by $form->{customer_id} or else # $form->{customer} if available, and these variables will always be set - # when we have a dropdown field rather than an input field, so we have to - # empty these values first + # so we have to empty these values first $form->{customer_id} = ''; $form->{customer} = ''; AR->ar_transactions(\%myconfig, \%$form); @@ -285,7 +320,7 @@ sub update { } # determine customer/vendor - if ( $form->{customer_id} and $form->{invnumber} ) { + if ( $form->{customer_id} and ($form->{invnumber} or $form->{customernumber}) ) { # we already know the exact customer_id, so fill $form with customer data IS->get_customer(\%myconfig, \%$form); $updated = 1; @@ -311,6 +346,9 @@ sub update { } } + if (!$form->{forex}) { # read exchangerate from input field (not hidden) + $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}); + } $form->{forex} = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{datepaid}, $buysell); $form->{exchangerate} = $form->{forex} if $form->{forex};