/** * @param ResultInterface $result * * @return RecordInterface */ public function storeResult(ResultInterface $result) { $number = PhoneNumberUtil::getInstance()->parse($result->getRecipient(), 'TH'); $provider = $this->provider->getActivedProvider(); $object = $this->createNew(); $object->setMessage($result->getBody()); $object->setTransactionId($result->getId()); $object->setNumber($number); $object->setState($object::STATE_SENT); $object->setPrice($provider->getPrice()); $object->setProvider($provider); $object->setCurrency($provider->getCurrency()); $event = new GenericEvent($object); $this->dispatchEvent('dos_sms_record_pre_store', $event); $this->manager->persist($object); $this->manager->flush(); $this->dispatchEvent('dos_sms_record_post_store', $event); return $object; }