vendor/crosiersource/crosierlib-radx/src/Entity/Estoque/Movimentacao.php line 54

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\OrderFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  7. use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
  8. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\EntityHandler;
  9. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\NotUppercase;
  10. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\TrackedEntity;
  11. use CrosierSource\CrosierLibBaseBundle\Entity\EntityId;
  12. use CrosierSource\CrosierLibBaseBundle\Entity\EntityIdTrait;
  13. use DateTime;
  14. use Doctrine\Common\Collections\ArrayCollection;
  15. use Doctrine\ORM\Mapping as ORM;
  16. use Symfony\Component\Serializer\Annotation\Groups;
  17. /**
  18.  * @ApiResource(
  19.  *     shortName="Estoque/Movimentacao",
  20.  *     normalizationContext={"groups"={"movimentacao","entityId"},"enable_max_depth"=true},
  21.  *     denormalizationContext={"groups"={"movimentacao"},"enable_max_depth"=true},
  22.  *
  23.  *     itemOperations={
  24.  *          "get"={"path"="/est/movimentacao/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  25.  *          "put"={"path"="/est/movimentacao/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  26.  *          "delete"={"path"="/est/movimentacao/{id}", "security"="is_granted('ROLE_ADMIN')"}
  27.  *     },
  28.  *     collectionOperations={
  29.  *          "get"={"path"="/est/movimentacao", "security"="is_granted('ROLE_ESTOQUE')"},
  30.  *          "post"={"path"="/est/movimentacao", "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", "documento": "exact", "id": "exact"})
  41.  * @ApiFilter(OrderFilter::class, properties={"id", "documento", "nome", "updated"}, arguments={"orderParameterName"="order"})
  42.  *
  43.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Estoque\MovimentacaoEntityHandler")
  44.  *
  45.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Estoque\MovimentacaoRepository")
  46.  * @ORM\Table(name="est_movimentacao")
  47.  * @TrackedEntity
  48.  *
  49.  * @author Carlos Eduardo Pauluk
  50.  */
  51. class Movimentacao implements EntityId
  52. {
  53.     use EntityIdTrait;
  54.     /**
  55.      * E/S (Entrada/SaĆ­da)
  56.      *
  57.      * @ORM\Column(name="direcao", type="string")
  58.      * @Groups("movimentacao")
  59.      *
  60.      * @var null|string
  61.      */
  62.     public ?string $direcao null;
  63.     /**
  64.      *
  65.      * @ORM\Column(name="dt_lote", type="datetime")
  66.      * @Groups("movimentacao")
  67.      *
  68.      * @var null|DateTime
  69.      */
  70.     public ?DateTime $dtLote null;
  71.     /**
  72.      *
  73.      * @ORM\Column(name="descricao", type="string")
  74.      * @Groups("movimentacao")
  75.      *
  76.      * @var null|string
  77.      */
  78.     public ?string $descricao null;
  79.     /**
  80.      *
  81.      * @ORM\Column(name="responsavel", type="string")
  82.      * @Groups("movimentacao")
  83.      *
  84.      * @var null|string
  85.      */
  86.     public ?string $responsavel null;
  87.     /**
  88.      *
  89.      * @ORM\Column(name="status", type="string")
  90.      * @Groups("movimentacao")
  91.      *
  92.      * @var null|string
  93.      */
  94.     public ?string $status null;
  95.     /**
  96.      *
  97.      * @ORM\Column(name="dt_integracao", type="datetime")
  98.      * @Groups("movimentacao")
  99.      *
  100.      * @var null|DateTime
  101.      */
  102.     public ?DateTime $dtIntegracao null;
  103.     /**
  104.      *
  105.      * @ORM\Column(name="json_data", type="json")
  106.      * @var null|array
  107.      * @NotUppercase()
  108.      * @Groups("movimentacao")
  109.      */
  110.     public ?array $jsonData null;
  111.     /**
  112.      *
  113.      * @var null|MovimentacaoItem[]|ArrayCollection
  114.      *
  115.      * @ORM\OneToMany(
  116.      *      targetEntity="MovimentacaoItem",
  117.      *      cascade={"persist"},
  118.      *      mappedBy="movimentacao",
  119.      *      orphanRemoval=true)
  120.      * @ORM\OrderBy({"updated" = "DESC"})
  121.      * @Groups("movimentacao")
  122.      */
  123.     public $itens;
  124.     public function __construct()
  125.     {
  126.         $this->itens = new ArrayCollection();
  127.     }
  128.     public function addItem(?MovimentacaoItem $item): void
  129.     {
  130.         if (!$this->itens->contains($item)) {
  131.             $this->itens->add($item);
  132.         }
  133.     }
  134. }
  135.