<?php
###################################################################
# Administration spécial semaine de parrainage                    #
# un joueur gagne ses points + les points de ses filleuls         #
# Variables IN :                                                  #
# $MatchId : Id du match dont on donne le résultat                #
# $Result : Résultat du match au format X-Y (X et Y deux entiers) #
# $un: si = 1, on passe à la 2eme page                            #
# $deux: si = 1, on passe à la 3eme page                          #
###################################################################
include("../config.php3");
include($BIB."bib_generic.php3");
include($BIB."bib_constants.php3");
include($BIB."bib_admin.php3");
include_once($BIB."bib_exploitation.php3");

##################################
# Administration script defaults #
##################################

# pas de timeout possible quelle que soit l'action effectuée
set_time_limit(0);
 
# le script continue une fois qu'il est lancé,
# quel que soit l'état de la connection après
ignore_user_abort(true); 

# on récupère la date actuelle
$current_european_date = date("Y-m-d H:i:s", my_local_time());

$flag_exploitation = "flag_maj_scores.php3";
#####################################
# pour afficher les matchs au début #
#####################################
?>
<html>
<head></head>
<link rel="stylesheet" href="admin.css">
<body rightmargin="0">
<div align="center" class="trTitle">Mise à jour des scores</div>


<?php
if ($go==1)
{
	include("calendar_generatorInExploitation.php3");
}
elseif ($un==1)
{
	
	# on place un flag dans la bib_exploitation pour être sur que 2 scripts ne se lancent pas en même temps
	if (getExploitationFile($flag_exploitation) != "")
		die("Ce script est déjà en cours");
	else
	{
		echo "<hr><b><font color=green>!!! Vous pouvez maintenant éteindre votre poste !!!</font></b><br><br>";
		flush();

		setExploitationFile($flag_exploitation, $current_european_date);
	}
	
	##########################################################
	# on selectionne les matchs disponibles dont le resultat a ete donne (donc etat=2) #
	# pour mettre a jour les scores des joueurs qui ont parie dessus #
	##########################################################
	$squery = "SELECT Team1,Team2,MatchId,Name,CategoryId,Date,Result,etat,Rate1,Rate2 FROM Categories ".
			" LEFT JOIN Matchs ON Matchs.Category=Categories.CategoryId ".
			" WHERE etat=".$TYPE_ETAT['WAIT']." ORDER BY CategoryId, Date DESC";

	$rows=main_db_query($squery);

	$nb=0;
	#debut du tableau de debug
	if ($DEBUG==1)
	{
		$text = " debug ";
	###############################
	# pour afficher les resultats #
	###############################

	?>
		<table border="1" cellpadding="4" cellspacing="4" class="univers">
				<tr class="trTitle">
					<td>Joueur N°</td>
					<td>Gain pronostics</td>
					<td>KF</td>
					<td>NB PERFECT</td>
				</tr>
	<?
	}
	else
		$text = "";
	while($row = db_fetch_assoc($rows))
	{
		$nb++;
		# le traitement de ce match est en cours <=> son etat est mis a -1
		if($row['etat'] == $TYPE_ETAT['WAIT'])
		{
			main_db_query("UPDATE Matchs SET etat='".$TYPE_ETAT['COUR']."' WHERE MatchId='".$row['MatchId']."'");
			
			# calcul des points
			# récup de tous les paris sur ce match
			$rowsBets = main_db_query("SELECT distinct(CONCAT(PlayerId,\"_\",MatchId)),PlayerId,MatchId,Bet,Date,Amount,Done FROM Paris WHERE MatchId=".$row['MatchId']);
			
			$nbPoints = 0;
			$kf = 0;
			
			$nbPerfects = 0;
			
			# on parcourt chaque paris pour mettre a jour les scores, les paris
			while($rowBet = db_fetch_assoc($rowsBets))
			{	
				$nbPerfects = 0;
				$nbPoints = calcule_gain_prono($row['Result'],$rowBet['Bet'],$rowBet['Amount'],$row['Rate1'],$row['Rate2']);
				$kf =  calcule_gain_prono($row['Result'],$rowBet['Bet'],1,$KF_PERFECT,$KF_CORRECT);
				if($kf<0)
					$kf=0;
			
				# Mise à jour du result dans la table Paris
	
				if ($kf == 0)
					$result = $RESULTAT_ECHEC;
				elseif ($kf == $KF_CORRECT)
					$result = $RESULTAT_CORRECT;
				elseif ($kf == $KF_PERFECT)
				{
					$nbPerfects++;
					$result = $RESULTAT_PERFECT;
				}
				else 
					$result = $RESULTAT_ATTENTE;

				if ($DEBUG==1)
				{
				###############################
				# pour afficher les resultats #
				###############################
					$color = ($r % 2 == 0)? "#FFFFFF":"#E8E8E8";
					$r++;
					?>
					<tr bgcolor="<?php echo $color ?>">
						<td><?php echo $rowBet['PlayerId'] ?></td>
						<td><?php echo $nbPoints ?></td>
						<td><?php echo $kf ?></td>
						<td><?php echo $nbPerfects ?></td>
					</tr>
				
				<?php
				}		
				else
				{
					# mise à jour des scores et kf des joueurs
					main_db_query("UPDATE Players SET KF=KF+".$kf." , Score=Score+".$nbPoints.", Niveau=Niveau+".$nbPerfects." WHERE Id='".$rowBet['PlayerId']."'");
				
					# mise à jour des Done et results
					main_db_query("UPDATE Paris SET Result='".$result."', Done='".$BET_NOT_SENT."' WHERE MatchId='".$row['MatchId']."' AND PlayerId=".$rowBet['PlayerId']);
				}
				# reinitialisation des variables		
				$nbPoints = 0;
				$kf = 0;		
			}
		}
		if ($DEBUG == 1)
		{
			# mise àjour du score du match
			main_db_query("UPDATE Matchs SET etat='".$TYPE_ETAT['WAIT']."' WHERE MatchId='".$row['MatchId']."'");
			
		}
		else
		{
			# mise àjour du resultat et de l etat du match
			main_db_query("UPDATE Matchs SET etat='".$TYPE_ETAT['DONE']."' WHERE MatchId='".$row['MatchId']."'");
		}
	}
	?>
	</table>
	<?php
	if($nb==0)
	{
		echo "Il n'y a pas de matchs en attente de mise à jour <br>";
	}
	else
	{
				
		############################
		echo "<b>mise à jour ".$text." terminée</b><br>";
		flush();
	}
	
	deleteExploitationFile($flag_exploitation);
	$go=1;
	include("calendar_generatorInExploitation.php3");
	
	//header("Location : calendar_generatorInExploitation.php3");
	
}
else
{
?>
<table border=1 cellpadding="4" cellspacing="4">
	<tr class=trTitle>
		<td align=center colspan=9>Liste des matchs dont le résultat est donné</td>
	</tr>
	<tr class=trTitle>
		<td>N° Match</td>
		<td>Catégorie</td>
		<td>Equipe 1</td>	
		<td>Equipe 2</td>		
		<td>Résultat</td>
		<td>Date/Heure de fin de pari</td>
	</tr>
<?php
##########################################################
# on affiche les matchs disponibles dont le resultat a ete donne (donc etat=2) #
# pour mettre a jour les scores des joueurs qui ont parie dessus #
##########################################################
$squery = "SELECT Team1,Team2,MatchId,Name,CategoryId,Date,Result FROM Categories ".
			" LEFT JOIN Matchs ON Matchs.Category=Categories.CategoryId ".
			" WHERE etat=".$TYPE_ETAT['WAIT']." ORDER BY CategoryId, Date DESC";

$rows=main_db_query($squery);
while($row=db_fetch_assoc($rows))
{
	
		echo "<td>".$row['MatchId']."</td>";
		echo "<td>".$row['Name']."</td>";
		echo "<td>".$row['Team1']."</td>";
		echo "<td>".$row['Team2']."</td>";
		echo "<td>".$row['Result']."</td>";
		echo "<td><b>".$row['Date']."</b></td>";
	echo "</tr>";
}
echo "<tr class=trTitle><td colspan=9>&nbsp;$error</td></tr></table>";
?>

<br><br>

<form method="post" name="main">
<br>
<input type="checkbox" name="DEBUG" value="1">DEBUG MODE
<input type="hidden" name="un" value="1">
<br><br>
<input type="submit" name="Valider" value="lancer la mise à jour des points et du calendrier">
</form>
<?php
}
?>
</body>
</html>