_fullName; } /** * Устанавливает Название организации или ФИО * * @param string $value Название организации или ФИО * * @throws InvalidPropertyValueTypeException Выбрасывается если в качестве значения была передана не строка */ public function setFullName($value) { if ($value === null || $value === '') { $this->_fullName = null; } elseif (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid full_name value type', 0, 'receipt.customer.full_name'); } elseif (strlen((string)$value) > 256) { throw new InvalidPropertyValueException( 'Invalid full_name value: "'.$value.'"', 0, 'receipt.customer.full_name', $value ); } else { $this->_fullName = (string)$value; } } /** * Возвращает номер телефона плательщика в формате ITU-T E.164 на который будет выслан чек * * @return string Номер телефона плательщика */ public function getPhone() { return $this->_phone; } /** * Устанавливает номер телефона плательщика в формате ITU-T E.164 на который будет выслан чек * * @param string $value Номер телефона плательщика в формате ITU-T E.164 * * @throws InvalidPropertyValueTypeException Выбрасывается если в качестве значения была передана не строка */ public function setPhone($value) { if ($value === null || $value === '') { $this->_phone = null; } elseif (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid phone value type', 0, 'receipt.customer.phone'); } else { $this->_phone = (string)preg_replace('/\D/', '', $value); } } /** * Возвращает адрес электронной почты на который будет выслан чек * * @return string E-mail адрес плательщика */ public function getEmail() { return $this->_email; } /** * Устанавливает адрес электронной почты на который будет выслан чек * * @param string $value E-mail адрес плательщика * * @throws InvalidPropertyValueTypeException Выбрасывается если в качестве значения была передана не строка */ public function setEmail($value) { if ($value === null || $value === '') { $this->_email = null; } elseif (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid email value type', 0, 'receipt.customer.email'); } else { $this->_email = (string)$value; } } /** * @return string */ public function getInn() { return $this->_inn; } /** * Устанавливает ИНН плательщика * * @param string $value ИНН плательщика (10 или 12 цифр) * * @throws InvalidPropertyValueTypeException Выбрасывается если в качестве значения была передана не строка * @throws InvalidPropertyValueException Выбрасывается если ИНН не соответствует формату 10 или 12 цифр */ public function setInn($value) { if ($value === null || $value === '') { $this->_inn = null; } elseif (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid inn value type', 0, 'receipt.customer.inn'); } elseif (!preg_match('/^([0-9]{10}|[0-9]{12})$/', (string)$value)) { throw new InvalidPropertyValueException('Invalid inn value: "'.$value.'"', 0, 'receipt.customer.inn'); } else { $this->_inn = (string)$value; } } /** * Проверка на заполненность объекта * @return bool */ public function isEmpty() { $data = $this->getFullName() . $this->getEmail() . $this->getPhone() . $this->getInn(); return empty($data); } /** * @return array */ public function jsonSerialize() { $result = array(); $value = $this->getFullName(); if (!empty($value)) { $result['full_name'] = $value; } $value = $this->getEmail(); if (!empty($value)) { $result['email'] = $value; } $value = $this->getPhone(); if (!empty($value)) { $result['phone'] = $value; } $value = $this->getInn(); if (!empty($value)) { $result['inn'] = $value; } return $result; } }