/** * @service coupon write * @param Id * @return Gpf_Rpc_Action */ public function assignCoupon(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); $action->setErrorMessage($this->_('Failed to assign coupon')); $action->setInfoMessage($this->_('Coupon was successfully assigned')); $coupon = new Pap_Features_Coupon_Coupon(); $coupon->setId($action->getParam('id')); try { $unusedCoupon = $coupon->getUnusedCoupon(); $unusedCoupon->setUserID(Gpf_Session::getAuthUser()->getPapUserId()); $unusedCoupon->save(); $action->addOk(); } catch (Gpf_Exception $e) { $action->addError(); } return $action; }