added credits
This commit is contained in:
@@ -12,13 +12,21 @@ else $sql = new sql('localhost','id9073794_tollashodos','uprRscU8bGpJ','id907379
|
||||
|
||||
$check_query = "SELECT * FROM presence WHERE pr_training_tr_id = " . $_POST['tr_id'] . " AND pr_user_kid_uk_id = " . $_POST['user_id'] . ";";
|
||||
|
||||
if (!$sql->num_of_rows($check_query) && $_POST['checked'] == "true") {
|
||||
if (!$sql->num_of_rows($check_query) && $_POST['checked'] == "false") {
|
||||
$sql->insert_into('presence', array('pr_user_kid_uk_id' => $_POST['user_id'], 'pr_training_tr_id' => $_POST['tr_id']));
|
||||
log::register('new_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']);
|
||||
|
||||
if ($_POST['credited']) {
|
||||
$sql->update_table('user_kid', array('uk_credit' => $_POST['credit'] + 1), array('uk_id' => $_POST['user_id']));
|
||||
}
|
||||
}
|
||||
elseif ($sql->num_of_rows($check_query) && $_POST['checked'] != "true") {
|
||||
elseif ($sql->num_of_rows($check_query) && $_POST['checked'] == "true") {
|
||||
$sql->execute_query('delete from presence where pr_user_kid_uk_id = ' . $_POST['user_id'] . ' AND pr_training_tr_id = ' . $_POST['tr_id']);
|
||||
log::register('delete_presence', 'Edzés: ' . $_POST['tr_id'] . ', gyerek: ' . $_POST['user_id'], null, $_POST['admin_id']);
|
||||
|
||||
if ($_POST['credit'] > 0) {
|
||||
$sql->update_table('user_kid', array('uk_credit' => $_POST['credit'] - 1), array('uk_id' => $_POST['user_id']));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -657,11 +657,34 @@ class user_kid extends user_parent {
|
||||
}
|
||||
|
||||
$de_array[] = $new_diary_entry;
|
||||
|
||||
}
|
||||
|
||||
//itt csak hivatkozással adjuk át a tömböt, a calculate_balance kiszámolja, belerakja és visszadja
|
||||
$this->calculate_balance($de_array, $this);
|
||||
}
|
||||
|
||||
public function get_credit_color($has_credit, $credit, $trainingPrice) {
|
||||
//vizsgálni kell, hogy: negatív egyenleg előfordulhat-e
|
||||
//ha igen, van-e hitelezés
|
||||
//ha igen, túllepte-e PIROS
|
||||
//ha nem, akkor SÁRGA
|
||||
//ha nincs, akkor azonnal PIROS
|
||||
|
||||
if ($this->get_uk_balance() < 0 || ($this->get_uk_balance() - $trainingPrice) < 0) {
|
||||
if (!$has_credit) {
|
||||
return 'restricted';
|
||||
}
|
||||
else {
|
||||
if ($this->get_uk_credit() < $credit) {
|
||||
return 'credit-warning';
|
||||
}
|
||||
else {
|
||||
return 'credit-restricted';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
141
_css/default.css
141
_css/default.css
@@ -241,7 +241,15 @@ a.addbutton.noti {
|
||||
border-left: 2px solid #000;
|
||||
font-size: 18px;
|
||||
font-family: Arial;
|
||||
}
|
||||
|
||||
.list .name_tag.credit-warning {
|
||||
background-color: rgb(255, 190, 120);
|
||||
}
|
||||
|
||||
.list .name_tag.restricted, .list .name_tag.credit-restricted {
|
||||
background-color: #fd4d4d;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.user_mod_form {
|
||||
@@ -727,82 +735,85 @@ form#auto_filters > div > label {
|
||||
|
||||
@media (min-width: 680px) {
|
||||
|
||||
.categories {
|
||||
width: unset;
|
||||
text-align: left;
|
||||
margin: 0px 0px 0px 45px;
|
||||
padding: 0;
|
||||
}
|
||||
.categories {
|
||||
width: unset;
|
||||
text-align: left;
|
||||
margin: 0px 0px 0px 45px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
position: relative;
|
||||
right: -5px;
|
||||
top: -10px;
|
||||
background-color: #edfc5a;
|
||||
float: right;
|
||||
border-right: 3px solid;
|
||||
cursor: pointer;
|
||||
}
|
||||
.toggle {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
position: relative;
|
||||
right: -5px;
|
||||
top: -10px;
|
||||
background-color: #edfc5a;
|
||||
float: right;
|
||||
border-right: 3px solid;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.list .list_item .toggle img {
|
||||
position: relative;
|
||||
left: 12px;
|
||||
top: 10px;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
.list .list_item .toggle img {
|
||||
position: relative;
|
||||
left: 12px;
|
||||
top: 10px;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.name_span {
|
||||
min-width: 200px;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
}
|
||||
.name_span {
|
||||
min-width: 200px;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.category_list {
|
||||
width: 25%;
|
||||
margin: 0;
|
||||
display: inline;
|
||||
}
|
||||
.category_list {
|
||||
width: 25%;
|
||||
margin: 0;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.add_category {
|
||||
width: 25%;
|
||||
margin: 0;
|
||||
}
|
||||
.add_category {
|
||||
width: 25%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
.list .date_separator {
|
||||
width: 100%;
|
||||
}
|
||||
.list .date_separator {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.balance {
|
||||
clear: both;
|
||||
text-align: left;
|
||||
margin: 10px 0px 15px 0px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
padding-left: 5px;
|
||||
border-bottom: 2px solid;
|
||||
width: 30%;
|
||||
}
|
||||
.balance {
|
||||
clear: both;
|
||||
text-align: left;
|
||||
margin: 10px 0px 15px 0px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
padding-left: 5px;
|
||||
border-bottom: 2px solid;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.list_item table.money td.no_mobile_show {
|
||||
display: table-cell;
|
||||
}
|
||||
.list_item table.money td.no_mobile_show {
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
.list_item table.money td.sum {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.list_item table.money td.quarter_width {
|
||||
width: 25%;
|
||||
min-width: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
.list_item table.money td.sum {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.list_item table.money td.quarter_width {
|
||||
width: 25%;
|
||||
min-width: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.credit-text {
|
||||
float: right;
|
||||
margin-right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1250px) {
|
||||
@@ -875,6 +886,4 @@ form#auto_filters > div > label {
|
||||
.diary_header .balance_text {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -129,6 +129,8 @@ if ($this->is_id()) {
|
||||
$s_users[] = $s_user;
|
||||
}
|
||||
|
||||
//lekérjük a hitelalkalom beállítást
|
||||
$credit = $sql->single_variable("SELECT setv_int FROM setting_value JOIN setting ON setv_setting_set_id = set_id WHERE set_name = 'Hitelalkalom';");
|
||||
|
||||
|
||||
$smarty->assign('training', $training);
|
||||
@@ -141,12 +143,11 @@ if ($this->is_id()) {
|
||||
$smarty->assign('sorted_users', $s_users);
|
||||
$smarty->assign('rest_users', $rest_users);
|
||||
$smarty->assign('tr_id', $this->get_id());
|
||||
$smarty->assign('has_credit', $credit !== null);
|
||||
$smarty->assign('credit', $credit);
|
||||
|
||||
$smarty->display("presence.tpl");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
@@ -296,6 +296,10 @@ if (isset($_POST['action'])) {
|
||||
|
||||
$tmp_user->update_balance();
|
||||
|
||||
//ha pozitiv az egyenleg, akkor lenullázhatjuk a hitelalkalmait (???)
|
||||
if (($tmp_user->get_uk_balance() + $_POST['mod_sum']) > 0) {
|
||||
$sql->update_table('user_kid', array('uk_credit' => '0'), array('uk_id' => $_POST['mod_user_kid_uk_id']));
|
||||
}
|
||||
header("Location: /admin/money_deposit");
|
||||
break;
|
||||
case 'money_deposit_update':
|
||||
|
||||
@@ -42,22 +42,30 @@
|
||||
</div>
|
||||
|
||||
{if $trc_coaches || $trc_helpers}
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="coaches">
|
||||
<img src="/_image/coach.png">
|
||||
Edző(k):
|
||||
</label>
|
||||
<div style="display: inline-block;">
|
||||
{foreach $trc_coaches as $coach}
|
||||
{$coach->get_ua_name()}<br>
|
||||
{/foreach}
|
||||
{foreach $trc_helpers as $coach}
|
||||
<span class="italic">{$coach->get_ua_name()}</span><br>
|
||||
{/foreach}
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="coaches">
|
||||
<img src="/_image/coach.png">
|
||||
Edző(k):
|
||||
</label>
|
||||
<div style="display: inline-block;">
|
||||
{foreach $trc_coaches as $coach}
|
||||
{$coach->get_ua_name()}<br>
|
||||
{/foreach}
|
||||
{foreach $trc_helpers as $coach}
|
||||
<span class="italic">{$coach->get_ua_name()}</span><br>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="list_item">
|
||||
<label>
|
||||
<img src="/_image/deposit.png">
|
||||
Edzés díja:
|
||||
</label>
|
||||
<div>{$training->get_tr_price()} Ft</div>
|
||||
</div>
|
||||
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_headcount">
|
||||
<img src="/_image/letszam.png">
|
||||
@@ -69,14 +77,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<input type="hidden" id="tr_id" value="{$tr_id}">
|
||||
<input type="hidden" id="admin_id" value="{$user_login->get_ua_id()}">
|
||||
|
||||
<br><br><br>
|
||||
|
||||
{if !$training->get_tr_locked()}
|
||||
<div class="list">
|
||||
<div class="list" id="main-list-container" data-max-credit="{$credit}">
|
||||
{foreach $users as $user}
|
||||
{if $user@first ||
|
||||
$users[$user@index]->get_uk_presence_on_previous_trainings($trainings) !=
|
||||
@@ -86,9 +93,11 @@
|
||||
{$users[$user@index]->get_uk_presence_on_previous_trainings($trainings)}/4
|
||||
</span>
|
||||
{/if}
|
||||
<div class="{if $user->get_uk_presence($tr_id)}name_tag_checked{else}name_tag{/if} width70" id="{$user->get_uk_id()}">
|
||||
<div class="{if $user->get_uk_presence($tr_id)}name_tag_checked{else}name_tag{/if} width70 {$user->get_credit_color($has_credit, $credit, $training->get_tr_price())}" id="{$user->get_uk_id()}" data-credit="{$user->get_uk_credit()}">
|
||||
<img src="/_image/shuttlecock.png">
|
||||
<div>{$user->get_uk_name()}</div>
|
||||
<div>
|
||||
{$user->get_uk_name()}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/foreach}
|
||||
@@ -97,20 +106,26 @@
|
||||
<br><br>
|
||||
|
||||
<div class="list">
|
||||
{foreach $rest_users as $rest_user}
|
||||
<div class="{if $rest_user->get_uk_presence($tr_id)}name_tag_checked{else}name_tag{/if} width70" id="{$rest_user->get_uk_id()}">
|
||||
<img src="/_image/shuttlecock.png">
|
||||
<div>{$rest_user->get_uk_name()}</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{foreach $rest_users as $rest_user}
|
||||
<div class="{if $rest_user->get_uk_presence($tr_id)}name_tag_checked{else}name_tag{/if} width70 {$rest_user->get_credit_color($has_credit, $credit, $training->get_tr_price())}" id="{$rest_user->get_uk_id()}" data-credit="{$rest_user->get_uk_credit()}">
|
||||
<img src="/_image/shuttlecock.png">
|
||||
<div>
|
||||
{$rest_user->get_uk_name()}
|
||||
{if $rest_user->get_credit_color($has_credit, $credit, $training->get_tr_price())}
|
||||
<span class="credit-text">(<span class="credit-counter">{$rest_user->get_uk_credit()}</span>/{$credit})</span>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
{else}
|
||||
<div class="list">
|
||||
{foreach $sorted_users as $user}
|
||||
<div class="list_item">
|
||||
<div class="list_item {$user->get_credit_color($has_credit, $credit, $training->get_tr_price())}" data-credit="{$user->get_uk_credit()}">
|
||||
<img src="/_image/shuttlecock.png">
|
||||
{$user->get_uk_name()}
|
||||
<div>
|
||||
{$user->get_uk_name()}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
@@ -118,91 +133,134 @@
|
||||
{/if}
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
$('.name_tag').click(function() {
|
||||
//alert($(this).css('backgroundColor'));
|
||||
var user_id = $(this).attr('id');
|
||||
var x = $(this).css('backgroundColor');
|
||||
hexc(x);
|
||||
var checked = (color == '#e2edff');
|
||||
var tr_id = $("#tr_id").val();
|
||||
//ha kék, akkor zöldre változtatja, egyébként fordítva
|
||||
if (color == '#e2edff') {
|
||||
$(this).css('backgroundColor', '#1eea0b');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num+1).append(" fő");
|
||||
|
||||
function leaveClassesAndAdd(obj, className) {
|
||||
$(obj).removeClass('restricted').removeClass('credit-restricted').removeClass('credit-warning').addClass(className);
|
||||
}
|
||||
else {
|
||||
$(this).css('backgroundColor', '#e2edff');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num-1).append(" fő");
|
||||
}
|
||||
//alert(checked);
|
||||
|
||||
var admin_id = $("#admin_id").val();
|
||||
$('.name_tag, .name_tag_checked').click(function() {
|
||||
if (($(this).hasClass('restricted') || $(this).hasClass('credit-restricted')) && !$(this).hasClass('name_tag_checked')) {
|
||||
console.log('stop');
|
||||
return false;
|
||||
}
|
||||
//alert($(this).css('backgroundColor'));
|
||||
var user_id = $(this).attr('id');
|
||||
var x = $(this).css('backgroundColor');
|
||||
hexc(x);
|
||||
//var checked = (color == '#e2edff');
|
||||
var checked = $(this).hasClass('name_tag_checked');
|
||||
var tr_id = $("#tr_id").val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '/_ajax/update_presence.php',
|
||||
data: { checked : checked, user_id : user_id, tr_id : tr_id, admin_id : admin_id},
|
||||
success: function(data) {
|
||||
//hitelezett alkalom, logikai változó
|
||||
var credited = $(this).hasClass('credit-warning');
|
||||
var credit = $(this).data('credit');
|
||||
var originalCredit = $(this).data('credit');
|
||||
|
||||
//ha kék, akkor zöldre változtatja, egyébként fordítva
|
||||
//if (color == '#e2edff') {
|
||||
if ($(this).hasClass('name_tag')) {
|
||||
//$(this).css('backgroundColor', '#1eea0b');
|
||||
$(this).addClass('name_tag_checked');
|
||||
$(this).removeClass('name_tag');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num+1).append(" fő");
|
||||
|
||||
if (credited) {
|
||||
credit++;
|
||||
$(this).data('credit', credit);
|
||||
$(this).attr('data-credit', credit);
|
||||
$(this).find('.credit-counter').html(credit);
|
||||
|
||||
//meg kell nézni, hogy a classokat le kell-e venni/hozzá kell-e adni
|
||||
if (credit == $('#main-list-container').data('max-credit')) {
|
||||
leaveClassesAndAdd($(this), 'credit-restricted');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
//$(this).css('backgroundColor', '#e2edff');
|
||||
$(this).addClass('name_tag');
|
||||
$(this).removeClass('name_tag_checked');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num-1).append(" fő");
|
||||
|
||||
if (credit > 0) {
|
||||
credit--;
|
||||
$(this).data('credit', credit);
|
||||
$(this).attr('data-credit', credit);
|
||||
$(this).find('.credit-counter').html(credit);
|
||||
|
||||
//meg kell nézni, hogy a classokat le kell-e venni/hozzá kell-e adni
|
||||
if ($('#main-list-container').data('max-credit') > 0) {
|
||||
leaveClassesAndAdd($(this), 'credit-warning');
|
||||
}
|
||||
else {
|
||||
leaveClassesAndAdd($(this), 'credit-restricted');
|
||||
}
|
||||
}
|
||||
}
|
||||
//alert(checked);
|
||||
|
||||
var admin_id = $("#admin_id").val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '/_ajax/update_presence.php',
|
||||
data: { checked : checked, user_id : user_id, tr_id : tr_id, admin_id : admin_id, credited : credited, credit : originalCredit},
|
||||
success: function(data) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('.name_tag_checked').click(function() {
|
||||
//alert($(this).css('backgroundColor'));
|
||||
var user_id = $(this).attr('id');
|
||||
var x = $(this).css('backgroundColor');
|
||||
hexc(x);
|
||||
var checked = (color == '#e2edff');
|
||||
var tr_id = $("#tr_id").val();
|
||||
//ha kék, akkor zöldre változtatja, egyébként fordítva
|
||||
if (color == '#e2edff') {
|
||||
$(this).css('backgroundColor', '#1eea0b');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num+1).append(" fő");
|
||||
|
||||
}
|
||||
else {
|
||||
$(this).css('backgroundColor', '#e2edff');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num-1).append(" fő");
|
||||
}
|
||||
//alert(checked);
|
||||
|
||||
var admin_id = $("#admin_id").val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '/_ajax/update_presence.php',
|
||||
data: { checked : checked, user_id : user_id, tr_id : tr_id, admin_id : admin_id},
|
||||
success: function(data) {
|
||||
/* $('.name_tag_checked').click(function() {
|
||||
//alert($(this).css('backgroundColor'));
|
||||
var user_id = $(this).attr('id');
|
||||
var x = $(this).css('backgroundColor');
|
||||
hexc(x);
|
||||
var checked = (color == '#e2edff');
|
||||
var tr_id = $("#tr_id").val();
|
||||
//ha kék, akkor zöldre változtatja, egyébként fordítva
|
||||
if (color == '#e2edff') {
|
||||
$(this).css('backgroundColor', '#1eea0b');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num+1).append(" fő");
|
||||
|
||||
}
|
||||
});
|
||||
else {
|
||||
$(this).css('backgroundColor', '#e2edff');
|
||||
var el = $('#headcount');
|
||||
var num = parseInt(el.text());
|
||||
el.text(num-1).append(" fő");
|
||||
}
|
||||
//alert(checked);
|
||||
|
||||
});
|
||||
var admin_id = $("#admin_id").val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '/_ajax/update_presence.php',
|
||||
data: { checked : checked, user_id : user_id, tr_id : tr_id, admin_id : admin_id},
|
||||
success: function(data) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});*/
|
||||
|
||||
|
||||
function hexc(colorval) {
|
||||
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
|
||||
delete(parts[0]);
|
||||
for (var i = 1; i <= 3; ++i) {
|
||||
parts[i] = parseInt(parts[i]).toString(16);
|
||||
if (parts[i].length == 1) parts[i] = '0' + parts[i];
|
||||
function hexc(colorval) {
|
||||
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
|
||||
delete(parts[0]);
|
||||
for (var i = 1; i <= 3; ++i) {
|
||||
parts[i] = parseInt(parts[i]).toString(16);
|
||||
if (parts[i].length == 1) parts[i] = '0' + parts[i];
|
||||
}
|
||||
color = '#' + parts.join('');
|
||||
}
|
||||
color = '#' + parts.join('');
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user