ara05ru
Новичок
Добрый день дорогие друзья ! У меня есть вот такой табель по сотрудникам.
И если создать такой же табель заново этого же месяца и добавить туда повторно этого же сотрудника и указать "8" допустим 1-го числа, то всплывает окно "Конфликт с данными в другом табеле". то есть в один день нельзя в разных табелях ставить "8". Это проверка осуществляется с помощью ajax.php и функцией в database.php. А сообщение соответственно выводит js. Так вот задача такая, чтобы выводилось сообщение "Конфликт с данными в другом табеле <название объекта или табеля>" (название объекта или табеля одно и тоже). Понимаю что разобраться в чужом коде не легко, но хотелось бы получить от вас хоть какую нибудь подсказку в каком направлении думать. Ниже привел все нужные куски кода:
database.php
ajax.php
edit.js
И если создать такой же табель заново этого же месяца и добавить туда повторно этого же сотрудника и указать "8" допустим 1-го числа, то всплывает окно "Конфликт с данными в другом табеле". то есть в один день нельзя в разных табелях ставить "8". Это проверка осуществляется с помощью ajax.php и функцией в database.php. А сообщение соответственно выводит js. Так вот задача такая, чтобы выводилось сообщение "Конфликт с данными в другом табеле <название объекта или табеля>" (название объекта или табеля одно и тоже). Понимаю что разобраться в чужом коде не легко, но хотелось бы получить от вас хоть какую нибудь подсказку в каком направлении думать. Ниже привел все нужные куски кода:
database.php
PHP:
public function check_tabdata($tabemplid, $checkday, $cval){
// Получаем tab id и даные из таблицы tabempl по этому id
$tab = $this->get_tabempl($tabemplid);
// print_r($tab);
// далее получаем значение в таблице tables и искомый месяц
$tab1 = $this->get_tab($tab['tab_id']);
// print_r($tab1);
$needmonth = $tab1['month'];
// echo("needmonth:".$needmonth);
//получаем все строки из таблицы tabempl с нужным empl_id
$tabs = $this->find_tab_empl(0, $tab['empl_id'], 0);
// print_r($tabs);
// затем все строки из таблицы tables этого сотрудника с нужным месяцем
foreach ($tabs as $tb) {
$tab2 = $this->get_tab($tb['tab_id']);
// print_r($tab2);
if ($tab2['month'] == $needmonth and $tb['id'] != $tabemplid) {
$tabdata = $this->find_tab_data($tb['id']);
//if (($tabdata[$checkday] == 'О') and ($cval == 'О')){
//return false;
//exit();
//}
if ($tabdata[$checkday] == '8' and $cval == '8')
return FALSE;
}
}
return true;
}
PHP:
if (!$db->check_tabdata($id, $cname, $val)){
echo "errduplicate";
exit();
}
JavaScript:
$.ajax({
url: '/ajax/edittabemldataajax.php',
type: 'POST',
data: {val: newVal, id: id, cname: cname, days:d},
cache: false,
success: function(res){
if (!res ) {
alert('Ошибка при добавлении данных');
location.reload();
}
else if (res == 'errdiffdate') {
alert('Запрещено редактирование позднее 3 дней либо наперёд!');
location.reload();
}
else if (res == 'errduplicate') {
alert('Конфликт с данными в другом табеле');
location.reload();
}
else{
pushSumm(res);
}
},
error: function(){
alert('Error!');
},
});