vendor/crosiersource/crosierlib-radx/src/Entity/Estoque/ProdutoPreco.php line 58

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\ORM\Mapping as ORM;
  15. use Symfony\Component\Serializer\Annotation\Groups;
  16. use Symfony\Component\Serializer\Annotation\SerializedName;
  17. /**
  18.  * @ApiResource(
  19.  *     normalizationContext={"groups"={"produtoPreco","listaPreco","unidade","entityId"},"enable_max_depth"=true},
  20.  *     denormalizationContext={"groups"={"produtoPreco"},"enable_max_depth"=true},
  21.  *
  22.  *     itemOperations={
  23.  *          "get"={"path"="/est/produtoPreco/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  24.  *          "put"={"path"="/est/produtoPreco/{id}", "security"="is_granted('ROLE_ESTOQUE')"},
  25.  *          "delete"={"path"="/est/produtoPreco/{id}", "security"="is_granted('ROLE_ADMIN')"}
  26.  *     },
  27.  *     collectionOperations={
  28.  *          "get"={"path"="/est/produtoPreco", "security"="is_granted('ROLE_ESTOQUE')"},
  29.  *          "post"={"path"="/est/produtoPreco", "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={
  40.  *     "nome": "partial",
  41.  *     "produto": "exact",
  42.  *     "documento": "exact",
  43.  *     "id": "exact"
  44.  * })
  45.  * @ApiFilter(OrderFilter::class, properties={"id", "documento", "nome", "updated"}, arguments={"orderParameterName"="order"})
  46.  *
  47.  * @EntityHandler(entityHandlerClass="CrosierSource\CrosierLibRadxBundle\EntityHandler\Estoque\ProdutoPrecoEntityHandler")
  48.  *
  49.  * @ORM\Entity(repositoryClass="CrosierSource\CrosierLibRadxBundle\Repository\Estoque\ProdutoPrecoRepository")
  50.  * @ORM\Table(name="est_produto_preco")
  51.  * @TrackedEntity
  52.  *
  53.  * @author Carlos Eduardo Pauluk
  54.  */
  55. class ProdutoPreco implements EntityId
  56. {
  57.     use EntityIdTrait;
  58.     /**
  59.      * @ORM\ManyToOne(targetEntity="CrosierSource\CrosierLibRadxBundle\Entity\Estoque\ListaPreco")
  60.      * @ORM\JoinColumn(name="lista_id", nullable=false)
  61.      * @Groups("produtoPreco")
  62.      * @var null|ListaPreco
  63.      */
  64.     public ?ListaPreco $lista null;
  65.     /**
  66.      * @ORM\ManyToOne(targetEntity="CrosierSource\CrosierLibRadxBundle\Entity\Estoque\Produto", inversedBy="precos")
  67.      * @ORM\JoinColumn(name="produto_id", nullable=false)
  68.      * @Groups("produtoPreco")
  69.      * @var null|Produto
  70.      */
  71.     public ?Produto $produto null;
  72.     /**
  73.      * @ORM\ManyToOne(targetEntity="CrosierSource\CrosierLibRadxBundle\Entity\Estoque\Unidade")
  74.      * @ORM\JoinColumn(name="unidade_id", nullable=false)
  75.      * @Groups("produtoPreco")
  76.      * @var null|Unidade
  77.      */
  78.     public ?Unidade $unidade null;
  79.     /**
  80.      * @ORM\Column(name="coeficiente", type="decimal", nullable=true, precision=15, scale=2)
  81.      * @var null|float
  82.      */
  83.     public ?float $coeficiente null;
  84.     /**
  85.      * @ORM\Column(name="custo_operacional", type="decimal", nullable=false, precision=15, scale=2)
  86.      * @var null|float
  87.      */
  88.     public ?float $custoOperacional 35.0;
  89.     /**
  90.      * @ORM\Column(name="dt_custo", type="date", nullable=false)
  91.      * @Groups("produtoPreco")
  92.      * @var null|DateTime
  93.      */
  94.     public ?DateTime $dtCusto null;
  95.     /**
  96.      * @ORM\Column(name="dt_preco_venda", type="date", nullable=false)
  97.      * @Groups("produtoPreco")
  98.      * @var null|DateTime
  99.      */
  100.     public ?DateTime $dtPrecoVenda null;
  101.     /**
  102.      * @ORM\Column(name="margem", type="decimal", nullable=false, precision=15, scale=2)
  103.      * @var null|float
  104.      */
  105.     public ?float $margem null;
  106.     /**
  107.      * @ORM\Column(name="prazo", type="integer", nullable=false)
  108.      * @Groups("produtoPreco")
  109.      * @var null|integer
  110.      */
  111.     public ?int $prazo null;
  112.     /**
  113.      * @ORM\Column(name="preco_custo", type="decimal", nullable=false, precision=15, scale=2)
  114.      * @var null|float
  115.      */
  116.     public ?float $precoCusto null;
  117.     /**
  118.      * @ORM\Column(name="preco_prazo", type="decimal", nullable=false, precision=15, scale=2)
  119.      * @var null|float
  120.      */
  121.     public ?float $precoPrazo null;
  122.     /**
  123.      * @ORM\Column(name="preco_promo", type="decimal", nullable=true, precision=15, scale=2)
  124.      * @var null|float
  125.      */
  126.     public ?float $precoPromo null;
  127.     /**
  128.      * @ORM\Column(name="preco_vista", type="decimal", nullable=false, precision=15, scale=2)
  129.      * @var null|float
  130.      */
  131.     public ?float $precoVista null;
  132.     /**
  133.      * @ORM\Column(name="custo_financeiro", type="decimal", nullable=true, precision=15, scale=2)
  134.      * @var null|float
  135.      */
  136.     public ?float $custoFinanceiro null;
  137.     /**
  138.      * @ORM\Column(name="atual", type="boolean")
  139.      * @Groups("produtoPreco")
  140.      * @var bool|null
  141.      */
  142.     public ?bool $atual false;
  143.     /**
  144.      * @ORM\Column(name="json_data", type="json")
  145.      * @var null|array
  146.      * @NotUppercase()
  147.      * @Groups("produtoPreco")
  148.      */
  149.     public ?array $jsonData null;
  150.     /**
  151.      * Para aceitar tanto em string quanto em double.
  152.      * @Groups("produtoPreco")
  153.      * @SerializedName("precoCusto")
  154.      * @return float
  155.      */
  156.     public function getPrecoCustoFormatted(): float
  157.     {
  158.         return (float)$this->precoCusto;
  159.     }
  160.     /**
  161.      * Para aceitar tanto em string quanto em double.
  162.      * @Groups("produtoPreco")
  163.      * @SerializedName("precoCusto")
  164.      * @param float $precoCusto
  165.      */
  166.     public function setPrecoCustoFormatted(float $precoCusto)
  167.     {
  168.         $this->precoCusto $precoCusto;
  169.     }
  170.     /**
  171.      * Para aceitar tanto em string quanto em double.
  172.      * @Groups("produtoPreco")
  173.      * @SerializedName("precoPrazo")
  174.      * @return float
  175.      */
  176.     public function getPrecoPrazoFormatted(): float
  177.     {
  178.         return (float)$this->precoPrazo;
  179.     }
  180.     /**
  181.      * Para aceitar tanto em string quanto em double.
  182.      * @Groups("produtoPreco")
  183.      * @SerializedName("precoPrazo")
  184.      * @param float $precoPrazo
  185.      */
  186.     public function setPrecoPrazoFormatted(float $precoPrazo)
  187.     {
  188.         $this->precoPrazo $precoPrazo;
  189.     }
  190.     /**
  191.      * Para aceitar tanto em string quanto em double.
  192.      * @Groups("produtoPreco")
  193.      * @SerializedName("precoVista")
  194.      * @return float
  195.      */
  196.     public function getPrecoVistaFormatted(): float
  197.     {
  198.         return (float)$this->precoVista;
  199.     }
  200.     /**
  201.      * Para aceitar tanto em string quanto em double.
  202.      * @Groups("produtoPreco")
  203.      * @SerializedName("precoVista")
  204.      * @param float $precoVista
  205.      */
  206.     public function setPrecoVistaFormatted(float $precoVista)
  207.     {
  208.         $this->precoVista $precoVista;
  209.     }
  210.     /**
  211.      * Para aceitar tanto em string quanto em double.
  212.      * @Groups("produtoPreco")
  213.      * @SerializedName("precoPromo")
  214.      * @return float
  215.      */
  216.     public function getPrecoPromoFormatted(): float
  217.     {
  218.         return (float)$this->precoPromo;
  219.     }
  220.     /**
  221.      * Para aceitar tanto em string quanto em double.
  222.      * @Groups("produtoPreco")
  223.      * @SerializedName("precoPromo")
  224.      * @param float $precoPromo
  225.      */
  226.     public function setPrecoPromoFormatted(float $precoPromo)
  227.     {
  228.         $this->precoPromo $precoPromo;
  229.     }
  230.     /**
  231.      * Para aceitar tanto em string quanto em double.
  232.      * @Groups("produtoPreco")
  233.      * @SerializedName("margem")
  234.      * @return float
  235.      */
  236.     public function getMargemFormatted(): float
  237.     {
  238.         return (float)$this->margem;
  239.     }
  240.     /**
  241.      * Para aceitar tanto em string quanto em double.
  242.      * @Groups("produtoPreco")
  243.      * @SerializedName("margem")
  244.      * @param float $margem
  245.      */
  246.     public function setMargemFormatted(float $margem)
  247.     {
  248.         $this->margem $margem;
  249.     }
  250.     /**
  251.      * Para aceitar tanto em string quanto em double.
  252.      * @Groups("produtoPreco")
  253.      * @SerializedName("custoFinanceiro")
  254.      * @return float
  255.      */
  256.     public function getCustoFinanceiroFormatted(): float
  257.     {
  258.         return (float)$this->custoFinanceiro;
  259.     }
  260.     /**
  261.      * Para aceitar tanto em string quanto em double.
  262.      * @Groups("produtoPreco")
  263.      * @SerializedName("custoFinanceiro")
  264.      * @param float $custoFinanceiro
  265.      */
  266.     public function setCustoFinanceiroFormatted(float $custoFinanceiro)
  267.     {
  268.         $this->custoFinanceiro $custoFinanceiro;
  269.     }
  270.     /**
  271.      * Para aceitar tanto em string quanto em double.
  272.      * @Groups("produtoPreco")
  273.      * @SerializedName("coeficiente")
  274.      * @return float
  275.      */
  276.     public function getCoeficienteFormatted(): float
  277.     {
  278.         return (float)$this->coeficiente;
  279.     }
  280.     /**
  281.      * Para aceitar tanto em string quanto em double.
  282.      * @Groups("produtoPreco")
  283.      * @SerializedName("coeficiente")
  284.      * @param float $coeficiente
  285.      */
  286.     public function setCoeficienteFormatted(float $coeficiente)
  287.     {
  288.         $this->coeficiente $coeficiente;
  289.     }
  290.     /**
  291.      * Para aceitar tanto em string quanto em double.
  292.      * @Groups("produtoPreco")
  293.      * @SerializedName("custoOperacional")
  294.      * @return float
  295.      */
  296.     public function getCustoOperacionalFormatted(): float
  297.     {
  298.         return (float)$this->custoOperacional;
  299.     }
  300.     /**
  301.      * Para aceitar tanto em string quanto em double.
  302.      * @Groups("produtoPreco")
  303.      * @SerializedName("custoOperacional")
  304.      * @param float $custoOperacional
  305.      */
  306.     public function setCustoOperacionalFormatted(float $custoOperacional)
  307.     {
  308.         $this->custoOperacional $custoOperacional;
  309.     }
  310. }