Beispiel #1
0
function Group_Free_Schedule($group, $beg_date, $end_date, $beg_time, $end_time, $app_times, $days_of_week, $bd)
{
    $beg_month = substr($beg_date, 5, 2);
    $beg_year = substr($beg_date, 0, 4);
    $beg_day = substr($beg_date, 8, 2);
    $end_month = substr($end_date, 5, 2);
    $end_year = substr($end_date, 0, 4);
    $end_day = substr($end_date, 8, 2);
    $u_beg_date = mktime(1, 1, 1, $beg_month, $beg_day, $beg_year);
    $u_end_date = mktime(1, 1, 1, $end_month, $end_day, $end_year);
    $num_days = ($u_end_date - $u_beg_date) / (24 * 60 * 60) + 1;
    $k = 0;
    for ($date = $u_beg_date; $date <= $u_end_date; $date += 24 * 60 * 60) {
        $day = date('d', $date);
        $month = date('m', $date);
        $year = date('Y', $date);
        $w_date = date('w', $date);
        $f_date = date("Y-m-d", $date);
        for ($i = 0; $i < count($app_times) - 1; $i++) {
            $overlap = Group_Check_Appointment_Overlap($group, $day, $month, $year, $i, $i + 1, $bd);
            $overlap_w = Group_Check_Weekly_Appointment_Overlap($group, $w_date, $i, $i + 1, $bd);
            $free = !($overlap || $overlap_w);
            $apps[$k][0] = '';
            $apps[$k][0] = 'common';
            $apps[$k][11] = 0;
            if ($free) {
                $apps[$k][12] = 'free';
            } else {
                $apps[$k][12] = 'notfree';
            }
            $apps[$k][7] = $i;
            $apps[$k][9] = $i + 1;
            $apps[$k][3] = 1;
            $apps[$k][4] = $day;
            $apps[$k][5] = $month;
            $apps[$k][6] = $year;
            $apps[$k][8] = $app_times[$i];
            $apps[$k][10] = $app_times[$i + 1];
            $k++;
        }
    }
    return $apps;
}
 }
 if ($_POST['beg_time'] >= $_POST['end_time']) {
     $error[$num_errors++] = "The ending time must be greater than the beginning time";
 }
 if (User_Validate_Simple_Field($_POST['day'], 2) <= 0 && is_int($_POST['day'])) {
     $error[$num_errors++] = "The day must be informed correctly";
 }
 if (User_Validate_Simple_Field($_POST['year'], 2) <= 0 && is_int($_POST['year'])) {
     $error[$num_errors++] = "The year must be informed correctly";
 } else {
     $max_day = date('t', mktime(0, 0, 0, $_POST['month'], 1, $_POST['year']));
     if ($_POST['day'] > $max_day) {
         $error[$num_errors++] = "Invalid day";
     }
 }
 $check = Group_Check_Appointment_Overlap($group_id, $_POST['day'], $_POST['month'], $_POST['year'], $_POST['beg_time'], $_POST['end_time'], $bd);
 if ($check) {
     $error[$num_errors++] = "One of the members has another appointment within this time span ";
 }
 if (empty($error)) {
     $day_w = date('w', mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']));
     $check = Group_Check_Weekly_Appointment_Overlap($group_id, $day_w, $_POST['beg_time'], $_POST['end_time'], $bd);
     if (!$check) {
         Group_Insert_Appointment($group_id, $_POST['description'], $_POST['type'], $_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day'], $_POST['beg_time'], $_POST['end_time'], $_POST['url'], $account_id, $bd);
         $alert[$num_alerts++] = "Appointment Inserted Successfully";
         if (!$is_pop) {
             include "groups_schedule.php";
             exit;
         } else {
             $result_xsl = "xsl/" . $default_xsl . "/sch_pop_final.xsl";
         }