add, remove, edit lease

This commit is contained in:
Tóth Richárd
2019-08-26 13:38:51 +02:00
parent e18c039529
commit 5bef1596f4
12 changed files with 578 additions and 52 deletions

244
_class/class_lease.php Normal file
View File

@@ -0,0 +1,244 @@
<?php
//BÉRLET OSZTÁLY
class lease {
private $l_id;
private $l_name;
private $l_sum;
private $l_deleted;
private $l_expire_type;
private $l_expire_date;
private $l_expire_deleted;
private $l_training_types = array(); //array of objects
/**
* @return mixed
*/
public function get_l_id()
{
return $this->l_id;
}
/**
* @param mixed $l_id
*
* @return self
*/
public function set_l_id($l_id)
{
$this->l_id = $l_id;
return $this;
}
/**
* @return mixed
*/
public function get_l_deleted()
{
return $this->l_deleted;
}
/**
* @param mixed $l_deleted
*
* @return self
*/
public function set_l_deleted($l_deleted)
{
$this->l_deleted = $l_deleted;
return $this;
}
/**
* @return mixed
*/
public function get_l_name()
{
return $this->l_name;
}
/**
* @param mixed $l_name
*
* @return self
*/
public function set_l_name($l_name)
{
$this->l_name = $l_name;
return $this;
}
/**
* @return mixed
*/
public function get_l_sum()
{
return $this->l_sum;
}
/**
* @param mixed $l_sum
*
* @return self
*/
public function set_l_sum($l_sum)
{
$this->l_sum = $l_sum;
return $this;
}
/**
* @return mixed
*/
public function get_l_expire_type()
{
return $this->l_expire_type;
}
/**
* @param mixed $l_expire_type
*
* @return self
*/
public function set_l_expire_type($l_expire_type)
{
$this->l_expire_type = $l_expire_type;
return $this;
}
/**
* @return mixed
*/
public function get_l_expire_date()
{
return $this->l_expire_date;
}
/**
* @param mixed $l_expire_date
*
* @return self
*/
public function set_l_expire_date($l_expire_date)
{
$this->l_expire_date = $l_expire_date;
return $this;
}
/**
* @return mixed
*/
public function get_l_expire_deleted()
{
return $this->l_expire_deleted;
}
/**
* @param mixed $l_expire_deleted
*
* @return self
*/
public function set_l_expire_deleted($l_expire_deleted)
{
$this->l_expire_deleted = $l_expire_deleted;
return $this;
}
public static function create_lease($_values) {
global $sql;
if (isset($_values['l_expire_date'])) {
$expDate = $_values['l_expire_date'];
}
else {
$expDate = $_values['l_expire_date_hidden'];
}
$l_id = $sql->insert_into('lease', array(
'l_name' => $_values['l_name'],
'l_sum' => $_values['l_sum'],
'l_expire_type' => $_values['l_expire_type'],
'l_expire_date' => $expDate,
));
if (isset($_values['l_training_types']) && is_array($_values['l_training_types'])) {
foreach ($_values['l_training_types'] as $key => $trt_id) {
$sql->insert_into('lease_training_type', array(
'ltt_training_type_trt_id' => $trt_id,
'ltt_lease_l_id' => $l_id,
));
}
}
return $l_id;
}
public static function update_lease($_values, $_l_id) {
global $sql;
if (isset($_values['l_expire_date'])) {
$expDate = $_values['l_expire_date'];
}
else {
$expDate = $_values['l_expire_date_hidden'];
}
$sql->update_table('lease', array(
'l_name' => $_values['l_name'],
'l_sum' => $_values['l_sum'],
'l_expire_type' => $_values['l_expire_type'],
'l_expire_date' => $expDate,
), array(
'l_id' => $_l_id,
));
$sql->execute_query('DELETE FROM lease_training_type WHERE ltt_lease_l_id = ' . $_l_id);
if (isset($_values['l_training_types']) && is_array($_values['l_training_types'])) {
foreach ($_values['l_training_types'] as $key => $trt_id) {
$sql->insert_into('lease_training_type', array(
'ltt_training_type_trt_id' => $trt_id,
'ltt_lease_l_id' => $_l_id,
));
}
}
}
public function set_l_data_by_id($_l_id) {
global $sql;
$lease_data_assoc_array = $sql->assoc_array("select * from lease where l_id = " . $_l_id);
$l_data_array = $lease_data_assoc_array[0];
foreach ($l_data_array as $field => $value) {
$function_name = "set_" . $field;
$this->$function_name($value); //alapadatok beállítása
}
$l_trt_assoc_array = $sql->assoc_array('SELECT * FROM lease_training_type WHERE ltt_lease_l_id = '.$_l_id);
foreach ($l_trt_assoc_array as $key => $l_trt) {
$trt = new training_type();
$trt->set_trt_data_by_id($l_trt['ltt_training_type_trt_id']);
$this->l_training_types[] = $trt;
}
}
public function has_training($_trt_id) {
foreach ($this->l_training_types as $trt) {
if ($trt->get_trt_id() == $_trt_id) {
return true;
}
}
return false;
}
}
?>

