vendor/crosiersource/crosierlib-radx/src/Entity/Financeiro/RegistroConferencia.php line 66

Open in your IDE?
  1. <?php
  2. namespace CrosierSource\CrosierLibRadxBundle\Entity\Financeiro;
  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\Bridge\Doctrine\Orm\Filter\DateFilter;
  8. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\RangeFilter;
  9. use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
  10. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\EntityHandler;
  11. use CrosierSource\CrosierLibBaseBundle\Doctrine\Annotations\TrackedEntity;
  12. use CrosierSource\CrosierLibBaseBundle\Entity\EntityId;
  13. use CrosierSource\CrosierLibBaseBundle\Entity\EntityIdTrait;
  14. use Datetime;
  15. use Doctrine\ORM\Mapping as ORM;
  16. use Symfony\Component\Serializer\Annotation\SerializedName;
  17. use Symfony\Component\Serializer\Annotation\Groups;
  18. /**
  19.  * Entidade para manter registros de conferĂȘncias mensais.
  20.  *
  21.  * @ApiResource(
  22. *     normalizationContext={"groups"={"registroConferencia","carteira","entityId"},"enable_max_depth"=true},
  23.  *     denormalizationContext={"groups"={"registroConferencia"},"enable_max_depth"=true},
  24.  *
  25.  *     itemOperations={
  26.  *          "get"={"path"="/fin/registroConferencia/{id}", "security"="is_granted('ROLE_FINAN')"},
  27.  *          "put"={"path"="/fin/registroConferencia/{id}", "security"="is_granted('ROLE_FINAN_ADMIN')"},
  28.  *          "delete"={"path"="/fin/registroConferencia/{id}", "security"="is_granted('ROLE_FINAN_ADMIN')"}
  29.  *     },
  30.  *     collectionOperations={
  31.  *          "get"={"path"="/fin/registroConferencia", "security"="is_granted('ROLE_FINAN')"},
  32.  *          "post"={"path"="/fin/registroConferencia", "security"="is_granted('ROLE_FINAN_ADMIN')"}
  33.  *     },
  34.  *
  35.  *     attributes={
  36.  *          "pagination_items_per_page"=10,
  37.  *          "formats"={"jsonld", "csv"={"text/csv"}}
  38.  *     }
  39.  *
  40.  * )
  41.  * @ApiFilter(PropertyFilter::class)
  42.  * 
  43.  * @ApiFilter(DateFilter::class, properties={"dtRegistro"})
  44.  * 
  45.  * @ApiFilter(RangeFilter::class, properties={"valor"})
  46.  *
  47.  * @ApiFilter(SearchFilter::class,
  48.  *     properties={
  49.  *     "id": "exact",
  50.  *     "descricao": "partial",
  51.  *     "carteira": "exact"
  52.  * })
  53.  * @ApiFilter(OrderFilter::class, properties={"id", "descricao", "dtVencto", "updated"}, arguments={"orderParameterName"="order"})
  54.  *
  55.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Financeiro\RegistroConferenciaEntityHandler")
  56.  *
  57.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Financeiro\RegistroConferenciaRepository")
  58.  * @ORM\Table(name="fin_reg_conf")
  59.  * @TrackedEntity
  60.  *
  61.  * @author Carlos Eduardo Pauluk
  62.  */
  63. class RegistroConferencia implements EntityId
  64. {
  65.     use EntityIdTrait;
  66.     /**
  67.      * @ORM\Column(name="descricao", type="string")
  68.      * @Groups("registroConferencia")
  69.      */
  70.     public ?string $descricao null;
  71.     /**
  72.      * @ORM\Column(name="dt_registro", type="datetime")
  73.      * @Groups("registroConferencia")
  74.      */
  75.     public ?Datetime $dtRegistro null;
  76.     /**
  77.      * @ORM\ManyToOne(targetEntity="CrosierSource\CrosierLibRadxBundle\Entity\Financeiro\Carteira")
  78.      * @ORM\JoinColumn(name="carteira_id", nullable=true)
  79.      * @Groups("registroConferencia")
  80.      */
  81.     public ?Carteira $carteira null;
  82.     /**
  83.      * @ORM\Column(name="valor", type="decimal")
  84.      * @Groups("n")
  85.      */
  86.     public ?float $valor null;
  87.     /**
  88.      * @ORM\Column(name="obs", type="string")
  89.      * @Groups("registroConferencia")
  90.      */
  91.     public ?string $obs null;
  92.     /**
  93.      * Para aceitar tanto em string quanto em double.
  94.      * @Groups("registroConferencia")
  95.      * @SerializedName("valor")
  96.      * @return float
  97.      */
  98.     public function getValorFormatted(): float
  99.     {
  100.         return (float)$this->valor;
  101.     }
  102.     /**
  103.      * Para aceitar tanto em string quanto em double.
  104.      * @Groups("registroConferencia")
  105.      * @SerializedName("valor")
  106.      * @param float $valor
  107.      */
  108.     public function setValorFormatted(float $valor)
  109.     {
  110.         $this->valor $valor;
  111.     }
  112. }