/**
  * 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);
 }
Esempio n. 2
0
 /**
  * Add a selling item
  *
  * @param string      $serialNo
  * @param string      $description
  * @param SellingItem $newSellingItem
  *
  * @return OrderItem
  */
 public function addSellingItem($serialNo, $description = '', SellingItem &$newSellingItem = null)
 {
     $newSellingItem = SellingItem::create($this, $serialNo, $description);
     return self::get($this->getId());
 }