parent
46ff0a1d9b
commit
8c1736f4fd
|
@ -94,7 +94,7 @@ final class account extends core
|
||||||
if (mb_strlen($parameters['number']) === 11) $account->number = $parameters['number'];
|
if (mb_strlen($parameters['number']) === 11) $account->number = $parameters['number'];
|
||||||
else throw new exception('Номер должен состоять из 11 символов');
|
else throw new exception('Номер должен состоять из 11 символов');
|
||||||
if ($parameters['mail'] !== $account->mail) $account->mail = $parameters['mail'];
|
if ($parameters['mail'] !== $account->mail) $account->mail = $parameters['mail'];
|
||||||
if (!empty($parameters['password']) && !sodium_crypto_pwhash_str_verify($parameters['password'], $account->password) && $password = true)
|
if (!empty($parameters['password']) && !@sodium_crypto_pwhash_str_verify($parameters['password'], $account->password ?? '') && $password = true)
|
||||||
if (mb_strlen($parameters['password']) > 6) $account->password = sodium_crypto_pwhash_str(
|
if (mb_strlen($parameters['password']) > 6) $account->password = sodium_crypto_pwhash_str(
|
||||||
$parameters['password'],
|
$parameters['password'],
|
||||||
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE,
|
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE,
|
||||||
|
|
|
@ -2077,24 +2077,40 @@ final class task extends core
|
||||||
// Заявка подтверждена?
|
// Заявка подтверждена?
|
||||||
if ($task->confirmed) throw new exception('Запрещено редактировать тип работы у подтверждённой заявки');
|
if ($task->confirmed) throw new exception('Запрещено редактировать тип работы у подтверждённой заявки');
|
||||||
|
|
||||||
// Инициализация даты
|
if ($this->account->type === 'market') {
|
||||||
$date = (new DateTime('@' . $task->date))->setTimezone(new DateTimeZone('Asia/Krasnoyarsk'));
|
// Магазин
|
||||||
|
|
||||||
// Инициализация времени
|
// Инициализация даты
|
||||||
$start = datetime::createFromFormat('H:i', (string) $task->start);
|
$date = (new DateTime('@' . $task->date))->setTimezone(new DateTimeZone('Asia/Krasnoyarsk'));
|
||||||
$end = datetime::createFromFormat('H:i', (string) $task->end);
|
|
||||||
|
|
||||||
// Перенос времени в дату
|
// Инициализация времени
|
||||||
$start = $date->setTime((int) $start->format('H'), (int) $start->format('i'))->format('U');
|
$start = datetime::createFromFormat('H:i', (string) $task->start);
|
||||||
$end = $date->setTime((int) $end->format('H'), (int) $end->format('i'))->format('U');
|
$end = datetime::createFromFormat('H:i', (string) $task->end);
|
||||||
|
|
||||||
// Заявка уже начата
|
// Перенос времени в дату
|
||||||
if ($this->account->type === 'market' and time() - $start > 0)
|
$start = $date->setTime((int) $start->format('H'), (int) $start->format('i'))->format('U');
|
||||||
throw new exception('Запрещено редактировать тип работы начатой заявки');
|
$end = $date->setTime((int) $end->format('H'), (int) $end->format('i'))->format('U');
|
||||||
|
|
||||||
// Заявка уже завершена
|
// Заявка уже начата?
|
||||||
if ($this->account->type === 'market' and $task->completed === true || time() - $end > 0)
|
if (time() - $start > 0)
|
||||||
throw new exception('Запрещено редактировать тип работы завершённой заявки');
|
throw new exception('Запрещено редактировать тип работы начатой заявки');
|
||||||
|
|
||||||
|
// Заявка уже прошла?
|
||||||
|
if (time() - $end > 0)
|
||||||
|
throw new exception('Запрещено редактировать тип работы прошедшей заявки');
|
||||||
|
|
||||||
|
// Заявка уже завершена?
|
||||||
|
if ($task->completed === true)
|
||||||
|
throw new exception('Запрещено редактировать тип работы завершённой заявки');
|
||||||
|
|
||||||
|
// Прошло более 30 минут после создания заявки? (1800 секунд = 30 минут)
|
||||||
|
/* if (time() - $task->created > 1800)
|
||||||
|
throw new exception('Запрещено редактировать заявку спустя 30 минут после создания'); */
|
||||||
|
|
||||||
|
// До начала заявки осталось менее 16 часов? (57600 секунд = 16 часов)
|
||||||
|
if ($start - time() < 57600)
|
||||||
|
throw new exception('Запрещено редактировать тип работы заявки за менее 16 часов до её начала');
|
||||||
|
}
|
||||||
|
|
||||||
if ($task instanceof _document) {
|
if ($task instanceof _document) {
|
||||||
// Найдена заявка
|
// Найдена заявка
|
||||||
|
@ -2317,24 +2333,40 @@ final class task extends core
|
||||||
// Заявка подтверждена?
|
// Заявка подтверждена?
|
||||||
if ($task->confirmed) throw new exception('Запрещено редактировать дату и время у подтверждённой заявки');
|
if ($task->confirmed) throw new exception('Запрещено редактировать дату и время у подтверждённой заявки');
|
||||||
|
|
||||||
// Инициализация даты
|
if ($this->account->type === 'market') {
|
||||||
$date = (new DateTime('@' . $task->date))->setTimezone(new DateTimeZone('Asia/Krasnoyarsk'));
|
// Магазин
|
||||||
|
|
||||||
// Инициализация времени
|
// Инициализация даты
|
||||||
$start = datetime::createFromFormat('H:i', (string) $task->start);
|
$date = (new DateTime('@' . $task->date))->setTimezone(new DateTimeZone('Asia/Krasnoyarsk'));
|
||||||
$end = datetime::createFromFormat('H:i', (string) $task->end);
|
|
||||||
|
|
||||||
// Перенос времени в дату
|
// Инициализация времени
|
||||||
$start = $date->setTime((int) $start->format('H'), (int) $start->format('i'))->format('U');
|
$start = datetime::createFromFormat('H:i', (string) $task->start);
|
||||||
$end = $date->setTime((int) $end->format('H'), (int) $end->format('i'))->format('U');
|
$end = datetime::createFromFormat('H:i', (string) $task->end);
|
||||||
|
|
||||||
// Заявка уже начата
|
// Перенос времени в дату
|
||||||
if ($this->account->type === 'market' and time() - $start > 0)
|
$start = $date->setTime((int) $start->format('H'), (int) $start->format('i'))->format('U');
|
||||||
throw new exception('Запрещено редактировать дату и время начатой заявки');
|
$end = $date->setTime((int) $end->format('H'), (int) $end->format('i'))->format('U');
|
||||||
|
|
||||||
// Заявка уже завершена
|
// Заявка уже начата?
|
||||||
if ($this->account->type === 'market' and $task->completed === true || time() - $end > 0)
|
if (time() - $start > 0)
|
||||||
throw new exception('Запрещено редактировать дату и время завершённой заявки');
|
throw new exception('Запрещено редактировать дату и время начатой заявки');
|
||||||
|
|
||||||
|
// Заявка уже прошла?
|
||||||
|
if (time() - $end > 0)
|
||||||
|
throw new exception('Запрещено редактировать дату и время прошедшей заявки');
|
||||||
|
|
||||||
|
// Заявка уже завершена?
|
||||||
|
if ($task->completed === true)
|
||||||
|
throw new exception('Запрещено редактировать дату и время завершённой заявки');
|
||||||
|
|
||||||
|
// Прошло более 30 минут после создания заявки? (1800 секунд = 30 минут)
|
||||||
|
/* if (time() - $task->created > 1800)
|
||||||
|
throw new exception('Запрещено редактировать заявку спустя 30 минут после создания'); */
|
||||||
|
|
||||||
|
// До начала заявки осталось менее 16 часов? (57600 секунд = 16 часов)
|
||||||
|
if ($start - time() < 57600)
|
||||||
|
throw new exception('Запрещено редактировать дату и время заявки за менее 16 часов до её начала');
|
||||||
|
}
|
||||||
|
|
||||||
if ($task instanceof _document) {
|
if ($task instanceof _document) {
|
||||||
// Найдена заявка
|
// Найдена заявка
|
||||||
|
|
|
@ -2606,6 +2606,10 @@ if (typeof window.tasks !== "function") {
|
||||||
work.classList.add("row", "connected", "stretched");
|
work.classList.add("row", "connected", "stretched");
|
||||||
this.works(task).then((html) => (work.innerHTML = html));
|
this.works(task).then((html) => (work.innerHTML = html));
|
||||||
work.setAttribute("title", "Тип работы");
|
work.setAttribute("title", "Тип работы");
|
||||||
|
work.setAttribute(
|
||||||
|
'onchange',
|
||||||
|
`tasks.work(document.getElementById('${task}'), this)`
|
||||||
|
);
|
||||||
|
|
||||||
// Инициализация поля ввода описания
|
// Инициализация поля ввода описания
|
||||||
const description = document.createElement("textarea");
|
const description = document.createElement("textarea");
|
||||||
|
@ -2938,8 +2942,19 @@ if (typeof window.tasks !== "function") {
|
||||||
// Блокировка закрытия окна (чтобы не вызвался click() через событие onclick)
|
// Блокировка закрытия окна (чтобы не вызвался click() через событие onclick)
|
||||||
this.freeze = true;
|
this.freeze = true;
|
||||||
|
|
||||||
// Активация виртуальной кнопки "подтвердить"
|
if (
|
||||||
confirm.click();
|
typeof core === "function" &&
|
||||||
|
core.interface === "operator" &&
|
||||||
|
core.interface === "administrator"
|
||||||
|
) {
|
||||||
|
// Оператор или администратор
|
||||||
|
|
||||||
|
// Активация виртуальной кнопки "подтвердить"
|
||||||
|
confirm.click();
|
||||||
|
} else {
|
||||||
|
// Магазин или сотрудник
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Возвращение статуса блокировки закрытия окна
|
// Возвращение статуса блокировки закрытия окна
|
||||||
this.freeze = freeze;
|
this.freeze = freeze;
|
||||||
|
@ -3783,8 +3798,6 @@ if (typeof window.tasks !== "function") {
|
||||||
// Инициализация идентификатора строки
|
// Инициализация идентификатора строки
|
||||||
const id = row.getAttribute("id");
|
const id = row.getAttribute("id");
|
||||||
|
|
||||||
alert(228);
|
|
||||||
|
|
||||||
if (typeof id === "string") {
|
if (typeof id === "string") {
|
||||||
// Инициализирован идентификатор
|
// Инициализирован идентификатор
|
||||||
|
|
||||||
|
|
Reference in New Issue