示例#1
0
 public function updateStatus($status)
 {
     if (false === WsPackageStatus::checkStatus($status)) {
         throw new Exception("Wrong status specified!");
     }
     $this->getTable()->getDefaultAdapter()->beginTransaction();
     $createdBy = $this->created_by;
     $idPackage = $this->id_package;
     $this->getTable()->getDefaultAdapter()->query('LOCK TABLE ws.package_status IN ROW EXCLUSIVE MODE;')->fetch();
     try {
         $this->softDelete();
         $this->getTable()->createRow(array('created_by' => $createdBy, 'id_status' => $status, 'id_package' => $idPackage))->save();
         $this->getTable()->getDefaultAdapter()->commit();
     } catch (Exception $e) {
         $this->getTable()->getDefaultAdapter()->rollBack();
     }
 }
示例#2
0
文件: Package.php 项目: knatorski/SMS
 /**
  * Update or create new Package Status
  * @param type $packageId
  * @param type $packageStatusId
  * @return type
  */
 public function updatePackageStatus($packageId, $packageStatusId)
 {
     $packageStatus = new WsPackageStatus();
     $packageStatusRow = $packageStatus->findOneByPackageId($packageId);
     if (null === $packageStatusRow) {
         return $packageStatus->createRow(array('id_package' => $packageId, 'id_status' => WsPackageStatus::checkStatus($packageStatusId) ? $packageStatusId : WsPackageStatus::STATUS_NEW))->save();
     }
     $packageStatusRow->updateStatus($packageStatusId);
     return $packageStatusRow->id;
 }