Skip to content

Commit da87d8b

Browse files
committed
- added class to transaction templates
- fixed problems in permissions
1 parent 243b984 commit da87d8b

19 files changed

+147
-59
lines changed

admin/transactions.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,22 @@
101101
$transactionDateObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('tra_date'));
102102
$transactionsObj->setVar('tra_date', $transactionDateObj->getTimestamp());
103103
$transactionsObj->setVar('tra_curid', Request::getInt('tra_curid', 0));
104-
$traAmountin = Utility::StringToFloat(Request::getString('tra_amountin'));
105-
$transactionsObj->setVar('tra_amountin', $traAmountin);
106-
$traAmountout = Utility::StringToFloat(Request::getString('tra_amountout'));
107-
$transactionsObj->setVar('tra_amountout', $traAmountout);
104+
$traClass = Request::getInt('tra_class', 0);
105+
$traAmount = Utility::StringToFloat(Request::getString('tra_amount'));
106+
if (Constants::CLASS_INCOME == $traClass) {
107+
$transactionsObj->setVar('tra_amountin', $traAmount);
108+
$transactionsObj->setVar('tra_amountout', 0);
109+
} elseif (Constants::CLASS_EXPENSES == $traClass) {
110+
$transactionsObj->setVar('tra_amountout', $traAmount);
111+
$transactionsObj->setVar('tra_amountin', 0);
112+
} else {
113+
$transactionsObj->setVar('tra_amountin', 0);
114+
$transactionsObj->setVar('tra_amountout', 0);
115+
}
108116
$transactionsObj->setVar('tra_taxid', Request::getInt('tra_taxid', 0));
109117
$transactionsObj->setVar('tra_status', Request::getInt('tra_status', 0));
110118
$transactionsObj->setVar('tra_comments', Request::getInt('tra_comments', 0));
111-
$transactionsObj->setVar('tra_class', Request::getInt('tra_class', 0));
119+
$transactionsObj->setVar('tra_class', $traClass);
112120
$transactionsObj->setVar('tra_asid', Request::getString('tra_asid', ''));
113121
$transactionsObj->setVar('tra_balid', Request::getString('tra_balid', ''));
114122
$transactionsObj->setVar('tra_hist', $traHist);
@@ -133,7 +141,7 @@
133141
$GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left'));
134142
// Get Form
135143
$transactionsObj = $transactionsHandler->get($traId);
136-
$form = $transactionsObj->getFormTransactions(false, true, Constants::CLASS_BOTH, $start, $limit);
144+
$form = $transactionsObj->getFormTransactions(false, true, 0, $start, $limit);
137145
$GLOBALS['xoopsTpl']->assign('form', $form->render());
138146
break;
139147
case 'delete':

admin/tratemplates.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@
9292
$tratemplatesObj->setVar('ttpl_accid', Request::getInt('ttpl_accid', 0));
9393
$tratemplatesObj->setVar('ttpl_allid', Request::getInt('ttpl_allid', 0));
9494
$tratemplatesObj->setVar('ttpl_asid', Request::getInt('ttpl_asid', 0));
95+
$tratemplatesObj->setVar('ttpl_class', Request::getInt('ttpl_class', 0));
9596
$ttplAmountin = Request::getString('ttpl_amountin');
9697
$tratemplatesObj->setVar('ttpl_amountin', Utility::StringToFloat($ttplAmountin));
9798
$ttplAmountout = Request::getString('ttpl_amountout');

