bogusWorkOrder = new Workorder();
$this->bogusWorkOrder->setJobStatusId('');
$this->bogusWorkOrder->setJobTypeId('');
$this->bogusWorkOrder->setTech('');
$this->bogusWorkOrder->setClientId('');
$this->technicians = array();
$this->clients = array();
$c = new Criteria();
$c->addAscendingOrderByColumn(ClientPeer::CLIENT_IDENTIFICATION);
$this->client_dropdown = ClientPeer::doSelect($c);
$t = new Criteria();
$t->addAscendingOrderByColumn(JobTypePeer::TYPE_NAME);
$this->jobtype_dropdown = JobTypePeer::doSelect($t);
$s = new Criteria();
$s->addAscendingOrderByColumn(JobStatusPeer::STATUS_NAME);
$this->jobstatus_dropdown = JobStatusPeer::doSelect($s);
foreach($this->client_dropdown as $client)
{
$this->clients[$client->getId()] = $client->getClientIdentification();
}
foreach(UserPeer::getUserByType(1) as $tech)
{
$this->technicians[$tech->getId()] = $tech->getDisplayName();
}
$this->dateFilter = date('Y-m-d');
$this->dateFilterType = 'day';
// show jobs
$jobDate = date('Ymd');
$usersWithWork = new Criteria();
$workorders = new Criteria();
if($this->getRequest()->getMethod() == sfRequest::POST)
{
$this->dateFilter = $this->getRequestParameter('jobDate');
$this->dateFilterType = $this->getRequestParameter('dateFilterType');
if($this->getRequestParameter('client_id') != '')
{
$workorders->add(WorkorderPeer::CLIENT_ID, $this->getRequestParameter('client_id'));
$this->bogusWorkOrder->setClientId($this->getRequestParameter('client_id'));
}
if($this->getRequestParameter('technician_id') != '')
{
$usersWithWork->add(UserPeer::ID, $this->getRequestParameter('technician_id'));
$workorders->add(WorkorderTechPeer::USER_ID, $this->getRequestParameter('technician_id'));
$workorders->addJoin(WorkorderPeer::ID, WorkorderTechPeer::WORKORDER_ID, Criteria::INNER_JOIN);
$this->bogusWorkOrder->setTech($this->getRequestParameter('technician_id'));
}
if($this->getRequestParameter('job_status_id') != '')
{
$usersWithWork->add(WorkorderPeer::JOB_STATUS_ID, $this->getRequestParameter('job_status_id'));
$workorders->add(WorkorderPeer::JOB_STATUS_ID, $this->getRequestParameter('job_status_id'));
$this->bogusWorkOrder->setJobStatusId($this->getRequestParameter('job_status_id'));
}
}
$usersWithWork->addJoin(UserPeer::ID, WorkorderPeer::TECH);
$usersWithWork->setDistinct(true);
if ($this->dateFilterType == 'day')
{
$usersWithWork->add(WorkorderPeer::JOB_DATE, $this->getRequestParameter('jobDate'));
$workorders->add(WorkorderPeer::JOB_DATE, $this->getRequestParameter('jobDate'));
}
else if ($this->dateFilterType == 'month')
{
$year = substr($this->getRequestParameter('jobDate'), 0, 4);
$month = substr($this->getRequestParameter('jobDate'), 5, 2);
$start = $year . '-' . $month . '-01';
$end = $year . '-' . $month . '-31'; // easy check, even for months without 31 days since all dates are
// strings in our database
$usersWithWork->add(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL);
$usersWithWork->addAnd($usersWithWork->getNewCriterion(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_EQUAL)); // inclusive
$workorders->add(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL);
$workorders->addAnd($workorders->getNewCriterion(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_EQUAL)); // inclusive
}
else if ($this->dateFilterType == 'year')
{
$year = substr($this->getRequestParameter('jobDate'), 0, 4);
$startMonth = "01";
$endMonth = "12";
$start = $year . '-' . $startMonth . '-01';
$end = $year . '-' . $endMonth . '-31'; // easy check, even for months without 31 days since all dates are
// strings in our database
$usersWithWork->add(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL);
$usersWithWork->addAnd($usersWithWork->getNewCriterion(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_EQUAL)); // inclusive
$workorders->add(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL);
$workorders->addAnd($workorders->getNewCriterion(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_EQUAL)); // inclusive
}
else
{
// week from the selected date
$start = date('Y-m-d', strtotime($this->getRequestParameter('jobDate')));
$end = date('Y-m-d', strtotime('+7 days', strtotime($this->getRequestParameter('jobDate'))));
//$this->renderText($start . $end); return sfView::NONE;
$usersWithWork->add(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_THAN); // exclusive
$usersWithWork->addAnd($usersWithWork->getNewCriterion(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL));
$workorders->add(WorkorderPeer::JOB_DATE, $end, Criteria::LESS_THAN); // exclusive
$workorders->addAnd($workorders->getNewCriterion(WorkorderPeer::JOB_DATE, $start, Criteria::GREATER_EQUAL));
}
$this->techs = UserPeer::doSelect($usersWithWork);
$this->orders = WorkorderPeer::doSelect($workorders);
}
public function executePopulateWorkorder()
{
$ticket = $this->getRequestParameter('ticket');
$t = new Criteria();
$t->addAscendingOrderByColumn(JobTypePeer::TYPE_NAME);
$this->jobtype_dropdown = JobTypePeer::doSelect($t);
$s = new Criteria();
$s->addAscendingOrderByColumn(JobStatusPeer::STATUS_NAME);
$this->jobstatus_dropdown = JobStatusPeer::doSelect($s);
$g = new Criteria();
$g->add(DropdownPeer::MENU, 'reason');
$g->addAscendingOrderByColumn(DropdownPeer::VALUE);
$this->reason_dropdown = DropdownPeer::doSelect($g);
$this->openWorkorder = WorkorderPeer::retrieveByPk($ticket);
$this->openClient = ClientPeer::retrieveByPk($this->openWorkorder->getClientId());
$this->openTech = UserPeer::retrieveByPk($this->openWorkorder->getTech());
$this->openDevice = DevicePeer::retrieveByPk($this->openWorkorder->getDeviceId());
$reason = $this->openWorkorder->getReason();
if (!empty($reason)){
$this->openReason = DropdownPeer::retrieveByPk($this->openWorkorder->getReason());
}
$this->type_select = $this->openWorkorder->getJobTypeId();
$this->status_select = $this->openWorkorder->getJobStatusId();
}
public function executeUpdateworkorder(){
$wid_y = $this->getRequestParameter('wid');
$invoice_num = $this->getRequestParameter('invoice_num');
$action = $this->getRequestParameter('action_taken');
$remarks_y = $this->getRequestParameter('remarks');
$job_status = $this->getRequestParameter('job_status');
$job_type = $this->getRequestParameter('job_type');
$reason_select_y = $this->getRequestParameter('reason_select');
$onsite_time = $this->getRequestParameter('onsite_time');
$travel_time = $this->getRequestParameter('travel_time');
$travel_service = $this->getRequestParameter('travel_service');
$zone_charge = $this->getRequestParameter('zone_charge');
$salestax = $this->getRequestParameter('salestax');
$shipping = $this->getRequestParameter('shipping');
$cid = $this->getRequestParameter('cid');
$name = $this->getRequestParameter('print_name');
$c = new Criteria();
$c->add(WorkorderPeer::ID,$wid_y);
$wo = WorkorderPeer::doSelectOne($c);
if(!$wo){
print "";
return sfView::NONE;
}
$c = new Criteria();
$c->add(ClientPeer::ID,$cid);
$client = ClientPeer::doSelectOne($c);
if($client){
$client->setAttn($name);
$client->save();
}
$wo->setTravelTime($travel_time);
$wo->setOnsiteTime($onsite_time);
$wo->setReason($reason_select_y);
$wo->setJobTypeId($job_type);
$wo->setJobStatusId($job_status);
$wo->setInvoice($invoice_num);
$wo->setRemarks($remarks_y);
$wo->setActionTaken($action);
$wo->setSaletax($salestax);
$wo->setServiceTravel($travel_service);
$wo->setShippingHandling($shipping);
$wo->setZoneCharge($zone_charge);
if(!empty($invoice_num))
$wo->setJobStatusId(7);
$wo->save();
print "";
return sfView::NONE;
}
/* public function executeInformation()
{
$r = new Criteria();
$this->result = array();
$search_select = $this->getRequestParameter('search_select');
if (isset($search_select))
{
// $search_by = $this->getRequestParameter('search_by');
switch($this->search_by)
{
case 'Client':
$r->add(WorkorderPeer::CLIENT_ID, $this->getRequestParameter('search_select'));
break;
case 'Technician':
$r->add(WorkorderPeer::TECH, $this->getRequestParameter('search_select'));
break;
case 'Date':
$r->add(WorkorderPeer::DATE_RECIEVED, $this->getRequestParameter('search_select'));
break;
case 'Status':
$r->add(workorderPeer::JOB_STATUS, $this->getRequestParameter('search_select'));
break;
}
$r->addJoin(WorkorderPeer::CLIENT_ID, ClientPeer::ID);
$r->addJoin(WorkorderPeer::TECH, UserPeer::ID);
$join = new sfPropelCustomJoinHelper('Workorder');
$join->addSelectTables('Client', 'User');
$join->setHas('Workorder', 'User');
$join->setHas('Workorder', 'Client');
$this->result = $join->doSelect($r);
}
$this->redirect('workOrder/search_by/'.$search_by);
}*/
/* public function executeSelectWorkorder()
{
$search_by = $this->getRequestParameter('search_by');
$r = new Criteria();
$result = new Workorder();
switch($search_by)
{
case 'Client':
$r->add(WorkorderPeer::CLIENT_ID, $this->getRequestParameter('search_select'));
$result = WorkorderPeer::doSelect($r);
break;
case 'Technician':
$r->add(WorkorderPeer::TECH, $this->getRequestParameter('search_select'));
$result = WorkorderPeer::doSelect($r);
break;
// case 'Date':
// $r->add(WorkorderPeer::DATE, $this->getRequestParameter('search_select'
// break;
case 'Status':
$r->add(workorderPeer::STATUS, $this->getRequestParameter('search_select'));
$result = WorkorderPeer::doSelect($r);
break;
}
$this->redirect('workOrder/index?searchby='.$this->getRequestParameter('search_by'));
}*/
}