function _ordo_init_dayOff(&$smallGeoffrey, $fk_workstation, $time_init, $time_day, $nb_second_in_hour, $velocity)
{
    global $conf;
    $TOff = array();
    $PDOdb = new TPDOdb();
    $ws = new TWorkstation();
    //var_dump($fk_workstation);
    $ws->load($PDOdb, $fk_workstation);
    // TODO function asshole
    $t_start_ordo = strtotime(date('Y-m-d') . ' ' . $conf->global->SCRUM_TIME_ORDO_START, $time_day);
    $t_end_ordo = strtotime(date('Y-m-d') . ' ' . $conf->global->SCRUM_TIME_ORDO_END, $time_day);
    $t_diff = $t_end_ordo - $t_start_ordo;
    // task for past of day
    if (empty($conf->global->SCRUM_TIME_ORDO_START) || empty($conf->global->SCRUM_TIME_ORDO_END)) {
        $height_of_past_day = ($time_init - $time_day) / $nb_second_in_hour;
    } else {
        if ($time_init < $t_start_ordo) {
            $height_of_past_day = 0;
        } else {
            if ($time_init > $t_end_ordo) {
                $height_of_past_day = 86400 / $nb_second_in_hour;
            } else {
                $height_of_past_day = ($time_init - $t_start_ordo) / $t_diff * 86400 / $nb_second_in_hour;
            }
        }
    }
    //var_dump($height_of_past_day, $nb_second_in_hour);exit;
    if ($height_of_past_day > 0) {
        $smallGeoffrey->addBox(0, 0, $height_of_past_day, $ws->nb_ressource);
        $TOff[] = array('top' => 0, 'left' => 0, 'height' => $height_of_past_day, 'nb_ressource' => $ws->nb_ressource, 'class' => 'past', 'title' => $fk_workstation . '. Passé');
    }
    //  var_dump($height_of_past_day,$smallGeoffrey );
    $TDayWeekOff = array();
    foreach ($ws->TWorkstationSchedule as &$sc) {
        if ($sc->nb_ressource == 0) {
            $sc->nb_ressource = $ws->nb_ressource;
        }
        if ($sc->date_off > 0) {
            $TRow = _ordo_ido_get($sc->date_off, $sc->day_moment, $sc->nb_ressource, $time_init, $nb_second_in_hour);
            $TOff[] = $TRow;
            $smallGeoffrey->addBox($TRow['top'], $TRow['left'], $TRow['height'], $TRow['nb_ressource']);
        } else {
            if (!isset($TDayWeekOff[$sc->week_day])) {
                $TDayWeekOff[$sc->week_day] = array('AM' => 0, 'PM' => 0, 'nb_ressource' => 0);
            }
            if ($sc->day_moment == 'AM') {
                $TDayWeekOff[$sc->week_day]['AM'] = 1;
            } else {
                if ($sc->day_moment == 'PM') {
                    $TDayWeekOff[$sc->week_day]['PM'] = 1;
                } else {
                    $TDayWeekOff[$sc->week_day]['AM'] = $TDayWeekOff[$sc->week_day]['PM'] = 1;
                }
            }
            if ($TDayWeekOff[$sc->week_day]['nb_ressource'] < $sc->nb_ressource) {
                $TDayWeekOff[$sc->week_day]['nb_ressource'] = $sc->nb_ressource;
            }
        }
    }
    $t_end_3month = strtotime('+3month', $time_day);
    $t_current = $time_init;
    while ($t_current < $t_end_3month) {
        $dw = (int) date('w', $t_current);
        $TRow = array();
        if (!empty($TDayWeekOff[$dw]['AM']) && !empty($TDayWeekOff[$dw]['PM'])) {
            $TRow = _ordo_ido_get($t_current, 'ALL', $TDayWeekOff[$dw]['nb_ressource'], $time_init, $nb_second_in_hour);
        } else {
            if (!empty($TDayWeekOff[$dw]['AM'])) {
                $TRow = _ordo_ido_get($t_current, 'AM', $TDayWeekOff[$dw]['nb_ressource'], $time_init, $nb_second_in_hour);
            } else {
                if (!empty($TDayWeekOff[$dw]['PM'])) {
                    $TRow = _ordo_ido_get($t_current, 'PM', $TDayWeekOff[$dw]['nb_ressource'], $time_init, $nb_second_in_hour);
                }
            }
        }
        if (!empty($TRow)) {
            $TOff[] = $TRow;
            $smallGeoffrey->addBox($TRow['top'], $TRow['left'], $TRow['height'], $TRow['nb_ressource']);
        }
        $t_current = strtotime('+1day', $t_current);
    }
    //if(!empty($TPlanned)) $TFree = _ordo_gnc_get_free_place($TPlanned, $ws->nb_ressource,true);
    $PDOdb->close();
    return $TOff;
}
function _stat_wd(&$PDOdb, $id_ws, $tDeb, $tFin)
{
    $ws = new TWorkstation();
    $ws->load($PDOdb, $id_ws);
    $TData = _get_data_ws($PDOdb, $id_ws, $tDeb, $tFin, $ws->nb_ressource);
    // var_dump($TData);
    ?>
    <table class="border" style="margin-top:20px;width:100%;">
        <tr>
            <td><?php 
    echo $ws->getNomUrl(1) . ' du ' . date('d/m/Y', $tDeb) . ' au ' . date('d/m/Y', $tFin);
    ?>
</td>
        </tr>
        <tr>
            <td>
                <?php 
    $l = new TListviewTBS('stat_ws_' . $id_ws);
    echo $l->renderArray($PDOdb, $TData, array('type' => 'chart', 'chartType' => 'AreaChart'));
    ?>
</td>
        </tr>
        
    </table>
   
    <?php 
}
function _stat_wd(&$PDOdb, $id_ws, $tDeb, $tFin)
{
    $ws = new TWorkstation();
    $ws->load($PDOdb, $id_ws);
    $TData = _get_data_ws($PDOdb, $id_ws, $tDeb, $tFin, $ws->nb_ressource);
    ?>
    <table class="border" style="margin-top:20px;width:100%;">
        <tr>
            <td><?php 
    echo $ws->getNomUrl(1) . ' du ' . date('d/m/Y', $tDeb) . ' au ' . date('d/m/Y', $tFin);
    ?>
</td>
        </tr>
        <tr>
            <td>
                <div id="stat-ws-<?php 
    echo $id_ws;
    ?>
"></div>
                <?php 
    $d = new TReport_dashboard();
    $d->format = 'area';
    $d->getChart('stat-ws-' . $id_ws, false, '', $TData);
    ?>
</td>
        </tr>
        
    </table>
   
    <?php 
}
 function load(&$PDOdb, $id, $loadChild = true)
 {
     parent::load($PDOdb, $id);
     $this->libelle = $this->name;
 }