Passed
Push — develop-3.3.x ( c85e2c...2b4c5a )
by Mario
02:35
created

transaction_template_helper::assign_user_data()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 6
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 8
rs 10
1
<?php
2
/**
3
 *
4
 * PayPal Donation extension for the phpBB Forum Software package.
5
 *
6
 * @copyright (c) 2015-2021 Skouat
7
 * @license       GNU General Public License, version 2 (GPL-2.0)
8
 *
9
 */
10
11
namespace skouat\ppde\includes;
12
13
use phpbb\template\template;
14
use phpbb\language\language;
15
use phpbb\user;
16
use skouat\ppde\actions\currency;
17
18
class transaction_template_helper
19
{
20
	protected $actions_currency;
21
	protected $language;
22
	protected $template;
23
	protected $user;
24
25
	/**
26
	 * Constructor
27
	 *
28
	 * @param template $template
29
	 * @param language $language
30
	 * @param user     $user
31
	 * @param currency $actions_currency
32
	 */
33
	public function __construct(template $template, language $language, user $user, currency $actions_currency)
34
	{
35
		$this->template = $template;
36
		$this->language = $language;
37
		$this->user = $user;
38
		$this->actions_currency = $actions_currency;
39
	}
40
41
	/**
42
	 * Assign hidden fields
43
	 *
44
	 * @param array $data
45
	 */
46
	public function assign_hidden_fields(array $data): void
47
	{
48
		$s_hidden_fields = build_hidden_fields([
49
			'id'                  => $data['transaction_id'],
50
			'donor_id'            => $data['user_id'],
51
			'txn_errors_approved' => $data['txn_errors_approved'],
52
		]);
53
		$this->template->assign_var('S_HIDDEN_FIELDS', $s_hidden_fields);
54
	}
55
56
	/**
57
	 * Assign currency data to template variables
58
	 *
59
	 * @param array $data Transaction data
60
	 */
61
	public function assign_currency_data(array $data): void
62
	{
63
		$this->actions_currency->set_currency_data_from_iso_code($data['mc_currency']);
64
		$this->actions_currency->set_currency_data_from_iso_code($data['settle_currency']);
65
66
		$this->template->assign_vars([
67
			'EXCHANGE_RATE'                   => '1 ' . $data['mc_currency'] . ' = ' . $data['exchange_rate'] . ' ' . $data['settle_currency'],
68
			'MC_GROSS'                        => $this->actions_currency->format_currency($data['mc_gross']),
69
			'MC_FEE'                          => $this->actions_currency->format_currency($data['mc_fee']),
70
			'MC_NET'                          => $this->actions_currency->format_currency($data['net_amount']),
71
			'SETTLE_AMOUNT'                   => $this->actions_currency->format_currency($data['settle_amount']),
72
			'L_PPDE_DT_SETTLE_AMOUNT'         => $this->language->lang('PPDE_DT_SETTLE_AMOUNT', $data['settle_currency']),
73
			'L_PPDE_DT_EXCHANGE_RATE_EXPLAIN' => $this->language->lang('PPDE_DT_EXCHANGE_RATE_EXPLAIN', $this->user->format_date($data['payment_date'])),
74
			'S_CONVERT'                       => !((int) $data['settle_amount'] === 0 && empty($data['exchange_rate'])),
75
		]);
76
	}
77
78
	/**
79
	 * Assign user data to template variables
80
	 *
81
	 * @param array $data Transaction data
82
	 */
83
	public function assign_user_data(array $data): void
84
	{
85
		$this->template->assign_vars([
86
			'BOARD_USERNAME' => get_username_string('full', $data['user_id'], $data['username'], $data['user_colour'], $this->language->lang('GUEST'), append_sid($this->phpbb_admin_path . 'index.' . $this->php_ext, 'i=users&amp;mode=overview')),
0 ignored issues
show
Bug Best Practice introduced by
The property phpbb_admin_path does not exist on skouat\ppde\includes\transaction_template_helper. Did you maybe forget to declare it?
Loading history...
Bug Best Practice introduced by
The property php_ext does not exist on skouat\ppde\includes\transaction_template_helper. Did you maybe forget to declare it?
Loading history...
87
			'NAME'           => $data['first_name'] . ' ' . $data['last_name'],
88
			'PAYER_EMAIL'    => $data['payer_email'],
89
			'PAYER_ID'       => $data['payer_id'],
90
			'PAYER_STATUS'   => $data['payer_status'] ? $this->language->lang('PPDE_DT_VERIFIED') : $this->language->lang('PPDE_DT_UNVERIFIED'),
91
		]);
92
	}
93
94
	/**
95
	 * Assign transaction details to template variables
96
	 *
97
	 * @param array $data Transaction data
98
	 */
99
	public function assign_transaction_details(array $data): void
100
	{
101
		$this->template->assign_vars([
102
			'ITEM_NAME'      => $data['item_name'],
103
			'ITEM_NUMBER'    => $data['item_number'],
104
			'MEMO'           => $data['memo'],
105
			'RECEIVER_EMAIL' => $data['receiver_email'],
106
			'RECEIVER_ID'    => $data['receiver_id'],
107
			'TXN_ID'         => $data['txn_id'],
108
		]);
109
	}
110
111
	/**
112
	 * Assign payment details to template variables
113
	 *
114
	 * @param array $data Transaction data
115
	 */
116
	public function assign_payment_details(array $data): void
117
	{
118
		$this->template->assign_vars([
119
			'PAYMENT_DATE'   => $this->user->format_date($data['payment_date']),
120
			'PAYMENT_STATUS' => $this->language->lang(['PPDE_DT_PAYMENT_STATUS_VALUES', strtolower($data['payment_status'])]),
121
		]);
122
	}
123
124
	/**
125
	 * Assign error data to template variables
126
	 *
127
	 * @param array $data Transaction data
128
	 */
129
	public function assign_error_data(array $data): void
130
	{
131
		$this->template->assign_vars([
132
			'S_ERROR'          => !empty($data['txn_errors']),
133
			'S_ERROR_APPROVED' => !empty($data['txn_errors_approved']),
134
			'ERROR_MSG'        => (!empty($data['txn_errors'])) ? $data['txn_errors'] : '',
135
		]);
136
	}
137
}
138