class/PermissionsHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public function getPermTransactionsEdit($traSubmitter, $traStatus)
188188
{
189189
global $xoopsUser, $xoopsModule;
190190

191-
if ($this->getPermGlobalSubmit()) {
191+
if ($this->getPermGlobalApprove()) {
192192
return true;
193193
}
194194
if (Constants::STATUS_LOCKED == $traStatus) {

class/Transactions.php

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
128128
$form->addElement(new \XoopsFormHidden('ttpl_amountout[0]', '0'));
129129
$crTratemplates = new \CriteriaCompo();
130130
$crTratemplates->add(new \Criteria('ttpl_online', 1));
131+
$crTratemplates->add(new \Criteria('ttpl_class', Constants::CLASS_BOTH));
132+
$crTratemplates->add(new \Criteria('ttpl_class', $traClass), 'OR');
131133
$tratemplatesAll = $helper->getHandler('Tratemplates')->getAll($crTratemplates);
132134
foreach ($tratemplatesAll as $tratemplate) {
133135
$tplId = $tratemplate->getVar('ttpl_id');
@@ -140,7 +142,7 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
140142
}
141143
$tratemplatesSelect = new \XoopsFormRadio(\_MA_WGSIMPLEACC_TRANSACTION_TEMPLATE, 'tra_template', 0);
142144
$tratemplatesSelect->addOption(0, \_MA_WGSIMPLEACC_TEMPLATE_NONE);
143-
$tratemplatesSelect->addOptionArray($tratemplatesHandler->getList());
145+
$tratemplatesSelect->addOptionArray($tratemplatesHandler->getList($crTratemplates));
144146
$tratemplatesSelect->setExtra(" onchange='presetTraField()' ");
145147
$form->addElement($tratemplatesSelect, true);
146148
}
@@ -177,11 +179,6 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
177179
$form->addElement($traDesc);
178180
// Form Editor DhtmlTextArea traRemarks
179181
$editorConfigs = [];
180-
if ($isAdmin) {
181-
$editor = $helper->getConfig('editor_admin');
182-
} else {
183-
$editor = $helper->getConfig('editor_user');
184-
}
185182
$editorConfigs['name'] = 'tra_remarks';
186183
$editorConfigs['value'] = $this->getVar('tra_remarks', 'e');
187184
$editorConfigs['rows'] = 5;
@@ -222,19 +219,20 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
222219
$traAmountin = $this->isNew() ? $default0 : Utility::FloatToString($this->getVar('tra_amountin'));
223220
// Form Text traAmountout
224221
$traAmountout = $this->isNew() ? $default0 : Utility::FloatToString($this->getVar('tra_amountout'));
225-
if ($admin) {
226-
$form->addElement(new \XoopsFormText(\_MA_WGSIMPLEACC_TRANSACTION_AMOUNTIN, 'tra_amountin', 20, 150, $traAmountin));
227-
$form->addElement(new \XoopsFormText(\_MA_WGSIMPLEACC_TRANSACTION_AMOUNTOUT, 'tra_amountout', 20, 150, $traAmountout));
228-
} else {
229-
if (Constants::CLASS_INCOME == $type || Constants::CLASS_INCOME == $traClass || Constants::CLASS_BOTH == $type) {
230-
$form->addElement(new \XoopsFormText(\_MA_WGSIMPLEACC_TRANSACTION_AMOUNTIN, 'tra_amountin', 20, 150, $traAmountin));
231-
$form->addElement(new \XoopsFormHidden('tra_amountout', 0));
232-
}
233-
if (Constants::CLASS_EXPENSES == $type || Constants::CLASS_EXPENSES == $traClass || Constants::CLASS_BOTH == $type) {
234-
$form->addElement(new \XoopsFormText(\_MA_WGSIMPLEACC_TRANSACTION_AMOUNTOUT, 'tra_amountout', 20, 150, $traAmountout));
235-
$form->addElement(new \XoopsFormHidden('tra_amountin', 0));
236-
}
222+
// Form Select traClass
223+
$traClassSelect = new \XoopsFormRadio(\_MA_WGSIMPLEACC_TRANSACTION_CLASS, 'tra_class', $traClass);
224+
$traClassSelect->addOption(Constants::CLASS_EXPENSES, \_MA_WGSIMPLEACC_CLASS_EXPENSES);
225+
$traClassSelect->addOption(Constants::CLASS_INCOME, \_MA_WGSIMPLEACC_CLASS_INCOME);
226+
$form->addElement($traClassSelect);
227+
// Form Text traAmount
228+
$traAmount = 0;
229+
if (Constants::CLASS_INCOME == $type || Constants::CLASS_INCOME == $traClass || Constants::CLASS_BOTH == $type) {
230+
$traAmount = $traAmountin;
231+
}
232+
if (Constants::CLASS_EXPENSES == $type || Constants::CLASS_EXPENSES == $traClass || Constants::CLASS_BOTH == $type) {
233+
$traAmount = $traAmountout;
237234
}
235+
$form->addElement(new \XoopsFormText(\_MA_WGSIMPLEACC_TRANSACTION_AMOUNT, 'tra_amount', 20, 150, $traAmount));
238236
if ($helper->getConfig('use_taxes')) {
239237
// Form Table taxes
240238
$taxesHandler = $helper->getHandler('Taxes');
@@ -249,8 +247,6 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
249247
$traAsidSelect = new \XoopsFormSelect(\_MA_WGSIMPLEACC_TRANSACTION_ASID, 'tra_asid', $traAsid);
250248
$traAsidSelect->addOptionArray($assetsHandler->getList());
251249
$form->addElement($traAsidSelect);
252-
// Form Text traClass
253-
$traClass = $this->isNew() ? 0 : $this->getVar('tra_class');
254250
// Form Text traComments
255251
$traComments = $this->isNew() ? 0 : $this->getVar('tra_comments');
256252
// Form Text traBalid
@@ -272,13 +268,7 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
272268
$traStatusSelect->addOption(Constants::STATUS_APPROVED, \_MA_WGSIMPLEACC_STATUS_APPROVED);
273269
$traStatusSelect->addOption(Constants::STATUS_LOCKED, \_MA_WGSIMPLEACC_STATUS_LOCKED);
274270
$form->addElement($traStatusSelect);
275-
// Form Select traClass
276-
$traClassSelect = new \XoopsFormSelect(\_MA_WGSIMPLEACC_TRANSACTION_CLASS, 'tra_class', $traClass);
277-
$traClassSelect->addOption(Constants::CLASS_BOTH, \_MA_WGSIMPLEACC_CLASS_BOTH);
278-
$traClassSelect->addOption(Constants::CLASS_EXPENSES, \_MA_WGSIMPLEACC_CLASS_EXPENSES);
279-
$traClassSelect->addOption(Constants::CLASS_INCOME, \_MA_WGSIMPLEACC_CLASS_INCOME);
280-
$form->addElement($traClassSelect);
281-
// Form Select traClass
271+
// Form Select traBalid
282272
$traBalidSelect = new \XoopsFormSelect(\_MA_WGSIMPLEACC_TRANSACTION_BALID, 'tra_balid', $traBalid);
283273
$balancesHandler = $helper->getHandler('Balances');
284274
$traBalidSelect->addOption(0, '');
@@ -300,7 +290,6 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
300290
$form->addElement(new \XoopsFormLabel(_MA_WGSIMPLEACC_TRANSACTION_STATUS, Utility::getStatusText($traStatus)));
301291
}
302292
$form->addElement(new \XoopsFormHidden('tra_status', $traStatusNew));
303-
$form->addElement(new \XoopsFormHidden('tra_class', $traClass));
304293
$form->addElement(new \XoopsFormHidden('tra_balid', $traBalid));
305294
$form->addElement(new \XoopsFormHidden('tra_comments', $traComments));
306295
$form->addElement(new \XoopsFormHidden('tra_hist', $traHist));
@@ -312,6 +301,8 @@ public function getFormTransactions($action = false, $admin = false, $type = 0,
312301
$form->addElement(new \XoopsFormHidden('op', 'save'));
313302
if ($approve) {
314303
$form->addElement(new \XoopsFormButtonTray('', \_MA_WGSIMPLEACC_APPROVE, 'submit', '', false));
304+
} elseif (Constants::STATUS_OFFLINE == $traStatus) {
305+
$form->addElement(new \XoopsFormButtonTray('', \_MA_WGSIMPLEACC_REACTIVATE, 'submit', '', false));
315306
} else {
316307
$form->addElement(new \XoopsFormButtonTray('', \_SUBMIT, 'submit', '', false));
317308
}

class/Tratemplates.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public function __construct()
4545
$this->initVar('ttpl_accid', \XOBJ_DTYPE_INT);
4646
$this->initVar('ttpl_allid', \XOBJ_DTYPE_INT);
4747
$this->initVar('ttpl_asid', \XOBJ_DTYPE_INT);
48+
$this->initVar('ttpl_class', \XOBJ_DTYPE_INT);
4849
$this->initVar('ttpl_amountin', \XOBJ_DTYPE_DECIMAL);
4950
$this->initVar('ttpl_amountout', \XOBJ_DTYPE_DECIMAL);
5051
$this->initVar('ttpl_online', \XOBJ_DTYPE_INT);
@@ -118,6 +119,13 @@ public function getFormTratemplates($action = false)
118119
$ttplAsidSelect = new \XoopsFormSelect(\_MA_WGSIMPLEACC_TRATEMPLATE_ASID, 'ttpl_asid', $this->getVar('ttpl_asid'));
119120
$ttplAsidSelect->addOptionArray($assetsHandler->getList());
120121
$form->addElement($ttplAsidSelect);
122+
// Form Select ttplClass
123+
$ttplClass = $this->isNew() ? Constants::CLASS_BOTH : $this->getVar('ttpl_class');
124+
$traClassSelect = new \XoopsFormRadio(\_MA_WGSIMPLEACC_TRANSACTION_CLASS, 'ttpl_class', $ttplClass);
125+
$traClassSelect->addOption(Constants::CLASS_BOTH, \_MA_WGSIMPLEACC_CLASS_BOTH);
126+
$traClassSelect->addOption(Constants::CLASS_EXPENSES, \_MA_WGSIMPLEACC_CLASS_EXPENSES);
127+
$traClassSelect->addOption(Constants::CLASS_INCOME, \_MA_WGSIMPLEACC_CLASS_INCOME);
128+
$form->addElement($traClassSelect);
121129
// Form Text tplAmountin
122130
$default0 = '0' . $helper->getConfig('sep_comma') . '00';
123131
$ttplAmountin = $this->isNew() ? $default0 : Utility::FloatToString($this->getVar('ttpl_amountin'));
@@ -162,6 +170,21 @@ public function getValuesTratemplates($keys = null, $format = null, $maxDepth =
162170
$assetsHandler = $helper->getHandler('Assets');
163171
$assetsObj = $assetsHandler->get($this->getVar('ttpl_asid'));
164172
$ret['asid'] = $assetsObj->getVar('as_name');
173+
$ttplClass = $this->getVar('ttpl_class');
174+
$ret['class'] = $ttplClass;
175+
switch ($ttplClass) {
176+
case Constants::CLASS_BOTH:
177+
default:
178+
$class_text = \_MA_WGSIMPLEACC_CLASS_BOTH;
179+
break;
180+
case Constants::CLASS_EXPENSES:
181+
$class_text = \_MA_WGSIMPLEACC_CLASS_EXPENSES;
182+
break;
183+
case Constants::CLASS_INCOME:
184+
$class_text = \_MA_WGSIMPLEACC_CLASS_INCOME;
185+
break;
186+
}
187+
$ret['class_text'] = $class_text;
165188
$ret['amountin'] = Utility::FloatToString($this->getVar('ttpl_amountin'));
166189
$ret['amountout'] = Utility::FloatToString($this->getVar('ttpl_amountout'));
167190
$ret['online'] = (int)$this->getVar('ttpl_online') > 0 ? _YES : _NO;

docs/changelog.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
- changes in status (goffy)
55
- cleaned missing smarty defaults (goffy)
66
- updated breadcrumbs (goffy)
7+
- added class to transaction templates (goffy)
8+
- fixed problems in permissions (goffy)
79

810
==============================================================
911
1.1 [2020/12/31 10:10]

include/update.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,18 @@ function wgsimpleacc_check_db($module)
182182
}
183183
}
184184

185+
$table = $GLOBALS['xoopsDB']->prefix('wgsimpleacc_tratemplates');
186+
$field = 'ttpl_class';
187+
$check = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
188+
$numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
189+
if (!$numRows) {
190+
$sql = "ALTER TABLE `$table` ADD `$field` INT(1) NOT NULL DEFAULT '0' AFTER `ttpl_asid`;";
191+
if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
192+
xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
193+
$module->setErrors("Error when adding '$field' to table '$table'.");
194+
$ret = false;
195+
}
196+
}
185197
return $ret;
186198
}
187199

index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
if (!$permissionsHandler->getPermGlobalView()) {
5353
$GLOBALS['xoopsTpl']->assign('error', _NOPERM);
5454
require __DIR__ . '/footer.php';
55+
exit;
5556
}
5657

5758
$keywords = [];

language/english/main.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
\define('_MA_WGSIMPLEACC_APPROVE', 'Approve');
5353
\define('_MA_WGSIMPLEACC_DASHBOARD', 'Dashboard');
5454
\define('_MA_WGSIMPLEACC_DOWNLOAD', 'Download');
55+
\define('_MA_WGSIMPLEACC_REACTIVATE', 'Reactivate (add transaction to list of valid transactions again');
5556
// ---------------- Contents ----------------
5657
// There aren't
5758
\define('_MA_WGSIMPLEACC_THEREARENT_ACCOUNTS', "There aren't accounts at the moment");
@@ -280,6 +281,7 @@
280281
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ACCID', 'Accounts');
281282
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ALLID', 'Allocations');
282283
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ASID', 'Assets');
284+
\define('_MA_WGSIMPLEACC_TRATEMPLATE_CLASS', 'Class');
283285
\define('_MA_WGSIMPLEACC_TRATEMPLATE_AMOUNTIN', 'Amount in');
284286
\define('_MA_WGSIMPLEACC_TRATEMPLATE_AMOUNTOUT', 'Amount out');
285287
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ONLINE', 'Online');

language/german/main.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
\define('_MA_WGSIMPLEACC_APPROVE', 'Freigeben');
5353
\define('_MA_WGSIMPLEACC_DASHBOARD', 'Dashboard');
5454
\define('_MA_WGSIMPLEACC_DOWNLOAD', 'Download');
55+
\define('_MA_WGSIMPLEACC_REACTIVATE', 'Reaktivieren (Transaktion wieder zu gültigen Transaktionen hinzufügen');
5556
// ---------------- Contents ----------------
5657
// There aren't
5758
\define('_MA_WGSIMPLEACC_THEREARENT_ACCOUNTS', 'Es gibt derzeit keine Konten in der Datenbank');
@@ -264,6 +265,7 @@
264265
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ACCID', 'Konto');
265266
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ALLID', 'Zuordnung');
266267
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ASID', 'Vermögenswert');
268+
\define('_MA_WGSIMPLEACC_TRATEMPLATE_CLASS', 'Klasse');
267269
\define('_MA_WGSIMPLEACC_TRATEMPLATE_AMOUNTIN', 'Betrag Eingang');
268270
\define('_MA_WGSIMPLEACC_TRATEMPLATE_AMOUNTOUT', 'Betrag Ausgang');
269271
\define('_MA_WGSIMPLEACC_TRATEMPLATE_ONLINE', 'Online');

0 commit comments

Comments
 (0)