View File

@@ -205,6 +205,10 @@ class page {
# BEFIZETÉSEK
include('include_money_deposit.php');
break;
case 'lease':
# BÉRLETTÍPUSOK
include('include_lease.php');
break;
case 'lock_training':
# EDZÉS ZÁROLÁS, FELOLDÁS
include('include_lock_training.php');
@@ -296,6 +300,10 @@ class page {
# HÍR TÖRLÉS
include('include_delete_news.php');
break;
case 'delete_lease':
# BÉRLETTÍPUS TÖRLÉS
include('include_delete_lease.php');
break;
case 'logout':
# kijelentkezés
$from = "admin";

View File

@@ -190,6 +190,14 @@ switch ($this->get_id()) {
# hír létrehozása
$smarty->display('news_create.tpl');
break;
case 'lease':
# bérlettípus létrehozása
$training_type_query = "SELECT * FROM training_type ORDER BY trt_name ASC;";
$training_type_assoc_array = $sql->assoc_array($training_type_query);
$smarty->assign("training_type_assoc_array", $training_type_assoc_array);
$smarty->display('lease_create.tpl');
break;
default:
# code...
break;

View File

@@ -0,0 +1,9 @@
<?php
if ($this->is_id()) {
$sql->update_table('lease', array('l_deleted' => 1), array('l_id' => $this->get_id()));
log::register('delete_lease', $this->get_id());
header("Location: /admin/lease");
}
?>

View File

@@ -0,0 +1,29 @@
<?php
# HA NINCS ID, AKKOR BÉRLETTÍPUS LISTA
if ($this->is_id()) {
# BÉRLETTÍPUS SZERKESZTÉSE
$lease = new lease();
$lease->set_l_data_by_id($this->get_id());
$training_type_query = "SELECT * FROM training_type ORDER BY trt_name ASC;";
$training_type_assoc_array = $sql->assoc_array($training_type_query);
$smarty->assign("training_type_assoc_array", $training_type_assoc_array);
$smarty->assign('lease',$lease);
$smarty->display('lease_data_edit.tpl');
}
else {
# BÉRLETTÍPUS LISTA
$l_query = "SELECT * FROM lease WHERE l_deleted = 0 ORDER BY l_name ASC";
$l_assoc_array = $sql->assoc_array($l_query);
$smarty->assign('l_assoc_array',$l_assoc_array);
$smarty->display('lease_list.tpl');
}
?>

View File

@@ -147,6 +147,7 @@ $structure = array(
'balance_list',
'money_update',
'money_deposit',
'lease'
),
'money_expense' => array(
'money_expense_category',

View File

@@ -594,6 +594,21 @@ if (isset($_POST['action'])) {
log::register('update_news', $n_id);
header('Location: /admin/news/'.$n_id);
break;
case 'lease_create':
# új bérlettípus
unset($_POST['action']);
$new_lease_id = lease::create_lease($_POST);
log::register('new_lease', $new_lease_id);
header('Location: /admin/lease/'.$new_lease_id);
break;
case 'lease_update':
unset($_POST['action']);
$l_id = $_POST['l_id'];
unset($_POST['l_id']);
lease::update_lease($_POST, $l_id);
log::register('update_lease', $l_id);
header('Location: /admin/lease/'.$l_id);
break;
default:
# code...
break;

View File

@@ -0,0 +1,30 @@
CREATE TABLE `lease` (
`l_id` INT NOT NULL AUTO_INCREMENT,
`l_name` VARCHAR(128) NOT NULL,
`l_expire_type` TINYINT(3) NOT NULL,
`l_sum` INT NOT NULL,
`l_expire_date` DATE NOT NULL,
`l_deleted` INT NULL DEFAULT 0,
PRIMARY KEY (`l_id`));
CREATE TABLE `lease_training_type` (
`ltt_id` INT NOT NULL AUTO_INCREMENT,
`ltt_lease_l_id` INT NOT NULL,
`ltt_training_type_trt_id` INT NOT NULL,
PRIMARY KEY (`ltt_id`),
INDEX `fk_lease_training_type_1_idx` (`ltt_lease_l_id` ASC),
INDEX `fk_lease_training_type_2_idx` (`ltt_training_type_trt_id` ASC),
CONSTRAINT `fk_lease_training_type_1`
FOREIGN KEY (`ltt_lease_l_id`)
REFERENCES `lease` (`l_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_lease_training_type_2`
FOREIGN KEY (`ltt_training_type_trt_id`)
REFERENCES `training_type` (`trt_id`)
ON DELETE CASCADE
ON UPDATE CASCADE);
INSERT INTO `log_category` (`logc_id`, `logc_name`, `logc_title`, `logc_type`, `logc_table`, `logc_field`, `logc_selector`) VALUES (NULL, 'new_lease', 'Új bérlettípus', '1', 'lease', 'l_name', 'l_id');
INSERT INTO `log_category` (`logc_id`, `logc_name`, `logc_title`, `logc_type`, `logc_table`, `logc_field`, `logc_selector`) VALUES (NULL, 'update_lease', 'Bérlettípus módosítása', '1', 'lease', 'l_name', 'l_id');
INSERT INTO `log_category` (`logc_id`, `logc_name`, `logc_title`, `logc_type`, `logc_table`, `logc_field`, `logc_selector`) VALUES (NULL, 'delete_lease', 'Bérlettípus törlése', '1', 'lease', 'l_name', 'l_id');

View File

@@ -0,0 +1,81 @@
<div class="form_wrapper">
<form method="post">
<input type="hidden" name="action" value="lease_create">
<input type="hidden" name="l_expire_date_hidden" id="l_expire_date_hidden">
<div>
<label for="l_name">Új bérlettípus neve:</label>
<div><input type="text" name="l_name" id="l_name" required></div>
</div>
<div>
<label for="l_sum">Összeg:</label>
<div><input type="text" name="l_sum" id="l_sum" value="0" required></div>
</div>
<div>
<legend for="l_expire_type">Lejárati dátum: </legend>
<div>
<input id="r_01" type="radio" name="l_expire_type" value="1" checked>
<label class="choice" for="r_01">Aktuális hónap vége</label>
</div>
<div>
<input id="r_02" type="radio" name="l_expire_type" value="2">
<label class="choice" for="r_02">Következő tárgyhónap</label>
</div>
<div>
<input id="r_03" type="radio" name="l_expire_type" value="3">
<label class="choice" for="r_03">Egyéni</label>
</div>
<div>
<input type="text" name="l_expire_date" id="l_expire_date" disabled="disabled" style="width: 40% !important; margin-top: 10px;">
</div>
</div>
<div>
<legend for="l_training_types">Edzés típusok: </legend>
<table>
{foreach $training_type_assoc_array as $trt_array}
<tr>
<td><input id="trt_{$trt_array.trt_id}" type="checkbox" name="l_training_types[]" value="{$trt_array.trt_id}"></td>
<td><label class="choice" for="trt_{$trt_array.trt_id}">{$trt_array.trt_name}</label></td>
</tr>
{/foreach}
<table>
</div>
<div style="margin-top: 15px;">
<div>
<input class="button black" type="submit" value="Létrehozás">
</div>
</div>
</form>
</div>
<script type="text/javascript">
$('input[name="l_expire_type"]').on('change', function() {
console.log($(this).val());
if ($(this).val() == '1') {
$('#l_expire_date').prop('disabled', true);
var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);
$('#l_expire_date').val(lastDayOfMonth.getFullYear() + '-' + ('0' + (lastDayOfMonth.getMonth()+1)).slice(-2) + '-' + ('0' + lastDayOfMonth.getDate()).slice(-2));
$('#l_expire_date_hidden').val($('#l_expire_date').val());
}
else if ($(this).val() == '2') {
$('#l_expire_date').prop('disabled', true);
var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1);
$('#l_expire_date').val(lastDayOfMonth.getFullYear() + '-' + ('0' + (lastDayOfMonth.getMonth()+1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2));
$('#l_expire_date_hidden').val($('#l_expire_date').val());
}
else if ($(this).val() == '3') {
$('#l_expire_date').removeAttr('disabled');
}
});
$(document).ready(function () {
$('input[name="l_expire_type"]:checked').trigger('change');
});
</script>

View File

@@ -0,0 +1,87 @@
<div class="form_wrapper">
<div class="buttons">
<a href="/admin/lease" class="addbutton big">Vissza</a>
<a href="/admin/delete_lease/{$lease->get_l_id()}" class="addbutton delete-big">Bérlettípus törlése</a>
</div>
<form method="post">
<input type="hidden" name="action" value="lease_update">
<input type="hidden" name="l_id" value="{$lease->get_l_id()}">
<input type="hidden" name="l_expire_date_hidden" id="l_expire_date_hidden">
<div>
<label for="l_name">Bérlettípus neve:</label>
<div><input type="text" name="l_name" id="l_name" value="{$lease->get_l_name()}" required></div>
</div>
<div>
<label for="l_sum">Összeg:</label>
<div><input type="text" name="l_sum" id="l_sum" value="{$lease->get_l_sum()}" required></div>
</div>
<div>
<legend for="l_expire_type">Lejárati dátum: </legend>
<div>
<input id="r_01" type="radio" name="l_expire_type" value="1" {if $lease->get_l_expire_type() == 1}checked{/if}>
<label class="choice" for="r_01">Aktuális hónap vége</label>
</div>
<div>
<input id="r_02" type="radio" name="l_expire_type" value="2" {if $lease->get_l_expire_type() == 2}checked{/if}>
<label class="choice" for="r_02">Következő tárgyhónap</label>
</div>
<div>
<input id="r_03" type="radio" name="l_expire_type" value="3" {if $lease->get_l_expire_type() == 3}checked{/if}>
<label class="choice" for="r_03">Egyéni</label>
</div>
<div>
<input type="text" name="l_expire_date" id="l_expire_date" disabled="disabled" style="width: 40% !important; margin-top: 10px;" value="{$lease->get_l_expire_date()}">
</div>
</div>
<div>
<legend for="l_training_types">Edzés típusok: </legend>
<table>
{foreach $training_type_assoc_array as $trt_array}
<tr>
<td><input id="trt_{$trt_array.trt_id}" type="checkbox" name="l_training_types[]" value="{$trt_array.trt_id}" {if $lease->has_training($trt_array.trt_id)}checked{/if}></td>
<td><label class="choice" for="trt_{$trt_array.trt_id}">{$trt_array.trt_name}</label></td>
</tr>
{/foreach}
<table>
</div>
<div style="margin-top: 15px;">
<div>
<input class="button black" type="submit" value="Mentés">
</div>
</div>
</form>
</div>
<script type="text/javascript">
$('input[name="l_expire_type"]').on('change', function() {
console.log($(this).val());
if ($(this).val() == '1') {
$('#l_expire_date').prop('disabled', true);
var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);
$('#l_expire_date').val(lastDayOfMonth.getFullYear() + '-' + ('0' + (lastDayOfMonth.getMonth()+1)).slice(-2) + '-' + ('0' + lastDayOfMonth.getDate()).slice(-2));
$('#l_expire_date_hidden').val($('#l_expire_date').val());
}
else if ($(this).val() == '2') {
$('#l_expire_date').prop('disabled', true);
var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1);
$('#l_expire_date').val(lastDayOfMonth.getFullYear() + '-' + ('0' + (lastDayOfMonth.getMonth()+1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2));
$('#l_expire_date_hidden').val($('#l_expire_date').val());
}
else if ($(this).val() == '3') {
$('#l_expire_date').removeAttr('disabled');
}
});
$(document).ready(function () {
//$('input[name="l_expire_type"]:checked').trigger('change');
$('#l_expire_date_hidden').val($('#l_expire_date').val());
});
</script>

View File

@@ -0,0 +1,13 @@
<div class="buttons">
<a href="/admin/create/lease" class="addbutton add-big">Új bérlettípus hozzáadása</a>
</div>
<div class="list">
{foreach $l_assoc_array as $lease}
<a href="/admin/lease/{$lease.l_id}">
<div class="list_item">
<span>{$lease.l_name}</span>
<img src="/_image/contact.png">
</div>
</a>
{/foreach}
</div>

View File

@@ -1,56 +1,57 @@
<div class="buttons">
<a href="/admin/create/money_deposit" class="addbutton add-big">Új befizetés</a>
<a href="/admin/balance_list" class="addbutton add-big">Egyenleg lista</a>
<a href="/admin/create/money_deposit" class="addbutton add-big">Új befizetés</a>
<a href="/admin/balance_list" class="addbutton add-big">Egyenleg lista</a>
<a href="/admin/lease" class="addbutton add-big">Bérlettípusok</a>
</div>
<div class="list half_width">
{foreach $mod_array as $mod}
{foreach $mod_array as $mod}
{if !$mod@first && $mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2 != $mod_array[$mod@index-1]->get_mod_money_income()->get_mi_date()|substr:5:2}
</div>
{/if}
{if !$mod@first && $mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2 != $mod_array[$mod@index-1]->get_mod_money_income()->get_mi_date()|substr:5:2}
</div>
{/if}
{if $mod@first || $mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2 != $mod_array[$mod@index-1]->get_mod_money_income()->get_mi_date()|substr:5:2}
<span onclick="block_action('block_{$mod->get_mod_money_income()->get_mi_date()|substr:0:4}{$mod->get_mod_money_income()->get_mi_date()|substr:5:2}');" class="date_separator clickable">{$mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:0:4}.
{$months[$mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2]}
<img src="/_image/open_folder.png">
</span>
<div id="block_{$mod->get_mod_money_income()->get_mi_date()|substr:0:4}{$mod->get_mod_money_income()->get_mi_date()|substr:5:2}" class="month_block">
{if $mod@first || $mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2 != $mod_array[$mod@index-1]->get_mod_money_income()->get_mi_date()|substr:5:2}
<span onclick="block_action('block_{$mod->get_mod_money_income()->get_mi_date()|substr:0:4}{$mod->get_mod_money_income()->get_mi_date()|substr:5:2}');" class="date_separator clickable">{$mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:0:4}.
{$months[$mod_array[$mod@index]->get_mod_money_income()->get_mi_date()|substr:5:2]}
<img src="/_image/open_folder.png">
</span>
<div id="block_{$mod->get_mod_money_income()->get_mi_date()|substr:0:4}{$mod->get_mod_money_income()->get_mi_date()|substr:5:2}" class="month_block">
{/if}
<a href="/admin/money_deposit/{$mod->get_mod_id()}">
<div class="list_item">
<table class="money">
<tr>
<td class="icon">
{if $mod->get_mod_money_income()->get_mi_payment_type_pt_id() == 1}
<img src="/_image/deposit.png">
{else}
<img src="/_image/transaction.png">
{/if}
</td>
<td>
{$mod->get_mod_user_kid()->get_uk_name()}
</td>
<td class="date">
{$mod->get_mod_money_income()->get_mi_date(true)}
</td>
<td class="sum">
{$mod->get_mod_money_income()->get_mi_sum()|number_format:0:'':' '} Ft
</td>
</tr>
{/if}
<a href="/admin/money_deposit/{$mod->get_mod_id()}">
<div class="list_item">
<table class="money">
<tr>
<td class="icon">
{if $mod->get_mod_money_income()->get_mi_payment_type_pt_id() == 1}
<img src="/_image/deposit.png">
{else}
<img src="/_image/transaction.png">
{/if}
</td>
<td>
{$mod->get_mod_user_kid()->get_uk_name()}
</td>
<td class="date">
{$mod->get_mod_money_income()->get_mi_date(true)}
</td>
<td class="sum">
{$mod->get_mod_money_income()->get_mi_sum()|number_format:0:'':' '} Ft
</td>
</tr>
</table>
</div>
</a>
</table>
</div>
</a>
{if $mod@last}
</div>
{/if}
{if $mod@last}
</div>
{/if}
{/foreach}
{/foreach}
</div>
@@ -58,29 +59,29 @@
<script>
function open_block(block_id) {
$("#"+block_id).slideDown("slow");
$("#"+block_id).slideDown("slow");
}
function close_block(block_id) {
$("#"+block_id).slideUp("slow");
$("#"+block_id).slideUp("slow");
}
function block_action(block_id) {
if ($("#"+block_id).is(':hidden')) {
open_block(block_id);
}
else {
close_block(block_id);
}
if ($("#"+block_id).is(':hidden')) {
open_block(block_id);
}
else {
close_block(block_id);
}
}
$( document ).ready(function() {
var divs = $( "div[class=month_block]" );
$( ".list" ).find( divs ).hide();
var div_list = $( ".list" ).find( divs );
$( ".list" ).find( divs ).hide();
var div_list = $( ".list" ).find( divs );
open_block(div_list[0].id);
open_block(div_list[0].id);
});