You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

196 lines
6.7 KiB

<?php
/**
* @package tikiwiki
*/
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
require_once 'tiki-setup.php';
$creditslib = TikiLib::lib('credits');
//get_strings tra('Admin credits')
if ($tiki_p_admin_users != 'y') {
$smarty->assign('msg', tra('You do not have the permission that is needed to use this feature'));
$smarty->display('error.tpl');
die;
}
if (isset($_REQUEST['use_credit']) && $use_credit_userid = $tikilib->get_user_id($_POST['userfilter'])) {
$creditslib->useCredits(
$use_credit_userid,
$_POST['use_credit_type'],
$_POST['use_credit_amount']
);
header('Location: tiki-admin_credits.php?userfilter=' . urlencode($_REQUEST['userfilter']));
exit;
}
if (isset($_REQUEST['restore_credit']) && $restore_credit_userid = $tikilib->get_user_id($_POST['userfilter'])) {
$creditslib->restoreCredits(
$restore_credit_userid,
$_POST['restore_credit_type'],
$_POST['restore_credit_amount']
);
header('Location: tiki-admin_credits.php?userfilter=' . urlencode($_REQUEST['userfilter']));
exit;
}
if (isset($_REQUEST['purge_credits'])) {
$creditslib->purgeCredits();
header('Location: tiki-admin_credits.php');
exit;
}
if (isset($_REQUEST['update_types'])) {
foreach ($_POST['credit_types'] as $key => $values) {
$creditslib->updateCreditType(
$values['credit_type'],
$values['display_text'],
$values['unit_text'],
$values['is_static_level'],
$values['scaling_divisor']
);
}
if (! empty($_POST['new_credit_type'])) {
$creditslib->updateCreditType(
$_POST['new_credit_type'],
$_POST['display_text'],
$_POST['unit_text'],
$_POST['is_static_level'],
$_POST['scaling_divisor']
);
}
}
$creditTypes = $creditslib->getCreditTypes();
$staticCreditTypes = $creditslib->getCreditTypes(true);
$smarty->assign('credit_types', $creditTypes);
$smarty->assign('static_credit_types', $staticCreditTypes);
if (isset($_REQUEST['userfilter'])) {
$smarty->assign('userfilter', $_REQUEST['userfilter']);
$editing = $userlib->get_user_info($_REQUEST['userfilter']);
if ($editing) {
$userPlans = [];
foreach ($creditTypes as $ct => $v) {
$userPlans[$ct]['nextbegin'] = $creditslib->getNextPlanBegin($editing['userId'], $ct);
$userPlans[$ct]['currentbegin'] = $creditslib->getLatestPlanBegin($editing['userId'], $ct);
$userPlans[$ct]['expiry'] = $creditslib->getPlanExpiry($editing['userId'], $ct);
}
$smarty->assign('userPlans', $userPlans);
$credits = $creditslib->getRawCredits($editing['userId']);
$smarty->assign('credits', $credits);
$smarty->assign('editing', $editing);
// Get usage information
// date values
if (isset($_REQUEST['startDate_Year']) || isset($_REQUEST['endDate_Year'])) {
$smarty->assign(
'startDate',
$tikilib->make_time(0, 0, 0, $_REQUEST['startDate_Month'], $_REQUEST['startDate_Day'], $_REQUEST['startDate_Year'])
);
$smarty->assign(
'endDate',
$tikilib->make_time(23, 59, 59, $_REQUEST['endDate_Month'], $_REQUEST['endDate_Day'], $_REQUEST['endDate_Year'])
);
$start_date = $_REQUEST['startDate_Year'] . '-' . $_REQUEST['startDate_Month'] . '-' . $_REQUEST['startDate_Day'];
$end_date = $_REQUEST['endDate_Year'] . '-' . $_REQUEST['endDate_Month'] . '-' . $_REQUEST['endDate_Day'] . ' 23:59:59';
} else {
$start_date = $tikilib->now - 3600 * 24 * 30;
$smarty->assign('startDate', $start_date);
$end_date = date('Y-m-d 23:59:59');
}
$req_type = $_REQUEST['action_type'];
$smarty->assign('act_type', $req_type);
$consumption_data = $creditslib->getCreditsUsage($editing['userId'], $req_type, $start_date, $end_date);
$smarty->assign('consumption_data', $consumption_data);
if (isset($_POST['save'], $_POST['credits'])) {
foreach ($_POST['credits'] as $key => $values) {
if (! isset($credits[$key])) {
die('Mismatch');
}
$same = true;
$current = $credits[$key];
foreach ($current as $field => $value) {
if ($field != 'creditId' && $value != $values[$field]) {
$same = false;
break;
}
}
if (! $same) {
$creditslib->replaceCredit(
$key,
$values['credit_type'],
$values['used_amount'],
$values['total_amount'],
$values['creation_date'],
$values['expiration_date']
);
}
}
if (
! empty($_POST['credit_type'])
&& ! empty($_POST['total_amount'])
&& in_array($_POST['credit_type'], array_keys($creditTypes))
) {
$creditslib->addCredits(
$editing['userId'],
$_POST['credit_type'],
$_POST['total_amount'],
$_POST['expiration_date'],
$_POST['creation_date']
);
}
header('Location: tiki-admin_credits.php?userfilter=' . urlencode($_REQUEST['userfilter']));
exit;
}
if (! empty($_POST['credit_type']) && ! empty($_POST['total_amount'])) {
$creditslib->addCredits(
$editing['userId'],
$_POST['credit_type'],
$_POST['total_amount'],
$_POST['expiration_date'],
$_POST['creation_date']
);
header('Location: tiki-admin_credits.php?userfilter=' . urlencode($_REQUEST['userfilter']));
exit;
}
if (isset($_POST['confirm'], $_POST['delete'])) {
foreach ($_POST['delete'] as $creditId) {
if (isset($credits[$creditId])) {
$creditslib->removeCreditBlock($creditId);
}
}
header('Location: tiki-admin_credits.php?userfilter=' . urlencode($_REQUEST['userfilter']));
exit;
}
}
}
$smarty->assign('mid', 'tiki-admin_credits.tpl');
$smarty->display('tiki.tpl');