#!/usr/bin/perl -w

use SuperObject;
use clients;
use HTML::Template;
use CGI;
use vars qw($client $typeaction $todomap $reactionmap);


print "Content-type:text/html\n\n";

sub getLineCRM {
    my $act=shift;
    my %strF;
	print STDERR "\n---------\n".$act->{date}."\n---------\n";
	my ($mday,$mon,$year,$hour,$min) =($act->{date}=~m!(..)/(..)/(....) (..):(..)!);  
	#$mon+=1;$year+=1900;
	$strF{url_crm}="../admin/rowView.php?table=action_crm&uid=".$act->{uid};
    $strF{DATE}="$mday/$mon/$year à $hour H $min";
    $strF{INTER}=$act->{intervenant};
    $strF{TYPEACT}=$typeaction->{map}{$act->{typeaction}};
    $strF{COMMENT}=$act->{commentaire};
    $strF{AFAIRE}=$todomap->{map}{$act->{todo_act}};
    $strF{REACTION}=$reactionmap->{map}{$act->{reaction}};

    return \%strF;
}

sub getLineContact {
    my $contact=shift;
    my $f_map=shift;
    my %strF;
    if (defined $f_map->{$contact->{fonction}}) {
		$contact->{fonction}=$f_map->{$contact->{fonction}} ; } 
    else { 
		$contact->{fonction} = "" ;}

	$strF{url_societe}="../lib/getCRM.pl?uid=".$contact->{societe};
	$strF{url_contact}="../admin/rowView.php?table=contact&uid=".$contact->{uid};
    $strF{NOM_SOCIETE}=$client->{map}{$contact->{societe}};
    $strF{NOM}=$contact->{nom}." ".$contact->{prenom};
    $strF{FONCTION}=$contact->{fonction};
    $strF{FONCTION}.=<<EOF;
		  <br>Tel&nbsp;:&nbsp;$contact->{tel}<br>
		  Fax&nbsp;:&nbsp;$contact->{fax}<br>
		  Mail&nbsp;:&nbsp;$contact->{email}<br>
EOF
		
    return \%strF;
}

# -----------------------------------
# ========  INITIALISATIONS :
my $debug=0;
my @todoBag;
my ($id,$uid,$name,$sidebar,$tmplFile,$select,$dateWanted);

my $query=new CGI;

if(( $query->param('h')) || ( $query->param('help'))) 
                        { &usage(); exit 0; }
if ( $query->param('o'))    { $output=$query->param('o'); } else { $output=""; }
if ( $query->param('uid'))  { $uid=$query->param('uid'); }
if ( $query->param('id'))   { $id=$query->param('id'); }
if ( $query->param('name')) { $name=$query->param('name'); }
if ( $query->param('debug')) { $debug=1; }
if ( $query->param('sidebar')) { $sidebar=1; }
if ( $query->param('date')) { $dateWanted=$query->param('date'); }
if ( $query->param('year')) { $dateWanted=$query->param('day').'/'.$query->param('month').'/'.$query->param('year'); }

my ($DBHOST,$DBNAME,$DBUSER,$DBPWD)=qw(localhost pimengest pimengest pimengest);
'SuperObject'->initConnect($DBHOST,$DBNAME,$DBUSER,$DBPWD) || die 'Can t connect !';

$tmplFile="../template/getTODO.html";
$tmplFile="../template/getTODOsidebar.html" if ($sidebar);
my $template=HTML::Template->new(filename=>$tmplFile,die_on_bad_params=>0);

my $actCRM=new action_crm;
my $typeaction=new typeaction;
my $typesociete=new typesociete;
$client=new societe;
my $contact=new contact;
my $fonction=new fonction;
my $intervenant=new intervenant;
$todomap=new todo_act;
$reactionmap=new reaction;

$todomap->map('uid','nom');
$reactionmap->map('uid','nom');
$intervenant->map('uid','nom || \' \' || prenom');
$typeaction->map('uid','nom');
$typesociete->map('uid','nom');
$fonction->map('uid','nom');

# Client ou Societe ?
if (0 && ! exists $client->{$uid}) { # => client
	undef $client;
	$client=new client;
	$client->map('uid','nom');
}

$client->{name}=$client->{name}."*"; # pour rechercher dans les héritant
$client->map('uid','nom');
$client->loadByUid($uid);
# on ré-écrit certains champs :
$client->{typesociete}=$typesociete->{map}{$client->{typesociete}} || '---';
if ($client->{capital} eq '0') { $client->{capital}='----'; }

# ========= FIN INITIALISATION--------
$select=" where date>=date('now') order by date";
if ($dateWanted) {
	$select=" where date(date)=date('$dateWanted')";
}
my @bag_actCRM=@{'action_crm'->Select($select)};

if ($#bag_actCRM>=0) {
    for my $act (@bag_actCRM) {
		$contact->loadByUid($act->{contact});
		$act->{intervenant}=$intervenant->{map}{$act->{intervenant}} || '----';
		my $ref_cont = &getLineContact($contact,$fonction->{map});
		my $ref_act  = &getLineCRM($act,$typeaction->{map});
		for my $key (keys(%$ref_act)) { $ref_cont->{$key}=$ref_act->{$key}; }
		push @todoBag,$ref_cont;
    }
} # ----------- Fin TODO



# Chargement :
$template->param($client);
$template->param(TODO_ACT=>\@todoBag);

# Affichage :
print $template->output();


