Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 58fcb69f

Von Stephan Köhler vor etwa 19 Jahren hinzugefügt

  • ID 58fcb69f65a255c0db6741ca7aed0a695cae68c8
  • Vorgänger a827857e
  • Nachfolger f2cdf023

Merge von 711 aus unstable: Bugfix 233 + format_amount
Bug 233: Neues Zahlenformat für die Eingabe eingefuehrt.
Es ist nun moeglich das Eingabezahlenformat getrennt anzugeben.
Entweder Eingabeformat wie bisher (default) oder '1000.00 oder 1000,00'.
Die zweite Option verhindert bei der Eingabe die Verwechselung von ',' und '.'.
Es ist nun egal welchen Dezimaltrenner man benutzt, der erste Punkt oder Komma
von rechts jedenfalls wird als Dezimaltrenner verwendet, alle anderen Punkte oder
Kommas werden einfach ignoriert, bzw. entfernt

Unterschiede anzeigen:

SL/Form.pm
590 590
  $main::lxdebug->enter_sub();
591 591

  
592 592
  my ($self, $myconfig, $amount) = @_;
593

  
594
  if (!(substr($amount, -3, 1) eq ".")) {
595
    if (   ($myconfig->{numberformat} eq '1.000,00')
596
        || ($myconfig->{numberformat} eq '1000,00')) {
597
      $amount =~ s/\.//g;
598
      $amount =~ s/,/\./;
599
    }
600

  
601
    $amount =~ s/,//g;
602
  }
603

  
593
  $main::lxdebug->message(LXDebug::DEBUG2, "Start amount: $amount");  
594
 
595
  if ($myconfig->{in_numberformat} == 1){
596
    # Extra input number format 1000.00 or 1000,00
597
    $main::lxdebug->message(LXDebug::DEBUG2, "in_numberformat: " . $main::locale->text('1000,00 or 1000.00'));
598
    $amount =~ s/,/\./g;
599
    #$main::lxdebug->message(LXDebug::DEBUG2, "1.Parsed Number: $amount") if ($amount);
600
    $amount = scalar reverse $amount;
601
    #$main::lxdebug->message(LXDebug::DEBUG2, "2.Parsed Number: $amount") if ($amount);
602
    $amount =~ s/\./DOT/;
603
    #$main::lxdebug->message(LXDebug::DEBUG2, "3.Parsed Number: $amount") if ($amount);
604
    $amount =~ s/\.//g;
605
    #$main::lxdebug->message(LXDebug::DEBUG2, "4.Parsed Number: $amount") if ($amount);
606
    $amount =~ s/DOT/\./;
607
    #$main::lxdebug->message(LXDebug::DEBUG2, "5.Parsed Number:" . $amount) if ($amount);
608
    $amount = scalar reverse $amount ;
609
    $main::lxdebug->message(LXDebug::DEBUG2, "Parsed amount:" . $amount . "\n");
610

  
611
    return ($amount * 1);
612

  
613
  }
614
  $main::lxdebug->message(LXDebug::DEBUG2, "in_numberformat: " . $main::locale->text('equal Outputformat'));
615
  $main::lxdebug->message(LXDebug::DEBUG2, " = numberformat: $myconfig->{numberformat}");
616
  if (   ($myconfig->{numberformat} eq '1.000,00')
617
      || ($myconfig->{numberformat} eq '1000,00')) {
618
    $amount =~ s/\.//g;
619
    $amount =~ s/,/\./;
620
  }
621

  
622
  if ($myconfig->{numberformat} eq "1'000.00") {
623
      $amount =~ s/'//g;
624
  }
625

  
626
  $amount =~ s/,//g;
627
  
628
  $main::lxdebug->message(LXDebug::DEBUG2, "Parsed amount:" . $amount. "\n") if ($amount);
604 629
  $main::lxdebug->leave_sub();
605

  
630
  
606 631
  return ($amount * 1);
607 632
}
608 633

  

Auch abrufbar als: Unified diff