function definition() { global $CFG, $DB, $COURSE, $USER; $mform =& $this->_form; $mform->addElement('header', 'general', get_string('updateformheadertitle', 'block_timetracker')); //TODO defaults -- shouldn't need these, because config should always be set. $payrate = 7.5; $maxearnings = 750; $trackermethod = 0; $canmanage = false; if (has_capability('block/timetracker:manageworkers', $this->context)) { $canmanage = true; } $canmanagepayrate = false; if (has_capability('block/timetracker:managepayrate', $this->context)) { $canmanagepayrate = true; } $canmanageid = false; if (has_capability('block/timetracker:manageid', $this->context)) { $canmanageid = true; } $canview = false; if (has_capability('block/timetracker:viewonly', $this->context)) { $canview = true; } $worker = $DB->get_record('block_timetracker_workerinfo', array('courseid' => $this->courseid, 'mdluserid' => $this->mdluserid)); if (!$worker && !$canview) { //set the config defaults from config table $config = get_timetracker_config($this->courseid); $payrate = $config['curr_pay_rate']; $maxearnings = $config['default_max_earnings']; $trackermethod = $config['trackermethod']; $department = $config['department']; $position = $config['position']; $budget = $config['budget']; $institution = $config['institution']; $supname = $config['supname']; $idnum = $USER->username; } else { $idnum = $worker->idnum; $payrate = $worker->currpayrate; $maxearnings = $worker->maxtermearnings; $trackermethod = $worker->timetrackermethod; $department = $worker->dept; $position = $worker->position; $budget = $worker->budget; $institution = $worker->institution; $supname = $worker->supervisor; } $mform->addElement('hidden', 'mdluserid', $this->mdluserid); $mform->addElement('hidden', 'id', $this->courseid); $mform->addElement('hidden', 'courseid', $this->courseid); $mform->addElement('hidden', 'maxearnings', $maxearnings); if (!$worker) { $worker = $DB->get_record('user', array('id' => $this->mdluserid)); } else { $mform->addElement('hidden', 'userid', $worker->id); } $opstring = 'readonly="readonly"'; if ($canmanage) { $opstring = ''; } $opstring2 = 'readonly="readonly"'; if ($canmanagepayrate) { $opstring2 = ''; } $opstring3 = 'readonly="readonly"'; if ($canmanageid) { $opstring3 = ''; } $opstring4 = 'readonly="readonly"'; if ($canmanage || !$canview) { $opstring4 = ''; } $mform->addElement('text', 'firstname', get_string('firstname', 'block_timetracker'), $opstring); $mform->setDefault('firstname', $worker->firstname); $mform->addRule('firstname', 'First name is a required field', 'required', null, 'server', 'false'); $mform->addHelpButton('firstname', 'firstname', 'block_timetracker'); $mform->addElement('text', 'lastname', get_string('lastname', 'block_timetracker'), $opstring); $mform->setDefault('lastname', $worker->lastname); $mform->addRule('lastname', 'Last name is a required field', 'required', null, 'server', 'false'); $mform->addHelpButton('lastname', 'lastname', 'block_timetracker'); $mform->addElement('text', 'email', get_string('email', 'block_timetracker'), $opstring); $mform->setDefault('email', $worker->email); $mform->addRule('email', 'Email is a required field', 'required', null, 'server', 'false'); $mform->addHelpButton('email', 'email', 'block_timetracker'); $mform->addElement('text', 'idnum', get_string('idnum', 'block_timetracker'), $opstring3); $mform->setDefault('idnum', $idnum); $mform->addRule('idnum', 'ID is a required field', 'required', null, 'server', 'false'); $mform->addHelpButton('idnum', 'idnum', 'block_timetracker'); $mform->addElement('text', 'address', get_string('address', 'block_timetracker'), $opstring4); //$mform->addRule('address', null, 'required', null, 'client', 'false'); $mform->addHelpButton('address', 'address', 'block_timetracker'); //if($worker->address != '0'){ $mform->setDefault('address', $worker->address); //} $mform->addElement('text', 'phonenumber', get_string('phone', 'block_timetracker'), $opstring4); $mform->addHelpButton('phonenumber', 'phone', 'block_timetracker'); $mform->setDefault('phonenumber', $worker->phonenumber); $mform->addElement('text', 'maxtermearnings', get_string('maxtermearnings', 'block_timetracker'), $opstring); $mform->setDefault('maxtermearnings', $maxearnings); $mform->addHelpButton('maxtermearnings', 'maxtermearnings', 'block_timetracker'); $mform->addElement('text', 'currpayrate', get_string('currpayrate', 'block_timetracker'), $opstring2); $mform->addRule('currpayrate', 'Pay rate is a required field', 'required', null, 'server', 'false'); $mform->addRule('currpayrate', 'Pay rate is a required field', 'numeric', null, 'server', 'false'); $mform->setDefault('currpayrate', $payrate); $mform->addHelpButton('currpayrate', 'currpayrate', 'block_timetracker'); $mform->addElement('text', 'institution', get_string('institution', 'block_timetracker'), $opstring); $mform->setDefault('institution', $institution); $mform->addHelpButton('institution', 'institution', 'block_timetracker'); $mform->addElement('text', 'dept', get_string('department', 'block_timetracker'), $opstring); $mform->setDefault('dept', $department); $mform->addHelpButton('dept', 'department', 'block_timetracker'); $mform->addElement('text', 'position', get_string('position', 'block_timetracker'), $opstring); $mform->setDefault('position', $position); $mform->addHelpButton('position', 'position', 'block_timetracker'); $mform->addElement('text', 'budget', get_string('budget', 'block_timetracker'), $opstring); $mform->setDefault('budget', $budget); $mform->addHelpButton('budget', 'budget', 'block_timetracker'); $mform->addElement('text', 'supervisor', get_string('supervisor', 'block_timetracker'), $opstring); $mform->setDefault('supervisor', $supname); $mform->addHelpButton('supervisor', 'supname', 'block_timetracker'); if ($canmanage) { $mform->addElement('select', 'timetrackermethod', get_string('trackermethod', 'block_timetracker'), array(0 => get_string('timeclocktitle', 'block_timetracker'), 1 => get_string('hourlogheader', 'block_timetracker')), $opstring); $mform->setDefault('timetrackermethod', $trackermethod); $mform->addHelpButton('timetrackermethod', 'trackermethod', 'block_timetracker'); } else { $mform->addElement('hidden', 'timetrackermethod', $trackermethod); } if ($canmanage || !$canview) { $this->add_action_buttons(true, get_string('savebutton', 'block_timetracker')); } }
/** * override the load instance to use our config tables rather than theirs; */ function _load_instance($instance, $page) { parent::_load_instance($instance, $page); global $COURSE; $config = get_timetracker_config($COURSE->id); if ($config) { $myconfig = new stdClass(); foreach ($config as $key => $value) { $key = 'block_timetracker_' . $key; $myconfig->{$key} = $value; } //print_object($myconfig); $this->config = $myconfig; } }
function generate_xls($month, $year, $userid, $courseid, $method = 'I', $base = '') { global $CFG, $DB; $monthinfo = get_month_info($month, $year); $workerrecord = $DB->get_record('block_timetracker_workerinfo', array('id' => $userid, 'courseid' => $courseid)); if (!$workerrecord) { print_error('usernotexist', 'block_timetracker', $CFG->wwwroot . '/blocks/timetracker/index.php?id=' . $courseid); } //TODO -- change this to a filename, comment out 'send' function $fn = $year . '_' . ($month < 10 ? '0' . $month : $month) . 'Timesheet_' . substr($workerrecord->firstname, 0, 1) . $workerrecord->lastname . '_' . $workerrecord->mdluserid . '.xls'; if ($method == 'F') { $workbook = new MoodleExcelWorkbook($base . '/' . $fn); } else { $workbook = new MoodleExcelWorkbook('-'); $workbook->send($fn); } // Formatting $format_bold =& $workbook->add_format(); $format_bold->set_bold(); $format_cal_block =& $workbook->add_format(); $format_cal_block->set_left(1); $format_cal_block->set_right(1); $format_cal_block->set_bottom(1); $format_cal_block->set_text_wrap(); $format_cal_block->set_v_align('Top'); $format_cal_block->set_size(8); $format_cal_total =& $workbook->add_format(); $format_cal_total->set_align('center'); $format_cal_total->set_bold(); $format_cal_total->set_size(12); $format_cal_total->set_left(1); $format_cal_total->set_right(1); $format_cal_total->set_bottom(1); $format_calendar_dates =& $workbook->add_format(); $format_calendar_dates->set_bold(); $format_calendar_dates->set_align('center'); $format_calendar_dates->set_size(8); $format_calendar_dates->set_left(1); $format_calendar_dates->set_right(1); $format_calendar_days =& $workbook->add_format(); $format_calendar_days->set_bold(); $format_calendar_days->set_align('center'); $format_calendar_days->set_size(8); $format_calendar_days->set_fg_color(22); $format_calendar_days->set_border(1); $format_center =& $workbook->add_format(); $format_center->set_align('center'); $format_footer =& $workbook->add_format(); $format_footer->set_bold(); $format_footer->set_bottom(1); $format_footer->set_v_align('Top'); $format_footer->set_text_wrap(); $format_footer_block =& $workbook->add_format(); $format_footer_block->set_bottom(1); $format_footer_block->set_top(1); $format_footer_block->set_left(1); $format_footer_block->set_right(1); $format_timesheet_header =& $workbook->add_format(); $format_timesheet_header->set_bold(); $format_timesheet_header->set_align('center'); $format_timesheet_header->set_size(12); $format_timesheet_header->set_bottom(1); $format_title =& $workbook->add_format(); $format_title->set_bold(); $format_title->set_align('center'); $format_title->set_size(12); $format_week_header =& $workbook->add_format(); $format_week_header->set_bold(); $format_week_header->set_align('center'); $format_week_header->set_size(8); // Collect Data $mdluser = $DB->get_record('user', array('id' => $workerrecord->mdluserid)); $conf = get_timetracker_config($courseid); $worksheet = array(); $worksheet[1] =& $workbook->add_worksheet('First worksheet'); // Set column widths $worksheet[1]->set_column(0, 8, 10.57); // Write data to spreadsheet $worksheet[1]->write_string(0, 0, 'Mars Hill College', $format_title); $worksheet[1]->merge_cells(0, 0, 0, 7); $worksheet[1]->write_string(1, 0, 'Timesheet - ' . $monthinfo['monthname'] . ', ' . $year, $format_timesheet_header); $worksheet[1]->merge_cells(1, 0, 1, 7); // Creates separator line under 'Timesheet' foreach (range(1, 7) as $i) { $worksheet[1]->write_blank(1, $i, $format_timesheet_header); } // Header Data $worksheet[1]->write_string(2, 0, 'WORKER: ' . strtoupper($workerrecord->lastname) . ', ' . strtoupper($workerrecord->firstname), $format_bold); $worksheet[1]->merge_cells(2, 0, 2, 3); $worksheet[1]->write_string(3, 0, "ID: {$mdluser->username}", $format_bold); $worksheet[1]->merge_cells(3, 0, 3, 3); $worksheet[1]->write_string(4, 0, "ADDRESS: {$workerrecord->address}", $format_bold); $worksheet[1]->merge_cells(4, 0, 4, 3); $worksheet[1]->write_string(5, 0, 'YTD Earnings: $' . number_format(get_earnings_this_year($userid, $courseid), 2), $format_bold); $worksheet[1]->merge_cells(5, 0, 5, 3); $worksheet[1]->write_string(2, 4, 'SUPERVISOR: ' . $conf['supname'], $format_bold); $worksheet[1]->merge_cells(2, 4, 2, 7); $worksheet[1]->write_string(3, 4, 'DEPARTMENT: ' . $conf['department'], $format_bold); $worksheet[1]->merge_cells(3, 4, 3, 7); $worksheet[1]->write_string(4, 4, 'POSITION: ' . $conf['position'], $format_bold); $worksheet[1]->merge_cells(4, 4, 4, 7); $worksheet[1]->write_string(5, 4, 'BUDGET: ' . $conf['budget'], $format_bold); $worksheet[1]->merge_cells(5, 4, 5, 7); // Calendar Data $worksheet[1]->write_string(7, 0, 'Sunday', $format_calendar_days); $worksheet[1]->write_string(7, 1, 'Monday', $format_calendar_days); $worksheet[1]->write_string(7, 2, 'Tuesday', $format_calendar_days); $worksheet[1]->write_string(7, 3, 'Wednesday', $format_calendar_days); $worksheet[1]->write_string(7, 4, 'Thursday', $format_calendar_days); $worksheet[1]->write_string(7, 5, 'Friday', $format_calendar_days); $worksheet[1]->write_string(7, 6, 'Saturday', $format_calendar_days); $worksheet[1]->write_string(7, 7, 'Total Hours', $format_calendar_days); $worksheet[1]->set_row(9, 69); $worksheet[1]->set_row(11, 69); $worksheet[1]->set_row(13, 69); $worksheet[1]->set_row(15, 69); $worksheet[1]->set_row(17, 69); $worksheet[1]->set_row(19, 69); $worksheet[1]->set_row(8, 11.25); $worksheet[1]->set_row(10, 11.25); $worksheet[1]->set_row(12, 11.25); $worksheet[1]->set_row(14, 11.25); $worksheet[1]->set_row(16, 11.25); $worksheet[1]->set_row(18, 11.25); foreach (range(0, 7) as $i) { $worksheet[1]->write_blank(8, $i, $format_calendar_dates); $worksheet[1]->write_blank(9, $i, $format_cal_block); $worksheet[1]->write_blank(10, $i, $format_calendar_dates); $worksheet[1]->write_blank(11, $i, $format_cal_block); $worksheet[1]->write_blank(12, $i, $format_calendar_dates); $worksheet[1]->write_blank(13, $i, $format_cal_block); $worksheet[1]->write_blank(14, $i, $format_calendar_dates); $worksheet[1]->write_blank(15, $i, $format_cal_block); $worksheet[1]->write_blank(16, $i, $format_calendar_dates); $worksheet[1]->write_blank(17, $i, $format_cal_block); $worksheet[1]->write_blank(18, $i, $format_calendar_dates); $worksheet[1]->write_blank(19, $i, $format_cal_block); } // Footer foreach (range(0, 7) as $i) { $worksheet[1]->write_blank(20, $i, $format_footer_block); $worksheet[1]->write_blank(21, $i, $format_footer_block); } // Number the Days and add data $units = get_split_month_work_units($workerrecord->id, $courseid, $month, $year); $date = 1; $dayofweek = $monthinfo['dayofweek']; $weeksum = 0; $monthsum = 0; for ($currentrow = 8; $currentrow < 20; $currentrow += 2) { //echo "inside for loop <br />"; $dayofweek = $dayofweek % 7; do { $worksheet[1]->write_string($currentrow, $dayofweek, $date, $format_calendar_dates); //begin of print work units // Print the data in the correct date blocks $wustr = ""; $mid = 86400 * ($date - 1) + $monthinfo['firstdaytimestamp']; $eod = 86400 * ($date - 1) + ($monthinfo['firstdaytimestamp'] + 86399); if ($units) { foreach ($units as $unit) { if ($unit->timein < $eod && $unit->timein >= $mid) { $in = userdate($unit->timein, get_string('timeformat', 'block_timetracker')); $out = userdate($unit->timeout, get_string('timeformat', 'block_timetracker')); if ($unit->timeout - $unit->timein > 449) { $wustr .= "In: {$in}\nOut: {$out}\n"; $weeksum += get_hours($unit->timeout - $unit->timein); } } } } $worksheet[1]->write_string($currentrow + 1, $dayofweek, $wustr, $format_cal_block); //end of print work units //if day of week = 7, copy value over and reset weekly sum to 0. // Calculate total hours if ($dayofweek == 6 || $date == $monthinfo['lastday']) { //Add week sum to monthly sum //Print value in weekly totals column //clear weekly sum $monthsum = $monthsum + $weeksum; $worksheet[1]->write_string($currentrow + 1, 7, $weeksum, $format_cal_total); $weeksum = 0; } $dayofweek++; $date++; } while ($date <= $monthinfo['lastday'] && $dayofweek % 7 != 0); if ($date >= $monthinfo['lastday']) { break; } } // Write footer data $worksheet[1]->write_string(20, 0, "Pay Rate or Stipend Amount\n" . '$' . number_format($workerrecord->currpayrate, 2), $format_footer); $worksheet[1]->merge_cells(20, 0, 20, 3); $worksheet[1]->write_string(20, 4, 'Total Hours/Earnings for ' . $monthinfo['monthname'] . ', ' . $year . ":\n" . number_format($monthsum, 2) . ' / $' . $monthsum * $workerrecord->currpayrate, $format_footer); $worksheet[1]->merge_cells(20, 4, 20, 7); $worksheet[1]->write_string(21, 0, 'Supervisor Signature/Date', $format_footer); $worksheet[1]->merge_cells(21, 0, 21, 3); $worksheet[1]->write_string(21, 4, 'Worker Signature/Date', $format_footer); $worksheet[1]->merge_cells(21, 4, 21, 7); $worksheet[1]->set_row(20, 30); $worksheet[1]->set_row(21, 42); $workbook->close(); return $fn; }
/** * @return hours (in decimal) for this defined period * */ function get_hours_this_period($userid, $courseid, $start, $end) { $units = get_split_units($start, $end, $userid, $courseid); $config = get_timetracker_config($courseid); if (!$units) { return 0; } $round = get_rounding_config($courseid); $total = 0; foreach ($units as $unit) { $total += round_time($unit->timeout - $unit->timein, $round); } return get_hours($total, $courseid); }
/** @return an array of HTML pages used for printing - one page per array item */ function generate_html($start, $end, $userid, $courseid, $timesheetid = -1, $unsignedonly = false) { global $CFG, $DB; $pages = array(); $startstring = userdate($start, "%m%Y"); $endstring = userdate($end, "%m%Y"); $samemonth = $startstring == $endstring; $workerrecord = $DB->get_record('block_timetracker_workerinfo', array('id' => $userid)); if (!$workerrecord) { print_error('usernotexist', 'block_timetracker', $CFG->wwwroot . '/blocks/timetracker/index.php?id=' . $courseid); } // Collect Data $conf = get_timetracker_config($courseid); $firstmonth = userdate($start, "%m"); $firstyear = userdate($start, "%Y"); $firstmonthinfo = make_timestamp($firstyear, $firstmonth, 1); //$curr = $start; $curr = $firstmonthinfo; $overallhoursum = 0; $overalldollarsum = 0; while ($curr <= $end) { $month = userdate($curr, "%m"); $year = userdate($curr, "%Y"); $monthinfo = get_month_info($month, $year); $mid = $monthinfo['firstdaytimestamp']; $eod = strtotime('+ 1 day', $mid); $eod -= 1; $monthhoursum = 0; $monthdollarsum = 0; $units = get_split_month_work_units($workerrecord->id, $courseid, $month, $year, $timesheetid, $unsignedonly); // Add Page /**DING DING DING**/ //$pdf->AddPage(); // ********** HEADER ********** // $htmldoc = ' <table style="margin-left: auto; margin-right: auto" cellspacing="0"' . 'cellpadding="0" width="540px"> <tr> <td align="center"><font size="10"><b>' . $conf['institution'] . '</b></font></td> </tr> <tr> <td align="center"><font size="10"><b>Timesheet - ' . $monthinfo['monthname'] . ', ' . $year . '</b></font> </td> </tr> </table> <hr style="height: 1px" />'; //$pdf->writeHTML($htmldoc, true, false, false, false, ''); // ********** WORKER AND SUPERVISOR DATA ********** // $htmldoc .= ' <table style="margin-left: auto: margin-right: auto" cellspacing="0"' . 'cellpadding="0" width="540px"> <tr> <td><font size="8.5"><b>WORKER: ' . strtoupper($workerrecord->lastname) . ', ' . strtoupper($workerrecord->firstname) . '<br />' . 'ID: ' . $workerrecord->idnum . '<br />' . 'ADDRESS: ' . $workerrecord->address . '<br /> YTD Earnings: $ ' . get_earnings_this_year($userid, $courseid) . '</b></font></td> <td><font size="8.5"><b>SUPERVISOR: ' . $conf['supname'] . '<br />' . 'DEPARTMENT: ' . $conf['department'] . '<br />' . 'POSITION: ' . $conf['position'] . '<br />' . 'BUDGET: ' . $conf['budget'] . '</b></font></td> </tr> </table> <br />'; //$pdf->writeHTML($htmldoc, true, false, false, false, ''); // ********** CALENDAR DAYS HEADER (Sun - Sat) ********** // // ********** CALENDAR DATES AND DATA ********** // //Arrays for dates and vals; $days = array(); $vals = array(); $date = 1; $dayofweek = $monthinfo['dayofweek']; $weeksum = 0; $monthhoursum = 0; $htmldoc .= ' <table border="1" cellpadding="2px" width="540px" ' . 'style="margin-right: auto; margin-left: auto"> <tr bgcolor="#C0C0C0"> <td class="calendar" align="center"><font size="8"><b>Monday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Tuesday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Wednesday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Thursday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Friday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Saturday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Sunday</b></font></td> <td class="calendar" align="center"><font size="8"><b>Total Hours</b>' . '</font></td> </tr> '; // ********** START THE TABLE AND DATA ********** // //write blank cells to catch up to the first day of the month $counter = 1; while ($counter != $dayofweek) { $counter++; $days[] = '<td class="calendar" style="height: 10px"> </td>'; $vals[] = '<td class="calendar" style="height: 70px"> </td>'; $counter %= 7; } //a "week" - a row in the table for ($row = 0; $row < 6; $row++) { $dayofweek = $dayofweek % 7; do { $days[] = '<td class="calendar" style="height: 10px" align="center"><b>' . $date . '</b></td>'; //begin of print work units // Print the data in the correct date blocks $wustr = ""; if ($units) { foreach ($units as $unit) { if ($unit->timein < $eod && $unit->timein >= $mid && $unit->timein >= $start && $unit->timeout <= $end) { $in = userdate($unit->timein, get_string('timeformat', 'block_timetracker')); $out = userdate($unit->timeout, get_string('timeformat', 'block_timetracker')); //FIXMEFIXME! if (array_key_exists('round', $conf) && $conf['round'] > 0) { $factor = $conf['round'] / 2 - 1; } else { $factor = 0; } if ($unit->timeout - $unit->timein > $factor) { //WHAT IF NOT ROUNDED? $wustr .= "In: {$in}<br />Out: {$out}<br />"; $hours = get_hours($unit->timeout - $unit->timein, $unit->courseid); //overtime or regular? if ($hours + $weeksum > 40) { $ovthours = $reghours = 0; if ($weeksum > 40) { //already over 40 //no reghours, just ovthours $ovthours = $hours; } else { //not already over 40 $reghours = 40 - $weeksum; $ovthours = $hours - $reghours; } $amt = $reghours * $unit->payrate; $ovtamt = $ovthours * ($workerrecord->currpayrate * 1.5); $amt += $ovtamt; } else { $amt = $hours * $unit->payrate; } $monthdollarsum += $amt; $overalldollarsum += $amt; $weeksum += $hours; $overallhoursum += $hours; } } } } $vals[] = '<td class="calendar" style="height: 70px"><font size="7">' . $wustr . '</font></td>'; //if day of week = 0 (Sunday), copy value over and reset weekly sum to 0. // Calculate total hours if ($dayofweek == 0) { //Add week sum to monthly sum //Print value in weekly totals column //clear weekly sum $monthhoursum += $weeksum; $days[] = '<td class="calendar" style="height: 10px"> </td>'; if ($weeksum == 0) { $weeksum = ' '; } $vals[] = '<td class="calendar" style="height: 70px" align="center">' . '<font size="10"><b><br /><br />' . $weeksum . '</b><br /></font></td>'; $weeksum = 0; } else { if ($date == $monthinfo['lastday']) { //what about when we reach the end of the month? //Still need to put totals!!! $counter = $dayofweek; while ($counter != 0) { //pad to the rightmost column $days[] = '<td class="calendar" style="height: 10px"> </td>'; $vals[] = '<td class="calendar" style="height: 70px"> </td>'; $counter++; $counter %= 7; } $monthhoursum += $weeksum; $days[] = '<td class="calendar" style="height: 10px"> </td>'; if ($weeksum == 0) { $weeksum = ' '; } $vals[] = '<td class="calendar" style="height: 70px" align="center">' . '<font size="10"><b><br /><br />' . $weeksum . '</b><br /></font></td>'; $weeksum = 0; } } $mid = strtotime('+ 1 day', $mid); //midnight $eod = strtotime('+ 1 day', $eod); //23:59:59 $dayofweek++; $date++; $curr = strtotime('+1 day', $curr); } while ($date <= $monthinfo['lastday'] && $dayofweek != 7); if ($date >= $monthinfo['lastday']) { break; } } //this is a single "row" or "week" for ($i = 0; $i < 6; $i++) { $htmldoc .= "\n<tr>\n"; for ($j = 0; $j < 8; $j++) { $spot = $j + 8 * $i; if (isset($days[$spot])) { $htmldoc .= "\t" . $days[$spot] . "\n"; } else { $htmldoc .= "\t" . '<td class="calendar" style="height: 10px"> </td>' . "\n"; } } $htmldoc .= "\n</tr>\n"; $htmldoc .= "\n<tr>\n"; for ($j = 0; $j < 8; $j++) { $spot = $j + 8 * $i; if (isset($vals[$spot])) { $htmldoc .= "\t" . $vals[$spot] . "\n"; } else { $htmldoc .= "\t" . '<td class="calendar" style="height: 70px"> </td>' . "\n"; } } $htmldoc .= "\n</tr>\n"; } $htmldoc .= '</table><br />'; //$pdf->writeHTML($htmldoc, true, false, false, false, ''); // ********** FOOTER TOTALS ********** // $htmldoc .= ' <table border="1" cellpadding="5px" width="540px" ' . 'style="margin-left: auto; margin-right: auto"> <tr> <td style="height: 25px"><font size="13"><b>Base Pay Rate</b></font> <br /> <font size="10">$' . round($workerrecord->currpayrate, 2) . '</font></td> <td style="height: 20px"><font size="13"><b>Total Hours/Earnings for ' . $monthinfo['monthname'] . ', ' . $year . '</b></font><br /><font size="10">' . round($monthhoursum, 3) . ' / $' . round($monthdollarsum, 2) . '</font></td> </tr></table><br />'; //$pdf->writeHTML($htmldoc, true, false, false, false, ''); //here is a new page!!! $pages[] = $htmldoc; } end($pages); $key = key($pages); $htmldoc = $pages[$key]; // ********** OVERALL TOTALS AND SIGNATURES********** // if ($timesheetid != -1) { $ts = $DB->get_record('block_timetracker_timesheet', array('id' => $timesheetid)); } $htmldoc .= ' <table border="1" cellpadding="5px" width="540px" ' . 'style="margin-left: auto; margin-right: auto">'; if (!$samemonth) { $desc = ''; if ($timesheetid == -1) { $desc = userdate($start, get_string('dateformat', 'block_timetracker')) . ' to ' . userdate($end, get_string('dateformat', 'block_timetracker')); } $htmldoc .= ' <tr> <td colspan="2" style="height: 35px"><font size="13"><b>Total Hours/Earnings ' . $desc . '</b></font><br /><font size="10">' . round($overallhoursum, 3) . ' / $' . round($overalldollarsum, 2) . '</font></td> </tr>'; } if ($timesheetid != -1) { $datestr = get_string('datetimeformat', 'block_timetracker'); $htmldoc .= ' <tr> <td style="height: 45px"><font size="13"><b>Worker Signature/Date</b></font>' . '<br />' . '<font size="8">Signed by ' . $workerrecord->firstname . ' ' . $workerrecord->lastname . '<br />' . userdate($ts->workersignature, $datestr) . '</font></td>' . '<td style="height: 45px"><font size="13"><b>Supervisor Signature/Date</b>' . '</font><br />' . '<font size="8">'; if ($ts->supervisorsignature != 0) { $super = $DB->get_record('user', array('id' => $ts->supermdlid)); if (!$super) { print_error('Supervisor does not exist'); } $htmldoc .= 'Signed by ' . $super->firstname . ' ' . $super->lastname . '<br />' . userdate($ts->supervisorsignature, $datestr); } else { $htmldoc .= 'Awaiting supervisor signature'; } $htmldoc .= ' </font></td> </tr> </table><br />'; } else { /* $htmldoc .=' <tr> <td style="height: 45px"><font size="13"><b>Worker Signature/Date</b></font></td> <td style="height: 45px"><font size="13"><b>Supervisor Signature/Date</b></font></td> </tr> */ $htmldoc .= ' </table><br />'; } $pages[$key] = $htmldoc; return $pages; }