src/Entity/Cupon.php line 22

  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\User;
  4. use App\Entity\TransaccionAfiliado;
  5. use App\Entity\UserStats;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Validator\Mapping\ClassMetadata;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. /**
  11.  * Cupon
  12.  *
  13.  * @ORM\Table()
  14.  * @ORM\Entity()
  15.  * @UniqueEntity("codigo")
  16.  * @ORM\HasLifecycleCallbacks()
  17.  */
  18. class Cupon
  19. {
  20.     /**
  21.      * @var integer
  22.      *
  23.      * @ORM\Column(name="id", type="integer")
  24.      * @ORM\Id
  25.      * @ORM\GeneratedValue(strategy="AUTO")
  26.      */
  27.     private $id;
  28.     /**
  29.     * @ORM\ManyToOne(targetEntity="User", inversedBy="cupon")
  30.     * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
  31.     */
  32.     private $usuario;
  33.     /**
  34.      * @var string
  35.      *
  36.      * @ORM\Column(name="descripcion", type="string", length=255, nullable=true)
  37.      */
  38.     private $descripcion;
  39.     /**
  40.      * @var boolean
  41.      *
  42.      * @ORM\Column(name="activo", type="boolean")
  43.      */
  44.     private $activo=true;
  45.     /**
  46.      * @var \DateTime
  47.      *
  48.      * @ORM\Column(name="inicio", type="datetime", nullable=true)
  49.      */
  50.     private $inicio;
  51.     /**
  52.      * @var \DateTime
  53.      *
  54.      * @ORM\Column(name="fin", type="datetime", nullable=true)
  55.      */
  56.     private $fin;
  57.     /**
  58.      * @var string
  59.      *
  60.      * @ORM\Column(name="total_usos", type="integer")
  61.      */
  62.     private $totalUsos=1;
  63.     /**
  64.      * @var string
  65.      *
  66.      * @ORM\Column(name="total_usos_usuario", type="integer")
  67.      */
  68.     private $totalUsosUsuario=1;
  69.     /**
  70.      * @var string
  71.      *
  72.      * @ORM\Column(name="codigo", type="string", length=255, unique=true)
  73.      */
  74.     private $codigo;
  75.     /**
  76.      * @var string
  77.      *
  78.      * @ORM\Column(name="codigo_tpv", type="string", length=255)
  79.      */
  80.     private $codigoTPV;
  81.     /**
  82.     * @var float
  83.     *
  84.     * @ORM\Column(name="porcentaje_descuento", type="float", nullable=false)
  85.     */
  86.     private $porcentajeDescuento;
  87.     /**
  88.     * @ORM\ManyToMany(targetEntity="Divisa", inversedBy="cupones")
  89.     * @ORM\JoinTable(name="cupon_divisa")
  90.     */
  91.     private $divisas;
  92.     /**
  93.      * @var boolean
  94.      *
  95.      * @ORM\Column(name="carrito_abandonado", type="boolean")
  96.      */
  97.     private $carritoAbandonado false;
  98.     public function __construct() {
  99.         $this->totalUsosUsuario 1;
  100.         $this->totalUsos 1;
  101.         $this->activo true;
  102.         $this->carritoAbandonado false;
  103.         $this->divisas = new ArrayCollection();
  104.     }
  105.     public static function loadValidatorMetadata(ClassMetadata $metadata)
  106.     {
  107.         $metadata->addConstraint(new UniqueEntity(array(
  108.             'fields'  => 'codigo',
  109.             'message' => 'Ya existe otro cuṕon con este código.',
  110.         )));
  111.     }
  112.     /**
  113.      * Get id
  114.      *
  115.      * @return integer
  116.      */
  117.     public function getId()
  118.     {
  119.         return $this->id;
  120.     }
  121.     /**
  122.      * Set usuario
  123.      *
  124.      * @param string $usuario
  125.      * @return Transaccion
  126.      */
  127.     public function setUsuario($usuario)
  128.     {
  129.         $this->usuario $usuario;
  130.         return $this;
  131.     }
  132.     /**
  133.      * Get usuario
  134.      *
  135.      * @return Usuario
  136.      */
  137.     public function getUsuario()
  138.     {
  139.         return $this->usuario;
  140.     }
  141.     /**
  142.      * Set descripcion
  143.      *
  144.      * @param string $descripcion
  145.      * @return Transaccion
  146.      */
  147.     public function setDescripcion($descripcion)
  148.     {
  149.         $this->descripcion $descripcion;
  150.         return $this;
  151.     }
  152.     /**
  153.      * Set valor usos
  154.      *
  155.      * @param string $cupon
  156.      * @return Cupon
  157.      */
  158.     public function quitarUnUso(){
  159.       $this->totalUsos $totalUsos -1;
  160.     }
  161.     /**
  162.      * Get descripcion
  163.      *
  164.      * @return User
  165.      */
  166.     public function getDescripcion()
  167.     {
  168.         return $this->descripcion;
  169.     }
  170.     /**
  171.      * Set activo
  172.      *
  173.      * @param string $activo
  174.      * @return Transaccion
  175.      */
  176.     public function setActivo($activo)
  177.     {
  178.         $this->activo $activo;
  179.         return $this;
  180.     }
  181.     /**
  182.      * Get activo
  183.      *
  184.      * @return User
  185.      */
  186.     public function getActivo()
  187.     {
  188.         return $this->activo;
  189.     }
  190.     /**
  191.      * Set inicio
  192.      *
  193.      * @param string $inicio
  194.      * @return Transaccion
  195.      */
  196.     public function setInicio($inicio)
  197.     {
  198.         $this->inicio $inicio;
  199.         return $this;
  200.     }
  201.     /**
  202.      * Get inicio
  203.      *
  204.      * @return string
  205.      */
  206.     public function getInicio()
  207.     {
  208.         return $this->inicio;
  209.     }
  210.     /**
  211.      * Set fin
  212.      *
  213.      * @param string $fin
  214.      * @return Transaccion
  215.      */
  216.     public function setFin($fin)
  217.     {
  218.         $this->fin $fin;
  219.         return $this;
  220.     }
  221.     /**
  222.      * Get fin
  223.      *
  224.      * @return string
  225.      */
  226.     public function getFin()
  227.     {
  228.         return $this->fin;
  229.     }
  230.     /**
  231.      * Set totalUsos
  232.      *
  233.      * @param string $totalUsos
  234.      * @return Transaccion
  235.      */
  236.     public function setTotalUsos($totalUsos)
  237.     {
  238.         $this->totalUsos $totalUsos;
  239.         return $this;
  240.     }
  241.     /**
  242.      * Get totalUsos
  243.      *
  244.      * @return \DateTime
  245.      */
  246.     public function getTotalUsos()
  247.     {
  248.         return $this->totalUsos;
  249.     }
  250.     /**
  251.      * Set totalUsosUsuario
  252.      *
  253.      * @param string $totalUsosUsuario
  254.      * @return Transaccion
  255.      */
  256.     public function setTotalUsosUsuario($totalUsosUsuario)
  257.     {
  258.         $this->totalUsosUsuario $totalUsosUsuario;
  259.         return $this;
  260.     }
  261.     /**
  262.      * Get totalUsosUsuario
  263.      *
  264.      * @return \DateTime
  265.      */
  266.     public function getTotalUsosUsuario()
  267.     {
  268.         return $this->totalUsosUsuario;
  269.     }
  270.     /**
  271.      * Set codigo
  272.      *
  273.      * @param string $codigo
  274.      * @return Transaccion
  275.      */
  276.     public function setCodigo($codigo)
  277.     {
  278.         $this->codigo $codigo;
  279.         return $this;
  280.     }
  281.     /**
  282.      * Get codigo
  283.      *
  284.      * @return string
  285.      */
  286.     public function getCodigo()
  287.     {
  288.         return $this->codigo;
  289.     }
  290.     /**
  291.      * Set codigoTPV
  292.      *
  293.      * @param string $codigoTPV
  294.      * @return Transaccion
  295.      */
  296.     public function setCodigoTPV($codigoTPV)
  297.     {
  298.         $this->codigoTPV $codigoTPV;
  299.         return $this;
  300.     }
  301.     /**
  302.      * Get codigoTPV
  303.      *
  304.      * @return string
  305.      */
  306.     public function getCodigoTPV()
  307.     {
  308.         return $this->codigoTPV;
  309.     }
  310.     public function getPorcentajeDescuento()
  311.     {
  312.         return $this->porcentajeDescuento;
  313.     }
  314.     public function setPorcentajeDescuento($porcentajeDescuento)
  315.     {
  316.         $this->porcentajeDescuento $porcentajeDescuento;
  317.         return $this;
  318.     }
  319.     public function getDivisas()
  320.     {
  321.         return $this->divisas;
  322.     }
  323.     public function addDivisa($divisa): self
  324.     {
  325.         if (!$this->divisas->contains($divisa)) {
  326.             $this->divisas->add($divisa);
  327.         }
  328.         return $this;
  329.     }
  330.     public function removeDivisa($divisa): self
  331.     {
  332.         $this->divisas->removeElement($divisa);
  333.         return $this;
  334.     }
  335.     public function setCarritoAbandonado($carritoAbandonado)
  336.     {
  337.         $this->carritoAbandonado $carritoAbandonado;
  338.         return $this;
  339.     }
  340.     public function getCarritoAbandonado()
  341.     {
  342.         return $this->carritoAbandonado;
  343.     }
  344. }