insertTimeForm.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. class insertTimeForm extends Staple_Form
  3. {
  4. private $accountLevel;
  5. private $adminAction;
  6. /**
  7. * @return mixed
  8. */
  9. public function getAdminAction()
  10. {
  11. return $this->adminAction;
  12. }
  13. /**
  14. * @param mixed $adminAction
  15. */
  16. public function setAdminAction($adminAction)
  17. {
  18. $this->adminAction = $adminAction;
  19. }
  20. /**
  21. * @return mixed
  22. */
  23. public function getAccountLevel()
  24. {
  25. return $this->accountLevel;
  26. }
  27. /**
  28. * @param mixed $accountLevel
  29. */
  30. public function setAccountLevel($accountLevel)
  31. {
  32. $this->accountLevel = $accountLevel;
  33. }
  34. public function _start()
  35. {
  36. $auth = Staple_Auth::get();
  37. $user = new userModel();
  38. $user->userInfo($auth->getAuthId());
  39. $this->accountLevel = $user->getAuthLevel();
  40. $this->setLayout('insertFormLayout');
  41. $this->setName('insertTimeForm')
  42. ->setAction($this->link(array('timesheet')));
  43. $date = new Staple_Form_FoundationTextElement('date','Date');
  44. $date->setRequired()
  45. ->addValidator(new Staple_Form_Validate_Date())
  46. ->addAttrib('placeholder','mm/dd/yyyy');
  47. $inTime = new Staple_Form_FoundationTextElement('inTime','Time In');
  48. $inTime->setRequired()
  49. ->addValidator(new Staple_Form_Validate_Regex('/^(0|[0-9]|1[012]):[0-5][0-9] ?((a|p)m|(A|P)M)$/','Invalid time format. Expected format: h:mm am/pm.'))
  50. ->addFilter(new Staple_Form_Filter_Trim())
  51. ->addAttrib('placeholder','h:mm am/pm');
  52. $outTime = new Staple_Form_FoundationTextElement('outTime','Time Out');
  53. $outTime->setRequired()
  54. ->addValidator(new Staple_Form_Validate_Regex('/^(0|[0-9]|1[012]):[0-5][0-9] ?((a|p)m|(A|P)M)$/','Invalid time format. Expected format: h:mm am/pm.'))
  55. ->addFilter(new Staple_Form_Filter_Trim())
  56. ->addAttrib('placeholder','h:mm am/pm');;
  57. $lessTime = new Staple_Form_FoundationSelectElement('lessTime','Less Time');
  58. $lessTime->setRequired()
  59. ->addOptionsArray(array("0"=>"None","60"=>"1 Hour","30"=>"30 Minutes"))
  60. ->addValidator(new Staple_Form_Validate_InArray(array('0','60','30')));
  61. $timeCodes = new codeModel();
  62. $code = new Staple_Form_FoundationSelectElement('code','Code');
  63. $code->setRequired()
  64. ->addOption("x","Select an option")
  65. ->addOptionsArray($timeCodes->allCodes())
  66. ->addValidator(new Staple_Form_Validate_InArray(array_keys($timeCodes->allCodes())));
  67. $code->setValue($timeCodes->getIdFor('Normal')['id']);
  68. $submit = new Staple_Form_FoundationSubmitElement('submit','Submit');
  69. $submit->addClass('button expand radius');
  70. $this->addField($date, $inTime, $outTime, $lessTime, $code, $submit);
  71. }
  72. public function admin($key)
  73. {
  74. if($key == 1)
  75. {
  76. $this->setAdminAction(1);
  77. if($this->accountLevel >= 900)
  78. {
  79. if($this->adminAction == 1)
  80. {
  81. $this->setAction($this->link(array('timesheet','admininsert')));
  82. $this->setLayout('adminInsertFormLayout');
  83. $account = new Staple_Form_FoundationSelectElement('account','Account');
  84. $account->setRequired()
  85. ->addOption('','Select an account')
  86. ->addOptionsArray($this->accounts())
  87. ->addValidator(new Staple_Form_Validate_InArray($this->accounts(1)));
  88. $note = new Staple_Form_FoundationTextElement('note','Note');
  89. $note->setRequired()
  90. ->addValidator(new Staple_Form_Validate_Length(1,5000))
  91. ->addFilter(new Staple_Form_Filter_Trim());
  92. $this->addField($account, $note);
  93. }
  94. }
  95. }
  96. else
  97. {
  98. $this->setAdminAction(0);
  99. }
  100. }
  101. public function accounts($ids = null)
  102. {
  103. $user = new userModel();
  104. $id = $user->getId();
  105. $authLevel = $user->getAuthLevel();
  106. $accounts = new userModel();
  107. $users = $accounts->listAll();
  108. $data = array();
  109. if($ids == null)
  110. {
  111. foreach($users as $user)
  112. {
  113. if($user['supervisorId'] == $id)
  114. {
  115. $data[$user['id']] = $user['lastName'].", ".$user['firstName']." (". $user['type'] .")";
  116. }
  117. elseif($authLevel >= 900)
  118. {
  119. $data[$user['id']] = $user['lastName'].", ".$user['firstName']." (". $user['type'] .")";
  120. }
  121. }
  122. }
  123. else
  124. {
  125. foreach($users as $user)
  126. {
  127. $data[] = $user['id'];
  128. }
  129. }
  130. return $data;
  131. }
  132. }
  133. ?>