_setLayout('main');
$auth = Staple_Auth::get();
$this->authLevel = $auth->getAuthLevel();
$user = new userModel();
$this->uid = $user->getId();
if ($this->authLevel < 500) {
header("location:" . $this->_link(array('index', 'index')) . "");
}
}
public function index($year = null, $month = null)
{
if ($year == null) {
$year = date('Y');
}
if ($month == null) {
$month = date('m');
}
$report = new reportModel($year, $month);
$this->view->report = $report->getTimesheets();
$timesheet = new timesheetModel($year, $month);
$this->view->nextMonth = $timesheet->getNextMonth();
$this->view->previousMonth = $timesheet->getPreviousMonth();
$this->view->year = $timesheet->getCurrentYear();
$yearForm = new changeYearForm();
$yearForm->setAction($this->_link(array('reports','changeyear')));
$this->view->yearForm = $yearForm;
$this->view->accountLevel = $this->authLevel;
$date = new DateTime();
$date->setDate($year, $month, 1);
$this->view->month = $date->format('F');
$printTimeSheetForm = new printTimeSheetForm();
if($printTimeSheetForm->wasSubmitted())
{
$printTimeSheetForm->addData($_POST);
if($printTimeSheetForm->validate())
{
$data = $printTimeSheetForm->exportFormData();
$this->layout->addScriptBlock("
window.open('".$this->_link(array("reports","printpreview",$year,$month,$data['account']))."');
");
$this->view->printTimeSheetForm = $printTimeSheetForm;
}
else
{
$this->view->printTimeSheetForm = $printTimeSheetForm;
}
}
else
{
$this->view->printTimeSheetForm = $printTimeSheetForm;
}
}
public function changeyear()
{
$form = new changeYearForm();
if($form->wasSubmitted())
{
$form->addData($_POST);
if($form->validate())
{
$data = $form->exportFormData();
header("location: ".$this->_link(array('reports',$data['year']))."");
}
else
{
header("location: ".$this->_link(array('reports'))."");
}
}
else
{
header("location: ".$this->_link(array('reports'))."");
}
}
public function weekly()
{
//Weekly report form
$form = new weeklyReportForm();
if ($form->wasSubmitted()) {
$form->addData($_POST);
if ($form->validate()) {
$data = $form->exportFormData();
$report = new weeklyReportModel();
$this->view->report = $report->timeWorked($data['account'], $data['year']);
$account = new userModel();
$this->view->account = $account->userInfo($data['account']);
$this->view->year = $data['year'];
} else {
$this->view->form = $form;
}
} else {
$this->view->form = $form;
}
}
public function unlock()
{
$auth = Staple_Auth::get();
$this->authLevel = $auth->getAuthLevel();
if ($this->authLevel < 900)
{
header("location:" . $this->_link(array('index', 'index')) . "");
}
else
{
$year = date('Y');
$month = date('m');
$timesheets = new reportModel($year, $month);
$this->view->accounts = $timesheets;
}
}
public function unlockid($id)
{
$auth = Staple_Auth::get();
$this->authLevel = $auth->getAuthLevel();
if ($this->authLevel < 900)
{
header("location:" . $this->_link(array('index', 'index')) . "");
}
else
{
$unlock = new unlockModel();
if ($unlock->unlock($id))
{
$this->view->message = " Time entry unlocked.";
}
else
{
$this->view->message = " ERROR: Unable to unlock your own time entries.";
}
}
}
public function printpreview($year,$month,$uid)
{
$this->_setLayout('print');
$user = new userModel();
$account = $user->userInfo($uid);
$this->view->firstName = $account['firstName'];
$this->view->lastName = $account['lastName'];
$this->view->batchId = $account['batchId'];
$this->view->year = $year;
$this->view->month = date('F',$month);
$timesheet = new timesheetModel($year, $month,$uid);
$this->view->timesheet = $timesheet;
}
public function payperiod($year = null, $month = null)
{
if ($year == null) {
$year = date('Y');
}
if ($month == null) {
$month = date('m');
}
$this->view->year = $year;
$date = new DateTime();
$date->setDate($year,$month,26);
$date->setTime(0,0,0);
$this->view->month = $date->format('m');
$date->modify('-1 month');
$this->view->previousMonth = $date->format('m');
$date2 = new DateTime();
$date2->setDate($year,$month,25);
$date2->setTime(24,0,0);
$interval = date_diff($date,$date2);
$this->view->span = $interval->days;
$reports = new reportModel($year, $month);
$this->view->report = $reports->payPeriodTotals($year, $month);
}
public function payperiodprint($year, $month)
{
if($year != null || $month != null)
{
$this->_setLayout('print');
$this->view->year = $year;
$date = new DateTime();
$date->setDate($year,$month,26);
$date->setTime(0,0,0);
$this->view->month = $date->format('m');
$date->modify('-1 month');
$this->view->previousMonth = $date->format('m');
$date2 = new DateTime();
$date2->setDate($year,$month,25);
$date2->setTime(24,0,0);
$interval = date_diff($date,$date2);
$this->view->span = $interval->days;
$reports = new reportModel($year, $month);
$this->view->report = $reports->payPeriodTotals($year, $month);
$this->view->startDate = $date->format("F jS Y");
$days = $interval->days - 1;
$date->modify("+$days days");
$this->view->endDate = $date->format("F jS Y");
}
else
{
header("location:".$this->_link(array('reports','payperiod'))."");
}
}
}