Form.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Block\Adminhtml\Settlement\Details;
  7. /**
  8. * Settlement reports transaction details
  9. */
  10. class Form extends \Magento\Backend\Block\Widget\Form\Generic
  11. {
  12. /**
  13. * @var \Magento\Paypal\Model\Report\Settlement
  14. */
  15. protected $_settlement;
  16. /**
  17. * @var \Magento\Framework\Locale\CurrencyInterface
  18. */
  19. protected $_localeCurrency;
  20. /**
  21. * @param \Magento\Backend\Block\Template\Context $context
  22. * @param \Magento\Framework\Registry $registry
  23. * @param \Magento\Framework\Data\FormFactory $formFactory
  24. * @param \Magento\Paypal\Model\Report\Settlement $settlement
  25. * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
  26. * @param array $data
  27. */
  28. public function __construct(
  29. \Magento\Backend\Block\Template\Context $context,
  30. \Magento\Framework\Registry $registry,
  31. \Magento\Framework\Data\FormFactory $formFactory,
  32. \Magento\Paypal\Model\Report\Settlement $settlement,
  33. \Magento\Framework\Locale\CurrencyInterface $localeCurrency,
  34. array $data = []
  35. ) {
  36. $this->_settlement = $settlement;
  37. $this->_localeCurrency = $localeCurrency;
  38. parent::__construct($context, $registry, $formFactory, $data);
  39. }
  40. /**
  41. * Prepare read-only data and group it by fieldsets
  42. *
  43. * @return $this
  44. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  45. */
  46. protected function _prepareForm()
  47. {
  48. /* @var $model \Magento\Paypal\Model\Report\Settlement\Row */
  49. $model = $this->_coreRegistry->registry('current_transaction');
  50. $fieldsets = [
  51. 'reference_fieldset' => [
  52. 'fields' => [
  53. 'transaction_id' => ['label' => $this->_settlement->getFieldLabel('transaction_id')],
  54. 'invoice_id' => ['label' => $this->_settlement->getFieldLabel('invoice_id')],
  55. 'paypal_reference_id' => [
  56. 'label' => $this->_settlement->getFieldLabel('paypal_reference_id'),
  57. ],
  58. 'paypal_reference_id_type' => [
  59. 'label' => $this->_settlement->getFieldLabel('paypal_reference_id_type'),
  60. 'value' => $model->getReferenceType($model->getData('paypal_reference_id_type')),
  61. ],
  62. 'custom_field' => ['label' => $this->_settlement->getFieldLabel('custom_field')],
  63. ],
  64. 'legend' => __('Reference Information'),
  65. ],
  66. 'transaction_fieldset' => [
  67. 'fields' => [
  68. 'transaction_event_code' => [
  69. 'label' => $this->_settlement->getFieldLabel('transaction_event_code'),
  70. 'value' => sprintf(
  71. '%s (%s)',
  72. $model->getData('transaction_event_code'),
  73. $model->getTransactionEvent($model->getData('transaction_event_code'))
  74. ),
  75. ],
  76. 'transaction_initiation_date' => [
  77. 'label' => $this->_settlement->getFieldLabel('transaction_initiation_date'),
  78. 'value' => $this->formatDate(
  79. $model->getData('transaction_initiation_date'),
  80. \IntlDateFormatter::MEDIUM,
  81. true
  82. ),
  83. ],
  84. 'transaction_completion_date' => [
  85. 'label' => $this->_settlement->getFieldLabel('transaction_completion_date'),
  86. 'value' => $this->formatDate(
  87. $model->getData('transaction_completion_date'),
  88. \IntlDateFormatter::MEDIUM,
  89. true
  90. ),
  91. ],
  92. 'transaction_debit_or_credit' => [
  93. 'label' => $this->_settlement->getFieldLabel('transaction_debit_or_credit'),
  94. 'value' => $model->getDebitCreditText($model->getData('transaction_debit_or_credit')),
  95. ],
  96. 'gross_transaction_amount' => [
  97. 'label' => $this->_settlement->getFieldLabel('gross_transaction_amount'),
  98. 'value' => $this->_localeCurrency->getCurrency(
  99. $model->getData('gross_transaction_currency')
  100. )->toCurrency(
  101. $model->getData('gross_transaction_amount')
  102. ),
  103. ],
  104. ],
  105. 'legend' => __('Transaction Information'),
  106. ],
  107. 'fee_fieldset' => [
  108. 'fields' => [
  109. 'fee_debit_or_credit' => [
  110. 'label' => $this->_settlement->getFieldLabel('fee_debit_or_credit'),
  111. 'value' => $model->getDebitCreditText($model->getCastedAmount('fee_debit_or_credit')),
  112. ],
  113. 'fee_amount' => [
  114. 'label' => $this->_settlement->getFieldLabel('fee_amount'),
  115. 'value' => $this->_localeCurrency->getCurrency(
  116. $model->getData('fee_currency')
  117. )->toCurrency(
  118. $model->getCastedAmount('fee_amount')
  119. ),
  120. ],
  121. ],
  122. 'legend' => __('PayPal Fee Information'),
  123. ],
  124. ];
  125. /** @var \Magento\Framework\Data\Form $form */
  126. $form = $this->_formFactory->create();
  127. foreach ($fieldsets as $key => $data) {
  128. $fieldset = $form->addFieldset($key, ['legend' => $data['legend']]);
  129. foreach ($data['fields'] as $id => $info) {
  130. $fieldset->addField(
  131. $id,
  132. 'label',
  133. [
  134. 'name' => $id,
  135. 'label' => $info['label'],
  136. 'title' => $info['label'],
  137. 'value' => isset($info['value']) ? $info['value'] : $model->getData($id)
  138. ]
  139. );
  140. }
  141. }
  142. $this->setForm($form);
  143. return parent::_prepareForm();
  144. }
  145. }