src/Entity/System/PaymentMethod.php line 17

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