Exemple #1
0
 /// <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));
     }
 }