<?php

// ./src/ca_srdv.php?conseiller=0&choice=0&civ=&nom=ZZ&prenom=UUZD&ENTITY=1&IDA=00100_PBMI0Pc
// ./src/ca_srdv.php?conseiller=0&choice=2&civ=&nom=T&prenom=&ENTITY=1&IDA=00100_PBMI0Pc
require '../../inc/PHPMailerAutoload.php';
include ('../../inc/confNetisse.php');

if(isset($_GET['IDA'])) {

    //$mail = new PHPMailer();

    $start = date('H:i:s');
    $IDA = $_GET['IDA'];

    $afa  = (isset($GLOBALS["BO_CONF"]["AFA"]) && $GLOBALS["BO_CONF"]["AFA"]) ? true : false;
    $guichets  = (isset($GLOBALS["BO_CONF"]["GUICHETS"]) && $GLOBALS["BO_CONF"]["GUICHETS"]) ? true : false;

    $rdv = isset($_GET['choice']) ? $_GET['choice'] : 0;

    $civ = "";
    if (isset($_GET['civ'])) $civ = $_GET['civ'];
    $nom = "";
    $prenom = "";
    if (isset($_GET['nom'])) $nom = $_GET['nom'];
    if (isset($_GET['prenom'])) $prenom = $_GET['prenom'];
    if($rdv == 5){
        $nom = "-";
        $prenom = "-";
    }
    $add_client = ($rdv != 3 && $rdv != 4) ? true : false;
    if($add_client){
        $company = "";
        if (isset($_GET['company'])) $company = $_GET['company'];
        $NFCPROV = 0;
        if (isset($_GET['nfcprov'])) $NFCPROV = $_GET['nfcprov'];
        $meeting = ($choice == 2) ? 1 : 0;

        $CLIENT = 0;
        if (isset($_GET['client'])) $CLIENT = $_GET['client'];

        $action = "";
        if (isset($_GET['action'])) $action = $_GET['action'];

        $action = $action ? json_decode($action) : false;

        $IDBORNE = 0;
        if (isset($_GET['IDBORNE'])) $IDBORNE = $_GET['IDBORNE'];
        $ENTITY = 0;
        if ($GLOBALS["BO_CONF"]["ENTITIES"] && isset($_GET['ENTITY']) && $_GET['ENTITY'] != 'undefined') $ENTITY = $_GET['ENTITY'];

        $IDMOTIF = 0;
        if (isset($_GET['motif'])) $IDMOTIF = $_GET['motif'];
        $PHONE = "";
        if (isset($_GET['phone'])) $PHONE = $_GET['phone'];

        $MOTIFS = ($GLOBALS["BORNE_CONF"]["MULTIPLEMOTIFS"])?explode(",", $IDMOTIF):array($IDMOTIF);

        $afaQ = $afa ? ", is_afa" : "";
        $q = "SELECT id_agence, type_agence".$afaQ." FROM ca_agences WHERE code_agence=:code_agence and supp=:supp ";
        $values = array(':code_agence' => $IDA, ':supp' => 0);
        $result = excuteQuery($q, $values);
        $r = $result['stmt'];
        $o = $r->fetchObject();
        $agence = $o->id_agence;
        $type = $o->type_agence;
        $is_afa = $afa ? $o->is_afa : 0;

        $objetVenue = "";

        $companyQ = $companyV = "";
        $valuesInsert = array();
        if($GLOBALS["BO_CONF"]["CLIENT"]["company"]){
            $companyQ = ", company";
            $companyV = ', :company';
                $valuesInsert['company']=$company;
        }
        $clientQ = $clientV = "";
        if($GLOBALS["BORNE_CONF"]["CLIENT_TYPE"]){
            $clientQ = ", client";
            $clientV = ', :client';
                $valuesInsert['client']=$CLIENT;
        }
        $accompanyingPersons = array();
        if (isset($_GET['accompanyingPersons'])) $accompanyingPersons = json_decode($_GET['accompanyingPersons']);
        $phoneQ = $phoneV = "";
        if($GLOBALS["BORNE_CONF"]["FIELDS"]["PHONE"] && $GLOBALS["BORNE_CONF"]["FIELDS"]["PHONE"]["ENABLED"]){
            $phoneQ = ", telephone";
            $phoneV = ', :telephone';
                $valuesInsert['telephone']=$PHONE;
        }
        $ticket = 0;
        // PCZ : GESTION DU DECALAGE HORAIRE :
        $dt = date('Y-m-d H:i:s');
        if (in_array($IDA, $GLOBALS["changeTimezone"])){
            $dt = changeTimeMG($dt);
        }
        else{
        	$dtf = new DateTime($dt, new DateTimeZone('Europe/Paris'));
        	$dtf->setTimezone(new DateTimeZone('Europe/Paris'));
        	$dt = $dtf->format('Y-m-d H:i:s');
        }



        // SEARCH IF SAME CLIENT EXISTS
        $qSearch = "SELECT id_client FROM ca_clients WHERE rdv = :rdv AND id_agence = :id_agence AND civ=:civ AND nom = :nom AND prenom=:prenom AND date_arrivee BETWEEN NOW() - INTERVAL 1 HOUR AND NOW()";
        $valuesSearch = array('id_agence'=>$agence, 'rdv'=>"0", 'civ'=>$civ, 'nom'=>$nom, 'prenom'=>$prenom);
        $rSearch = excuteQuery($qSearch, $valuesSearch);
        if (!$rSearch['status']) 
            wts_die (var_dump($rSearch['stmt']->errorInfo()));
        $clientCount = $rSearch['stmt']->rowCount();

        if($clientCount>0){
        	echo json_encode(array("status"=>false));
        	exit;
        }


        if($GLOBALS["BO_CONF"]["GUICHETS"]){
            $r =excuteQuery("SELECT MAX(ticket) FROM ca_clients WHERE id_agence=".$agence." AND DATE(date_arrivee) = DATE(now())");
            $ticket = (int)$r['stmt']->fetch()[0];
            $ticket++;

            $guichet = false;
            if($type == 3){ // CE
                $r = excuteQuery("SELECT numero, gm.id_guichet as id FROM ca_guichet_motifs gm LEFT JOIN ca_guichets g ON g.id_guichet = gm.id_guichet WHERE gm.id_agence=".$agence." AND gm.id_motif = ".$MOTIFS[0]." ORDER BY gm.id_guichet ASC LIMIT 1");
                if ($r['status'])
                    $guichet = $r['stmt']->fetchObject();
            }
        }

        if($choice == 0 && $is_afa && $action && $action->is_motif == "0"){
            $message = $action->message ? $action->message : "";
            $phone_number = $action->phone_number ? $action->phone_number : "";
            $q = 'INSERT INTO ca_pile_cc (`id_client_cc`, `id_agence`, `date_arrivee`, `date_priseencharge`, `id_action`, `id_cc`, `entite`, `civ`, `nom`, `prenom`, `nfcprov`, `message`, `phone`, `id_motif`) VALUES 
            (:id_client_cc, :id_agence, :date_arrivee, :date_priseencharge, :id_action, :id_cc, :entite, :civ, :nom, :prenom, :nfcprov, :message, :phone, :id_motif) '; 
                $valuesQ = array(':id_client_cc'=>NULL, ':id_agence'=>$agence, ':date_arrivee'=>$dt, ':date_priseencharge'=>"0000-00-00 00:00:00", ':id_action'=>$action->id, ':id_cc'=>"0", ':entite'=>$ENTITY, ':civ'=>$civ, ':nom'=>$nom, ':prenom'=>$prenom, ':nfcprov'=>$NFCPROV, ':message'=>$message, ':phone'=>$phone_number, ':id_motif'=>$IDMOTIF);
                $r = excuteQuery($q, $valuesQ);
                if (!$r['status']) 
                   wts_die (show_error($r['stmt']->errorInfo()));
        }
        else{   
            $rdv_type = ($is_afa && $action && $action->is_motif == "1") ? $action->id : "0"; // ACTION ID
            $ticketQ = $GLOBALS["BO_CONF"]["GUICHETS"] ? ",ticket" : "";
                
            $ticketQ .= $guichet ? ",guichet" : "";
            $ticketV = $GLOBALS["BO_CONF"]["GUICHETS"] ? ", :ticket" : "";
            $ticketV .= $guichet ? ", :guichet" : "";
                
                $ticketQ = "";
                $ticketV = "";
                if($GLOBALS["BO_CONF"]["GUICHETS"]){
                  $ticketQ = ",ticket" ;
                  $ticketV = ", :ticket" ;
                  $valuesInsert[':ticket']=$ticket;
                }
                if($guichet){
                  $ticketQ .= ",guichet" ;
                  $ticketV .= ", :guichet" ;
                  $valuesInsert[':guichet']=$guichet->id;
                }
            
                $qInsert = 'INSERT INTO ca_clients (id_client, id_agence, date_arrivee, date_priseencharge, date_cloture, rdv, rdv_type, id_conseiller, entite, nbr, civ, nom, prenom, nfcprov, id_borne'.$companyQ.$clientQ.$ticketQ.$phoneQ.') '
                . 'VALUES (:id_client, :id_agence, :date_arrivee, :date_priseencharge, :date_cloture, :rdv, :rdv_type, :id_conseiller, :entite, :nbr, :civ, :nom, :prenom, :nfcprov, :id_borne'.$companyV.$clientV.$ticketV.$phoneV. ')';

                $valuesInsert = array_merge($valuesInsert, array(':id_client'=>NULL, ':id_agence'=>$agence, ':date_arrivee'=>$dt,':date_priseencharge'=>'0000-00-00 00:00:00', ':date_cloture'=>'0000-00-00 00:00:00', ':rdv'=>$rdv, ':rdv_type'=>intval($partpro), ':id_conseiller'=>intval($conseiller), ':entite'=>$ENTITY, ':nbr'=>'0', ':civ'=>$civ, ':nom'=>$nom, ':prenom'=>$prenom, ':nfcprov'=>$NFCPROV, ':id_borne'=>$IDBORNE));
                $rInsert = excuteQuery($qInsert, $valuesInsert);
                if (!$rInsert['status']) 
                    wts_die (show_error($rInsert['stmt']->errorInfo()));

                $id=$GLOBALS["cnx"]->lastInsertId();
        }

        $afa_motifs = (isset($GLOBALS["BO_CONF"]["AFA_MOTIFS"]) && $GLOBALS["BO_CONF"]["AFA_MOTIFS"]) ? true : false;

        if($choice == 0 && (!$action || $afa_motifs) && $rdv == 0){ // sans RDV
            foreach($MOTIFS as $IDMOTIF){
                $q = 'INSERT INTO ca_client_motifs (id_client,id_motif) values ('.$id.','.$IDMOTIF.')';
                $r = excuteQuery($q);
                if (!$r['status']) 
                            wts_die (show_error($r['stmt']->errorInfo()));
            }
        }
        if($accompanyingPersons){
            foreach($accompanyingPersons as $accompanyingPerson){
                    $valuesInsert = array();
                        if($GLOBALS["BO_CONF"]["CLIENT"]["company"]){
                            $companyQ = ", company";
                            $companyA = ', :company';
                            $valuesInsert['company']=(',"'.$accompanyingPerson->company).'"';
                        }
                $q = 'INSERT INTO ca_accompanying_persons (id_client, civ, nom, prenom'.$companyQ.') VALUES '
                        . '(:id_client, :civ, :nom, :prenom'.$companyA.')'; 
                        
                        $valuesInsert += array(':id_client'=>$id, ':civ'=>$accompanyingPerson->civilite, ':nom'=>$accompanyingPerson->firstname, ':prenom'=>$accompanyingPerson->lastname);
                        $r = excuteQuery($q, $valuesInsert);
                        if (!$r['status']) 
                            wts_die (show_error($r['stmt']->errorInfo()));
                        
                        
                }
        }


        if(!$action){
            $q = "SELECT count(*) as total FROM ca_clients WHERE DATEDIFF(date_arrivee,now())=0 AND id_agence=".$agence." ORDER BY id_client";
            $r = excuteQuery($q);
                        if (!$r['status']) 
                            wts_die (show_error($r['stmt']->errorInfo()));
            while($o = $r['stmt']->fetch(PDO::FETCH_OBJ)){
                    $total=$o->total;
            }
            
            $q = "UPDATE ca_clients SET nbr=".$total." WHERE id_client =".$id;
            $r = excuteQuery($q);
                        if (!$r['status']) 
                            wts_die (show_error($r['stmt']->errorInfo()));
        }

        $return = array("status"=>true);
        $return["ticket"] = $ticket;
        $return["guichet"] = $guichet->numero;
        echo json_encode($return);
    }else{
        echo json_encode(array("status"=>true, "message" => "no visit added to stats"));
    }

} else {    
    echo json_encode(array("status"=>false));
    // echo "<html><head><style type=\"text/css\">body {font-family:Arial,sans-serif;font-size:14px;color:#000;}</style></head><body><center><img src=\"images/ca_logo.jpg\" width=\"110\" height=\"90\" alt=\"Credit Agricole\" title=\"Credit Agricole\"/><br/><br/>L'adresse de cette page n'est pas correcte.<br/>Contactez le Service informatique de votre caisse.</center></body></html>";
}
?>