/**
  * 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);
 }