_itn; } /** * Устанавливает ИНН самозанятого * * @param string|null $itn ИНН самозанятого * * @return $this */ public function setItn($itn = null) { if ($itn === null || $itn === '') { $this->_itn = null; } elseif (!TypeCast::canCastToString($itn)) { throw new InvalidPropertyValueTypeException('Invalid itn value type', 0, 'SelfEmployed.itn'); } else { $this->_itn = (string)preg_replace('/\D/', '', $itn); } return $this; } /** * Проверяет наличие ИНН самозанятого в запросе * @return bool True если ИНН самозанятого задан, false если нет */ public function hasItn() { return !empty($this->_itn); } /** * Возвращает телефон самозанятого. * * @return string|null Телефон самозанятого */ public function getPhone() { return $this->_phone; } /** * Устанавливает телефон самозанятого. * * @param string|null $phone Телефон самозанятого * * @return $this */ public function setPhone($phone = null) { if ($phone === null || $phone === '') { $this->_phone = null; } elseif (!TypeCast::canCastToString($phone)) { throw new InvalidPropertyValueTypeException('Invalid phone value type', 0, 'SelfEmployedRequest.phone'); } else { $this->_phone = (string)preg_replace('/\D/', '', $phone); } return $this; } /** * Проверяет наличие телефона самозанятого в запросе * @return bool True если телефон самозанятого задан, false если нет */ public function hasPhone() { return !empty($this->_phone); } /** * Возвращает сценарий подтверждения. * * @return SelfEmployedRequestConfirmation|null Сценарий подтверждения */ public function getConfirmation() { return $this->_confirmation; } /** * Устанавливает сценарий подтверждения. * * @param SelfEmployedConfirmation|array|null $confirmation Сценарий подтверждения * * @return $this */ public function setConfirmation($confirmation = null) { if ($confirmation === null || $confirmation === '') { $this->_confirmation = null; } elseif (is_array($confirmation)) { $factory = new SelfEmployedRequestConfirmationFactory(); $this->_confirmation = $factory->factoryFromArray($confirmation); } elseif ($confirmation instanceof SelfEmployedRequestConfirmation) { $this->_confirmation = $confirmation; } else { throw new InvalidPropertyValueTypeException( 'Invalid value type for "confirmation" parameter in SelfEmployedRequest', 0, 'SelfEmployedRequest.confirmation', $confirmation ); } return $this; } /** * Проверяет наличие сценария подтверждения самозанятого в запросе * @return bool True если сценарий подтверждения самозанятого задан, false если нет */ public function hasConfirmation() { return !empty($this->_confirmation); } /** * Проверяет на валидность текущий объект * @return bool True если объект запроса валиден, false если нет */ public function validate() { if (!$this->hasPhone() && !$this->hasItn()) { $this->setValidationError('Both itn and phone values are empty in SelfEmployedRequest'); return false; } return true; } /** * Возвращает билдер объектов запросов создания платежа * @return SelfEmployedRequestBuilder Инстанс билдера объектов запросов */ public static function builder() { return new SelfEmployedRequestBuilder(); } }