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