#*********************************************************************************************
#                                 Fait par JGP SOLDAT
#                               Maintenu par Kana-chan
#                             Pour l'Alliance Francophone 
#                             Version 4.00, le 21 mai 2007 
#*********************************************************************************************

use Socket;
use DBI;
use GD;
use GD::Graph::pie;
use Encode qw(decode encode);

$maintenu = "Kana-chan";
$destWWW = "/var/www/html";

# Parametres de connection a la base de donnees
$bd    = '/tmp/memory/fah.db';
$identifiant = '';      # identifiant
$motdepasse  = '';

# Connection a la base de donnees mysql
print("Connexion a la base de donnees $bd\n");
$db = DBI->connect(
        "DBI:SQLite:dbname=$bd",
        $identifiant, $motdepasse, {RaiseError => 1}
      ) or die "Connection impossible a la base de donnees $bd !\n $! \n $@\n$DBI::errstr";

$test = 0;

if ($test==1) { print("\ntest graphique 5\n\n"); }
print("\nTraitement des donnees\n");
$arial="C:/WINDOWS/Fonts/arial.ttf";

open(file, "pos.res"); $b=<file>; close (file);

@mois2 = ('janv','fév','mars','avril','mai','juin','juil','aout','sept','oct','nov','déc');
@mois1 = ('janvier','février','mars','avril','mai','juin','juillet','aout','septembre','octobre','novembre','décembre');
($sec,$min,$heure,$jour,$mois,$annee,$jour2) = (localtime(time))[0,1,2,3,4,5,6];
if ($sec < 10) { $sec = "0".$sec; }
if ($min < 10) { $min = "0".$min; }
if ($heure < 10) { $heure = "0".$heure; }
if ($jour < 10) { $jour = "0".$jour; }
$annee += "1900";

$membre = 0;
$ErrNum = 0;
if ($test == 1) { print("SELECT miniteam,p_jour FROM membre WHERE pos = ".$b."\n"); }
$do = $db->prepare("SELECT miniteam,p_jour FROM membre WHERE pos = ".$b);
$ErrNum = $do->execute() or die $DBI::errstr;
while ($ErrNum >= 0 and my @data = $do->fetchrow_array()) {
  $membre++;
  $tri[$membre] = encode("cp1252", decode("utf8", $data[0]));
  $u[$membre] = $data[1];
  if ($tri[$membre] eq "PPC") { $tri[$membre] = "Presence-PC.com"; }
  if ($tri[$membre] eq "INpact") { $tri[$membre] = "PCinpact.com"; }
  if ($tri[$membre] eq "GNT") { $tri[$membre] = "Generation-NT.com"; }
  if ($tri[$membre] eq "Nokytech") { $tri[$membre] = "Nokytech.net"; }
  if ($tri[$membre] eq "Unite-Video") { $tri[$membre] = "Unite-Video.com"; }
  if ($tri[$membre] eq "Fermiers_Genereux") { $tri[$membre] = "Fermiers Généreux"; }
  if ($tri[$membre] eq "TSLN") { $tri[$membre] = "Tout sur le net"; }
  if ($tri[$membre] eq "Clubic") { $tri[$membre] = "Clubic.com"; }
  if ($tri[$membre] eq "RAH") { $tri[$membre] = "Rhone Alpes Hardware"; }
  if ($tri[$membre] eq "PCinfo") { $tri[$membre] = "PC-Infopratique.com"; }
  if ($tri[$membre] eq "Ancien_Genome") { $tri[$membre] = "Les anciens de Genome"; }
  if ($tri[$membre] eq "PCA") { $tri[$membre] = "PCastuces.com"; }
  if ($tri[$membre] eq "3dChips") { $tri[$membre] = "3dChips-fr.com"; }
  if ($tri[$membre] eq "Cooling-Masters") { $tri[$membre] = "Cooling-Masters.com"; }
  if ($tri[$membre] eq "Zebulon") { $tri[$membre] = "Zebulon.fr"; }
  if ($tri[$membre] eq "AMD-Hardware") { $tri[$membre] = "AMD-Hardware.com"; }
  if ($tri[$membre] eq "KE") { $tri[$membre] = "Knight of Eternity"; }
  if ($tri[$membre] eq "FOUCK") { $tri[$membre] = "Fouck Team"; }
  if ($tri[$membre] eq "DoDFr") { $tri[$membre] = "DoDFrance.com"; }
  if ($tri[$membre] eq "Non associes") { $tri[$membre] = "Non associés"; }
  if ($test == 1) {
    print($membre.": ".$tri[$membre]);
    $tmp = 26-length ($membre.": ".$tri[$membre]);
    print(" " x $tmp);
    print("Point= ".$u[$membre]."\n");
  }
}

if ($test==1) { print ("\nMembre =".$membre."\n\n"); }

my $font_spec = $arial;
my $graph = new GD::Graph::pie( 970, 970 );
$graph->set_title_font($font_spec, 20);
$graph->set_value_font($arial,14);
$graph->set_label_font($arial,6);
my @data1 = ([ @tri ], [ @u ]);

use constant TITLE => "Production des mini-teams, le";
$graph->set( 
    title           => TITLE." ".$jour." ".$mois1[$mois]." ".$annee.".",
#    logo            => 'images/alliance.png',
    dclrs           => ['blue', 'green', 'cyan', 'lblue', 'gold', 'red', 'orange', 'pink', 'marine', 'dyellow', 'lyellow', 'lgreen', 'purple', 'dbrown', 'lpurple', 'dred', 'yellow', 'lred', 'lorange', 'pink', 'white', 'dpink', 'dyellow', 'lyellow', 'orange', 'purple', 'lbrown', 'lgray', 'dgray'],
    font            => gdLargeFont,
    logo_resize     => 0.5,
    logo_position   => 'LR',
    bgclr           => 'white',
    accentclr       => 'black', 
    fgclr           => 'black',
    boxclr          => 'lgray',
    shadowclr       => 'lorange',
    label           => 'Fait par JGP SOLDAT. Maintenu par '.$maintenu.'.',
    axislabelclr    => 'black',
    start_angle     => 60,
    suppress_angle  => 2,
    transparent     => 1,
    r_margin        => 24,
    '3d'            => 1
);

my $gd_image = $graph->plot( \@data1 );
open(OUT, ">$destWWW/graphique5.png") or die "Ne peux pas ouvrir le fichier: ".$!;
binmode (OUT);
print OUT $gd_image->png;
close(OUT);
print("Fermeture du fichier graphique5.png\n");

$db->disconnect();

print("Fin du traitement\n");
exit;
1;
