src/Entity/System/PaymentMethod.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity\System;
  3. use App\Application\DTO\ControlPanel\Api\Order\OrderPaymentMethod;
  4. use App\Application\DTO\ControlPanel\Api\Payment\PaymentMethodAttributes;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. /**
  9. * PaymentMethod
  10. *
  11. * @ORM\Table(name="ps_payment_method")
  12. *
  13. * @ORM\Entity(repositoryClass="App\Repository\System\PaymentMethodRepository")
  14. */
  15. class PaymentMethod
  16. {
  17. public const PAYMENT_METHOD_MONEYBOX = 'monedero';
  18. public const PAYMENT_METHOD_BANKWIRE = 'transferencia';
  19. public const PAYMENT_METHOD_PAYPAL = 'paypal';
  20. public const PAYMENT_METHOD_CREDIT_CARD = 'credit-card';
  21. public const PAYMENT_METHOD_PAYCOMET = 'paycomet';
  22. public const PAYMENT_METHOD_PAYPAL_REVIEW = 'paypal-revisando';
  23. public const PAYMENT_METHOD_CREDIT_SERVICE = 'credit_service';
  24. public const PAYMENT_METHOD_CREDIT = 'credito';
  25. public const PAYMENT_METHOD_ADYEN = 'adyen';
  26. public const PAYMENT_METHOD_STRIPE = 'stripe';
  27. public const MINIMUM_TRANSFER_DROPSHIPPING = 150;
  28. public const MINIMUM_TRANSFER_NO_DROPSHIPPING = 20;
  29. public const CASH_ON_DELIVERY_METHOD_ID = 1;
  30. public const PAYPAL_PAYMENT_METHOD_ID = 2;
  31. public const FLEXIBLE_PAYMENT_METHOD_ID = 3;
  32. public const MONEYBOX_PAYMENT_METHOD_ID = 4;
  33. public const TRANSFER_PAYMENT_METHOD_ID = 5;
  34. public const BRAINTREE_METHOD_ID = 6;
  35. public const CREDIT_PAYMENT_METHOD_ID = 7;
  36. public const CONFIRMING_PAYMENT_METHOD_ID = 8;
  37. public const SOFORT_PAYMENT_METHOD_ID = 9;
  38. public const ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID = 10;
  39. public const ADYEN_IDEAL_PAYMENT_METHOD_ID = 11;
  40. public const ADYEN_MASTERCARD_PAYMENT_METHOD_ID = 12;
  41. public const ADYEN_VISA_PAYMENT_METHOD_ID = 13;
  42. public const PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID = 14;
  43. public const ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID = 15;
  44. public const ADYEN_BANKCONTACT_PAYMENT_METHOD_ID = 16;
  45. public const ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID = 17;
  46. public const ADYEN_ELECTRONIC_PAYMENT_METHOD_ID = 18;
  47. public const ADYEN_MBWAY_PAYMENT_METHOD_ID = 19;
  48. public const ADYEN_TRUSTLY_PAYMENT_METHOD_ID = 20;
  49. public const ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID = 21;
  50. public const ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID = 22;
  51. public const ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID = 23;
  52. public const ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID = 24;
  53. public const STRIPE_CARD_PAYMENT_METHOD_ID = 25;
  54. public const STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID = 26;
  55. public const STRIPE_APPLE_PAY_PAYMENT_METHOD_ID = 27;
  56. public const STRIPE_LINK_PAYMENT_METHOD_ID = 28;
  57. public const STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID = 29;
  58. public const STRIPE_BANCONTACT_PAYMENT_METHOD_ID = 30;
  59. public const STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID = 31;
  60. public const STRIPE_KLARNA_PAYMENT_METHOD_ID = 32;
  61. public const STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID = 33;
  62. public const STRIPE_IDEAL_PAYMENT_METHOD_ID = 34;
  63. public const STRIPE_PAYPAL_PAYMENT_METHOD_ID = 35;
  64. public const STRIPE_VISA_PAYMENT_METHOD_ID = 75;
  65. public const STRIPE_MASTERCARD_PAYMENT_METHOD_ID = 76;
  66. public const STRIPE_AMERICAN_EXPRESS_PAYMENT_METHOD_ID = 77;
  67. public const STRIPE_DISCOVER_PAYMENT_METHOD_ID = 78;
  68. public const STRIPE_EPS_PAYMENT_METHOD_ID = 79;
  69. public const STRIPE_MB_WAY_PAYMENT_METHOD_ID = 80;
  70. // STRIPE
  71. public const STRIPE_REVOLUT_PAY_SLUG = 'revolut_pay';
  72. public const STRIPE_BANCONTACT_SLUG = 'bancontact';
  73. public const STRIPE_CARTEBANCAIRE_SLUG = 'cartebancaire';
  74. public const STRIPE_KLARNA_SLUG = 'klarna';
  75. public const STRIPE_SEPA_DEBIT_SLUG = 'sepa_debit';
  76. public const STRIPE_IDEAL_SLUG = 'ideal';
  77. public const STRIPE_CARD_SLUG = 'card';
  78. public const STRIPE_EPS_SLUG = 'eps';
  79. public const STRIPE_MBWAY_SLUG = 'mb_way';
  80. // Payment Method Slugs
  81. public const PAYMENT_METHOD_SLUG_CASH_ON_DELIVERY = 'contrarrembolso';
  82. public const PAYMENT_METHOD_SLUG_PAYPAL_COMPOSED = 'paypal_paypal';
  83. public const PAYMENT_METHOD_SLUG_PAYPAL = 'paypal';
  84. public const PAYMENT_METHOD_SLUG_FLEXIBLE_PAYMENT = 'pago_flexible';
  85. public const PAYMENT_METHOD_SLUG_MONEYBOX = 'monedero';
  86. public const PAYMENT_METHOD_SLUG_MONEYBOX_COMPOSED = 'monedero_wallet';
  87. public const PAYMENT_METHOD_SLUG_BANKWIRE_COMPOSED = 'transferencia_bankwire';
  88. public const PAYMENT_METHOD_SLUG_BANKWIRE = 'transferencia';
  89. public const PAYMENT_METHOD_SLUG_BRAINTREE = 'Braintree';
  90. public const PAYMENT_METHOD_SLUG_CREDIT = 'credito';
  91. public const PAYMENT_METHOD_SLUG_CONFIRMING = 'confirming';
  92. public const PAYMENT_METHOD_SLUG_SOFORT = 'sofort';
  93. public const PAYMENT_METHOD_SLUG_ADYEN_AMEX = 'adyen_amex';
  94. public const PAYMENT_METHOD_SLUG_ADYEN_IDEAL = 'adyen_ideal';
  95. public const PAYMENT_METHOD_SLUG_ADYEN_MC = 'adyen_mc';
  96. public const PAYMENT_METHOD_SLUG_ADYEN_VISA = 'adyen_visa';
  97. public const PAYMENT_METHOD_SLUG_CREDIT_CARD = 'credit-card_credit-card';
  98. public const PAYMENT_METHOD_SLUG_ADYEN_PAYBYBANK = 'adyen_paybybank';
  99. public const PAYMENT_METHOD_SLUG_ADYEN_BCMC = 'adyen_bcmc';
  100. public const PAYMENT_METHOD_SLUG_ADYEN_CARTEBANCAIRE = 'adyen_cartebancaire';
  101. public const PAYMENT_METHOD_SLUG_ADYEN_EPS = 'adyen_eps';
  102. public const PAYMENT_METHOD_SLUG_ADYEN_MBWAY = 'adyen_mbway';
  103. public const PAYMENT_METHOD_SLUG_ADYEN_TRUSTLY = 'adyen_trustly';
  104. public const PAYMENT_METHOD_SLUG_ADYEN_ONLINE_BANKING_PL = 'adyen_onlineBanking_PL';
  105. public const PAYMENT_METHOD_SLUG_ADYEN_KLARNA_B2B = 'adyen_klarna_b2b';
  106. public const PAYMENT_METHOD_SLUG_ADYEN_GOOGLEPAY = 'adyen_googlepay';
  107. public const PAYMENT_METHOD_SLUG_ADYEN_EBANKING_FI = 'adyen_ebanking_FI';
  108. public const PAYMENT_METHOD_SLUG_STRIPE_CARD = 'stripe_card';
  109. public const PAYMENT_METHOD_SLUG_STRIPE_GOOGLE_PAY = 'stripe_google_pay';
  110. public const PAYMENT_METHOD_SLUG_STRIPE_APPLE_PAY = 'stripe_apple_pay';
  111. public const PAYMENT_METHOD_SLUG_STRIPE_LINK = 'stripe_link';
  112. public const PAYMENT_METHOD_SLUG_STRIPE_REVOLUT_PAY = 'stripe_revolut_pay';
  113. public const PAYMENT_METHOD_SLUG_STRIPE_BANCONTACT = 'stripe_bancontact';
  114. public const PAYMENT_METHOD_SLUG_STRIPE_CARTEBANCAIRE = 'stripe_cartebancaire';
  115. public const PAYMENT_METHOD_SLUG_STRIPE_KLARNA = 'stripe_klarna';
  116. public const PAYMENT_METHOD_SLUG_STRIPE_SEPA_DEBIT = 'stripe_sepa_debit';
  117. public const PAYMENT_METHOD_SLUG_STRIPE_IDEAL = 'stripe_ideal';
  118. public const PAYMENT_METHOD_SLUG_STRIPE_PAYPAL = 'stripe_paypal';
  119. public const PAYMENT_METHOD_IDS_INDEXED_BY_PAYMENT_METHOD_COMPOSED_SLUGS = [
  120. self::PAYMENT_METHOD_SLUG_CASH_ON_DELIVERY => self::CASH_ON_DELIVERY_METHOD_ID,
  121. self::PAYMENT_METHOD_SLUG_PAYPAL_COMPOSED => self::PAYPAL_PAYMENT_METHOD_ID,
  122. self::PAYMENT_METHOD_SLUG_PAYPAL => self::PAYPAL_PAYMENT_METHOD_ID,
  123. self::PAYMENT_METHOD_SLUG_FLEXIBLE_PAYMENT => self::FLEXIBLE_PAYMENT_METHOD_ID,
  124. self::PAYMENT_METHOD_SLUG_MONEYBOX_COMPOSED => self::MONEYBOX_PAYMENT_METHOD_ID,
  125. self::PAYMENT_METHOD_SLUG_MONEYBOX => self::MONEYBOX_PAYMENT_METHOD_ID,
  126. self::PAYMENT_METHOD_SLUG_BANKWIRE_COMPOSED => self::TRANSFER_PAYMENT_METHOD_ID,
  127. self::PAYMENT_METHOD_SLUG_BANKWIRE => self::TRANSFER_PAYMENT_METHOD_ID,
  128. self::PAYMENT_METHOD_SLUG_BRAINTREE => self::BRAINTREE_METHOD_ID,
  129. self::PAYMENT_METHOD_SLUG_CREDIT => self::CREDIT_PAYMENT_METHOD_ID,
  130. self::PAYMENT_METHOD_SLUG_CONFIRMING => self::CONFIRMING_PAYMENT_METHOD_ID,
  131. self::PAYMENT_METHOD_SLUG_SOFORT => self::SOFORT_PAYMENT_METHOD_ID,
  132. self::PAYMENT_METHOD_SLUG_ADYEN_AMEX => self::ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID,
  133. self::PAYMENT_METHOD_SLUG_ADYEN_IDEAL => self::ADYEN_IDEAL_PAYMENT_METHOD_ID,
  134. self::PAYMENT_METHOD_SLUG_ADYEN_MC => self::ADYEN_MASTERCARD_PAYMENT_METHOD_ID,
  135. self::PAYMENT_METHOD_SLUG_ADYEN_VISA => self::ADYEN_VISA_PAYMENT_METHOD_ID,
  136. self::PAYMENT_METHOD_SLUG_CREDIT_CARD => self::PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID,
  137. self::PAYMENT_METHOD_SLUG_ADYEN_PAYBYBANK => self::ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID,
  138. self::PAYMENT_METHOD_SLUG_ADYEN_BCMC => self::ADYEN_BANKCONTACT_PAYMENT_METHOD_ID,
  139. self::PAYMENT_METHOD_SLUG_ADYEN_CARTEBANCAIRE => self::ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID,
  140. self::PAYMENT_METHOD_SLUG_ADYEN_EPS => self::ADYEN_ELECTRONIC_PAYMENT_METHOD_ID,
  141. self::PAYMENT_METHOD_SLUG_ADYEN_MBWAY => self::ADYEN_MBWAY_PAYMENT_METHOD_ID,
  142. self::PAYMENT_METHOD_SLUG_ADYEN_TRUSTLY => self::ADYEN_TRUSTLY_PAYMENT_METHOD_ID,
  143. self::PAYMENT_METHOD_SLUG_ADYEN_ONLINE_BANKING_PL => self::ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID,
  144. self::PAYMENT_METHOD_SLUG_ADYEN_KLARNA_B2B => self::ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID,
  145. self::PAYMENT_METHOD_SLUG_ADYEN_GOOGLEPAY => self::ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID,
  146. self::PAYMENT_METHOD_SLUG_ADYEN_EBANKING_FI => self::ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID,
  147. self::PAYMENT_METHOD_SLUG_STRIPE_CARD => self::STRIPE_CARD_PAYMENT_METHOD_ID,
  148. self::PAYMENT_METHOD_SLUG_STRIPE_GOOGLE_PAY => self::STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID,
  149. self::PAYMENT_METHOD_SLUG_STRIPE_APPLE_PAY => self::STRIPE_APPLE_PAY_PAYMENT_METHOD_ID,
  150. self::PAYMENT_METHOD_SLUG_STRIPE_LINK => self::STRIPE_LINK_PAYMENT_METHOD_ID,
  151. self::PAYMENT_METHOD_SLUG_STRIPE_REVOLUT_PAY => self::STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID,
  152. self::PAYMENT_METHOD_SLUG_STRIPE_BANCONTACT => self::STRIPE_BANCONTACT_PAYMENT_METHOD_ID,
  153. self::PAYMENT_METHOD_SLUG_STRIPE_CARTEBANCAIRE => self::STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID,
  154. self::PAYMENT_METHOD_SLUG_STRIPE_KLARNA => self::STRIPE_KLARNA_PAYMENT_METHOD_ID,
  155. self::PAYMENT_METHOD_SLUG_STRIPE_SEPA_DEBIT => self::STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID,
  156. self::PAYMENT_METHOD_SLUG_STRIPE_IDEAL => self::STRIPE_IDEAL_PAYMENT_METHOD_ID,
  157. self::PAYMENT_METHOD_SLUG_STRIPE_PAYPAL => self::STRIPE_PAYPAL_PAYMENT_METHOD_ID,
  158. ];
  159. public const PAYMENT_METHOD_ATTRIBUTE_NAMES_INDEXED_BY_ID = [
  160. self::CASH_ON_DELIVERY_METHOD_ID => PaymentMethodAttributes::KEY_ON_DELIVERY,
  161. self::PAYPAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL,
  162. self::FLEXIBLE_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_FLEXIBLE,
  163. self::MONEYBOX_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_WALLET,
  164. self::TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_BANKWIRE,
  165. self::BRAINTREE_METHOD_ID => PaymentMethodAttributes::KEY_BRAINTREE,
  166. self::CREDIT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ON_CREDIT,
  167. self::CONFIRMING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL_REVIEW,
  168. self::SOFORT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_PAYPAL_REVIEW,
  169. self::ADYEN_AMERICAN_EXPRESS_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_AMERICAN_EXPRESS,
  170. self::ADYEN_IDEAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_IDEAL,
  171. self::ADYEN_MASTERCARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MASTERCARD,
  172. self::ADYEN_VISA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_VISA,
  173. self::PAYPAL_CREDIT_CARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_CREDIT_CARD,
  174. self::ADYEN_BANK_TRANSFER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANK_TRANSFER,
  175. self::ADYEN_BANKCONTACT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BANKCONTACT,
  176. self::ADYEN_ELECTRONIC_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ELECTRONIC,
  177. self::ADYEN_MBWAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_MBWAY,
  178. self::ADYEN_TRUSTLY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_TRUSTLY,
  179. self::ADYEN_ONLINE_BANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_ONLINE_BANKING,
  180. self::ADYEN_BUYNOW_PAYLATER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_BUYNOW_PAYLATER,
  181. self::ADYEN_GOOGLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_GOOGLE_PAY,
  182. self::ADYEN_FINISH_EBANKING_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_FINISH_EBANKING,
  183. self::ADYEN_CARTE_BANCAIRE_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_ADYEN_CARTE_BANCAIRES,
  184. self::STRIPE_CARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_CARD,
  185. self::STRIPE_GOOGLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_GOOGLE_PAY,
  186. self::STRIPE_APPLE_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_APPLE_PAY,
  187. self::STRIPE_LINK_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_LINK,
  188. self::STRIPE_REVOLUT_PAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_REVOLUT_PAY,
  189. self::STRIPE_BANCONTACT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_BANCONTACT,
  190. self::STRIPE_CARTES_BANCAIRES_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_CARTES_BANCAIRES,
  191. self::STRIPE_KLARNA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_KLARNA,
  192. self::STRIPE_SEPA_DIRECT_DEBIT_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_SEPA_DIRECT_DEBIT,
  193. self::STRIPE_IDEAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_IDEAL,
  194. self::STRIPE_PAYPAL_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_PAYPAL,
  195. self::STRIPE_VISA_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_VISA,
  196. self::STRIPE_MASTERCARD_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_MASTERCARD,
  197. self::STRIPE_AMERICAN_EXPRESS_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_AMERICAN_EXPRESS,
  198. self::STRIPE_DISCOVER_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_DISCOVER,
  199. self::STRIPE_EPS_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_EPS,
  200. self::STRIPE_MB_WAY_PAYMENT_METHOD_ID => PaymentMethodAttributes::KEY_STRIPE_MB_WAY,
  201. ];
  202. public const PAYMENT_METHOD_IDS_INDEXED_BY_ORDER_PAYMENT_METHOD_VALUES = [
  203. OrderPaymentMethod::PAYMENT_BANKWIRE => self::TRANSFER_PAYMENT_METHOD_ID,
  204. OrderPaymentMethod::PAYMENT_PAYPAL => self::STRIPE_PAYPAL_PAYMENT_METHOD_ID,
  205. OrderPaymentMethod::PAYMENT_CREDIT => self::CREDIT_PAYMENT_METHOD_ID,
  206. OrderPaymentMethod::PAYMENT_MONEYBOX => self::MONEYBOX_PAYMENT_METHOD_ID,
  207. OrderPaymentMethod::PAYMENT_WALLET => self::MONEYBOX_PAYMENT_METHOD_ID,
  208. ];
  209. public const ENABLED_COUNTRY_IDS_INDEXED_BY_STRIPE_PAYMENT_METHOD_SLUG = [
  210. self::STRIPE_REVOLUT_PAY_SLUG => [Country::UNITED_KINGDOM_CODE],
  211. self::STRIPE_BANCONTACT_SLUG => [Country::BELGIUM_CODE],
  212. self::STRIPE_CARTEBANCAIRE_SLUG => [Country::FRANCE_CODE],
  213. self::STRIPE_IDEAL_SLUG => [Country::NETHERLANDS_CODE],
  214. self::STRIPE_EPS_SLUG => [Country::AUSTRIA_CODE],
  215. self::STRIPE_MBWAY_SLUG => [Country::PORTUGAL_CODE],
  216. ];
  217. public const ENABLED_ZONE_IDS_INDEXED_BY_STRIPE_PAYMENT_METHOD_SLUG = [
  218. self::STRIPE_REVOLUT_PAY_SLUG => [Zone::ZONE_EU],
  219. self::STRIPE_SEPA_DEBIT_SLUG => [Zone::ZONE_EU],
  220. ];
  221. /**
  222. * @var int
  223. *
  224. * @ORM\Id()
  225. *
  226. * @ORM\GeneratedValue()
  227. *
  228. * @ORM\Column(type="integer", name="id_payment_method")
  229. */
  230. private $id;
  231. /**
  232. * @var string
  233. *
  234. * @ORM\Column(type="string", length=255, name="id_text")
  235. */
  236. private $payment;
  237. /**
  238. * @var string
  239. *
  240. * @ORM\Column(type="string", length=128, name="title")
  241. */
  242. private $title;
  243. /**
  244. * @var string|null
  245. *
  246. * @ORM\Column(type="string", length=128, name="subtitle", nullable=true)
  247. */
  248. private $subtitle;
  249. /**
  250. * @var string
  251. *
  252. * @ORM\Column(type="string", length=512, name="image_url")
  253. */
  254. private $imageUrl;
  255. /**
  256. * @var string
  257. *
  258. * @ORM\Column(type="string", length=64, name="slug")
  259. */
  260. private $slug;
  261. /**
  262. * @var string|null
  263. *
  264. * @ORM\Column(type="string", length=64, name="base_slug", nullable=true)
  265. */
  266. private ?string $baseSlug = null;
  267. /**
  268. * @var bool
  269. *
  270. * @ORM\Column(type="boolean", name="recurring", options={"default" : 0})
  271. */
  272. private $recurring;
  273. /**
  274. * @var float
  275. *
  276. * @ORM\Column(type="float", options={"default" : 0})
  277. */
  278. private $fixedRate;
  279. /**
  280. * @var float
  281. *
  282. * @ORM\Column(type="float", options={"default" : 0})
  283. */
  284. private $variableRate;
  285. /**
  286. * @var bool
  287. *
  288. * @ORM\Column(type="boolean", name="active", options={"default" : 0})
  289. */
  290. private $active;
  291. /**
  292. * @var bool
  293. *
  294. * @ORM\Column(type="boolean", name="moneybox", options={"default" : 0})
  295. */
  296. private $moneybox;
  297. /**
  298. * @var bool
  299. *
  300. * @ORM\Column(type="boolean", name="csv", options={"default" : 0})
  301. */
  302. private $csv;
  303. /**
  304. * @var bool
  305. *
  306. * @ORM\Column(type="boolean", name="activeByRole", options={"default" : 0})
  307. */
  308. private $activeByRole;
  309. /**
  310. * @var Collection<int, CustomerPaymentMethod>
  311. *
  312. * @ORM\OneToMany(targetEntity="App\Entity\System\CustomerPaymentMethod", mappedBy="paymentMethod")
  313. */
  314. private $customerPaymentMethods;
  315. public function __construct(string $type, string $name)
  316. {
  317. $this->active = false;
  318. $this->moneybox = false;
  319. $this->activeByRole = false;
  320. $this->slug = $type;
  321. $this->title = $name;
  322. $this->payment = self::PAYMENT_METHOD_ADYEN;
  323. $this->subtitle = $type;
  324. $this->imageUrl = $type.'.svg';
  325. $this->recurring = false;
  326. $this->fixedRate = 0;
  327. $this->variableRate = 0;
  328. $this->csv = false;
  329. $this->customerPaymentMethods = new ArrayCollection();
  330. }
  331. /**
  332. * @return int
  333. */
  334. public function getId(): int
  335. {
  336. return $this->id;
  337. }
  338. /**
  339. * @param int $id
  340. *
  341. * @return PaymentMethod
  342. */
  343. public function setId(int $id): PaymentMethod
  344. {
  345. $this->id = $id;
  346. return $this;
  347. }
  348. /**
  349. * @return string
  350. */
  351. public function getPayment(): string
  352. {
  353. return $this->payment;
  354. }
  355. /**
  356. * @param string $payment
  357. *
  358. * @return PaymentMethod
  359. */
  360. public function setPayment(string $payment): PaymentMethod
  361. {
  362. $this->payment = $payment;
  363. return $this;
  364. }
  365. /**
  366. * @return string
  367. */
  368. public function getTitle(): string
  369. {
  370. return $this->title;
  371. }
  372. /**
  373. * @param string $title
  374. *
  375. * @return PaymentMethod
  376. */
  377. public function setTitle(string $title): self
  378. {
  379. $this->title = $title;
  380. return $this;
  381. }
  382. /**
  383. * @return string|null
  384. */
  385. public function getSubtitle(): ?string
  386. {
  387. return $this->subtitle;
  388. }
  389. /**
  390. * @param string|null $subtitle
  391. *
  392. * @return PaymentMethod
  393. */
  394. public function setSubtitle(?string $subtitle): self
  395. {
  396. $this->subtitle = $subtitle;
  397. return $this;
  398. }
  399. /**
  400. * @return string
  401. */
  402. public function getImageUrl(): string
  403. {
  404. return $this->imageUrl;
  405. }
  406. /**
  407. * @param string $imageUrl
  408. *
  409. * @return PaymentMethod
  410. */
  411. public function setImageUrl(string $imageUrl): self
  412. {
  413. $this->imageUrl = $imageUrl;
  414. return $this;
  415. }
  416. /**
  417. * @return string
  418. */
  419. public function getSlug(): string
  420. {
  421. return $this->slug;
  422. }
  423. /**
  424. * @param string $slug
  425. *
  426. * @return PaymentMethod
  427. */
  428. public function setSlug(string $slug): self
  429. {
  430. $this->slug = $slug;
  431. return $this;
  432. }
  433. /**
  434. * @return string|null
  435. */
  436. public function getBaseSlug(): ?string
  437. {
  438. return $this->baseSlug;
  439. }
  440. /**
  441. * @param string|null $baseSlug
  442. *
  443. * @return PaymentMethod
  444. */
  445. public function setBaseSlug(?string $baseSlug): self
  446. {
  447. $this->baseSlug = $baseSlug;
  448. return $this;
  449. }
  450. /**
  451. * @return bool
  452. */
  453. public function isRecurring(): bool
  454. {
  455. return $this->recurring;
  456. }
  457. /**
  458. * @param bool $recurring
  459. *
  460. * @return PaymentMethod
  461. */
  462. public function setRecurring(bool $recurring): self
  463. {
  464. $this->recurring = $recurring;
  465. return $this;
  466. }
  467. /**
  468. * @return float
  469. */
  470. public function getFixedRate(): float
  471. {
  472. return $this->fixedRate;
  473. }
  474. /**
  475. * @param float $fixedRate
  476. *
  477. * @return PaymentMethod
  478. */
  479. public function setFixedRate(float $fixedRate): self
  480. {
  481. $this->fixedRate = $fixedRate;
  482. return $this;
  483. }
  484. /**
  485. * @return float
  486. */
  487. public function getVariableRate(): float
  488. {
  489. return $this->variableRate;
  490. }
  491. /**
  492. * @param float $variableRate
  493. *
  494. * @return PaymentMethod
  495. */
  496. public function setVariableRate(float $variableRate): self
  497. {
  498. $this->variableRate = $variableRate;
  499. return $this;
  500. }
  501. /**
  502. * @return bool
  503. */
  504. public function isActive(): bool
  505. {
  506. return $this->active;
  507. }
  508. /**
  509. * @param bool $active
  510. *
  511. * @return PaymentMethod
  512. */
  513. public function setActive(bool $active): self
  514. {
  515. $this->active = $active;
  516. return $this;
  517. }
  518. public function isMoneybox(): bool
  519. {
  520. return $this->moneybox;
  521. }
  522. public function setMoneybox(bool $moneybox): self
  523. {
  524. $this->moneybox = $moneybox;
  525. return $this;
  526. }
  527. public function isCsv(): bool
  528. {
  529. return $this->csv;
  530. }
  531. public function setCsv(bool $csv): PaymentMethod
  532. {
  533. $this->csv = $csv;
  534. return $this;
  535. }
  536. /**
  537. * @return string
  538. */
  539. public function getNameToShow(): string
  540. {
  541. if (strtolower($this->title) === 'credit card') {
  542. return $this->subtitle;
  543. }
  544. return $this->title;
  545. }
  546. public function isActiveByRole(): bool
  547. {
  548. return $this->activeByRole;
  549. }
  550. public function setActiveByRole(bool $activeByRole): PaymentMethod
  551. {
  552. $this->activeByRole = $activeByRole;
  553. return $this;
  554. }
  555. public function getAdyenRole(): string
  556. {
  557. return 'ROLE_ADYEN_PAYMENT_METHOD_'.strtoupper($this->slug);
  558. }
  559. public function getStripeRole(): string
  560. {
  561. return 'ROLE_STRIPE_PAYMENT_METHOD_'.strtoupper($this->slug);
  562. }
  563. }