require_once Environment::getBasePath() . 'includes/Interface.inc.php';
//Debug::setVerbosity( 11 );
if (!$permission->Check('holiday_policy', 'enabled') or !($permission->Check('holiday_policy', 'edit') or $permission->Check('holiday_policy', 'edit_own'))) {
    $permission->Redirect(FALSE);
    //Redirect
}
$smarty->assign('title', TTi18n::gettext($title = 'Edit Holiday'));
// See index.php
/*
 * Get FORM variables
 */
extract(FormVariables::GetVariables(array('action', 'holiday_policy_id', 'id', 'data')));
if (isset($data['date_stamp'])) {
    $data['date_stamp'] = TTDate::parseDateTime($data['date_stamp']);
}
$hf = new HolidayFactory();
$action = Misc::findSubmitButton();
$action = strtolower($action);
switch ($action) {
    case 'submit':
        //Debug::setVerbosity(11);
        Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10);
        $hf->setId($data['id']);
        if (isset($data['holiday_policy_id'])) {
            $hf->setHolidayPolicyId($data['holiday_policy_id']);
        }
        //Set datestamp first.
        $hf->setDateStamp($data['date_stamp']);
        $hf->setName($data['name']);
        if ($hf->isValid()) {
            $hf->Save();
 function createHoliday($company_id, $type, $date, $holiday_policy_id)
 {
     $hf = new HolidayFactory();
     switch ($type) {
         case 10:
             $hf->setHolidayPolicyId($holiday_policy_id);
             $hf->setDateStamp($date);
             $hf->setName('Test1');
             break;
     }
     if ($hf->isValid()) {
         $insert_id = $hf->Save();
         Debug::Text('Holiday ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10);
         return $insert_id;
     }
     Debug::Text('Failed Creating Holiday!', __FILE__, __LINE__, __METHOD__, 10);
     return FALSE;
 }
foreach ($hplf as $hp_obj) {
    //Get all recurring holidays
    $recurring_holiday_ids = $hp_obj->getRecurringHoliday();
    if (is_array($recurring_holiday_ids) and count($recurring_holiday_ids) > 0) {
        Debug::Text('Found Recurring Holidays...', __FILE__, __LINE__, __METHOD__, 10);
        foreach ($recurring_holiday_ids as $recurring_holiday_id) {
            $rhlf = new RecurringHolidayListFactory();
            $rhlf->getById($recurring_holiday_id);
            if ($rhlf->getRecordCount() == 1) {
                $rh_obj = $rhlf->getCurrent();
                Debug::Text('Found Recurring Holiday: ' . $rh_obj->getName(), __FILE__, __LINE__, __METHOD__, 10);
                $next_holiday_date = $rh_obj->getNextDate($epoch);
                Debug::Text('Next Holiday Date: ' . TTDate::getDate('DATE+TIME', $next_holiday_date), __FILE__, __LINE__, __METHOD__, 10);
                if ($next_holiday_date <= $epoch + $offset) {
                    Debug::Text('Next Holiday Date is within Time Period (offset) adding...', __FILE__, __LINE__, __METHOD__, 10);
                    $hf = new HolidayFactory();
                    $hf->setHolidayPolicyId($hp_obj->getId());
                    $hf->setDateStamp($next_holiday_date);
                    $hf->setName($rh_obj->getName());
                    if ($hf->isValid()) {
                        $hf->Save();
                    }
                } else {
                    Debug::Text('Next Holiday Date is NOT within Time Period (offset)!', __FILE__, __LINE__, __METHOD__, 10);
                }
            }
        }
    }
    /*
    $end_date = NULL;