172 lines
4.4 KiB
PHP
172 lines
4.4 KiB
PHP
|
<?php
|
|||
|
/**
|
|||
|
* Copyright (c) Антон Аксенов (aka Anthony Axenov)
|
|||
|
*
|
|||
|
* This code is licensed under MIT.
|
|||
|
* Этот код распространяется по лицензии MIT.
|
|||
|
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
|||
|
*/
|
|||
|
|
|||
|
namespace AtolOnline\Entities;
|
|||
|
|
|||
|
/**
|
|||
|
* Класс CorrectionInfo, описывающий данные коррекции
|
|||
|
*
|
|||
|
* @package AtolOnline\Entities
|
|||
|
*/
|
|||
|
class CorrectionInfo extends AtolEntity
|
|||
|
{
|
|||
|
/**
|
|||
|
* @var int Тип коррекции. Тег ФФД - 1173.
|
|||
|
*/
|
|||
|
protected $type;
|
|||
|
|
|||
|
/**
|
|||
|
* @var string Дата документа основания для коррекции. Тег ФФД - 1178.
|
|||
|
*/
|
|||
|
protected $base_date;
|
|||
|
|
|||
|
/**
|
|||
|
* @var string Номер документа основания для коррекции. Тег ФФД - 1179.
|
|||
|
*/
|
|||
|
protected $base_number;
|
|||
|
|
|||
|
/**
|
|||
|
* @var string Описание коррекции. Тег ФФД - 1177.
|
|||
|
*/
|
|||
|
protected $base_name;
|
|||
|
|
|||
|
/**
|
|||
|
* CorrectionInfo constructor.
|
|||
|
*
|
|||
|
* @param string|null $type Тип коррекции
|
|||
|
* @param string|null $base_date Дата документа
|
|||
|
* @param string|null $base_number Номер документа
|
|||
|
* @param string|null $base_name Описание коррекции
|
|||
|
*/
|
|||
|
public function __construct(?string $type = null, ?string $base_date = null, ?string $base_number = null, ?string $base_name = null)
|
|||
|
{
|
|||
|
if ($type) {
|
|||
|
$this->setType($type);
|
|||
|
}
|
|||
|
if ($base_date) {
|
|||
|
$this->setDate($base_date);
|
|||
|
}
|
|||
|
if ($base_number) {
|
|||
|
$this->setNumber($base_number);
|
|||
|
}
|
|||
|
if ($base_name) {
|
|||
|
$this->setName($base_name);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Возвращает номер документа основания для коррекции.
|
|||
|
* Тег ФФД - 1179.
|
|||
|
*
|
|||
|
* @return string|null
|
|||
|
*/
|
|||
|
public function getNumber(): ?string
|
|||
|
{
|
|||
|
return $this->base_name;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Устанавливает номер документа основания для коррекции.
|
|||
|
* Тег ФФД - 1179.
|
|||
|
*
|
|||
|
* @param string $number
|
|||
|
* @return $this
|
|||
|
*/
|
|||
|
public function setNumber(string $number)
|
|||
|
{
|
|||
|
$this->base_number = trim($number);
|
|||
|
return $this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Возвращает описание коррекции.
|
|||
|
* Тег ФФД - 1177.
|
|||
|
*
|
|||
|
* @return string|null
|
|||
|
*/
|
|||
|
public function getName(): ?string
|
|||
|
{
|
|||
|
return $this->base_name;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Устанавливает описание коррекции.
|
|||
|
* Тег ФФД - 1177.
|
|||
|
*
|
|||
|
* @param string $name
|
|||
|
* @return $this
|
|||
|
*/
|
|||
|
public function setName(string $name)
|
|||
|
{
|
|||
|
$this->base_name = trim($name);
|
|||
|
return $this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Возвращает дату документа основания для коррекции.
|
|||
|
* Тег ФФД - 1178.
|
|||
|
*
|
|||
|
* @return string|null
|
|||
|
*/
|
|||
|
public function getDate(): ?string
|
|||
|
{
|
|||
|
return $this->base_date;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Устанавливает дату документа основания для коррекции.
|
|||
|
* Тег ФФД - 1178.
|
|||
|
*
|
|||
|
* @param string $date Строка в формате d.m.Y
|
|||
|
* @return $this
|
|||
|
*/
|
|||
|
public function setDate(string $date)
|
|||
|
{
|
|||
|
$this->base_date = $date;
|
|||
|
return $this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Возвращает тип коррекции.
|
|||
|
* Тег ФФД - 1173.
|
|||
|
*
|
|||
|
* @return string|null
|
|||
|
*/
|
|||
|
public function getType(): ?string
|
|||
|
{
|
|||
|
return $this->type;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Устанавливает тип коррекции.
|
|||
|
* Тег ФФД - 1173.
|
|||
|
*
|
|||
|
* @param string $type
|
|||
|
* @return $this
|
|||
|
*/
|
|||
|
public function setType(string $type)
|
|||
|
{
|
|||
|
$this->type = $type;
|
|||
|
return $this;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @inheritDoc
|
|||
|
*/
|
|||
|
public function jsonSerialize()
|
|||
|
{
|
|||
|
return [
|
|||
|
'type' => $this->getType() ?? '', // обязателен
|
|||
|
'base_date' => $this->getDate() ?? '', // обязателен
|
|||
|
'base_number' => $this->getNumber() ?? '', // обязателен
|
|||
|
'base_name' => $this->getName() ?? '' // обязателен
|
|||
|
];
|
|||
|
}
|
|||
|
}
|