vendor/crosiersource/crosierlib-radx/src/Entity/Estoque/PedidoCompra.php line 53

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.  *     normalizationContext={"groups"={"pedidoCompra","entityId"},"enable_max_depth"=true},
  20.  *     denormalizationContext={"groups"={"pedidoCompra"},"enable_max_depth"=true},
  21.  *
  22.  *     itemOperations={
  23.  *          "get"={"path"="/est/pedidoCompra/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  24.  *          "put"={"path"="/est/pedidoCompra/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  25.  *          "delete"={"path"="/est/pedidoCompra/{id}", "security"="is_granted('ROLE_ADMIN')"}
  26.  *     },
  27.  *     collectionOperations={
  28.  *          "get"={"path"="/est/pedidoCompra", "security"="is_granted('ROLE_ESTOQUE')"},
  29.  *          "post"={"path"="/est/pedidoCompra", "security"="is_granted('ROLE_ESTOQUE')"}
  30.  *     },
  31.  *
  32.  *     attributes={
  33.  *          "pagination_items_per_page"=10,
  34.  *          "formats"={"jsonld", "csv"={"text/csv"}}
  35.  *     }
  36.  * )
  37.  * @ApiFilter(PropertyFilter::class)
  38.  *
  39.  * @ApiFilter(SearchFilter::class, properties={"nome": "partial", "documento": "exact", "id": "exact"})
  40.  * @ApiFilter(OrderFilter::class, properties={"id", "documento", "nome", "updated"}, arguments={"orderParameterName"="order"})
  41.  *
  42.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Estoque\PedidoCompraEntityHandler")
  43.  *
  44.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Estoque\PedidoCompraRepository")
  45.  * @ORM\Table(name="est_pedidocompra")
  46.  * @TrackedEntity
  47.  *
  48.  * @author Carlos Eduardo Pauluk
  49.  */
  50. class PedidoCompra implements EntityId
  51. {
  52.     use EntityIdTrait;
  53.     /**
  54.      *
  55.      * @ORM\Column(name="dt_emissao", type="datetime")
  56.      * @Groups("pedidoCompra")
  57.      *
  58.      * @var null|DateTime
  59.      */
  60.     public ?DateTime $dtEmissao null;
  61.     /**
  62.      *
  63.      * @ORM\Column(name="dt_prev_entrega", type="datetime")
  64.      * @Groups("pedidoCompra")
  65.      *
  66.      * @var null|DateTime
  67.      */
  68.     public ?DateTime $dtPrevEntrega null;
  69.     /**
  70.      *
  71.      * @ORM\Column(name="prazos_pagto", type="string")
  72.      * @Groups("pedidoCompra")
  73.      *
  74.      * @var null|string
  75.      */
  76.     public ?string $prazosPagto null;
  77.     /**
  78.      *
  79.      * @ORM\Column(name="responsavel", type="string")
  80.      * @Groups("pedidoCompra")
  81.      *
  82.      * @var null|string
  83.      */
  84.     public ?string $responsavel null;
  85.     /**
  86.      *
  87.      * @ORM\ManyToOne(targetEntity="CrosierSource\CrosierLibRadxBundle\Entity\Estoque\Fornecedor")
  88.      * @ORM\JoinColumn(name="fornecedor_id")
  89.      * @Groups("pedidoCompra")
  90.      *
  91.      * @var null|Fornecedor
  92.      */
  93.     public ?Fornecedor $fornecedor null;
  94.     /**
  95.      *
  96.      * @ORM\Column(name="subtotal", type="decimal", precision=15, scale=2)
  97.      * @Groups("pedidoCompra")
  98.      *
  99.      * @var null|float
  100.      */
  101.     public ?float $subtotal null;
  102.     /**
  103.      *
  104.      * @ORM\Column(name="desconto", type="decimal", precision=15, scale=2)
  105.      * @var null|float
  106.      *
  107.      * @Groups("pedidoCompra")
  108.      */
  109.     public ?float $desconto null;
  110.     /**
  111.      *
  112.      * @ORM\Column(name="total", type="decimal", precision=15, scale=2)
  113.      * @Groups("pedidoCompra")
  114.      *
  115.      * @var null|float
  116.      */
  117.     public ?float $total null;
  118.     /**
  119.      * 'INICIADO'
  120.      * 'ENVIADO'
  121.      * 'ENTREGUE PARCIAL'
  122.      * 'FINALIZADO'
  123.      * 'CANCELADO'
  124.      *
  125.      * @ORM\Column(name="status", type="string")
  126.      * @Groups("pedidoCompra")
  127.      *
  128.      * @var null|string
  129.      */
  130.     public ?string $status 'INICIADO';
  131.     /**
  132.      *
  133.      * @ORM\Column(name="obs", type="string")
  134.      * @Groups("pedidoCompra")
  135.      *
  136.      * @var null|string
  137.      */
  138.     public ?string $obs null;
  139.     /**
  140.      *
  141.      * @ORM\Column(name="json_data", type="json")
  142.      * @var null|array
  143.      * @NotUppercase()
  144.      * @Groups("pedidoCompra")
  145.      */
  146.     public ?array $jsonData null;
  147.     /**
  148.      *
  149.      * @var null|PedidoCompraItem[]|ArrayCollection
  150.      *
  151.      * @ORM\OneToMany(
  152.      *      targetEntity="PedidoCompraItem",
  153.      *      cascade={"persist"},
  154.      *      mappedBy="pedidoCompra",
  155.      *      orphanRemoval=true)
  156.      * @ORM\OrderBy({"ordem" = "ASC"})
  157.      * @Groups("pedidoCompra")
  158.      */
  159.     public $itens;
  160.     public function __construct()
  161.     {
  162.         $this->itens = new ArrayCollection();
  163.     }
  164.     public function addItem(?PedidoCompraItem $item): void
  165.     {
  166.         if (!$this->itens->contains($item)) {
  167.             $this->itens->add($item);
  168.         }
  169.     }
  170. }
  171.