<?php

$checkSession = false;
require_once("../includes/library.php");
$today = date('Y-m-d');
$dayRecurr = intval(strftime("%w", mktime()) + 1);
$tmpquery = " WHERE mem.profil <> '" . PF_DISABLED . "'";
$memList = new request();
$memList->openMembers($tmpquery);
$comptMemList = count($memList->mem_id);

for ($i = 0; $i < $comptMemList; $i++) {
    $tmpquery = " WHERE tea.member='" . $memList->mem_id[$i] . "'";
    $teamList = new request();
    $teamList->openTeams($tmpquery);
    $comptTeamList = count($teamList->tea_id);
    $projects = "";

    for ($j = 0; $j < $comptTeamList; $j++) {
        if ($projects != "") {
            $projects .= ", ";
        }

        $projects .= "'" . $teamList->tea_project[$j] . "'";
    }

    if ($projects == "") {
        $tmpquery = " WHERE cal.owner='" . $memList->mem_id[$i] . "' AND cal.reminder='1' AND ((cal.date_start <= '$today' AND cal.date_end >= '$today' AND cal.recurring = '0') OR (cal.date_start <= '$today' AND cal.date_end <= '$today' AND cal.recurring = '1' AND cal.recur_day = '$dayRecurr')) ORDER BY cal.shortname";
    } else {
        $tmpquery = " WHERE cal.reminder='1' AND ((cal.owner='" . $memList->mem_id[$i] . "' AND ((cal.date_start <= '$today' AND cal.date_end >= '$today' AND cal.recurring = '0') OR (cal.date_start <= '$today' AND cal.date_end <= '$today' AND cal.recurring = '1' AND cal.recur_day = '$dayRecurr'))) OR (cal.project IN (" . $projects . ") AND ((cal.date_start <= '$today' AND cal.date_end >= '$today' AND cal.recurring = '0') OR (cal.date_start <= '$today' AND cal.date_end <= '$today' AND cal.recurring = '1' AND cal.recur_day = '$dayRecurr')))) ORDER BY cal.shortname";
    }

    $calendarList = new request();
    $calendarList->openCalendar($tmpquery);
    $comptCalendarList = count($calendarList->cal_id);

    if ($comptCalendarList == 0) continue;

    $mail = new notification();
    $mail->getUserinfo('1', "from");
    $mail->getUserinfo($memList->mem_id[$i], "to");
    $mail->partSubject = lang_strings("noti_todolist6");
    $mail->partMessage = lang_strings("noti_todolist7");
    $mail->openBody();
    $mail->heading(lang_strings("noti_todolist8"));
    $mail->openResults();
    $mail->openRow();
    $mail->cellRow(lang_strings('shortname'));
    $mail->cellRow(lang_strings('subject'));
    $mail->cellRow(lang_strings('date_start'));
    $mail->cellRow(lang_strings('date_end'));
    $mail->closeRow();

    for ($j = 0; $j < $comptCalendarList; $j++) {
        $mail->openRow();
        $mail->cellRow($calendarList->cal_shortname[$j]);
        $mail->cellRow($calendarList->cal_subject[$j]);
        $mail->cellRow($calendarList->cal_date_start[$j]);
        $mail->cellRow($calendarList->cal_date_end[$j]);
        $mail->closeRow();
    }

    $mail->closeResults();
    $mail->closeBody();
    $subject = $mail->partSubject;
    $mail->Subject = $subject;
    $mail->Send();
}

$tmpquery = " WHERE wca.date ='" . $today . "' AND wca.hours='0'";
$holidayList = new request();
$holidayList->openWorkCalendar($tmpquery);
$comptHolidayList = count($holidayList->wca_id);

if ($comptHolidayList != 0) exit;

$tmpquery = " WHERE noti.toDoList='0' AND mem.id not in ('1','2') AND mem.profil in (" . PF_PROJECT_MANAGER . "," . PF_USER . ")";
$memberList = new request();
$memberList->openNotifications($tmpquery);
$comptMemberList = count($memberList->not_mem_id);

