vendor/crosiersource/crosierlib-radx/src/Entity/Estoque/Fornecedor.php line 55

Open in your IDE?
  1. <?php
  2. namespace CrosierSource\CrosierLibRadxBundle\Entity\Estoque;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  7. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  8. use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
  9. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\EntityHandler;
  10. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\NotUppercase;
  11. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\TrackedEntity;
  12. use CrosierSource\CrosierLibBaseBundle\Entity\EntityId;
  13. use CrosierSource\CrosierLibBaseBundle\Entity\EntityIdTrait;
  14. use CrosierSource\CrosierLibBaseBundle\Utils\StringUtils\StringUtils;
  15. use Doctrine\ORM\Mapping as ORM;
  16. use Symfony\Component\Serializer\Annotation\Groups;
  17. use Symfony\Component\Serializer\Annotation\SerializedName;
  18. /**
  19.  * @ApiResource(
  20.  *     normalizationContext={"groups"={"fornecedor","entityId"},"enable_max_depth"=true},
  21.  *     denormalizationContext={"groups"={"fornecedor"},"enable_max_depth"=true},
  22.  *
  23.  *     itemOperations={
  24.  *          "get"={"path"="/est/fornecedor/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  25.  *          "put"={"path"="/est/fornecedor/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  26.  *          "delete"={"path"="/est/fornecedor/{id}", "security"="is_granted('ROLE_ADMIN')"}
  27.  *     },
  28.  *     collectionOperations={
  29.  *          "get"={"path"="/est/fornecedor", "security"="is_granted('ROLE_ESTOQUE')"},
  30.  *          "post"={"path"="/est/fornecedor", "security"="is_granted('ROLE_ESTOQUE')"}
  31.  *     },
  32.  *
  33.  *     attributes={
  34.  *          "pagination_items_per_page"=10,
  35.  *          "formats"={"jsonld", "csv"={"text/csv"}}
  36.  *     }
  37.  * )
  38.  * @ApiFilter(PropertyFilter::class)
  39.  *
  40.  * @ApiFilter(SearchFilter::class, properties={"nome": "partial", "nomeFantasia": "partial", "documento": "exact", "id": "exact"})
  41.  * @ApiFilter(OrderFilter::class, properties={"id", "documento", "nome", "nomeFantasia", "updated"}, arguments={"orderParameterName"="order"})
  42.  * @ApiFilter(BooleanFilter::class, properties={"utilizado": "exact"})
  43.  *
  44.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Estoque\FornecedorEntityHandler")
  45.  *
  46.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Estoque\FornecedorRepository")
  47.  * @ORM\Table(name="est_fornecedor")
  48.  * @TrackedEntity
  49.  *
  50.  * @author Carlos Eduardo Pauluk
  51.  */
  52. class Fornecedor implements EntityId
  53. {
  54.     use EntityIdTrait;
  55.     /**
  56.      *
  57.      * @ORM\Column(name="codigo", type="string")
  58.      * @var null|string
  59.      *
  60.      * @Groups("fornecedor")
  61.      */
  62.     public ?string $codigo null;
  63.     /**
  64.      *
  65.      * @ORM\Column(name="nome", type="string")
  66.      * @var null|string
  67.      *
  68.      * @Groups("fornecedor")
  69.      */
  70.     public ?string $nome null;
  71.     /**
  72.      *
  73.      * @ORM\Column(name="nome_fantasia", type="string")
  74.      * @var null|string
  75.      *
  76.      * @Groups("fornecedor")
  77.      */
  78.     public ?string $nomeFantasia null;
  79.     /**
  80.      * CPF ou CNPJ.
  81.      *
  82.      * @ORM\Column(name="documento", type="string")
  83.      * @var null|string
  84.      *
  85.      * @Groups("fornecedor")
  86.      */
  87.     public ?string $documento null;
  88.     /**
  89.      *
  90.      * @ORM\Column(name="inscricao_estadual", type="string")
  91.      * @var null|string
  92.      *
  93.      * @Groups("fornecedor")
  94.      */
  95.     public ?string $inscricaoEstadual null;
  96.     /**
  97.      * @ORM\Column(name="logradouro", type="string", length=255, nullable=true)
  98.      * @Groups("fornecedor")
  99.      * @var string|null
  100.      */
  101.     public ?string $logradouro null;
  102.     /**
  103.      * @ORM\Column(name="numero", type="string", length=30, nullable=true)
  104.      * @Groups("fornecedor")
  105.      * @var string|null
  106.      */
  107.     public ?string $numero null;
  108.     /**
  109.      * @ORM\Column(name="complemento", type="string", length=100, nullable=true)
  110.      * @Groups("fornecedor")
  111.      * @var string|null
  112.      */
  113.     public ?string $complemento null;
  114.     /**
  115.      * @ORM\Column(name="bairro", type="string", length=100, nullable=true)
  116.      * @Groups("fornecedor")
  117.      * @var string|null
  118.      */
  119.     public ?string $bairro null;
  120.     /**
  121.      * @ORM\Column(name="cep", type="string", length=8, nullable=true)
  122.      * @Groups("fornecedor")
  123.      * @var string|null
  124.      */
  125.     public ?string $cep null;
  126.     /**
  127.      * @ORM\Column(name="cidade", type="string", length=50, nullable=true)
  128.      * @Groups("fornecedor")
  129.      * @var string|null
  130.      */
  131.     public ?string $cidade null;
  132.     /**
  133.      * @ORM\Column(name="estado", type="string", length=2, nullable=true)
  134.      * @Groups("fornecedor")
  135.      * @var string|null
  136.      */
  137.     public ?string $uf null;
  138.     /**
  139.      * @ORM\Column(name="fone1", type="string", nullable=false, length=50)
  140.      * @Groups("fornecedor")
  141.      * @var string|null
  142.      */
  143.     public ?string $fone1 null;
  144.     /**
  145.      * @ORM\Column(name="fone2", type="string", nullable=true, length=50)
  146.      * @Groups("fornecedor")
  147.      * @var string|null
  148.      */
  149.     public ?string $fone2 null;
  150.     /**
  151.      * @ORM\Column(name="fone3", type="string", nullable=true, length=50)
  152.      * @Groups("fornecedor")
  153.      * @var null|string
  154.      */
  155.     public ?string $fone3 null;
  156.     /**
  157.      * @ORM\Column(name="fone4", type="string", nullable=true, length=50)
  158.      * @Groups("fornecedor")
  159.      * @var string|null
  160.      */
  161.     public ?string $fone4 null;
  162.     /**
  163.      * @ORM\Column(name="utilizado", type="boolean")
  164.      * @var null|bool
  165.      *
  166.      * @Groups("fornecedor")
  167.      */
  168.     public ?bool $utilizado null;
  169.     /**
  170.      *
  171.      * @ORM\Column(name="json_data", type="json")
  172.      * @var null|array
  173.      * @NotUppercase()
  174.      * @Groups("fornecedor")
  175.      */
  176.     public ?array $jsonData null;
  177.     /**
  178.      * @return string
  179.      * @Groups("fornecedor")
  180.      * @SerializedName("nomeFantasiaMontado")
  181.      */
  182.     public function getNomeFantasiaMontado(): string
  183.     {
  184.         return trim($this->nomeFantasia) ?: $this->nome;
  185.     }
  186.     /**
  187.      * @return string
  188.      * @Groups("fornecedor")
  189.      */
  190.     public function getNomeMontadoComDocumento(): string
  191.     {
  192.         $r StringUtils::mascararCnpjCpf($this->documento) . ' - ' $this->nome;
  193.         if ($this->nomeFantasia ?? false) {
  194.             $r .= ' (' $this->nomeFantasia ?? '' ')';
  195.         }
  196.         return $r;
  197.     }
  198. }