public function setPmReleaseDate($dueDate, $pmRow, $pmAssetRow, $setLastClosed = false) { $schedBo = new CalemPmScheduleBo($pmRow['release_schedule']); $nextDueDate = $schedBo->getNextDueDate($dueDate); if (!$nextDueDate) { $nextDueDate = $dueDate; } //In case there's no schedule planned $pmAssetDbo = CalemFactory::getDbo('pm_asset'); $pmAssetRow = $pmAssetDbo->fetchById($pmAssetRow['id']); $pmAssetDbo->setChangeBulk(array('last_released' => CalemText::getServerDate($dueDate), 'next_due_date' => CalemText::getServerDate($nextDueDate), 'release_count' => $pmAssetRow['release_count'] + 1)); $pmAssetDbo->setIdForUpdate($pmAssetRow['id']); $pmAssetDbo->update(); //Going through meters if any $pmMeterDbo = CalemFactory::getDbo("pm_meter"); try { $pmMeterRows = $pmMeterDbo->fetchBySqlParam('select * from pm_meter where pm_asset_id=?', $pmAssetRow['id']); $assetMeterDbo = CalemFactory::getDbo('asset_meter'); foreach ($pmMeterRows as $pmMeterRow) { if ($pmMeterRow['release_by_meter']) { try { $assetMeterRow = $assetMeterDbo->fetchById($pmMeterRow['meter_id']); $pmMeterDbo->setChangeBulk(array('reading_released' => $assetMeterRow['reading'], 'rollover_count' => $assetMeterRow['rollover_count'])); $pmMeterDbo->setIdForUpdate($pmMeterRow['id']); $pmMeterDbo->update(); } catch (CalemDboDataNotFoundException $ex) { } } } } catch (CalemDboDataNotFoundException $ex) { } }
public function addWogenEntry() { $woGenDbo = CalemFactory::getDbo('wo_generation'); $row = array('status_id' => 'wgn_started', 'to_date' => CalemText::getServerDate($this->endDate)); $woGenDbo->setChangeBulk($row); $this->wogenEntryId = $woGenDbo->insert(); return $this->wogenEntryId; //for test use }
public function onDataUpdated($baseTable, $baseCurrent, $baseUpdate, $customTable, $customCurrent, $customUpdate) { //Must have a status change if (isset($baseUpdate['status_id'])) { //Managing status changes if ($baseUpdate['status_id'] == 'wos_closed') { if ($baseCurrent['pm_id']) { //Now update PM to set the date $pmDbo = CalemFactory::getDbo('pm_asset'); $pmDbo->updateBySqlParam('update pm_asset set last_closed=? where pm_id=? and asset_id=?', array(CalemText::getServerDate(), $baseCurrent['pm_id'], $baseCurrent['asset_id'])); } //Clear reserved $reserveBo = new CalemWoReservedBo(); $reserveBo->removeReservedByWo($baseCurrent['id']); } } //Other listeners $this->notifyDataUpdated($baseTable, $baseCurrent, $baseUpdate, $customTable, $customCurrent, $customUpdate); }
public function unserializeOneDay($startDate, $startTime, $xid, $counts, $series, $graph) { $data = $counts ? unserialize($counts) : array(); $series .= '<value xid="' . $xid . '">' . $startDate . '</value>' . "\n"; foreach ($graph as $key => $val) { $graph[$key] .= '<value xid="' . $xid . '">' . ($data[$key] ? $data[$key] : 0) . '</value>' . "\n"; } $xid++; $startTime = strtotime("+1 day", $startTime); $startDate = CalemText::getServerDate($startTime); return array($series, $graph, $startDate, $startTime, $xid); }
/** * When updating a PO * -- fill-in vendor if changed * -- fill-in buyer if changed */ public function beforeUpdate($baseTable, $baseCurrent, $baseUpdate) { //vendor if (isset($baseUpdate['vendor_id'])) { $baseUpdate = $this->fillInVendor($baseUpdate['vendor_id'], $baseUpdate); } //buyer if (isset($baseUpdate['buyer_id'])) { $baseUpdate = $this->fillInBuyer($baseUpdate['buyer_id'], $baseUpdate); } /** * Status change handling * 1) change a PO to voided, remove the REQ from the PO * 2) change a PO from voided to another status, remove all the PO items - have to start over. * 3) set up po_date if status is changed to 'approved' and po_date is not set */ if (isset($baseUpdate['status_id'])) { if ($baseUpdate['status_id'] == 'po_status_voided') { //Changing to voided. $this->removeAllReqFromPo($baseCurrent['id']); } else { if ($baseCurrent['status_id'] == 'po_status_voided') { //Coming out of voided. $this->resetPoItems($baseCurrent['id']); //Reset cost info $baseUpdate['po_item_total'] = 0; $baseUpdate['tax_charge'] = 0; $baseUpdate['total_charge'] = 0; } } //Checking for po date if ($baseUpdate['status_id'] == 'po_status_approved' && !$baseUpdate['po_date'] && !$baseCurrent['po_date']) { $baseUpdate['po_date'] = CalemText::getServerDate(); } } return $baseUpdate; }