kundennummer aus email genieren und zurückrechnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Folgende Ausgabe

    A001
    A002
    A003
    A004
    A005
    A006
    A007
    A008
    A009
    A010
    B000
    B001
    B002
    B003
    B004
    B005
    B006
    B007
    B008
    B009
    B010
    C000
    C001
    C002
    C003
    C004
    C005
    C006
    C007
    C008
    C009
    C010
    67D000
    6007
    6008
    6009
    6010
    7000
    7001
    7002
    7003
    7004
    7005
    7006
    7007


    Bei diesem Script:

    PHP-Code:

    $num 
    "A000";
    $max "C010";
    $step 10;
    $count 0;
    $number_of_customer 40;
    // Going from A000..A010 until Z010
    while ($count <= $number_of_customer) {
    $ord1 ord($num{0});
    $digs substr($num1);
    if(
    $num != $max)
    {
    if (++
    $digs $step) {
    $num chr(++$ord1)."000";

    } else {
    $num sprintf(chr($ord1)."%03d"$digs);
    $count++;
    }

    } else {

    $ord2 ord($num{0});
    if (++
    $digs $step) {
     
    $num $ord1.chr(++$ord2)."000";
     } else {
     
    $num $ord1.sprintf(chr($ord2)."%03d"$digs);
     }
    }
    echo 
    $num."<br>";

    Kommentar


    • #17
      Und welche Ausgabe wird erwartet?

      Kommentar


      • #18
        folgendes Script gibt folgende Werte

        PHP-Code:
        $num "A000";
        $max "C010";
        $step 10;
        $count 0;
        $number_of_customer 60;
        // Going from A000..A010 until Z010
        while ($count <= $number_of_customer) {
        $ord ord($num{0});
        $digs substr($num1);
        if(
        $num == $max)
        {
         
        $addtonumber chr($ord);
         
        $max $addtonumber.$num;
        }
        if (++
        $digs $step) {
        $num chr(++$ord)."000";
         
        } else {
        $num $addtonumber.sprintf(chr($ord)."%03d"$digs);

        }
        $count++;
        echo 
        $num."<br>";

        gibt diese Ausgabe

        A001
        A002
        A003
        A004
        A005
        A006
        A007
        A008
        A009
        A010
        B000
        B001
        B002
        B003
        B004
        B005
        B006
        B007
        B008
        B009
        B010
        C000
        C001
        C002
        C003
        C004
        C005
        C006
        C007
        C008
        C009
        C010
        D000
        CD001
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000
        CC000

        Kommentar


        • #19
          PHP-Code:
              function createSerialNumber ($pInteger) {
                  
          $num $pInteger 1000;
                  
          $pInteger = ($pInteger $num) / 1000;
                  
          $str "";
                  while (
          $pInteger) {
                      
          $chr $pInteger 26;
                      
          $str chr(65 $chr) . $str;
                      
          $pInteger = ($pInteger $chr) / 26;
                  }
                  return 
          str_pad($str $num6"A"STR_PAD_LEFT);
              } 
          und das rufst du dann jeweils mit $count auf. Dein Problem ist im Prinzip eine Konvertierung zu einem anderen Zahlensystem.
          Zuletzt geändert von AmicaNoctis; 03.09.2009, 16:16.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #20
            Zitat von sanktusm Beitrag anzeigen
            Ich habe mir vorgestellt dass ich mehr mit Buchstaben arbeiten will. So etwa 3Buchstaben vor einer dreistelligen Zahl.
            Und warum? Ich nummeriere meine Kunden nach dem Schema <Jahr>-<fortlaufende Nummer>. Der erste Neukunde in diesem Jahr bekam die 09-001, der zwölfte Neukunde in 2011 wird 11-012 bekommen.
            Ich kann so zwar "nur" 999 Neukunden pro Jahr haben, aber ich verkaufe auch nichts in großen Stückzahlen sondern mich selbst. Du kannst die fortlaufende Nummer ja breiter machen.
            Ein anderes Limit ist noch, dass ich dieses Schema nur 99 Jahre lang verwenden kann. Dann sind die IDs nicht mehr eindeutig. Ich bin dann aber auch nicht mehr. Eindeutig.

            Für Angebote, Rechnungen und sonstiges ist mein Schema übrigens <Jahr>-<fortlaufende Nummer>-<Art des Dokuments>-<Monat>-<fortlaufende Nummer dieses Kunden>.

            Ich erzähle das alles, damit du mal siehst, dass Kundennummern mehr sein können und sollten als irgendein Buchstaben-Zahlen-Salat.
            Ich kann an meinen IDs erkennen wie lange ich den Kunden schon habe, was für ein Schreiben es ist und das wievielte in diesem Monat. Im Dateisystem ist dank führender Nullen automatisch alles so sortiert wie ich es haben will und bei Dateioperationen (Reporting, Backup, Datenvernichtung, ...) kann ich mit einfachen Pattern arbeiten.
            Ich könnte sogar in Officeprogrammen mit automatischen Feldern arbeiten. Muss ich aber gar nicht, denn mein Schema ist so einfach, dass ich es mir ganz leicht merken kann.

            So und was kannst du mit AAB001 anfangen, was sagt dir diese ID?
            Und wird sie dir auch noch was sagen, wenn das Code-Schnipselchen zur Erzeugung verloren gegangen ist?
            Zuletzt geändert von onemorenerd; 03.09.2009, 18:38.

            Kommentar

            Lädt...
            X