/// <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)); } }