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