/** * Update serial numbers * * @param unknown $sender * @param unknown $params * * @throws Exception */ public function updateSerials($sender, $params) { $results = $errors = array(); try { Dao::beginTransaction(); if (!isset($params->CallbackParameter->orderItemId) || !($orderItem = OrderItem::get($params->CallbackParameter->orderItemId)) instanceof OrderItem) { throw new Exception('System Error: invalid order item passed in!'); } if (!isset($params->CallbackParameter->sellingitem)) { throw new Exception('System Error: invalid sellingitem passed in!'); } $sellingItemObj = $params->CallbackParameter->sellingitem; $sellingItem = null; if (isset($sellingItemObj->id) && !($sellingItem = SellingItem::get(trim($sellingItemObj->id))) instanceof SellingItem) { throw new Exception('System Error: invalid selling item id passed in!'); } $serialNo = isset($sellingItemObj->serialNo) ? trim($sellingItemObj->serialNo) : ''; if ($sellingItem instanceof SellingItem) { if ($serialNo === '' || isset($sellingItemObj->active) && intval($sellingItemObj->active) !== 1) { $sellingItem->setActive(false)->save(); } else { $sellingItem->setSerialNo($serialNo)->save(); } } else { if (!isset($sellingItemObj->active) || isset($sellingItemObj->active) && intval($sellingItemObj->active) === 1) { $sellingItem = SellingItem::create($orderItem, $serialNo); } } $results['orderItem'] = OrderItem::get($orderItem->getId())->getJson(); Dao::commitTransaction(); } catch (Exception $ex) { Dao::rollbackTransaction(); $errors[] = $ex->getMessage(); } $params->ResponseData = StringUtilsAbstract::getJson($results, $errors); }