Frontol Добавление карты клиента через скрипт
Всем доброго времени суток, я молодой и неопытный программист, что пытается найти себя и работать со всем, что двигается, а если не двигается - двигать и работать. Я создаю скрипт для программного обеспечения Frontol кассового аппарата на JavaScript. Нужно было создать скрипт, который предлагал бы купить карту клиента, если цена на карте меньше, чем без нее. Самым простым и оптимальным решением было добавить тестовую карточку клиента, сравнить цены, а затем удалить ее. Проблема в том, что внутренняя функциональность Frontol 6.18 не работает для добавления клиентской карты. Либо так оно и есть, и я слишком плохо ищу информацию. Может быть, есть знающие люди, которые могут помочь с этим?
Были идеи открыть окно для добавления клиентской карточки и ввода номера тестовой карточки. Однако я остановился на вводе номера, потому что после открытия окна скрипт ничего не хотел вводить.
if(frontol.currentDocument.card.count == 0){
var WShell = new ActiveXObject("WScript.Shell");
WShell.SendKeys("%x"); // Открытие окна ввода карты клиента
}
Если поступать тем же методом и добавить ещё "WShell.SendKeys("номер карты");", этот номер вставится где угодно, но только не в этом окне.
ИЗМЕНЕНО
Методом тыка понял, что скорее это даже абсурдная идея, имитировать нажатие клавиш.
if(frontol.currentDocument.card.count == 0){
var WShell = new ActiveXObject("WScript.Shell");
WShell.SendKeys("^{F7}358800{ENTER}");
total = frontol.currentDocument.sum;
cancelCard();
if(total > frontol.currentDocument.sum){
frontol.actions.cancel();
frontol.actions.showMessage("Цена с картой клиента: " + total);
}
}
Проблема заключается в асинхронности WShell, от чего total уже где-то когда-то был рассчитан, а должен рассчитываться после добавления карты. Отмена карты вообще не доходит, а если и доходит, то остаётся лишь догадываться, когда. Момент появления окна ввода карты хоть и мимолётный, но невооружённым взглядом заметен. Нужен совет, как это решить или шлёпнуть по голове и сказать, как логичнее поступить.
Работа с клиентом и картами происходит через Jamm. Но информации в общем доступе о нём будто нету. Спасибо заранее.