src/Containers/OscpvSection/ContractContainer/Entities/ContractEntity.php line 132

Open in your IDE?
  1. <?php
  2. namespace App\Containers\OscpvSection\ContractContainer\Entities;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Delete;
  5. use ApiPlatform\Metadata\Get;
  6. use ApiPlatform\Metadata\GetCollection;
  7. use ApiPlatform\Metadata\Patch;
  8. use ApiPlatform\Metadata\Put;
  9. use ApiPlatform\Metadata\Post;
  10. use ApiPlatform\Metadata\ApiFilter;
  11. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  12. use ApiPlatform\Doctrine\Orm\Filter\NumericFilter;
  13. use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;
  14. use ApiPlatform\Doctrine\Orm\Filter\DateFilter;
  15. use ApiPlatform\Doctrine\Orm\Filter\BooleanFilter;
  16. use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
  17. use Doctrine\ORM\Mapping as ORM;
  18. use Doctrine\DBAL\Types\Types;
  19. use Gedmo\Mapping\Annotation as Gedmo;
  20. use Symfony\Component\Serializer\Annotation\Groups;
  21. use Symfony\Component\Serializer\Annotation\MaxDepth;
  22. use Symfony\Component\Serializer\Annotation\Context;
  23. use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
  24. use App\Containers\OscpvSection\ContractContainer\Data\Repositories\ContractRepository;
  25. use App\Containers\CrmSection\ClientContainer\Entities\ClientEntity;
  26. use App\Containers\CrmSection\CarContainer\Entities\CarEntity;
  27. use App\Containers\CrmSection\PrintablesContainer\Entities\PrintableEntity;
  28. use App\Containers\SettingSection\ListContainer\Entities\SourceEntity;
  29. use App\Containers\SettingSection\ListContainer\Entities\StatusEntity;
  30. use App\Containers\OscpvSection\ListContainer\Entities\CarTypeEntity;
  31. use App\Containers\SettingSection\ListContainer\Entities\CarBrandEntity;
  32. use App\Containers\SettingSection\ListContainer\Entities\CarModelEntity;
  33. use App\Containers\OscpvSection\ListContainer\Entities\CityEntity;
  34. use App\Containers\OscpvSection\ListContainer\Entities\PrivilegeEntity;
  35. use App\Containers\OscpvSection\ListContainer\Entities\FranchiseEntity;
  36. use App\Containers\OscpvSection\ListContainer\Entities\VoluntaryInsuranceEntity;
  37. use App\Containers\OscpvSection\CalculationContainer\Entities\CalculationEntity;
  38. use App\Containers\OscpvSection\IndexContainer\Entities\TranslationEntity;
  39. use App\Ship\ApiPlatform\Filter\SimpleSearchFilter;
  40. /** 
  41.  * Договор
  42. */
  43. #[ApiResource(
  44.     routePrefix'/oscpv',
  45.     normalizationContext: [
  46.         'groups' => 'read',
  47.         'enable_max_depth' => true
  48.     ],
  49.     operations: [
  50.         new Get(
  51.             uriTemplate'/contracts/{id}'requirements: ['id' => '\d+'],
  52.             security"is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT') or is_granted('ROLE_READONLY')"
  53.         ),
  54.         new Patch(
  55.             uriTemplate'/contracts/{id}'requirements: ['id' => '\d+'],
  56.             security"is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT')"
  57.         ),
  58.         // new Put(
  59.         //     uriTemplate: '/contracts/{id}', requirements: ['id' => '\d+'],
  60.         //     security: "is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT')"
  61.         // ),
  62.         // new Delete(
  63.         //     uriTemplate: '/contracts/{id}', requirements: ['id' => '\d+'],
  64.         //     security: "is_granted('ROLE_ADMIN')"
  65.         // ),
  66.         // new Post(
  67.         //     uriTemplate: '/contracts',
  68.         //     security: "is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT')"
  69.         // ),
  70.         new GetCollection(
  71.             uriTemplate'/contracts',
  72.             security"is_granted('ROLE_ADMIN') or is_granted('ROLE_USER_CLIENT') or is_granted('ROLE_READONLY')"
  73.         ),
  74.     ],
  75.     shortName'OSCPV_Contracts'
  76. )]
  77. #[ApiFilter(SearchFilter::class, properties: [
  78.     'id' => 'exact',
  79.     'aiwaId' => 'exact',
  80.     'aiwaNumber' => 'exact',
  81.     'number' => 'partial'
  82.     'carNumber' => 'partial'
  83.     'carVIN' => 'partial',
  84.     'status' => 'exact',
  85.     'client' => 'exact',
  86.     'car' => 'exact',
  87.     'calculation' => 'exact',
  88.     'carBrand' => 'exact',
  89.     'carModel' => 'exact',
  90.     'carType' => 'exact',
  91.     'city' => 'exact',
  92.     'privilege' => 'exact',
  93.     'franchise' => 'exact',
  94.     'voluntaryInsurance' => 'exact',
  95.     'mainContract' => 'exact',
  96.     'documentSeries' => 'partial',
  97.     'documentId' => 'partial',
  98.     'documentIssuingAuthority' => 'partial',
  99.     'promoCode' => 'exact',
  100.     'source' => 'exact',
  101.     'client.name' => 'partial'
  102.     'client.lastName' => 'partial'
  103.     'client.patronymic' => 'partial'
  104.     'client.externalCode' => 'partial'
  105.     'client.phone' => 'exact'
  106.     'client.email' => 'exact'
  107.     'client.inn' => 'exact'
  108.     'city.name' => 'exact'
  109.     'carType.name' => 'exact'
  110.     'carBrand.name' => 'exact'
  111.     'carModel.name' => 'exact'
  112.     'status.name' => 'exact'
  113.     'status.externalCode' => 'exact'
  114.     'source.name' => 'exact'
  115.     'source.externalCode' => 'exact'
  116. ])]
  117. #[ApiFilter(NumericFilter::class, properties: ['id''dateProduction'])]
  118. #[ApiFilter(RangeFilter::class, properties: ['id''priceUAH''dateProduction'])]
  119. #[ApiFilter(BooleanFilter::class, properties: ['isTaxi''isPaid''isVoluntaryInsurance''isHide'])]
  120. #[ApiFilter(DateFilter::class, properties: ['dateStart''dateEnd''documentIssueDate''dateSigningContract''aiwaDate'])]
  121. #[ApiFilter(OrderFilter::class)]
  122. #[ApiFilter(filterClassSimpleSearchFilter::class, properties: [
  123.     'number''carNumber''carVIN''aiwaId''aiwaNumber'
  124. ])]
  125. #[ORM\Entity(repositoryClassContractRepository::class)]
  126. #[ORM\Table(name'`oscpv_contracts`')]
  127. #[ORM\Index(columns: ['number''car_number'], name'oscpv_contracts_custom_idx')]
  128. #[Gedmo\TranslationEntity(class: TranslationEntity::class)]
  129. class ContractEntity
  130. {   
  131.     #[ORM\Id]
  132.     #[ORM\GeneratedValue]
  133.     #[ORM\Column(typeTypes::INTEGER)]
  134.     #[Groups(['read'])]
  135.     private ?int $id null;
  136.     // Номер договора
  137.     #[ORM\Column(typeTypes::STRINGlength50nullabletrueuniquetrue)]
  138.     #[Groups(['read'])]
  139.     private ?string $number null;
  140.     // Статус
  141.     #[ORM\ManyToOne(targetEntityStatusEntity::class)]
  142.     #[ORM\JoinColumn(name'status_id'referencedColumnName'id'nullabletrue)]
  143.     #[Groups(['read'])]
  144.     #[MaxDepth(1)]
  145.     private ?StatusEntity $status null;
  146.     // Клиент
  147.     #[ORM\ManyToOne(targetEntityClientEntity::class)]
  148.     #[ORM\JoinColumn(name'client_id'referencedColumnName'id'nullablefalse)]
  149.     #[Groups(['read'])]
  150.     #[MaxDepth(2)]
  151.     private ClientEntity $client;
  152.     // Автомобиль
  153.     #[ORM\ManyToOne(targetEntityCarEntity::class)]
  154.     #[ORM\JoinColumn(name'car_id'referencedColumnName'id'nullablefalse)]
  155.     #[Groups(['read'])]
  156.     #[MaxDepth(2)]
  157.     private CarEntity $car;
  158.     // Расчёт
  159.     #[ORM\ManyToOne(targetEntityCalculationEntity::class)]
  160.     #[ORM\JoinColumn(name'calculation_id'referencedColumnName'id'nullablefalse)]
  161.     #[Groups(['read'])]
  162.     #[MaxDepth(2)]
  163.     private CalculationEntity $calculation;
  164.     // Номер авто
  165.     #[ORM\Column(typeTypes::STRINGlength50nullablefalse)]
  166.     #[Groups(['read'])]
  167.     private string $carNumber;
  168.     // Марка
  169.     #[ORM\ManyToOne(targetEntityCarBrandEntity::class)]
  170.     #[ORM\JoinColumn(name'car_brand_id'referencedColumnName'id'nullablefalse)]
  171.     #[Groups(['read'])]
  172.     #[MaxDepth(1)]
  173.     private CarBrandEntity $carBrand;
  174.     // Модель
  175.     #[ORM\ManyToOne(targetEntityCarModelEntity::class)]
  176.     #[ORM\JoinColumn(name'car_model_id'referencedColumnName'id'nullablefalse)]
  177.     #[Groups(['read'])]
  178.     #[MaxDepth(1)]
  179.     private CarModelEntity $carModel;
  180.     // Год выпуска
  181.     #[ORM\Column(typeTypes::INTEGERlength4nullablefalse)]
  182.     #[Groups(['read'])]
  183.     private int $dateProduction;
  184.     // Объем двигателя
  185.     #[ORM\ManyToOne(targetEntityCarTypeEntity::class)]
  186.     #[ORM\JoinColumn(name'car_type_id'referencedColumnName'id'nullablefalse)]
  187.     #[Groups(['read'])]
  188.     #[MaxDepth(1)]
  189.     private CarTypeEntity $carType;
  190.     // VIN
  191.     #[ORM\Column(typeTypes::STRINGlength150nullablefalse)]
  192.     #[Groups(['read'])]
  193.     private string $carVIN;
  194.     // Город
  195.     #[ORM\ManyToOne(targetEntityCityEntity::class)]
  196.     #[ORM\JoinColumn(name'city_id'referencedColumnName'id'nullablefalse)]
  197.     #[Groups(['read'])]
  198.     #[MaxDepth(1)]
  199.     private CityEntity $city;
  200.     // Льготы
  201.     #[ORM\ManyToOne(targetEntityPrivilegeEntity::class)]
  202.     #[ORM\JoinColumn(name'privilege_id'referencedColumnName'id'nullabletrue)]
  203.     #[Groups(['read'])]
  204.     #[MaxDepth(1)]
  205.     private ?PrivilegeEntity $privilege null;
  206.     // Франшиза
  207.     #[ORM\ManyToOne(targetEntityFranchiseEntity::class)]
  208.     #[ORM\JoinColumn(name'franchise_id'referencedColumnName'id'nullabletrue)]
  209.     #[Groups(['read'])]
  210.     #[MaxDepth(1)]
  211.     private ?FranchiseEntity $franchise null;
  212.     // Используется в такси
  213.     #[ORM\Column(typeTypes::BOOLEAN)]
  214.     #[Groups(['read'])]
  215.     private ?bool $isTaxi false;
  216.     // Дополнительное добровольное страхование
  217.     #[ORM\ManyToOne(targetEntityVoluntaryInsuranceEntity::class)]
  218.     #[ORM\JoinColumn(name'voluntary_insurance_id'referencedColumnName'id'nullabletrue)]
  219.     #[Groups(['read'])]
  220.     #[MaxDepth(1)]
  221.     private ?VoluntaryInsuranceEntity $voluntaryInsurance null;
  222.     // Договор дополнительного добровольного страхования
  223.     #[ORM\Column(typeTypes::BOOLEAN)]
  224.     #[Groups(['read'])]
  225.     private ?bool $isVoluntaryInsurance false;
  226.     // Основновной договор для дополнительного добровольного страхования
  227.     #[ORM\ManyToOne(targetEntityContractEntity::class)]
  228.     #[ORM\JoinColumn(name'main_contract_id'referencedColumnName'id'nullabletrueuniquetrue)]
  229.     #[Groups(['read'])]
  230.     #[MaxDepth(2)]
  231.     private ?ContractEntity $mainContract null;
  232.     // Стоимость в ГРН
  233.     #[ORM\Column(typeTypes::FLOATscale3nullabletrue)]
  234.     #[Groups(['read'])]
  235.     private ?float $priceUAH null;
  236.     // Серия льготного документа
  237.     #[ORM\Column(typeTypes::STRINGlength50nullabletrue)]
  238.     #[Groups(['read'])]
  239.     private ?string $documentSeries null;
  240.     // Номер льготного документа
  241.     #[ORM\Column(typeTypes::STRINGlength50nullabletrue)]
  242.     #[Groups(['read'])]
  243.     private ?string $documentId null;
  244.     // Кем выдан льготный документ
  245.     #[ORM\Column(typeTypes::STRINGlength255nullabletrue)]
  246.     #[Gedmo\Translatable]
  247.     #[Groups(['read'])]
  248.     private ?string $documentIssuingAuthority null;
  249.     // Дата выдачи льготного документа
  250.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLEnullabletrue)]
  251.     #[Context(
  252.         normalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'],
  253.         denormalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d']
  254.     )]
  255.     #[Groups(['read'])]
  256.     private ?\DateTimeInterface $documentIssueDate null;
  257.     // Дата начала действия
  258.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLEnullabletrue)]
  259.     #[Context(
  260.         normalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'],
  261.         denormalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d']
  262.     )]
  263.     #[Groups(['read'])]
  264.     private ?\DateTimeInterface $dateStart null;
  265.     // Дата окончания действия
  266.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLEnullabletrue)]
  267.     #[Context(
  268.         normalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'],
  269.         denormalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d']
  270.     )]
  271.     #[Groups(['read'])]
  272.     private ?\DateTimeInterface $dateEnd null;
  273.     // Код подписи договора
  274.     #[ORM\Column(typeTypes::STRINGlength100nullabletrue)]
  275.     #[Groups(['read'])]
  276.     private ?string $codeSigningContract null;
  277.     // Дата подписи договора
  278.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLEnullabletrue)]
  279.     #[Context(
  280.         normalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d H:i:s'],
  281.         denormalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d H:i:s']
  282.     )]
  283.     #[Groups(['read'])]
  284.     private ?\DateTimeInterface $dateSigningContract null;
  285.     // Договор оплачен
  286.     #[ORM\Column(typeTypes::BOOLEAN)]
  287.     #[Groups(['read'])]
  288.     private ?bool $isPaid false;
  289.     // Скрыть
  290.     #[ORM\Column(typeTypes::BOOLEAN)]
  291.     #[Groups(['read'])]
  292.     private ?bool $isHide false;
  293.     // Промокод
  294.     #[ORM\Column(typeTypes::STRINGlength150nullabletrue)]
  295.     #[Groups(['read'])]
  296.     private ?string $promoCode null;
  297.     // Печатная форма
  298.     #[Groups(['read'])]
  299.     public ?PrintableEntity $printable null;
  300.     // Источник
  301.     #[ORM\ManyToOne(targetEntitySourceEntity::class)]
  302.     #[ORM\JoinColumn(name'source_id'referencedColumnName'id'nullabletrue)]
  303.     #[Groups(['read'])]
  304.     #[MaxDepth(1)]
  305.     private ?SourceEntity $source null;
  306.     // Идентификатор договора в Aiwa
  307.     #[ORM\Column(typeTypes::STRINGlength50nullabletrue)]
  308.     #[Groups(['read'])]
  309.     private ?string $aiwaId null;
  310.     // Номер договора в Aiwa
  311.     #[ORM\Column(typeTypes::STRINGlength50nullabletrue)]
  312.     #[Groups(['read'])]
  313.     private ?string $aiwaNumber null;
  314.     // Ссылка на договор в МТСБУ
  315.     #[ORM\Column(typeTypes::STRINGlength250nullabletrue)]
  316.     #[Groups(['read'])]
  317.     private ?string $mtsbuLink null;
  318.     // Дата получения данных из Aiwa
  319.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLEnullabletrue)]
  320.     #[Context(
  321.         normalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d H:i:s'],
  322.         denormalizationContext: [DateTimeNormalizer::FORMAT_KEY => 'Y-m-d H:i:s']
  323.     )]
  324.     #[Groups(['read'])]
  325.     private ?\DateTimeInterface $aiwaDate null;
  326.     #[Gedmo\Timestampable(on'create')]
  327.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLE)]
  328.     #[Groups(['read'])]
  329.     protected $createdAt;
  330.     #[Gedmo\Timestampable(on'update')]
  331.     #[ORM\Column(typeTypes::DATETIME_IMMUTABLE)]
  332.     #[Groups(['read'])]
  333.     protected $updatedAt;
  334.     /**
  335.      * Used locale to override Translation listener`s locale
  336.      * this is not a mapped field of entity metadata, just a simple property
  337.      */
  338.     #[Gedmo\Locale]
  339.     private $locale;
  340.     public function getId(): ?int
  341.     {
  342.         return $this->id;
  343.     }
  344.     public function getNumber()
  345.     {
  346.         return $this->number;
  347.     }
  348.     public function setNumber($number)
  349.     {
  350.         $this->number $number;
  351.         return $this;
  352.     }
  353.     public function getStatus()
  354.     {
  355.         return $this->status;
  356.     }
  357.     public function setStatus($status)
  358.     {
  359.         $this->status $status;
  360.         return $this;
  361.     }
  362.  
  363.     public function getClient()
  364.     {
  365.         return $this->client;
  366.     }
  367.     public function setClient($client)
  368.     {
  369.         $this->client $client;
  370.         return $this;
  371.     }
  372.     public function getCar()
  373.     {
  374.         return $this->car;
  375.     }
  376.     public function setCar($car)
  377.     {
  378.         $this->car $car;
  379.         return $this;
  380.     }
  381.     public function getCalculation()
  382.     {
  383.         return $this->calculation;
  384.     }
  385.     public function setCalculation($calculation)
  386.     {
  387.         $this->calculation $calculation;
  388.         return $this;
  389.     }
  390.     public function getCarNumber()
  391.     {
  392.         return $this->carNumber;
  393.     }
  394.     public function setCarNumber($number)
  395.     {
  396.         $this->carNumber = ($number !== null str_replace(' ',''trim($number)) : null);
  397.         return $this;
  398.     }
  399.     public function getCarBrand()
  400.     {
  401.         return $this->carBrand;
  402.     }
  403.     public function setCarBrand($brand)
  404.     {
  405.         $this->carBrand $brand;
  406.         return $this;
  407.     }
  408.     public function getCarModel()
  409.     {
  410.         return $this->carModel;
  411.     }
  412.     public function setCarModel($model)
  413.     {
  414.         $this->carModel $model;
  415.         return $this;
  416.     }
  417.     public function setDateProduction($year)
  418.     {
  419.         $this->dateProduction $year;
  420.         return $this;
  421.     }
  422.     public function getDateProduction()
  423.     {
  424.         return $this->dateProduction;
  425.     }
  426.     public function getCarType()
  427.     {
  428.         return $this->carType;
  429.     }
  430.     public function setCarType($type)
  431.     {
  432.         $this->carType $type;
  433.         return $this;
  434.     }
  435.     public function getCarVIN()
  436.     {
  437.         return $this->carVIN;
  438.     }
  439.     public function setCarVIN($VIN)
  440.     {
  441.         $this->carVIN $VIN;
  442.         return $this;
  443.     }
  444.     public function getCity()
  445.     {
  446.         return $this->city;
  447.     }
  448.     public function setCity($city)
  449.     {
  450.         $this->city $city;
  451.         return $this;
  452.     }
  453.     public function getPrivilege()
  454.     {
  455.         return $this->privilege;
  456.     }
  457.     public function setPrivilege($privilege)
  458.     {
  459.         $this->privilege $privilege;
  460.         return $this;
  461.     }
  462.     public function getFranchise()
  463.     {
  464.         return $this->franchise;
  465.     }
  466.     public function setFranchise($franchise)
  467.     {
  468.         $this->franchise $franchise;
  469.         return $this;
  470.     }
  471.     public function getIsTaxi()
  472.     {
  473.         return $this->isTaxi;
  474.     }
  475.     public function setIsTaxi($value)
  476.     {
  477.         $this->isTaxi $value;
  478.         return $this;
  479.     }
  480.     public function getVoluntaryInsurance()
  481.     {
  482.         return $this->voluntaryInsurance;
  483.     }
  484.     public function setVoluntaryInsurance($voluntaryInsurance)
  485.     {
  486.         $this->voluntaryInsurance $voluntaryInsurance;
  487.         return $this;
  488.     }
  489.     public function getIsVoluntaryInsurance()
  490.     {
  491.         return $this->isVoluntaryInsurance;
  492.     }
  493.     public function setIsVoluntaryInsurance($value)
  494.     {
  495.         $this->isVoluntaryInsurance $value;
  496.         return $this;
  497.     }
  498.     public function getMainContract()
  499.     {
  500.         return $this->mainContract;
  501.     }
  502.     public function setMainContract($contract)
  503.     {
  504.         $this->mainContract $contract;
  505.         return $this;
  506.     }
  507.     
  508.     public function getPriceUAH()
  509.     {
  510.         return $this->priceUAH;
  511.     }
  512.     public function setPriceUAH($price)
  513.     {
  514.         $this->priceUAH = ($price !== null round($price3) : null);
  515.         return $this;
  516.     }
  517.     public function getDocumentIssuingAuthority()
  518.     {
  519.         return $this->documentIssuingAuthority;
  520.     }
  521.     public function setDocumentIssuingAuthority($value)
  522.     {
  523.         $this->documentIssuingAuthority $value;
  524.         return $this;
  525.     }
  526.     public function getDocumentId()
  527.     {
  528.         return $this->documentId;
  529.     }
  530.     public function setDocumentId($value)
  531.     {
  532.         $this->documentId $value;
  533.         return $this;
  534.     }
  535.     public function getDocumentSeries()
  536.     {
  537.         return $this->documentSeries;
  538.     }
  539.     public function setDocumentSeries($value)
  540.     {
  541.         $this->documentSeries $value;
  542.         return $this;
  543.     }
  544.     public function setDocumentIssueDate(\DateTimeInterface|null $date)
  545.     {
  546.         $this->documentIssueDate $date;
  547.         return $this;
  548.     }
  549.     public function getDocumentIssueDate()
  550.     {
  551.         return $this->documentIssueDate;
  552.     }
  553.     public function setDateStart(\DateTimeInterface|null $date)
  554.     {
  555.         $this->dateStart $date;
  556.         return $this;
  557.     }
  558.     public function getDateStart()
  559.     {
  560.         return $this->dateStart;
  561.     }
  562.     public function setDateEnd(\DateTimeInterface|null $date)
  563.     {
  564.         $this->dateEnd $date;
  565.         return $this;
  566.     }
  567.     public function getDateEnd()
  568.     {
  569.         return $this->dateEnd;
  570.     }
  571.     public function getCodeSigningContract()
  572.     {
  573.         return $this->codeSigningContract;
  574.     }
  575.  
  576.     public function setCodeSigningContract($code)
  577.     {
  578.         $this->codeSigningContract $code;
  579.         return $this;
  580.     }
  581.     public function setDateSigningContract(\DateTimeInterface|null $date)
  582.     {
  583.         $this->dateSigningContract $date;
  584.         return $this;
  585.     }
  586.     public function getDateSigningContract()
  587.     {
  588.         return $this->dateSigningContract;
  589.     }
  590.     public function getIsPaid()
  591.     {
  592.         return $this->isPaid;
  593.     }
  594.  
  595.     public function setIsPaid($value)
  596.     {
  597.         $this->isPaid $value;
  598.         return $this;
  599.     }
  600.     public function getIsHide()
  601.     {
  602.         return $this->isHide;
  603.     }
  604.     public function setIsHide($value)
  605.     {
  606.         $this->isHide $value;
  607.         return $this;
  608.     }
  609.     public function getPromoCode()
  610.     {
  611.         return $this->promoCode;
  612.     }
  613.     public function setPromoCode($value)
  614.     {
  615.         $this->promoCode $value;
  616.         return $this;
  617.     }
  618.     public function getSource()
  619.     {
  620.         return $this->source;
  621.     }
  622.     public function setSource($source)
  623.     {
  624.         $this->source $source;
  625.         return $this;
  626.     }
  627.     public function getAiwaId()
  628.     {
  629.         return $this->aiwaId;
  630.     }
  631.     public function setAiwaId($value)
  632.     {
  633.         $this->aiwaId $value;
  634.         return $this;
  635.     }
  636.     public function getAiwaNumber()
  637.     {
  638.         return $this->aiwaNumber;
  639.     }
  640.     public function setAiwaNumber($value)
  641.     {
  642.         $this->aiwaNumber $value;
  643.         return $this;
  644.     }
  645.     public function getMtsbuLink()
  646.     {
  647.         return $this->mtsbuLink;
  648.     }
  649.     public function setMtsbuLink($link)
  650.     {
  651.         $this->mtsbuLink trim($link);
  652.         return $this;
  653.     }
  654.     public function setAiwaDate(\DateTimeInterface|null $date)
  655.     {
  656.         $this->aiwaDate $date;
  657.         return $this;
  658.     }
  659.     public function getAiwaDate()
  660.     {
  661.         return $this->aiwaDate;
  662.     }
  663.     public function getCreatedAt()
  664.     {
  665.         return $this->createdAt;
  666.     }
  667.     public function getUpdatedAt()
  668.     {
  669.         return $this->updatedAt;
  670.     }
  671.     public function setTranslatableLocale($locale)
  672.     {
  673.         $this->locale $locale;
  674.     }
  675. }