src/Entity/System/PaymentMethod.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\System;
  3. use App\Application\DTO\ControlPanel\Api\Payment\PaymentMethodAttributes;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7.  * PaymentMethod
  8.  *
  9.  * @ORM\Table(name="ps_payment_method")
  10.  *
  11.  * @ORM\Entity(repositoryClass="App\Repository\System\PaymentMethodRepository")
  12.  */
  13. class PaymentMethod
  14. {
  15.     public const PAYMENT_METHOD_MONEYBOX 'monedero';
  16.     public const PAYMENT_METHOD_BANKWIRE 'transferencia';
  17.     public const PAYMENT_METHOD_PAYPAL 'paypal';
  18.     public const PAYMENT_METHOD_CREDIT_CARD 'credit-card';
  19.     public const PAYMENT_METHOD_PAYCOMET 'paycomet';
  20.     public const PAYMENT_METHOD_PAYPAL_REVIEW 'paypal-revisando';
  21.     public const PAYMENT_METHOD_ADYEN 'adyen';
  22.     public const PAYMENT_METHOD_CREDIT_SERVICE 'credit_service';
  23.     public const PAYMENT_METHOD_CREDIT 'credito';
  24.     public const PAYMENT_CASH_ON_DELIVERY 'contrarrembolso';
  25.     public const PAYMENT_FLEXIBLE_PAYMENT 'pago_flexible';
  26.     public const PAYPAL_PAYMENT_METHOD_ID 2;
  27.     public const MONEYBOX_PAYMENT_METHOD_ID 4;
  28.     public const TRANSFER_PAYMENT_METHOD_ID 5;
  29.     public const CREDIT_PAYMENT_METHOD_ID 7;
  30.     public const ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID 10;
  31.     public const ADYEN_IDEAL_PAYMENT_METHOD_ID 11;
  32.     public const ADYEN_MASTERCARD_PAYMENT_METHOD_ID 12;
  33.     public const ADYEN_VISA_PAYMENT_METHOD_ID 13;
  34.     public const PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID 14;
  35.     public const ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID 15;
  36.     public const ADYEN_BANKCONTACT_PAYMENT_METHOD_ID 16;
  37.     public const ADYEN_ELECTRONIC_PAYMENT_METHOD_ID 18;
  38.     public const ADYEN_MBWAY_PAYMENT_METHOD_ID 19;
  39.     public const ADYEN_TRUSTLY_PAYMENT_METHOD_ID 20;
  40.     public const ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID 21;
  41.     public const ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID 22;
  42.     public const ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID 23;
  43.     public const ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID 24;
  44.     public const PAYMENT_METHOD_ATTRIBUTE_NAMES_INDEXED_BY_ID = [
  45.         self::PAYPAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL,
  46.         self::MONEYBOX_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_WALLET,
  47.         self::TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_BANKWIRE,
  48.         self::CREDIT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ON_CREDIT,
  49.         self::ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_AMERICAN_EXPRESS,
  50.         self::ADYEN_IDEAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_IDEAL,
  51.         self::ADYEN_MASTERCARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MASTERCARD,
  52.         self::ADYEN_VISA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_VISA,
  53.         self::PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_CREDIT_CARD,
  54.         self::ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANK_TRANSFER,
  55.         self::ADYEN_BANKCONTACT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANKCONTACT,
  56.         self::ADYEN_ELECTRONIC_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ELECTRONIC,
  57.         self::ADYEN_MBWAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MBWAY,
  58.         self::ADYEN_TRUSTLY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_TRUSTLY,
  59.         self::ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ONLINE_BANKING,
  60.         self::ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BUYNOW_PAYLATER,
  61.         self::ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_GOOGLE_PAY,
  62.         self::ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_FINISH_EBANKING,
  63.     ];
  64.     /**
  65.      * @ORM\Id()
  66.      *
  67.      * @ORM\GeneratedValue()
  68.      *
  69.      * @ORM\Column(type="integer", name="id_payment_method")
  70.      */
  71.     private $id;
  72.     /**
  73.      * @var string
  74.      *
  75.      * @ORM\Column(type="string", length=255, name="id_text")
  76.      */
  77.     private $payment;
  78.     /**
  79.      * @var string
  80.      *
  81.      * @ORM\Column(type="string", length=128, name="title")
  82.      */
  83.     private $title;
  84.     /**
  85.      * @var string|null
  86.      *
  87.      * @ORM\Column(type="string", length=128, name="subtitle", nullable=true)
  88.      */
  89.     private $subtitle;
  90.     /**
  91.      * @var string
  92.      *
  93.      * @ORM\Column(type="string", length=512, name="image_url")
  94.      */
  95.     private $imageUrl;
  96.     /**
  97.      * @var string
  98.      *
  99.      * @ORM\Column(type="string", length=64, name="slug")
  100.      */
  101.     private $slug;
  102.     /**
  103.      * @var bool
  104.      *
  105.      * @ORM\Column(type="boolean", name="recurring", options={"default" : 0})
  106.      */
  107.     private $recurring;
  108.     /**
  109.      * @var float
  110.      *
  111.      * @ORM\Column(type="decimal", scale=2, options={"default" : 0.00}, name="fixed_rate")
  112.      */
  113.     private $fixedRate;
  114.     /**
  115.      * @var float
  116.      *
  117.      * @ORM\Column(type="decimal", scale=2, options={"default" : 0.00}, name="variable_rate")
  118.      */
  119.     private $variableRate;
  120.     /**
  121.      * @var bool
  122.      *
  123.      * @ORM\Column(type="boolean", name="active", options={"default" : 0})
  124.      */
  125.     private $active;
  126.     /**
  127.      * @var bool
  128.      *
  129.      * @ORM\Column(type="boolean", name="moneybox", options={"default" : 0})
  130.      */
  131.     private $moneybox;
  132.     /**
  133.      * @var bool
  134.      *
  135.      * @ORM\Column(type="boolean", name="csv", options={"default" : 0})
  136.      */
  137.     private $csv;
  138.     /**
  139.      * @var bool
  140.      *
  141.      * @ORM\Column(type="boolean", name="activeByRole", options={"default" : 0})
  142.      */
  143.     private $activeByRole;
  144.     /**
  145.      * @var ArrayCollection<int, Cart>|Cart[]
  146.      *
  147.      * @ORM\OneToMany(targetEntity="App\Entity\System\Cart", mappedBy="packPaymentMethod")
  148.      */
  149.     private $packCarts;
  150.     /**
  151.      * @var ArrayCollection<int, Cart>|Cart[]
  152.      *
  153.      * @ORM\OneToMany(targetEntity="App\Entity\System\Cart", mappedBy="servicesPaymentMethod")
  154.      */
  155.     private $servicesCarts;
  156.     public function __construct(string $typestring $name)
  157.     {
  158.         $this->active false;
  159.         $this->moneybox false;
  160.         $this->activeByRole false;
  161.         $this->slug $type;
  162.         $this->title $name;
  163.         $this->payment self::PAYMENT_METHOD_ADYEN;
  164.         $this->subtitle $type;
  165.         $this->imageUrl $type.'.svg';
  166.         $this->recurring false;
  167.         $this->fixedRate 0;
  168.         $this->variableRate 0;
  169.         $this->csv false;
  170.     }
  171.     /**
  172.      * @return int
  173.      */
  174.     public function getId(): int
  175.     {
  176.         return $this->id;
  177.     }
  178.     /**
  179.      * @param int $id
  180.      *
  181.      * @return PaymentMethod
  182.      */
  183.     public function setId(int $id): PaymentMethod
  184.     {
  185.         $this->id $id;
  186.         return $this;
  187.     }
  188.     /**
  189.      * @return string
  190.      */
  191.     public function getPayment(): string
  192.     {
  193.         return $this->payment;
  194.     }
  195.     /**
  196.      * @param string $payment
  197.      *
  198.      * @return PaymentMethod
  199.      */
  200.     public function setPayment(string $payment): PaymentMethod
  201.     {
  202.         $this->payment $payment;
  203.         return $this;
  204.     }
  205.     /**
  206.      * @return string
  207.      */
  208.     public function getTitle(): string
  209.     {
  210.         return $this->title;
  211.     }
  212.     /**
  213.      * @param string $title
  214.      *
  215.      * @return PaymentMethod
  216.      */
  217.     public function setTitle(string $title): self
  218.     {
  219.         $this->title $title;
  220.         return $this;
  221.     }
  222.     /**
  223.      * @return string|null
  224.      */
  225.     public function getSubtitle(): ?string
  226.     {
  227.         return $this->subtitle;
  228.     }
  229.     /**
  230.      * @param string|null $subtitle
  231.      *
  232.      * @return PaymentMethod
  233.      */
  234.     public function setSubtitle(?string $subtitle): self
  235.     {
  236.         $this->subtitle $subtitle;
  237.         return $this;
  238.     }
  239.     /**
  240.      * @return string
  241.      */
  242.     public function getImageUrl(): string
  243.     {
  244.         return $this->imageUrl;
  245.     }
  246.     /**
  247.      * @param string $imageUrl
  248.      *
  249.      * @return PaymentMethod
  250.      */
  251.     public function setImageUrl(string $imageUrl): self
  252.     {
  253.         $this->imageUrl $imageUrl;
  254.         return $this;
  255.     }
  256.     /**
  257.      * @return string
  258.      */
  259.     public function getSlug(): string
  260.     {
  261.         return $this->slug;
  262.     }
  263.     /**
  264.      * @param string $slug
  265.      *
  266.      * @return PaymentMethod
  267.      */
  268.     public function setSlug(string $slug): self
  269.     {
  270.         $this->slug $slug;
  271.         return $this;
  272.     }
  273.     /**
  274.      * @return bool
  275.      */
  276.     public function isRecurring(): bool
  277.     {
  278.         return $this->recurring;
  279.     }
  280.     /**
  281.      * @param bool $recurring
  282.      *
  283.      * @return PaymentMethod
  284.      */
  285.     public function setRecurring(bool $recurring): self
  286.     {
  287.         $this->recurring $recurring;
  288.         return $this;
  289.     }
  290.     /**
  291.      * @return float
  292.      */
  293.     public function getFixedRate(): float
  294.     {
  295.         return $this->fixedRate;
  296.     }
  297.     /**
  298.      * @param float $fixedRate
  299.      *
  300.      * @return PaymentMethod
  301.      */
  302.     public function setFixedRate(float $fixedRate): self
  303.     {
  304.         $this->fixedRate $fixedRate;
  305.         return $this;
  306.     }
  307.     /**
  308.      * @return float
  309.      */
  310.     public function getVariableRate(): float
  311.     {
  312.         return $this->variableRate;
  313.     }
  314.     /**
  315.      * @param float $variableRate
  316.      *
  317.      * @return PaymentMethod
  318.      */
  319.     public function setVariableRate(float $variableRate): self
  320.     {
  321.         $this->variableRate $variableRate;
  322.         return $this;
  323.     }
  324.     /**
  325.      * @return bool
  326.      */
  327.     public function isActive(): bool
  328.     {
  329.         return $this->active;
  330.     }
  331.     /**
  332.      * @param bool $active
  333.      *
  334.      * @return PaymentMethod
  335.      */
  336.     public function setActive(bool $active): self
  337.     {
  338.         $this->active $active;
  339.         return $this;
  340.     }
  341.     public function isMoneybox(): bool
  342.     {
  343.         return $this->moneybox;
  344.     }
  345.     public function setMoneybox(bool $moneybox): self
  346.     {
  347.         $this->moneybox $moneybox;
  348.         return $this;
  349.     }
  350.     public function isCsv(): bool
  351.     {
  352.         return $this->csv;
  353.     }
  354.     public function setCsv(bool $csv): PaymentMethod
  355.     {
  356.         $this->csv $csv;
  357.         return $this;
  358.     }
  359.     /**
  360.      * @return string
  361.      */
  362.     public function getNameToShow(): string
  363.     {
  364.         if (strtolower($this->title) === 'credit card') {
  365.             return $this->subtitle;
  366.         }
  367.         return $this->title;
  368.     }
  369.     public function isActiveByRole(): bool
  370.     {
  371.         return $this->activeByRole;
  372.     }
  373.     public function setActiveByRole(bool $activeByRole): PaymentMethod
  374.     {
  375.         $this->activeByRole $activeByRole;
  376.         return $this;
  377.     }
  378.     public function getRole(): string
  379.     {
  380.         return 'ROLE_ADYEN_PAYMENT_METHOD_'.strtoupper($this->slug);
  381.     }
  382.     /**
  383.      * @return Cart[]|ArrayCollection<int, Cart>
  384.      */
  385.     public function getPackCarts()
  386.     {
  387.         return $this->packCarts;
  388.     }
  389.     /**
  390.      * @param Cart[]|ArrayCollection<int, Cart> $packCarts
  391.      */
  392.     public function setPackCarts($packCarts): PaymentMethod
  393.     {
  394.         $this->packCarts $packCarts;
  395.         return $this;
  396.     }
  397.     /**
  398.      * @return Cart[]|ArrayCollection<int, Cart>
  399.      */
  400.     public function getServicesCarts()
  401.     {
  402.         return $this->servicesCarts;
  403.     }
  404.     /**
  405.      * @param Cart[]|ArrayCollection<int, Cart> $servicesCarts
  406.      */
  407.     public function setServicesCarts($servicesCarts): PaymentMethod
  408.     {
  409.         $this->servicesCarts $servicesCarts;
  410.         return $this;
  411.     }
  412. }