for ($i = 0; $i < $comptMemberList; $i++) {
    $tmpquery = " INNER JOIN " . $tableCollab["tasks_resource"] . " res ON res.task=tas.id WHERE res.type='members' AND res.resource='" . $memberList->not_mem_id[$i] . "' AND tas.status IN (" . ST_CLIENT_COMPLETED . "," . ST_NOT_STARTED . "," . ST_OPEN . ") AND tas.start_date<='" . $today . "' AND tas.start_date<>'--' AND tas.due_date>='" . $today . "' ORDER BY tas.priority, tas.due_date";
    $taskList = new request();
    $taskList->openTasks($tmpquery);
    $comptTaskList = count($taskList->tas_id);

    $tmpquery = " INNER JOIN " . $tableCollab["tasks_resource"] . " res ON res.task=tas.id WHERE res.type='members' AND res.resource='" . $memberList->not_mem_id[$i] . "' AND tas.status IN (" . ST_CLIENT_COMPLETED . "," . ST_NOT_STARTED . "," . ST_OPEN . ") AND tas.due_date<'" . $today . "' AND tas.due_date<>'--' ORDER BY tas.priority, tas.due_date";
    $overDueList = new request();
    $overDueList->openTasks($tmpquery);
    $comptOverDueList = count($overDueList->tas_id);

    $tmpquery = " WHERE att.member='" . $memberList->not_mem_id[$i] . "' AND mee.status IN (" . ST_CLIENT_COMPLETED . "," . ST_NOT_STARTED . "," . ST_OPEN . ") AND mee.date='" . $today . "' ORDER BY mee.date, mee.start_time";
    $meetingList = new request();
    $meetingList->openAttendants($tmpquery);
    $comptMeetingList = count($meetingList->att_id);

    if (($comptTaskList == 0)&&($comptOverDueList ==0)&&($comptMeetingList == 0))
        continue;

    $taskListText = "";
    $overDueListText = "";
    $meetingListText = "";
    $mail = new notification();
    $mail->getUserinfo('1', "from");
    $mail->getUserinfo($memberList->not_mem_id[$i], "to");
    $mail->partSubject = lang_strings("noti_todolist1");
    $mail->partMessage = lang_strings("noti_todolist2");
    $mail->openBody();

    if ($comptOverDueList > 0) {
        $mail->heading(lang_strings("noti_todolist3"));
        $mail->openResults();
        $mail->openRow();
        $mail->cellRow(lang_strings('project'));
        $mail->cellRow(lang_strings('task'));
        $mail->cellRow(lang_strings('priority'));
        $mail->cellRow(lang_strings('due_date'));
        $mail->closeRow();

        for ($j = 0; $j < $comptOverDueList; $j++) {
            $mail->openRow();
            $mail->cellRow($overDueList->tas_pro_name[$j]);
            $mail->cellRow($overDueList->tas_name[$j]);
            $mail->cellRow($priority[$overDueList->tas_priority[$j]]);
            $mail->cellRow($overDueList->tas_due_date[$j]);
            $mail->closeRow();
        }

        $mail->closeResults();
    }

    if ($comptTaskList > 0) {
        $mail->heading(lang_strings("noti_todolist4"));
        $mail->openResults();
        $mail->openRow();
        $mail->cellRow(lang_strings('project'));
        $mail->cellRow(lang_strings('task'));
        $mail->cellRow(lang_strings('priority'));
        $mail->cellRow(lang_strings('due_date'));
        $mail->closeRow();

        for ($j = 0; $j < $comptTaskList; $j++) {
            $mail->openRow();
            $mail->cellRow($taskList->tas_pro_name[$j]);
            $mail->cellRow($taskList->tas_name[$j]);
            $mail->cellRow($priority[$taskList->tas_priority[$j]]);
            $mail->cellRow($taskList->tas_due_date[$j]);
            $mail->closeRow();
        }

        $mail->closeResults();
    }

    if ($meetingListText != "") {
        $mail->heading(lang_strings("noti_todolist5"));
        $mail->openResults();
        $mail->openRow();
        $mail->cellRow(lang_strings('project'));
        $mail->cellRow(lang_strings('meeting'));
        $mail->cellRow(lang_strings('me_location'));
        $mail->cellRow(lang_strings('start_time'));
        $mail->cellRow(lang_strings('end_time'));
        $mail->closeRow();

        for ($j = 0; $j < $comptMeetingList; $j++) {
            $mail->openRow();
            $mail->cellRow($meetingList->att_pro_name[$j]);
            $mail->cellRow($meetingList->att_mee_name[$j]);
            $mail->cellRow(html_entity_decode($meetingList->att_mee_location[$j], ENT_QUOTES, $htmlEntityCharset));
            $mail->cellRow($meetingList->att_mee_start_time[$j]);
            $mail->cellRow($meetingList->att_mee_end_time[$j]);
            $mail->closeRow();
        }

        $mail->closeResults();
    }

    $mail->closeBody();
    $subject = $mail->partSubject;
    $mail->Subject = $subject;
    $mail->Send();
}

?>
