Форум OlegON > Программы и оборудование для автоматизации торговли > Кассовые программы > Frontol

Скрипт блокировки продажи фасованного пива после 22-00 : Frontol

26.01.2025 7:59


13.11.2024 08:25
Всем привет. Есть скрипт проверки продажи алкогольной продукции после 22-00. но с новыми изменениями пиво пробивается после 22-00. Кто может подсказать что поменять в скрипте что бы он не продавал фасовоное пиво
Цитата:
function init()
{
var Count_Alcohol;
//установка обработчика для события, срабатывающего после открытия документа
frontol.addEventListener("openDocument", "afterOpenDocument", false);

//установка обработчика для события, срабатывающего после восстановления документа
frontol.addEventListener("restoreDocument", "afterrestoreDocument", false);

//установка обработчика для события, срабатывающего до закрытия документа
frontol.addEventListener("closeDocument", "BeforeCloseDocument", true);

//установка обработчика для события, срабатывающего после закрытия документа
frontol.addEventListener("closeDocument", "afterCloseDocument", true);

}

// функция afterOpenDocument() добавляет позицию после открытия документа и
//привязывает события, связанные с последующим добавлением/редактированием позиций, к
//обработчикам
function afterOpenDocument()
{
if (frontol.currentDocument.type.code == 1)
{
Count_Alcohol = 0;
//установка обработчика для события, срабатывающего перед добавлением позиции
frontol.addEventListener("addPosition", "beforeAddPosition", true);
//установка обработчика для события, срабатывающего перед изменением позиции
frontol.addEventListener("changePosition", "BeforeChangePosition", true);
}
}

// функция afterrestoreDocument() после восстановления документа
//ищет позиции с признаком алкогольная продукция и восстанавливает значение счетчика

function afterrestoreDocument()
{
Count_Alcohol = 0;
for (
frontol.currentDocument.position.index = 1;
frontol.currentDocument.position.index <=
frontol.currentDocument.position.count;
frontol.currentDocument.position.index++
)
if (frontol.currentDocument.position.ware.type == 1)
Count_Alcohol += 1;
}

// функция beforeAddPosition(position)
function beforeAddPosition(position)
{
if (position.ware.type == 1)
{
data = new Date();
doc_time = data.getHours();
if (10>doc_time || doc_time>=22)
{
frontol.actions.showError("Продажа алкогольной продукции запрещена с 22-00 до 10-00!!!");
}
Count_Alcohol = Count_Alcohol+1;
}
}

// функция beforeChangePosition(position)
function BeforeChangePosition(position)
{
if (position.ware.type == 1)
{
if (position.storno == 1)
{
Count_Alcohol = Count_Alcohol-1;
}
}
}

// функция BeforeCloseDocument() служит для проверки на наличие алкогольной продукции перед закрытием документа
function BeforeCloseDocument()
{
if (Count_Alcohol>0)
{
data = new Date();

doc_time = data.getHours();
if (10>doc_time || doc_time>=22)
{
frontol.actions.showError("В документе присутствует алкогольная продукция. Продажа запрещена в это время. Сторнируйте оплату, затем стронируйте алкоголь или отмените документ!");
frontol.actions.cancel();
}
}
}


// функция afterCloseDocument() служит для отмены привязки событий к обработчикам
function afterCloseDocument()
{

//убираем обработчик для события, срабатывающего после добавления позиции
frontol.removeEventListener("addPosition", "beforeAddPosition", true);
//убираем обработчик для события, срабатывающего после добавления позиции
frontol.removeEventListener("changePosition", "BeforeChangePosition", true);

}
13.11.2024 08:59
Код:
function BeforeChangePosition(position)
{
if ((position.ware.type == 1)||(position.ware.type == 17))
{
if (position.storno == 1)
{
Count_Alcohol = Count_Alcohol-1;
}
}
}
position.ware.type - тип продукции (17 - фасованное пиво)
см. Руководство интегратора 13.3.51. Класс Ware (Товар)
Часовой пояс GMT +3, время: 07:59.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.