Location: PHPKode > projects > Skat Statistics > skatstat-1.7.1/skatstat/inc/smspielliste.php
<?
# Zustandsautomat durchläuft nacheinander folgende Zustände
# 1 Abfrage nach Anzahl Spieler/Spiele
# 2 Abfrage nach Kategorie und Name der Spieler
# 3 Eintrag der Liste in die DB (Spiele sind leer)
# 4a Fulldevice: Eingabe der kompletten Liste
# 4b Handheld: Eingabe jedes einzelnen Spiels
# Zustände
# FD: 1 - 2 - 3 - 4a
# HH: 1 - 2 - 3 - 4a ... 4z




# SpielSpiellisteId
$SpiellisteId = getPost("SpiellisteId");
if( !$SpiellisteId )
{
   $SpiellisteId = $_GET["SpiellisteId"];
}
$NumSpieler = getPost("NumSpieler");
$NumSpiele  = getPost("NumSpiele");

$Vorwaerts  = getPost("vor");
$Rueckwarts = getPost("zurueck");
/** Komplett zeigt an, dass eine ganze Liste auf einmal eingegeben wurde
 **/
$Komplett = getPost("komplett");

# Aktuell eingebenes Spiel
$Spielnummer = getPost("Spielnummer");
$Category = getPost("Category");
$Tisch = getPost("Tisch");
$Serie = getPost("Serie");
$Datum = getPost("Datum");


if( $SpiellisteId )
{
   $sqlExec = getScoreSheetInfo( $SpiellisteId );
   $result = mysql_fetch_array( $sqlExec );
   $NumSpiele  = $result[NumSpiele];
   $NumSpieler = $result[NumSpieler];
}
else
{
   unset( $SpiellisteId );
}

debug("SpiellisteId: " . $SpiellisteId  );
debug("NumSpieler: " . $NumSpieler );
debug("NumSpiele : " . $NumSpiele  );
debug("Category  : " . $Category  );
debug("Vor       : " . $Vorwaerts  );
debug("Zur�ck    : " . $Rueckwarts  );
debug("Komplett  : " . $Komplett  );
debug("Spielnummer: " . $Spielnummer  );
debug("Handheld: " .    $SKAT_SESSION[handheld] );


if( $Komplett && !$Rueckwarts && !$Vorwaerts )
{
   # Eingabe einer kompletten Spielliste
   debug( "insertInDB" );
   echo insertInDB();
   NeueSpielliste();
}
# Verarbeiten von Spieldaten
# Anzeigen eines Forms f�r das nächste Spiel oder
# Anzeigen der Gesamtliste beim letzten Spiel
else if( is_numeric($Spielnummer) && $SpiellisteId )
{
   # Zustand 5
   # Eingabe der (gesamten Liste | des letzten Spiels) in die DB
   # Anzeige der Spielliste
   # Vorheriger Zustand: 4a (letzes Spiel) oder 4b (gesamte Liste)
   # Nächster Zustand:  1 
   if(    ! ($Rueckwarts && $Spielnummer == $NumSpiele )
   && ! ($Vorwaerts && $Spielnummer == $NumSpiele ) )
   {
      debug( "Processing data ..." );
      debug( "... game # $Spielnummer" );
      ProcessGameData( $SpiellisteId, $Spielnummer );

      debug( "... columns" );
      for( $i = 0; $i < $NumSpieler; $i++ )
      {
         ProcessColumnData( $SpiellisteId, $i );
      }
   }

   if( $Vorwaerts )
   {
      if( $Spielnummer == $NumSpiele - 1 ) # Letztes Spiel eingegeben
      {
         # Gesamtliste betrachten
         debug("Gesamte Liste betrachten");
         Spielliste( "", $SpiellisteId, $SKAT_SESSION[handheld] );
         startTag("form", "name", "myform", "action", $_SERVER['PHP_SELF'], "method", "post" );
         startTag("input", "name", "Mngt", "value", 4, "type", "hidden");
         startTag("input", "name", "SpiellisteId", "value", $SpiellisteId, "type", "hidden");
         startTag("input", "name", "Spielnummer", "value", $Spielnummer+1, "type", "hidden");
         startTag("table");
         HandheldFooter( );
         endTag("table");
         endTag("form");

      }
      elseif( $Spielnummer == $NumSpiele )
      # nach der Betrachtung weiter geschaltet
      {
         NeueSpielliste();
      }
      else
      {
         debug( "Edit next games" );
         EditSingleGame( $SpiellisteId, $Spielnummer + 1, "Edit" );
      }
   }
   elseif( $Rueckwarts )
   {
      if( 0 == $Spielnummer ) # Erstes Spiel eingegeben
      {
         SelectScoreSheetProperties( "Edit", $SpiellisteId, $NumSpieler, $NumSpiele, true);
         # Gesamtliste betrachten
         # Maske f�r die Wahl einer neuen Liste
         # den unteren Funktionsblock muss man entsprechend in eine Funktion packen
         # hier ist die besonderheit,dass die SpiellisteId dann bekannt ist.
      }
      else
      {
         debug( "Edit previous games" );
         EditSingleGame( $SpiellisteId, $Spielnummer - 1, "Edit" );
      }
   }
   else
   {
      errormsg( "Something wrong" );
   }
}
# Anzahl Spiele/Spieler verarbeiten, Spielliste einrichten
# Erste Spieleingabe anzeigen oder
# Gesamte Liste
else if( $NumSpiele && $NumSpieler &&  $Category )
{
   debug( "Zustand 3 " );
   # Zustand 3
   # Eintrag des Spiels in die DB
   # Vorheriger Zustand: 2 Wahl der Kategory und der Mitspieler
   # Nächster Zustand: 4a (HH device: erstes Spiel)
   #                   4b (FF device: gesamte Spielliste)

   if( !$SpiellisteId )
   {
      $SpiellisteId = ProcessScoreSheetData( false );
      debug( "after ProcessScoreSheetData: SpiellisteId $SpiellisteId ");
   }
   else
   {
      debug( "SpiellisteId $SpiellisteId ");
      ProcessScoreSheetData( $SpiellisteId );
   }

   if( $SKAT_SESSION[handheld] )
   {
      EditSingleGame( $SpiellisteId, 0, "Edit" );
   }
   # Wenn Terminal, ganze Liste
   else
   {
      Spielliste( "Edit", $SpiellisteId,  $SKAT_SESSION[handheld] );
   }
}
else if( $SpiellisteId && $SKAT_SESSION[admin] )
{
   # Zustand 4b
   # Eingabe der gesamten Liste
   # Vorheriger Zustand: 2

   # Bestehende Liste editieren
   Spielliste( "Edit", $SpiellisteId,  $SKAT_SESSION[handheld] );

   # Nächster Zustand:  5  (Ende übersicht der gesamt Spielliste)
}
else if( $NumSpieler && $NumSpiele  )
{
   debug( "Zustand 2" );
   # Zustand 2
   # Wahl der Kategory und der Mitspieler
   # Vorheriger Zustand: 1 Wahl der Anzahl Spieler und Spiele
   if( $SKAT_SESSION[handheld] )
   {
      SelectScoreSheetProperties( "Edit", false, $NumSpieler, $NumSpiele, true);
   }
   else
   {
      Spielliste( "Edit", "",  $SKAT_SESSION[handheld], $NumSpieler, $NumSpiele );
   }
}
else
{
   NeueSpielliste();
   # Zustand 1
   # Wahl der Spielezahl und der Mitspieler Spielliste
   # Nächster Zustand: 2 (Wahl der Kategory und der Mitspieler)
}

?>
Return current item: Skat Statistics