/// <summary> /// Метод обрабатывает нажатие кнопки Отчет по банковским картам. /// Отвечает за печать и сохранение z-отчёта по банковским картам. /// </summary> /// <param name="sender">Объект, вызвавщий метод.</param> /// <param name="e">Аргументы события.</param> private void отчётыПоБанковскимКартамToolStripMenuItem_Click(object sender, EventArgs e) { if (!CheckPassword()) { MessageBox.Show("Неверный пароль!"); return; } using (ITerminal terminal = CurrentHardware.GetTerminal()) { using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar()) { //проверка связи с терминалом if (terminal.IsEnabled()) { //проверка связи с фискальным регистратором if (fr.CheckConnect() == 0) { //формирование отчета terminal.CloseDay(); fr.Print(terminal.GetReceipt(), terminal.GetReceiptName());//печать чека терминала } } else { MessageBox.Show("Терминал не подключен! Проверьте подключение и повторите попытку."); } } } }
/// <summary> /// Метод обрабатывает нажатие кнопки Банковская карта. /// Отвечает за оплату покупки по банковской карте. /// </summary> /// <param name="sender">Объект, вызвавщий метод</param> /// <param name="e">Аргументы события</param> private void nonCashB_Click(object sender, EventArgs e) { try { messageL.Text = "Идёт процесс оплаты через терминал"; this.Enabled = false; //блокировка формы panel1.Visible = true; //показать панель сообщений using (ITerminal terminal = CurrentHardware.GetTerminal()) { using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar()) { if (terminal.IsEnabled()) { if (fr.CheckConnect() == 0) { //если оплата через терминал успешна if (terminal.Purchase(CurrentReceipt.Summa) == 0) { messageL.Text = "Оплата успешно!"; terminal.Unconfirmed(); //если печать чека терминала успешна if (terminal.GetReceipt() != null && fr.Print(terminal.GetReceipt(), terminal.GetReceiptName()) == 0) { messageL.Text = "Печать чеков"; CurrentReceipt.Payment = 2; InsertData(); //печать товарного чека if (fr.PrintReceipt(CurrentReceipt, null) == 0) { messageL.Text = "Успешно"; terminal.Confirmed(); MarkAsPaid(); Close(); } else { //???????????????????????? MessageBox.Show("Товарный чек не напечатан! Отмена транзакции."); terminal.CancelTransaction(); } } else { MessageBox.Show("Чек терминала не напечатан! Отмена операции."); terminal.CancelTransaction(); } } } } else { MessageBox.Show("Терминал не подключен! Проверьте подключение и повторите попытку."); } } } panel1.Visible = false; //убрать панель сообщений this.Enabled = true; //разблокировать форму } catch (Exception ex) { MessageBox.Show(TextFormat.GetExceptionMessage(ex)); } }