shell bypass 403
UnknownSec Shell
:
/
home
/
delvin
/
dev.delv-in.com
/
includes
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
class_lib.php
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; /* * Libary of form object classes */ // This class builds a select form object of numerical values class SelectObjNum{ var $objName; var $value1; //starting value var $value2; //ending value var $increment; var $new_value; //selected value var $selectObject; var $ordinal_suffix; //Y or N var $javascript; // ie: onchange = 'submit(this)' var $style; // to apply a css style to the object public function __construct($objName, $value1, $value2, $increment, $value, $ordinal_suffix, $nullValue, $javascript, $formName, $style){ $this->objName = $objName; $this->value1 = $value1; $this->value2 = $value2; $this->increment = $increment; $this->new_value = $value; $this->ordinal_suffix = $ordinal_suffix; $this->selectObject = " <select name='".$this->objName."' id='".$this->objName."' ".$javascript; if ($this->style != ''){ $this->selectObject .= " class='".$this->style."' "; } $this->selectObject .= "> <option value=''>" . $nullValue ."</option>"; if ($this->value1 <= $this->value1){ for ($i = $value1; $i <= $value2; $i = $i + $increment){ $this->selectObject .= " <option value='$i'"; if ($i == $this->new_value){ $this->selectObject .= " selected"; } $this->selectObject .= ">".$i; if ($this->ordinal_suffix == 'Y'){ $tempDateTS = strtotime("May ".$i.", 2016"); $ord_suff = date("S", $tempDateTS); $this->selectObject .= $ord_suff; } $this->selectObject .= "</option>"; } } else if ($this->value1 > $this->value2){ for ($i = $value1; $i >= $value2; $i = $i - $increment){ $this->selectObject .= " <option value='$i'"; if ($i == $this->new_value){ $this->selectObject .= " selected"; } $this->selectObject .= ">".$i; if ($this->ordinal_suffix == 'Y'){ $tempDateTS = strtotime("May ".$i.", 2016"); $ord_suff = date("S", $tempDateTS); $this->selectObject .= $ord_suff; } $this->selectObject .= "</option>"; } } $this->selectObject .= " </select>"; echo $this->selectObject; } } // for non-numerical values, this class builds a form select object from Array values class SelectObjArr{ var $selectObject; var $javascript; //ie. onchange='submit(this.form)' public function __construct($objName, $valuesArr, $selected, $nullValue, $multiple, $javascript, $formName, $style){ $this->selectObject = " <select "; if ($multiple != ''){ $this->selectObject .= "name='".$objName."[]' id='".$objName."[]' multiple "; } else { $this->selectObject .= "name='".$objName."' id='".$objName."' "; } if ($style != ''){ $this->selectObject .= "class='".$style."' "; } $this->selectObject .= " ".$javascript."> <option value=''>".$nullValue."</option>"; if (count($valuesArr) > 0){ foreach ($valuesArr as $key => $value){ $this->selectObject .= " <option value='".$key."'"; if (is_array($selected)){ if (in_array($key, $selected)){ $this->selectObject .= ' selected'; } } else { if ($key == $selected){ $this->selectObject .= " selected"; } } $this->selectObject .= ">".$value."</option>"; } } $this->selectObject .= " </select> "; echo $this->selectObject; } } // builds a select object for selecting a month. // option is the corresponding integer class Select_month { var $monthSelect; //== the select object output from the method //F=January, M=Jan public function __construct($objName, $F_or_M, $month, $nullValue, $javascript, $formName, $style){ $Parse_Lang = new Parse_Lang; if (isset($_SESSION['prefLang']) && $_SESSION['prefLang'] != 'En' && $_SESSION['prefLang'] != ''){ $lang_arr = $Parse_Lang->get_alt_lang($_SESSION['prefLang'], 'months'.$F_or_M); } else { $lang_arr = $Parse_Lang->get_en('months'.$F_or_M); } $this->monthSelect = " <select name='".$objName."' id='".$objName."'"; if ($style != ''){ $this->monthSelect .= " class='".$style."' "; } $this->monthSelect .= $javascript."> <option value=''>".$nullValue."</option>"; $m = 1; foreach($lang_arr as $key => $value){ $this->monthSelect.= " <option value='".$m."'"; if ($month == $m){ $this->monthSelect.=" selected"; } $this->monthSelect.= ">".$value."</option>"; $m++; } $this->monthSelect.= " </select>"; echo $this->monthSelect; } } class Select_date{ var $dateSelect; //==the select object output from the method public function __construct($objName, $date, $nullValue, $javascript, $formName, $style){ $this->dateSelect = " <select name='".$objName."' id='".$objName."'"; if ($style != ''){ $this->dateSelect .= " class='".$style."' "; } $this->dateSelect .= $javascript."> <option value=''>".$nullValue."</option>"; for ($i=1; $i<=31; $i++){ $this->dateSelect .= " <option value='".$i."'"; if ($i == $date){ $this->dateSelect .= " selected"; } $this->dateSelect .= ">".$i."</option>"; } $this->dateSelect .= " </select>"; echo $this->dateSelect; } } class Select_year{ var $yearSelect; //=== the select object output from the method public function __construct($objName, $y1, $y2, $year, $nullValue, $javascript, $formName, $style){ $this->yearSelect = " <select name='".$objName."' id='".$objName."'"; if ($style != ''){ $this->yearSelect .= " class='".$style."' "; } $this->yearSelect .= $javascript."> <option value=''>".$nullValue."</option>"; if ($y1 <= $y2){ for($i = $y1; $i <= $y2; $i++){ $this->yearSelect .= " <option value='".$i."'"; if ($i == $year){ $this->yearSelect .= " selected"; } $this->yearSelect .= ">".$i."</option>"; } } else { for($i = $y1; $i >= $y2; $i--){ $this->yearSelect .= " <option value='".$i."'"; if ($i == $year){ $this->yearSelect .= " selected"; } $this->yearSelect .= ">".$i."</option>"; } } $this->yearSelect .= " </select>"; echo $this->yearSelect; } } class Select_hours{ var $hourSelect; public function __construct($objName, $tFormat, $hour, $nullValue, $javascript, $formName, $class){ if ($tFormat == 'g'){ $n = 12; } else { $n = 24; } $this->hourSelect = " <select name='".$objName."' id='".$objName."' ".$javascript." "; if ($class != ''){ $this->hourSelect .= "class='".$class."'"; } $this->hourSelect .= "> <option value=''>".$nullValue."</option>"; for($i=1; $i <= $n; $i++){ $this->hourSelect .= " <option value='".$i."'"; if ($hour == $i){ $this->hourSelect .= " selected"; } $this->hourSelect .= ">".$i."</option>"; } $this->hourSelect .= " </select>"; } public function get_Select_hours(){ return $this->hourSelect; } } class Select_minutes{ var $minSelect; public function __construct($objName, $incr, $min, $nullValue, $javascript, $formName, $class){ $this->minSelect = " <select name='".$objName."' id='".$objName."' ".$javascript." "; if ($class != ''){ $this->minSelect .= "class='".$class."'"; } $this->minSelect .= "> <option value=''>".$nullValue."</option>"; for ($i=0; $i <= 59; $i = $i + $incr){ $this->minSelect .= " <option value='". str_pad($i,2,'0',STR_PAD_LEFT)."'"; if ($min == $i && $min != ''){ $this->minSelect .= " selected"; } $this->minSelect .= ">". str_pad($i,2,'0',STR_PAD_LEFT)."</option>"; } $this->minSelect .= " </select>"; } public function get_Select_minutes(){ return $this->minSelect; } } class Select_AMPM { var $ampmSelect; public function __construct($objName, $AMPM, $nullValue, $javascript, $formName, $class){ $this->ampmArr = array("AM", "PM"); $this->ampmSelect = " <select name='".$objName."' id='".$objName."' ".$javascript." "; if ($class != ''){ $this->ampmSelect .= "class='".$class."'"; } $this->ampmSelect .= "> <option value=''>".$nullValue."</option>"; foreach ($this->ampmArr as $value){ $this->ampmSelect .= " <option value='".$value."'"; if ($AMPM == $value && $AMPM != ''){ $this->ampmSelect .= " selected"; } $this->ampmSelect .= ">".$value."</option>"; } $this->ampmSelect .= " </select>"; } public function get_Select_AMPM(){ return $this->ampmSelect; } } class Select_Empl_Status { public function __construct($options_arr, $f_empl_status, $style, $javascript){ $this->selectObject = " <select name='f_empl_status' id='f_empl_status' "; if ($style != ''){ $this->selectObject .= "class='".$style."' "; } $this->selectObject .= $javascript.">"; foreach ($options_arr as $key => $value){ $this->selectObject .= " <option value='".$key."'"; if ($f_empl_status == $key){ $this->selectObject .= " selected"; } $this->selectObject .= ">".$value."</option>"; } $this->selectObject .= " </select> "; echo $this->selectObject; } } class Parse_Options_Array { public function __construct($option){ $content = file_get_contents('includes/'.$option.'_options.txt'); $content_arr = explode("\n", $content); // echo __line__.": " . $content . "<br>"; if (file_exists('views/lang/en/'.$option.".txt")){ $Parse_Lang = new Parse_Lang; if ($_SESSION['lang'] != 'en' && $_SESSION['lang'] != ''){ $lang_arr = $Parse_Lang->get_alt_lang($_SESSION['lang'], $option); } else { $lang_arr = $Parse_Lang->get_en($option); } foreach ($content_arr as $key => $value){ $k = substr($value, 0, strpos($value, " = ")); $v = substr($value, strpos($value, " = ") + 3); $this->result[str_replace(' ', '_', $k)] = $lang_arr[$v]; } } else { foreach ($content_arr as $key => $value){ $k = substr($value, 0, strpos($value, " = ")); $v = substr($value, strpos($value, " = ") + 3); $this->result[str_replace(' ', '_', $k)] = $v; } } $this->result = array_filter($this->result); } public function get(){ return $this->result; } } class Parse_Lang{ public function get_alt_lang($lang_code, $page){ if ($lang_code != 'En'){ $data = array(); $this->page = $page; $lang = file_get_contents('views/lang/'.$lang_code."/".$page.".txt"); $lang_arr = explode("\n", $lang); foreach ($lang_arr as $key => $value){ $k = substr($value, 0, strpos($value, " = ")); $v = substr($value, strpos($value, " = ") + 3); $lang_arr[$k] = $v; unset($lang_arr[$key]); } return $lang_arr; } } public function get_en($page){ $lang = file_get_contents('views/lang/En/'.$page.".txt"); // $lang = str_replace($search_arr, $replace_arr, $lang); $lang_arr = explode("\n", $lang); foreach ($lang_arr as $key => $value){ $lang_arr[$value] = $value; unset($lang_arr[$key]); } return $lang_arr; } } class selectDateRange { public function __construct($f_startTS, $f_endTS, $minTS, $maxTS, $passed_params, $formName){ $month = date('n', $f_startTS); $date = date('j', $f_startTS); $year = date('Y', $f_startTS); $month2 = date('n', $f_endTS); $date2 = date('j', $f_endTS); $year2 = date('Y', $f_endTS); /* BUTTON TAG IS BELOW. JAVASCRIPT FUNCTION IS IN HEADER <input type='button' value='". $_POST['f_start'] . ' - ' . $_POST['f_end'] . "' class='btn btn-edit' onclick='toggle_date_div()'> */ echo " <!-- BEGINNING OF DATE SELECTOR --> <div class='set_date_range' id='set_date_range' style='display:none;'> <div class='col-12'> <div class='col75'> <h2>Display data for:</h2> </div> <div class='col25 right'> <input type='button' value='X' class='btn btn-cancel' onclick='toggle_date_div()'> </div> </div> <div class='col-12 reminder'> <form action='' method='post' name='date_form'>"; foreach ($passed_params as $paramName => $param){ echo "<input type='hidden' name='". $paramName ."' value='" . $param ."'> "; } echo " <div class='col-10'>The month of: "; $Select_month = new Select_month('f_month', 'F', $month, "[month]", "", 'date_form', 'w30'); echo " "; $Select_year = new Select_year('f_year', date('Y', $maxTS), date('Y', $minTS), $year, "[year]", "", 'date_form', 'w30'); echo " </div> <div class='col-2 right'> <input type='submit' name='submitBut' value='GO' class='btn btn_go'> </div> </form> </div> <div class='col-12 centre'> <h2>or</h2> </div> <div class='col-12 reminder'> <form action='' method='post' name='date_form'>"; foreach ($passed_params as $paramName => $param){ echo "<input type='hidden' name='". $paramName ."' value='" . $param ."'> "; } echo " <div class='col-10'>The year: "; $Select_year = new Select_year('f_year', date('Y', $maxTS), date('Y', $minTS), $year, "[year]", "", 'date_form', 'w30'); echo " </div> <div class='col-2 right'> <input type='submit' name='submitBut' value='GO' class='btn btn_go'> </div> </form> </div> <div class='col-12 centre'> <h2>or</h2> </div> <div class='col-12 reminder'>Set custom date range: <br> <form action='' method='post' name='date_form'>"; foreach ($passed_params as $paramName => $param){ echo "<input type='hidden' name='". $paramName ."' value='" . $param ."'> "; } echo " <div class='col40 centre'>"; $Select_month = new Select_month('f_month', 'M', $month, "[month]", "", 'date_form', 'w60px'); echo " "; $Select_date = new Select_date('f_date', $date, '[date]', '', 'date_form', 'w45px'); echo " "; $Select_year = new Select_year('f_year', date('Y', $maxTS), date('Y', $minTS), $year, "[year]", "", 'date_form', 'w30'); echo " </div> <div class='col10 centre'> to </div> <div class='col40 centre'>"; $Select_month = new Select_month('f_month2', 'M', $month2, "[month]", "", 'date_form', 'w60px'); echo " "; $Select_date = new Select_date('f_date2', $date2, '[date]', '', 'date_form', 'w45px'); echo " "; $Select_year = new Select_year('f_year2', date('Y', $maxTS), date('Y', $minTS), $year2, "[year]", "", 'date_form', 'w30'); echo " </div> <div class='col10 right'> <input type='submit' name='submitBut' value='GO' class='btn btn_go'> </div> </form> </div> </div><!-- END OF DATE SELECTOR -->"; } } /* converts 12 hour time to 12 hour time param str 4 digit 24 hour time param str Y (optional) */ class Time24to12{ var $time; // time in 24 hour format to be converted public function __construct($time, $showAP){ $this->time12 = ''; $hr = substr($time,0,2); $min = substr($time,2,2); if ($hr >= 12){ $AP = 'PM'; } else { $AP = 'AM'; } if (substr($time,0,2) == '00'){ $hr = 12; } else if (substr($time,0,1) == '0'){ $hr = substr($time,0,2); } if ($hr > 12){ $hr = $hr - 12; } else if ($hr == '00'){ $hr = 12; } else if (substr($hr, 0, 1) == '0'){ $hr = substr($hr, 1, 1); } if ($hr != '' && $min != ''){ $this->time12 = $hr.":".$min; if($showAP != ''){ $this->time12 .= " ".$AP; } } } public function get_time12(){ return $this->time12; } } /* convert time represented in decimals to hours:minutes param float return string */ class Float2HHMM { var $time; // time in decimal form to be converted var $HM; public function __construct($time){ if ($time > 0 && $time != ''){ // $time = number_format($time,2,'.',''); $H = floor($time); $M = ($time - $H)*60; $HM = $H . ":" . str_pad(round($M), 2, '0', STR_PAD_LEFT); $this->HM = $HM; } else { $this->HM = '0:00'; } } public function putHM(){ return $this->HM; } } /* convert time represented in Hours:Minutes to decimal */ class HHMM2Float { var $time; var $HM; public function __construct($HM){ $this->time = ''; if (strlen($HM) >= 4){ $H = substr($HM,0, strpos($HM, ':')); $M = substr($HM, strpos($HM, ':')+1); $dec = number_format(($M / 60),2); $this->time = $H + $dec; } } public function putTime(){ return $this->time; } } /* returns arrays of pay periods for each year */ class Pay_Periods{ public function __construct(){ // $pay_period is either semi-monthly or bi-weekly // for bi-weekly: $cutoff is the number of days prior to payday when the pay period ends // for semi-montly: $cutoff is the date of the month that the payperiod ends // $activeTS is the first day the practice became active in DELVIN (start date) $Pr_Pay_Periods = new Pr_Pay_Periods; $ppArr = $Pr_Pay_Periods->get_all($_SESSION['PID'], 'effectiveTS'); // echo __LINE__.": class_lib: " . $_SESSION['PID'] . "<pre>"; print_r($ppArr); echo "</pre>"; // echo __line__.": effective=" . date('his M j, Y', $ppArr[0]['effectiveTS']) . "<br>"; foreach ($ppArr as $k => $row){ $pay_period = $row['pay_period']; $cutoff = $row['cutoff']; if ($row['payWeekDay'] > date('w', $row['effectiveTS'])){ $days = $row['payWeekDay'] - date('w', $row['effectiveTS']); } else { $days = $row['payWeekDay'] + 7 - date('w', $row['effectiveTS']); } $paydayTS = strtotime(date('F j, Y', $row['payDay1TS'])); // echo __line__.": 1st payday =" . date('hi M j, Y', $paydayTS) ."<br>"; if ($pay_period == 'bi-weekly' || $pay_period == 'weekly'){ $numDays = 14; if ($pay_period == 'weekly'){ $numDays = 7; } if ($row['expireTS'] == 0){ $expireTS = strtotime("today + " . ceil($numDays / 3) . " weeks"); } else { $expireTS = $row['expireTS']; } $effectiveTS = strtotime(date('M j, Y', $row['effectiveTS'])); // echo __LINE__.": effective=" . date('Hi a D M j/y', $effectiveTS) ." - expire=". date('Hi a D M j/y', $expireTS) ."<br>"; $this->ppYears_arr = array(); for ($t=$effectiveTS; $t<= $expireTS + (60 * 60) ; $t+=(60 * 60 * 24 * $numDays)){ $payday = date('D M j/y', $paydayTS); // echo __line__.": effective=" . date('Hi a D M j/Y', $t) . " - payday = " . date('Hi a D M j/Y', $paydayTS) . "<br>"; if (!isset($_SESSION['ppKey']) || $k != $_SESSION['ppKey']){ // the pay period was changed -- set new pay period start to effective date of the new policy $pp_startTS = $effectiveTS; $pp_endTS = $paydayTS - 60*60*24 * $row['cutoff']; $_SESSION['ppKey'] = $k; } else { $pp_endTS = $paydayTS - 60*60*24 * $row['cutoff']; $pp_startTS = $pp_endTS - 60*60*24 * $numDays; } $pp_endTS -= 1; // echo __LINE__.": pp_end=" . date('His D M j, Y', $pp_endTS)." - " . date('His D M j, Y', $paydayTS - (60*60*24 * $row['cutoff']) - (60*60*24*14) - 1) . "<br>"; // check for change in DST during pay period // echo __LINE__.": " . date('His M j/y', $pp_startTS)." - " . date('I', $pp_startTS) . " && " . date('His M j/y', $pp_endTS) ." - " . date('I', $pp_endTS) . " | ". date('His', $paydayTS) . "<br>"; if (date('His', $paydayTS) == '230000' ){ // fall back $paydayTS += 3600; // $t += 3600; } else if (date('His', $paydayTS) == '005959' || date('His', $paydayTS) == '010000'){ // spring forward $paydayTS -= 3600; // $t -= 3600; } if (date('His', $pp_endTS) == '230000'){ $pp_endTS += 3600; } else if (date('His', $pp_endTS) == '005959' || date('His', $pp_endTS) == '010000'){ $pp_endTS -= 3600; } if (date('His', $pp_startTS) == '230000'){ $pp_startTS += 3600; } else if (date('His', $pp_startTS) == '005959' || date('His', $pp_startTS) == '010000'){ $pp_startTS -= 3600; } // echo __LINE__.": start=" . date('H:i:s D M j, Y', $pp_startTS )." - " . date('W', $pp_endTS) . "<br>"; $ppNum = ceil((date('W', $pp_endTS) / 2)); if ($pay_period == 'weekly'){ $ppNum = ceil(date('W', $pp_endTS)); } // echo __LINE__.": ppNum=" .$ppNum." weekNum=". date('W', $paydayTS) ."| ".date('D His M j, Y', $pp_startTS)." - ".date('D His M j, Y', $pp_endTS)." payday=".$payday."<br>"; // echo __LINE__.": " .date('W', $t) / 2 . " - " . date('M j, Y', $t) . " | payday=" . date('M j, Y', $paydayTS)." - " . date('Y', $paydayTS) ." <br>"; // echo __LINE__.": ppNum=". $ppNum .", t=" . date('M j, Y', $t). ", " . $row['payPeriodID']." | " . date('M j, Y', $pp_startTS) . " - " . date('M j, Y', $pp_endTS).", payday = " . $payday ." | ". $this->pp_startTS_arr[date('Y', $pp_endTS)][$ppNum - 1]. "<br>"; $ppYears_arr[date('Y', $pp_endTS)] = date('Y', $pp_endTS); $pp_startTS_arr[date('Y', $pp_endTS)][$ppNum] = $pp_startTS; $pp_endTS_arr[date('Y', $pp_endTS)][$ppNum] = $pp_endTS; $payDays_arr[date('Y', $pp_endTS)][$ppNum] = date('F j, Y', $paydayTS); $pay_periods_arr[date('Y', $pp_endTS)][$ppNum] = date('M j, Y', $pp_startTS)."-" . date('M j, Y', $pp_endTS)." [". date('D M j/y', $paydayTS)."]"; // echo __LINE__.": ppNum = " . $ppNum .", " .date('His D M j, Y', $pp_startTS)." - " . date('His D M j, Y', $pp_endTS)."<br>"; if (!isset($this->ppNum)){ $this->ppNum = 0; } if (strtotime('today') >= $pp_startTS && strtotime('today') <= $pp_endTS && $this->ppNum == 0){ // echo __LINE__.": " . date('H:i M j, Y', $pp_startTS) . " | pp_end = " . date('H:i M j, Y', $pp_endTS) . ", payDay = ". date('H:i M j, Y', $paydayTS) . ", ppNum=" . $ppNum . "<br>"; $this->ppNum = $ppNum; $this->ppYear = date('Y', $paydayTS); } $payDaysTS_arr[date('Y', $paydayTS)][$ppNum] = $paydayTS; $paydayTS += 60*60*24* $numDays; } $this->ppYears_arr = $ppYears_arr; $this->pp_startTS_arr = $pp_startTS_arr; $this->pp_endTS_arr = $pp_endTS_arr; $this->pay_periods_arr = $pay_periods_arr; $this->payDays_arr = $payDays_arr; $this->payDaysTS_arr = $payDaysTS_arr; // echo __line__.": <pre>payDays_arr = "; print_r($this->payDays_arr); echo "</pre>"; // echo __line__.": <pre>ppYears_arr = "; print_r($this->ppYears_arr); echo "</pre>"; // echo __line__.": <pre>pp_startTS_arr = "; print_r($this->pp_startTS_arr); echo "</pre>"; // echo __line__.": <pre>pp_endTS_arr = "; print_r($this->pp_endTS_arr); echo "</pre>"; // echo __line__.": <pre>pay_periods_arr = "; print_r($this->pay_periods_arr); echo "</pre>"; // echo __line__.": " . $this->ppNum." = " . $this->ppYear . "<br>"; } else if ($pay_period == 'semi-monthly'){ $ppEndDates_arr = explode('|', $row['ppEndDates']); // the 2 ppEnd dates in ther month if ($row['expireTS'] == 0){ $expireTS = strtotime('today + 6 weeks'); } else { $expireTS = $row['expireTS']; } $effectiveTS = strtotime(date('M j, Y', $row['effectiveTS'])); // echo __LINE__.": effective=" . date('Hi a D M j/y', $effectiveTS) ." - expire=". date('Hi a D M j/y', $expireTS) ." " . $row['ppEndDates'] . "<br>"; $allDates_arr = array(); $ppStartTS = $effectiveTS; // ======= FIRST PAY PERIODS OF POLICY ================== if (date('j', $effectiveTS) < $ppEndDates_arr[0]){ // 1st pay period of policy is in 1st half of month $ppEndTS = mktime(23, 59, 59, date('n', $effectiveTS), $ppEndDates_arr[0], date('Y', $effectiveTS)); $paydayTS = mktime(0,0,0, date('n', $effectiveTS), 15, date('Y', $effectiveTS)); } else if (date('j', $effectiveTS) > $ppEndDates_arr[1]){ $ppEndTS = mktime(23, 59, 59, date('n', $effectiveTS) + 1, $ppEndDates_arr[0], date('Y', $effectiveTS)); $paydayTS = mktime(0,0,0, date('n', $effectiveTS) +1, 15, date('Y', $effectiveTS)); } else if (date('j', $effectiveTS) > $ppEndDates_arr[0] && date('j', $effectiveTS) < $ppEndDates_arr[1]){ // 1st pay period of policy is in 2nd half of month // $ppEndTS = mktime(23, 59, 29, date('n', $effectiveTS), $ppEndDates_arr[1], date('Y', $effectiveTS)); if ($ppEndDates_arr[1] > date('t', $effectiveTS)){ $ppEndTS = mktime(23, 59, 59, date('n', $effectiveTS), date('t', $effectiveTS), date('Y', $effectiveTS)); } else { $ppEndTS = mktime(23, 59, 59, date('n', $effectiveTS), $ppEndDates_arr[1], date('Y', $effectiveTS)); } $paydayTS = mktime(0,0,0, date('n', $effectiveTS), date('t', $effectiveTS), date('Y', $effectiveTS)); } if (date('N', $paydayTS) > 5){ // if payday lands on a week end... $paydayTS -= 60*60*24 * (date('N', $paydayTS) - 5); } $ppNum = date('n', $ppEndTS) * 2; if (date('j', $ppEndTS) <= 15){ $ppNum--; } $allDates_arr[date('Y', $ppEndTS)][$ppNum] = array('ppStart'=>date('M j, Y', $ppStartTS), 'ppEnd'=>date('M j, Y', $ppEndTS), 'payday'=>date('M j, Y', $paydayTS)); // ========= SECOND TO Nth PAY PERIOD OF POLICY ================ for ($t=$ppEndTS; $t<= $expireTS ; $t+=(60*60*24)){ $ppNum = (date('n', $t) * 2) -1; if (date('j', $t) == $ppEndDates_arr[1] || ($ppEndDates_arr[1] > date('t', $t) && date('j', $t) == date('t', $t))){ $ppNum++; } // echo __LINE__.": FIRST HALF ppNum=" . $ppNum." | ppStart = " . date('M j, Y', $ppStartTS) . ", ppEnd = " . date('M j Y', $t) . " - " . $ppEndDates_arr[0] . "<br>"; if (date('j', $t) == $ppEndDates_arr[0]){ // pay period ends in 1st half of month $ppEndTS = $t; // pay period starts day after previous pay period ended $ppStartTS = mktime(0, 0, 0, date('n', $t) -1, $ppEndDates_arr[1] + 1, date('Y', $t)); if ($ppEndDates_arr[1] >= date('t', $ppStartTS)){ // if the last day of the pay period is the end of the month or beyond // pay period starts on the first of the next month if (date('n', $t) == 12){ // if the last day of the pay period is Dec 31 // change year to next year $ppStartTS = mktime(0, 0, 0, date('n', $t), 1, date('Y', $t) + 1); } else { $ppStartTS = mktime(0, 0, 0, date('n', $t), 1, date('Y', $t)); } } $paydayTS = mktime(0,0,0, date('n', $t), 15, date('Y', $t)); if (date('N', $paydayTS) > 5){ // if payday lands on a week end... $paydayTS -= 60*60*24 * (date('N', $paydayTS) - 5); } if (!isset($allDates_arr[date('Y', $t)][$ppNum])){ $allDates_arr[date('Y', $t)][$ppNum] = array('ppStart'=>date('M j, Y', $ppStartTS), 'ppEnd'=>date('M j, Y', $ppEndTS), 'payday'=>date('M j, Y', $paydayTS)); } // echo __LINE__.": FIRST HALF ppNum=" . $ppNum." | ppStart = " . date('M j, Y', $ppStartTS) . ", ppEnd = " . date('M j Y', $t) . " - " . $ppEndDates_arr[0] . "<br>"; } else if (date('j', $t) == $ppEndDates_arr[1] || ($ppEndDates_arr[1] > date('t', $t) && date('j', $t) == date('t', $t))){ // period ends in 2nd half of month // echo __LINE__.": SECOND HALF ppNum=" . $ppNum." | ppStart = " . date('M j, Y', $ppStartTS) . ", ppEnd = " . date('M j Y', $t) . " - " . $ppEndDates_arr[0] . "<br>"; $ppStartTS = mktime(0, 0, 0, date('n', $t), $ppEndDates_arr[0] + 1, date('Y', $t)); if ($ppEndDates_arr[1] > date('t', $t)){ $ppEndTS = mktime(23, 59, 59, date('n', $t), date('t', $t), date('Y', $t)); } else { $ppEndTS = mktime(23, 59, 59, date('n', $t), $ppEndDates_arr[1], date('Y', $t)); } $paydayTS = mktime(0,0,0, date('n', $t), date('t', $t), date('Y', $t)); if (date('N', $paydayTS) > 5){ // if payday lands on a week end... $paydayTS -= 60*60*24 * (date('N', $paydayTS) - 5); } if (!isset($allDates_arr[date('Y', $t)][$ppNum])){ $allDates_arr[date('Y', $t)][$ppNum] = array('ppStart'=>date('M j, Y', $ppStartTS), 'ppEnd'=>date('M j, Y', $ppEndTS), 'payday'=>date('M j, Y', $paydayTS)); } } if (date('N', $paydayTS) > 5){ // if payday lands on a week end... $paydayTS -= 60*60*24 * (date('N', $paydayTS) - 5); } // $allDates_arr[date('Y', $paydayTS)][$ppNum] = array('ppStartTS'=>$pp_start, 'ppEndTS'=>$pp_end, 'paydayTS'=> date('M j Y', $paydayTS)); $this->ppYears_arr = array(); $this->pp_startTS_arr = array(); $this->pp_endTS_arr = array(); $this->pay_periods_arr = array(); $this->payDaysTS_arr = array(); foreach ($allDates_arr as $year => $rows){ $ppYears_arr[$year] = $year; foreach ($rows as $ppNum => $row){ $pp_endTS_arr[$year][$ppNum] = mktime(23, 59, 59, date('n', strtotime($row['ppEnd'])), date('j', strtotime($row['ppEnd'])), date('Y', strtotime($row['ppEnd']))); $pp_startTS_arr[$year][$ppNum] = strtotime($row['ppStart']); $pay_periods_arr[$year][$ppNum] = $row['ppStart'] . "-" . $row['ppEnd'] . " [" . $row['payday'] . "]"; $payDays_arr[$year][$ppNum] = $row['payday']; $payDaysTS_arr[$year][$ppNum] = strtotime($row['payday']); // ========= get current payperiod number and current year =============== if (strtotime('today') >= strtotime($row['ppStart']) && strtotime('today') <= strtotime($row['ppEnd']) && $this->ppNum == 0){ $this->ppNum = $ppNum; $this->ppYear = date('Y', strtotime($row['payday'])); } } } } $this->ppYears_arr = $ppYears_arr; $this->pp_startTS_arr = $pp_startTS_arr; $this->pp_endTS_arr = $pp_endTS_arr; $this->pay_periods_arr = $pay_periods_arr; $this->payDays_arr = $payDays_arr; $this->payDaysTS_arr = $payDaysTS_arr; // echo __line__.": <pre>"; print_r($pp_startTS_arr); echo "</pre>"; } else if ($pay_period == 'monthly'){ // $t = $firstPPstartTS; // while ($t <= $nextPPstartTS){ // $nxtMonthTS = mktime(0, 0, 0, date('n', $t)+1, 1, date('Y', $t)); // if ($_SESSION['payWeek'] == 'last'){ // $nxtPayTS = mktime(0, 0, 0, date('n', $nxtMonthTS), date('t', $nxtMonthTS), date('Y', $nxtMonthTS)); // } else { // $nxtPayTS = mktime(0, 0, 0, date('n', $nxtMonthTS), $_SESSION['payWeek'], date('Y', $nxtMonthTS)); // } // // echo __LINE__.": ".date('n', $nxtMonthTS).", ".$_SESSION['payWeek'].", ".date('Y', $nxtMonthTS)."<br>".$nxtMonthTS." - ".date('M j, Y', $nxtMonthTS)."<br>"; // $nxtPay = date('M j, Y', $nxtPayTS); // $ppEndTS = $nxtPayTS - $cutoff *60*60*24 + (60*60*23) + (60*59) + 59; // $ppEnd = date('M j, Y', $ppEndTS); // $pay_periods_arr[date('Y', $nxtPayTS)][date('n', $nxtPayTS)] = date('M j, Y', $t)." - ". $ppEnd." [". $nxtPay."]"; // $ppYears_arr[date('Y', $t)] = date('Y', $t); // $this->payDays_arr[date('Y', $nxtPayTS)][date('n', $nxtPayTS)] = $nxtPay; // $this->pp_startTS_arr[date('Y', $nxtPayTS)][date('n', $nxtPayTS)] = date('M j, Y', $t); // $this->pp_endTS_arr[date('Y', $nxtPayTS)][date('n', $nxtPayTS)] = $ppEnd; // // echo __LINE__.": ".date('M j Y', $t)." - ".$ppEnd." [".$nxtPay."]<br>"; // $t = strtotime(date('M j, Y', $t) . " + ".date('t', $t)." days"); // } } else if ($pay_period == '13'){ // $i = 1; // for ($t=$firstPPstartTS; $t<=$nextPPstartTS; $t+=60*60*24*28){ // $payday = date('M j, Y', $t+60*60*24*28 + ($cutoff * 60*60*24)); // $paydayTS = strtotime($payday); // if (!isset($pay_periods_arr[date('Y', $paydayTS)])){ // $i = 1; // } // $pay_periods_arr[date('Y', $paydayTS)][ceil(date('W', $paydayTS)/4)] = date('M j, Y', $t)." - ".date('M j, Y', $t+60*60*24*27.9) ." [".$payday."]"; // $ppYears_arr[date('Y', $t+60*60*24*27.9)] = date('Y', $t+60*60*24*27.9); // $this->pp_startTS_arr[date('Y', $t+60*60*24*27.9)][$i] = date('M j, Y', $t); // $this->pp_endTS_arr[date('Y', $t+60*60*24*27.9)][$i] = date('M j, Y', $t+60*60*24*27.9); // $this->payDays_arr[date('Y', $t+60*60*24*27.9)][$i] = $payday; // $this->payDaysTS_arr[date('Y', $t+60*60*24*27.9)][$i] = $paydayTS; // $i++; // } } } if (isset($this->ppYears_arr) && is_array($this->ppYears_arr)){ krsort($this->ppYears_arr); } if (isset($pp_startTS_arr) && is_array($pp_startTS_arr)){ foreach ($pp_startTS_arr as $y => $ppStarts){ krsort($ppStarts); $temp = $ppStarts; $this->pp_startTS_arr[$y] = $temp; } } // echo __line__.": <pre>"; print_r($pp_startTS2); echo "</pre>"; if (isset($this->payDaysTS_arr)){ foreach($this->payDaysTS_arr as $y => $payDayTS){ krsort($payDayTS); $temp = $payDayTS; $this->payDaysTS_arr[$y] = $temp; } } if (isset($this->pp_endTS_arr)){ foreach ($this->pp_endTS_arr as $y => $ppEnds){ krsort($ppEnds); $temp = $ppEnds; $this->pp_endTS_arr[$y] = $temp; } } if (isset($this->payDays_arr)){ foreach ($this->payDays_arr as $y => $payDays){ if (is_array($payDays)){ ksort($payDays); $temp = $payDays; $this->payDays_arr[$y] = $temp; } } } if (isset($this->pay_periods_arr)){ foreach ($this->pay_periods_arr as $y => $pp){ krsort($pp); $temp = $pp; $this->pay_periods_arr[$y] = $temp; } } $temp = ''; // echo __LINE__." ppNum = ". $this->ppNum. ", ppYear = ". $this->ppYear ."<BR>"; // echo __line__ ."<pre>"; print_r($this->pay_periods_arr); echo "</pre>"; // echo __LINE__.": <pre>"; print_r($this->pp_startTS_arr); echo "</pre>"; } public function ppYears(){ if (isset($this->ppYears_arr)){ return $this->ppYears_arr; } else { return false; } } public function pay_periods(){ if (isset($this->pay_periods_arr)){ return $this->pay_periods_arr; } else { return false; } } public function pp_startTS(){ if (isset($this->pp_startTS_arr)){ return $this->pp_startTS_arr; } else { return false; } } public function pp_endTS(){ if (isset($this->pp_endTS_arr)){ return $this->pp_endTS_arr; } else { return false; } } public function payDays(){ if (isset($this->payDays_arr)){ return $this->payDays_arr; } else { return false; } } public function payDaysTS(){ if (isset($this->payDaysTS_arr)){ return $this->payDaysTS_arr; } else { return false; } } public function get_current_ppNum(){ if (isset($this->ppNum)){ return $this->ppNum; } else { return false; } } public function get_current_ppYear(){ if (isset($this->ppYear)){ return $this->ppYear; } else { return false; } } } /* auto-generate email alert to admin param string return null */ class Auto_Email_Admin { var $subject; var $message; public function __construct($subject, $message){ $smtp_host = "mail.delv-in.com"; $smtp_user = "info@delv-in.com"; $smtp_pass = "1[-XO{JYjkdl"; require_once 'PHPMailer/src/Exception.php'; require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/SMTP.php'; $Template = new Template; $Users = new Users; $recipientsArr = array(); $log_addresses = array(); $nameArr = array(); if (isset($_SESSION['consultIDstr'])){ $consultIDarr = explode('|', $_SESSION['consultIDstr']); $cRows = $Users->search($consultIDarr, '', '', '', '', '', '', '', '', ''); // echo __LINE__."class_lib<pre>"; print_r($cRows); echo "</pre>"; foreach ($cRows as $key => $cRow){ if ($cRow['recvAlerts'] == 'yes' && ($cRow['lastDayTS'] == '0' || $cRow['lastDayTS'] < strtotime('now'))){ $recipientsArr[$cRow['email']] = $cRow['name']; $nameArr[] = $cRow['name']; $log_addresses[] = $cRow['email']; } } } $userRows = $Users->search($_SESSION['PID'], '', '', '', '', 'current', '', '', '', '', '', ''); // echo __LINE__."<pre>"; print_r($userRows); echo "</pre>"; foreach ($userRows as $key => $userRow){ if ($userRow['recvAlerts'] == 'yes' && ($userRow['lastDayTS'] == '0' || $userRow['lastDayTS'] < strtotime('now'))){ $recipientsArr[$userRow['email']] = $userRow['fName']." ".$userRow['lName']; $nameArr[] = $userRow['fName']." ".$userRow['lName']; $log_addresses[] = $userRow['email']; // echo " | Recipients=" . $userRow['email'] ." " .$userRow['fName']." ".$userRow['lName'] . "<br>"; } } $log_addresses = implode(',', $log_addresses); $this->recipients = $log_addresses; // echo __line__.": log_addresses: ".$log_addresses."<br>"; // echo __line__.": <pre>"; print_r($log_addresses); echo "</pre>"; $mail = new PHPMailer(true); try { //Server settings // $mail->SMTPDebug = 2; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = $smtp_host; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = $smtp_user; // SMTP username $mail->Password = $smtp_pass; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to //Recipients $mail->setFrom('info@delv-in.com', 'DELVIN'); // Name is optional $recipients = " <div style='width: 100%; font-size: 11px; padding-top: 12px'>Sent to: "; // uncomment for production foreach ($recipientsArr as $email => $name){ $mail->addAddress($email, $name); // Add a recipient $recipients .= $email ." (". $name ."), "; } $recipients .= " </div>"; // $mail->addAddress('cindylyoung@me.com', 'Cindy Young'); // uncomment for DEV or Staging foreach ($recipientsArr as $email => $name){ $mail->addReplyTo($email, $name); } // $mail->addBCC('info@delv-in.com'); //Attachments // $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments // $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name //Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = $subject; $mail->Body = $message . $recipients; // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); } catch (Exception $e) { return FALSE; } } public function get_recipients(){ // echo __LINE__.": ".$this->recipients."<br>"; return $this->recipients; } } class Email_Cindy{ var $subject; var $message; public function __construct($subject, $message){ $smtp_host = "mail.delv-in.com"; $smtp_user = "info@delv-in.com"; $smtp_pass = "1[-XO{JYjkdl"; require_once 'PHPMailer/src/Exception.php'; require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/SMTP.php'; $mail = new PHPMailer(true); try { //Server settings // $mail->SMTPDebug = 2; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = $smtp_host; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = $smtp_user; // SMTP username $mail->Password = $smtp_pass; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to //Recipients $mail->setFrom('cindy@cindylyoung.ca', 'DELVIN'); // Name is optional $mail->addAddress('cindy@cindylyoung.ca', 'DELVIN'); // Add a recipient // $mail->addReplyTo($email, $name); // $mail->addBCC('info@delv-in.com'); //Attachments // $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments // $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name //Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = $subject; $mail->Body = $message; // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); return TRUE; } catch (Exception $e) { return FALSE; } } } /* auto-generate email alert to staff param string return null */ class Auto_Email_Staff { var $subject; var $message; var $email; public function __construct($userID, $subject, $message){ $Email_Log = new Email_Log; $Template = new Template; require_once 'PHPMailer/src/Exception.php'; require_once 'PHPMailer/src/PHPMailer.php'; require_once 'PHPMailer/src/SMTP.php'; $smtp_host = "mail.delv-in.com"; $smtp_user = "info@delv-in.com"; $smtp_pass = "1[-XO{JYjkdl"; $Template = new Template; $Users = new Users; $Practices = new Practices; $userRows = $Users->search($_SESSION['PID'], '', '', '', '', 'current', '', '', '', '', '', ''); $replytoArr = array(); // print_r($replytoArr); foreach ($userRows as $replytoRow){ if ($replytoRow['recvAlerts'] != 'no' && ($replytoRow['lastDayTS'] == '0' || $replytoRow['lastDayTS'] < strtotime('now'))){ $replytoArr[$replytoRow['email']] = $replytoRow['fName']." ".$replytoRow['lName']; } } // if there are no staff designated to receive staff email, send to practice email if (count($replytoArr) <= 0){ $practiceRow = $Practices->get(); $replytoArr[$practiceRow['email']] = $practiceRow['prName']; } if (count($replytoArr) > 0 && array_key_first($replytoArr) != ''){ $replytoArr = array_unique($replytoArr); } else { $replytoArr = array('info@delv-in.com'=>'DELVIN'); } $mail = new PHPMailer(true); try { //Server settings // $mail->SMTPDebug = 2; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = $smtp_host; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = $smtp_user; // SMTP username $mail->Password = $smtp_pass; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to //Recipients $mail->setFrom('info@delv-in.com', 'DELVIN SaS'); // uncomment for production // $mail->addAddress($userRows[$userID]['email'], $userRows[$userID]['name']); $sendTo = " <div style='width: 100%; font-size: 11px; padding-top: 12px;>Sent to " . $userRows[$userID]['email'] . " (" . $userRows[$userID]['name'] . " </div>"; $mail->addAddress('cindy@delv-in.com', 'Cindy Young'); // uncomment for DEV or Staging foreach ($replytoArr as $email => $name){ // $mail->addReplyTo($email, $name); } // $mail->addCC('cc@example.com'); // $mail->addBCC('support@delv-in.com'); //Attachments // $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments // $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name //Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = $subject; $mail->Body = $message . $sendTo; // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); $result = $userRows[$userID]['name']." was sent an email to advise of the ".$subject.". (".date('H:i M j/y').")"; // echo $result; $result = true; } catch (Exception $e) { $result = "ERROR: ".$subject . " email failed to sent to ".$userRows[$userID]['name'].". Please advise Tech Support."; $result = false; } return $result; } } /* upload a file to a specified directory @param string, string, string (file name, path/directory, new file name) @return NULL */ class Upload_File { public function __construct($fileObjName, $path, $newfilename){ $Template = new Template; if ($newfilename != ''){ $uploadfile = $path.$newfilename; } else { $uploadfile = $path.$_FILES[$fileObjName]['name']; } //echo "class_lib-".__LINE__." ".$uploadfile."<br>"; if (move_uploaded_file($_FILES[$fileObjName]['tmp_name'], $uploadfile)) { $Template->set_alert("File upload successful"); } else { $Template->set_alert("ERROR: File upload failed", "error");; } } } class Remote_IP{ public function __construct(){ $this->ip = ''; if (getenv('HTTP_CLIENT_IP')) { $this->ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $this->ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $this->ip = getenv('HTTP_X_FORWARDED'); } elseif (getenv('HTTP_FORWARDED_FOR')) { $this->ip = getenv('HTTP_FORWARDED_FOR'); } elseif (getenv('HTTP_FORWARDED')) { $this->ip = getenv('HTTP_FORWARDED'); } else { $this->ip = $_SERVER['REMOTE_ADDR']; } } public function get_Remote_IP(){ return $this->ip; } } class Edit_Punch_Hx { // called from Display_Punch_Hx public function __construct($punchID, $punchcxID, $userID, $dateTS, $whichPunch, $schedTime, $punchTime, $cxTime, $jobAreaID, $editBy){ $Pr_Job_Areas = new Pr_Job_Areas; $jobAreaIDsArr = $Pr_Job_Areas->get_4_menu($_SESSION['PID'], '', ''); $punches_arr = array('inShift1'=>'Shift Start', 'outShift1'=>'Shift End', 'outMeal1'=>'Meal Start', 'inMeal1'=>'Meal End', 'inShift2'=>'2nd Shift Start', 'outShift2'=>'2nd Shift End', 'outMeal2'=>'2nd Meal Start', 'inMeal2'=>'2nd Meal End'); $string = ''; $string = "<!-- EDIT PUNCH DIV --> <div id='".$whichPunch.$dateTS."' class='punch_hx_edit' style='display:none'> <form action='' method='post' name='edit'> <input type='hidden' name='userID' value='".$userID."'> <input type='hidden' name='punchcxID' value='".$punchcxID."'> <input type='hidden' name='punchID' value='".$punchID."'> <input type='hidden' name='dateTS' value='".$dateTS."'> <input type='hidden' name='whichPunch' value='".$whichPunch."'> <input type='hidden' name='punchTime' value='".$punchTime."'> <input type='hidden' name='f_ppYear' value='".$_POST['f_ppYear']."'> <input type='hidden' name='f_payPeriod' value='".$_POST['f_payPeriod']."'> <input type='hidden' name='f_split' value='". $_POST['f_split'] . "'> <h2>"; if ($punchID == '' && $punchcxID == ''){ $string .= "Add "; } else { $string .= "Edit "; } $string .= $punches_arr[$whichPunch]." Time for<br>".date("l, F j, Y", $dateTS)."</h2>"; // $string .= "schedtime=".$schedTime.", punchTime=".$punchTime.", cxtime=".$cxTime."<br>"; if (strpos($whichPunch, "in") !== false){ if (count($jobAreaIDsArr) > 1){ $string .= " <p>Work Area: <select name='jobAreaID' name='edit' class='w50'>"; foreach ($jobAreaIDsArr as $key => $value){ $string .= " <option value='". $key ."'"; if ($key == $jobAreaID){ $string .= ' selected'; } $string .= ">" . $value ."</option>"; } $string .= " </select> </p>"; } else { $string .=" <input type='hidden' name='jobAreaID' value='". $jobAreaID . "'>"; } } else { $string .= " <input type='hidden' name='jobAreaID' value='0'>"; } if ($schedTime != ''){ $Time24to12 = new Time24to12($schedTime, 'Y'); $time = $Time24to12->get_time12(); $string .= " <div class='col-12 mar_20_l mar_12_t'> <label class='rdo pad_rdo'>" . $time ." - Scheduled Time <input type='radio' name='timeRadio' value='".$schedTime."'"; if ($cxTime == $schedTime){ $string .= " checked"; } $string .= "> <span class='radio'></span> </label> </div>"; } else if (strpos($whichPunch, 'Meal') !== TRUE){ $string .= "<p>[No ".$punches_arr[$whichPunch]." Time is scheduled on this day]</p>"; } if ($punchTime != $cxTime && $punchTime > 0){ $Time24to12 = new Time24to12(substr($punchTime, 0, 4), 'Y'); $time = $Time24to12->get_time12(); $string .= " <div class='col-12 mar_20_l mar_12_t'> <label class='rdo pad_rdo'>" . $time ." - Time Recorded <input type='radio' name='timeRadio' value='".$punchTime."'"; if ($punchTime > 0 && $punchID > 0 && $cxTime ==''){ $string .= " checked"; } $string .= "> <span class='radio'></span> </label> </div>"; } else if ($punchTime <= 0 && $punchID == 0){ $string .= "<p>[No ".$punches_arr[$whichPunch]." Time was recorded by employee]</p>"; } if (strlen($cxTime) > 1){ $hr = substr($cxTime,0,2); if ($hr > 12){ $hr -= 12; $ampm = 'PM'; } else if ($hr == 12){ $ampm = 'PM'; } else { $ampm = 'AM'; } $min = substr($cxTime, 2); } else { $hr = ''; $min = ''; $ampm = ''; $cxTime = date('H:i'); } $string .= ""; $Select_hours = new Select_hours('hr', 'g', $hr, '[hour]', "onfocus='checkBtnOn(\"".$whichPunch.$dateTS."radio\")'", 'edit', ''); $hrs = $Select_hours->get_Select_hours(); $Select_minutes = new Select_minutes('min', '1', $min, '[min]', "", 'edit', ''); $min = $Select_minutes->get_Select_minutes(); $Select_AMPM = new Select_AMPM('ampm', $ampm, '[AM/PM]', "onchange='document.getElementById(\"".$whichPunch.$dateTS."radio\").checked=true'", 'edit', ''); $ampm = $Select_AMPM->get_Select_AMPM(); $string .= " <div class='col-12 mar_20_l mar_12_t'> <label class='rdo'> <input type='radio' name='timeRadio' id='".$whichPunch.$dateTS."radio\" value='" . $cxTime ."' value='custom'"; if (($cxTime != $schedTime && $cxTime > 0) || $schedTime == ''){ $string .= " checked"; } $string .= ">" . $hrs . " " . $min . " " . $ampm . " <span class='radio'></span> </label> </div> "; if ($punchTime != '' || $schedTime != '' || $cxTime != ''){ $string .= " <div class='col-12 mar_20_l mar_12_t'> <label class='rdo pad_rdo'>Delete Punch <input type='radio' name='timeRadio' value='del'> <span class='radio'></span> </label> </div>"; } $string .= " <div class='colAuto ft_rt'> <input type='submit' name='submitBut' value='Save' class='btn btn-mini btn-save'> <input type='button' name='submitBut' value='Cancel' class='btn btn-mini btn-cancel' onclick='hide_div(\"".$whichPunch.$dateTS."\")'> </div> </form>"; if ($punchcxID > 0){ $string .= " <div class='colAuto ft_lt comment away pad_12_t'>". $punchcxID ." - " . $editBy . "</div> "; } // $string .= __line__."-class_lib Edit_Punch_Hx: punchID=".$punchID.", punchcxID=".$punchcxID.", userID=".$userID.", dateTS=".$dateTS." (".date('M j', $dateTS)."), whichPunch=".$whichPunch.", schedTime=".$schedTime.", punchTime=".$punchTime.", cxTime=".$cxTime."<br>"; $string .= " </div> <!-- END EDIT PUNCH DIV --> "; echo $string; } } class Display_Punch_Hx{ public function __construct($punchID, $XID, $userID, $tTS, $punchName, $SHD, $PCH, $PCX, $othPunch, $meal_alert, $jobAreaID, $editBy){ $Pr_Job_Areas = new Pr_Job_Areas; $jobAreaIDsArr = $Pr_Job_Areas->get_4_menu($_SESSION['PID'], '', ''); echo " <!-- Display_Punch_Hx --> "; // echo "<div class='comment'>" . __line__."-class_lib Display_Punch_Hx: punchID=".$punchID.", XID=".$XID.", userID=".$userID.", tTS=".$tTS." (".date("M, j", $tTS)."), punchName=".$punchName.", SHD=".$SHD.", PCH=".$PCH.", PCX=".$PCX.", othPunch=".$othPunch.", jobAreaID=". $jobAreaID .", editBy=" . $editBy . "</div>"; // echo "<div class='comment'>" . __line__."-class_lib Display_Punch_Hx: jobAreaID=". $jobAreaID ."</div>"; if ($PCX != ''){ $timeStyle = 'cxPunch'; } else if ($meal_alert != ''){ $timeStyle = 'important'; } else { $timeStyle = ''; } if (strlen($PCX) > 1 || strlen($PCH) > 1){ $button = 'btn-edit'; } else { $button = 'btn-add'; } // echo "(".$PCX." -".$PCH."-".$othPunch.") "; if (strlen($XID) > 0){ // there is a corrected punch (could be = EMPTY) if (strlen($PCX) > 1){ $Time24to12 = new Time24to12($PCX, 'Y'); echo "<span class='".$timeStyle."'>".$Time24to12->get_time12()."</span>"; } else { echo " "; } } else if (strlen($PCH) > 1 && $PCH != $othPunch){ $Time24to12 = new Time24to12($PCH,'Y'); echo "<span class='".$timeStyle."'>".$Time24to12->get_time12()."</span>"; } echo " <input type='button' onclick='show_div(\"".$punchName.$tTS."\")' class='btn btn-icon-mini ". $button ."'> <span class='col-12 jobAreaWkHx'>"; if (isset($jobAreaIDsArr[$jobAreaID]) && ((strlen($XID) > 1 && strlen($PCX) > 1) || (strlen($punchID) > 1 && strlen($PCH) > 1 && $PCH != $othPunch))){ echo $jobAreaIDsArr[$jobAreaID]; } else if ($PCH == $othPunch && strlen($PCH) > 1 && strpos($punchName, 'Meal') !== false){ echo "break skipped"; } echo " </span>"; // --- edit punch div ---- $Edit_Punch_Hx = new Edit_Punch_Hx($punchID, $XID, $userID, $tTS, $punchName, $SHD, $PCH, $PCX, $jobAreaID, $editBy); // = END edit punch div ---- echo " <!-- END Display_Punch_Hx --> "; } } class Schedule_Edit_UI { public function __construct($date, $userID, $jobAreaID, $jobArea, $ahSchedID, $users_arr, $start1, $finish1, $start2, $finish2, $comment, $meal_min1, $meal_min2){ // echo __LINE__.": class_lib<br>"; $dateTS = strtotime($date.", 1200"); foreach ($users_arr as $row){ $allUsersArr[$row['userID']] = $row['firstName'] . " " . $row['lName']; if ($row['jobAreaID'] == $jobAreaID){ $jobUsersArr[$row['userID']] = $row['firstName'] . " " . $row['lName']; } } // print_r($jobUsersArr); if ($userID <= 0){ $objName = str_replace(' ', '', $date."-".$jobAreaID); } else { $objName = str_replace(' ', '', $date."-".$userID); } $s1 = new Time24to12($start1, 'Y'); $s1 = $s1->get_time12(); $sHour1 = substr($s1, 0, strpos($s1, ":")); $sMin1 = substr($s1, -5, -3); $sAMPM1 = substr($s1, -2); $f1 = new Time24to12($finish1, 'Y'); $f1 = $f1->get_time12(); $fHour1 = substr($f1, 0, strpos($f1, ":")); $fMin1 = substr($f1, -5, -3); $fAMPM1 = substr($f1, -2); $s2 = new Time24to12($start2, 'Y'); $s2 = $s2->get_time12(); $sHour2 = substr($s2, 0, strpos($s2, ":")); $sMin2 = substr($s2, -5, -3); $sAMPM2 = substr($s2, -2); $f2 = new Time24to12($finish2, 'Y'); $f2 = $f2->get_time12(); $fHour2 = substr($f2, 0, strpos($f2, ":")); $fMin2 = substr($f2, -5, -3); $fAMPM2 = substr($f2, -2); echo " <!-- SCHEDULE_EDIT_UI --> <div id='".$objName."' class='sched_edit_ui' style='display:none'> <form action='' method='post' name='edit'> <input type='hidden' name='ad_hoc_schedID' value='".$ahSchedID."'> <input type='hidden' name='dateTS' value='".$dateTS."'> <input type='hidden' name='jobAreaID' value='".$jobAreaID."'> <input type='hidden' name='userID' value='".$userID."'> "; // echo __LINE__.": ". $start1 . " - ". $finish1 ." | " . $start2 ." - " . $finish2."<br>"; if ($userID <= 0){ echo "<h2>Add a shift in " . $jobArea . " on ".date('l, F j, Y', $dateTS)."</h2>"; } else { echo "<h2>Edit Schedule for ".$allUsersArr[$userID]." - ".date('l, F j, Y', $dateTS)."</h2>"; } echo " <div class='col-12 pad_12_t pad_12_b'>"; if ($userID <= 0){ echo "<b>Staff Member: </b>"; $SelectObjArr = new SelectObjArr('userID', $jobUsersArr, $userID, '--select one--', '','','', ''); } echo " </div> <!-- end staff member select div --> <div class='col-12'> <div class='col-5 centre b_space'> <b>Start Shift<br></b>"; // Start hours : minutes AMPM select objects $Select_hours = new Select_hours('sHour1', 'g', $sHour1, '[hour]', '', 'main', ''); echo $Select_hours->get_Select_hours().":"; $Select_minutes = new Select_minutes('sMin1', '5', $sMin1, '[min]', '', 'main', ''); echo $Select_minutes->get_Select_minutes()." "; $Select_AMPM = new Select_AMPM('sAMPM1', $sAMPM1, '[AM/PM]', '', 'main', ''); echo $Select_AMPM->get_Select_AMPM(); echo " </div> <div class='col-2 centre'><b>Meal break:<br></b> <input type='text' name='meal_min1' value='".$meal_min1."' size=2 maxlength=2> minutes </div> <div class='col-5 centre b_space'><b>Finish Shift<br></b>"; // Finish hours : minutes AMPM select objects $Select_hours = new Select_hours('fHour1', 'g', $fHour1, '[hour]', '', 'main', ''); echo $Select_hours->get_Select_hours().":"; $Select_minutes = new Select_minutes('fMin1', '5', $fMin1, '[min]', '', 'main', ''); echo $Select_minutes->get_Select_minutes()." "; $Select_AMPM = new Select_AMPM('fAMPM1', $fAMPM1, '[AM/PM]', '', 'main', ''); echo $Select_AMPM->get_Select_AMPM(); if ($userID > 0){ $id = str_replace(' ', '', $date.$userID); } else { $id = str_replace(' ', '', $date.$jobAreaID); } $display = 'none'; $checked = ''; if ($start2 != ''){ $display = 'inline'; $checked = 'checked'; } echo " </div> </div> <!-- end col-12 first shift --> <div class='col-12' id='".$id."' style='display:".$display."'> <div class='col-5 centre'><b>Start Shift 2</b><br>"; // Start hours : minutes AMPM select objects $Select_hours = new Select_hours('sHour2', 'g', $sHour2, '[hour]', '', 'main', ''); echo $Select_hours->get_Select_hours().":"; $Select_minutes = new Select_minutes('sMin2', '5', $sMin2, '[min]', '', 'main', ''); echo $Select_minutes->get_Select_minutes()." "; $Select_AMPM = new Select_AMPM('sAMPM2', $sAMPM2, '[AM/PM]', '', 'main', ''); echo $Select_AMPM->get_Select_AMPM(); echo " </div> <div class='col-2 centre'><b>Meal break: </b><br> <input type='text' name='meal_min2' value='".$meal_min2."' size=2 maxlength=2> minutes </div> <div class='col-5 centre'><b>Finish Shift 2</b><br>"; // Finish hours : minutes AMPM select objects $Select_hours = new Select_hours('fHour2', 'g', $fHour2, '[hour]', '', 'main', ''); echo $Select_hours->get_Select_hours().":"; $Select_minutes = new Select_minutes('fMin2', '5', $fMin2, '[min]', '', 'main', ''); echo $Select_minutes->get_Select_minutes()." "; $Select_AMPM = new Select_AMPM('fAMPM2', $fAMPM2, '[AM/PM]', '', 'main', ''); echo $Select_AMPM->get_Select_AMPM(); echo " </div> </div> <div class='col-12 pad_12_t'> <div class='colAuto ft_rt'> <label class='ckbx pad_ckbx'>Split shift <input type='checkbox' name='check".$id."' id='check".$id."' ".$checked." onclick='split_view(\"".$id."\")'> <span class='checkbox'></span> </label> </div> <div class='colAuto ft_lt'> <b>Comment: </b><input type='text' name='comment' size=20 maxlength=20 value='".$comment."'> <span class='comment'> ⇐ visible in the Staff Schedule</span> </div> </div> <div class='col-12 pad_12_t'> <div class='col-6 left'>"; if ($ahSchedID > 0){ echo "<input type='submit' name='submitBut' value='Revert to Default Schedule' class='btn btn-mini btn-submit'> "; } echo " "; if ($userID > 0 && ($sHour1 > 0 || $sHour2 > 0)){ echo "<input type='submit' name='submitBut' value='Delete Shift' class='btn btn-mini btn-submit'> "; } echo "</div> <div class='col-6 right'> <input type='submit' name='submitBut' value='Save' class='btn btn-mini btn-save'> <input type='button' name='submitBut' value='Cancel' class='btn btn-mini btn-cancel' onclick='hide_edit_ui(\"".$objName."\")'> </div> </div> </form> </div> <!-- END SCHEDULE_EDIT_UI -->"; } } ?>
© 2026 UnknownSec