Skip to content
This repository has been archived by the owner on Jul 27, 2020. It is now read-only.

perdidor/KaznachejFA.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

KaznachejFA.NET

Библиотека для работы с кассовым аппаратом "Казначей ФА" через последовательный порт RS232. Используйте MS Visual Studio 2017.

Использование (тестировалось на Windows IoT Core @ Raspberry Pi 3, возможно пересобрать под любую другую платформу)

string aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);
foreach (var item in dis)
{
	//ищем определенный последовательный порт
	if (item.Name.Contains("FT232"))
	{
		CashDesk.CashDeskDeviceSerialPort = await SerialDevice.FromIdAsync(item.Id);
		CashDeskDeviceID = item.Id;
		break;
	}
}
//конфигурируем порт
CashDesk.CashDeskDeviceSerialPort.BaudRate = 9600;
CashDesk.CashDeskDeviceSerialPort.Parity = SerialParity.None;
CashDesk.CashDeskDeviceSerialPort.StopBits = SerialStopBitCount.One;
CashDesk.CashDeskDeviceSerialPort.DataBits = 8;
//подключаемся к событиям кассы
CashDesk.DeviceTypeReceived += CashDesk_DeviceTypeReceived;
CashDesk.KKTPrinterStateReceived += CashDesk_KKTPrinterStateReceived;
...
...
CashDesk.AllTasksCancelled += CashDesk_AllTasksCancelled;
//запускаем взаимодействие с кассовым аппаратом
CashDesk.StartCommunication();
...
...
//устанавливаем режим ККТ "Регистрация"
CashDesk.ChangeMode(DeviceStateMode.Registration_WaitingForCommand);
//открываем смену
CashDesk.OpenStage();
...
...
//периодически опрашиваем кассу (необходимо подключение ко всем событиям кассы)
while (true)
{
	if (CashDesk.CashDeskDeviceSerialPort != null)
            {
                while (CashDesk.PendingTasks.Count != 0)
                {
                    await Task.Delay(100);
                }
                CashDesk.GetKKTInformation();
            }
	Task.Delay(60000);
}
...
//печать чека с одной позицией
List<string> LinesToPrint = new List<string>
                {
                "Сдача округляется до ближайшего",
                "целого рубля 0-49коп=0руб 50-99коп=1руб",
                "телефон для справок +79031234567"
                };
//аргументы: доп. строки, кол-во товара, цена за единицу в копейках, принято наличными, название товара, используемая система налогообложения (см. документацию ККТ)
CashDesk.PrintReceipt(LinesToPrint, 0.5, 500, 1000, "Вода питьевая", 2);

About

Библиотека для работы с кассовым аппаратом "Казначей ФА"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages