Пример #1
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Прочитать денежные регистры.
 /// Отвечает за вывод денежных регистров в список формы.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void readCashRegB_Click(object sender, EventArgs e)
 {
     using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
     {
         if (fr.CheckConnect() == 0)
         {
             int           i = 1;
             RegistrerItem ri;//объект строки регистра
             cashRegLB.Items.Clear();
             //читать регистры пока не прочитаны все
             while (true)
             {
                 ri = fr.GetCashRegItem(i);
                 if (ri != null)
                 {
                     //добавление записи в поле на форме
                     cashRegLB.Items.Add($"{ri.Number}. {ri.Name} : {ri.Content}");
                     i++;
                 }
                 else
                 {
                     break;
                 }
             }
         }
     }
 }
Пример #2
0
 /// <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("Терминал не подключен! Проверьте подключение и повторите попытку.");
             }
         }
     }
 }
Пример #3
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Проверка связи фискального регистратора.
 /// Отвечает за проверку связи с фискальным регистратором.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void checkConnectB_Click(object sender, EventArgs e)
 {
     using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
     {
         if (fr.CheckConnect() == 0)
         {
             MessageBox.Show("Фискальный регистратор подключен!");
         }
     }
 }
Пример #4
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопкипечать операционных регистров.
 /// Отвечает за печать и сохранение операционных регистров ККТ.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void printOperationRegB_Click(object sender, EventArgs e)
 {
     using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
     {
         if (fr.CheckConnect() == 0)
         {
             fr.PrintOperationReg(); //Печать операционных регистров
         }
     }
 }
Пример #5
0
 /// <summary>
 /// Конструктор класса.
 /// Выполняет инициализацию формы, устанавливает путь к рабочей папке
 /// и вызывает метод проверси состояния ККТ.
 /// </summary>
 public Menu()
 {
     InitializeComponent();
     //путь к рабочей папке
     AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);
     using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
     {
         if (fr.CheckConnect() == 0)
         {
             fr.PrepareReceipt();
         }
     }
 }
Пример #6
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Проверка связи терминала.
 /// Отвечает за проверку связи с терминалом.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void checkTermlConnectB_Click(object sender, EventArgs e)
 {
     using (ITerminal terminal = CurrentHardware.GetTerminal())
     {
         if (terminal.IsEnabled())
         {
             MessageBox.Show("Терминал подключен!");
         }
         else
         {
             MessageBox.Show("Подключение отсутствует!");
         }
     }
 }
Пример #7
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки х-отчёт без Гашения.
 /// Отвечает за печать и сохранение х-отчёта без Гашения ККТ.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void хотчётбезГашенияToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (!CheckPassword())
     {
         MessageBox.Show("Неверный пароль!");
         return;
     }
     using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
     {
         if (fr.CheckConnect() == 0)
         {
             fr.PrintXReport();
         }
     }
 }
Пример #8
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Наличные.
 /// Отвечает за оплату покупки наличными.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод</param>
 /// <param name="e">Аргументы события</param>
 private void cashB_Click(object sender, EventArgs e)
 {
     if (decimal.Parse(moneyTB.Text) < CurrentReceipt.Summa)
     {
         MessageBox.Show("Вносимая сумма не может быть меньше суммы по чеку!");
         return;
     }
     try
     {
         messageL.Text  = "Оплата наличными";
         this.Enabled   = false; //блокировка формы
         panel1.Visible = true;  //показать панель сообщений
         using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
         {
             if (fr.CheckConnect() == 0)
             {
                 messageL.Text          = "Печать чека";
                 CurrentReceipt.Payment = 1;
                 InsertData();
                 //замена суммы по чеку на сумму вносимых наличных
                 CurrentReceipt.Summa = decimal.Parse(moneyTB.Text);
                 //печать товарного чека
                 if (fr.PrintReceipt(CurrentReceipt) == 0)
                 {
                     messageL.Text = "Успешно";
                     MarkAsPaid();
                     Close();
                 }
             }
         }
         panel1.Visible = false; //убрать панель сообщений
         this.Enabled   = true;  //разблокировать форму
     }
     catch (Exception ex)
     {
         MessageBox.Show(TextFormat.GetExceptionMessage(ex));
     }
 }
Пример #9
0
        /// <summary>
        /// Метод обрабатывает нажатие кнопки Ввод.
        /// Отвечает за фиксирование внесения или выплаты указанной суммы.
        /// </summary>
        /// <param name="sender">Объект, вызвавщий метод</param>
        /// <param name="e">Аргументы события</param>
        private void enterB_Click(object sender, EventArgs e)
        {
            decimal summ, res;

            if (summaTB.Text != "")
            {
                summ = decimal.Parse(summaTB.Text);
                if (summ > 0)
                {
                    using (IFiscalRegistrar fr = CurrentHardware.GetFiscalRegistrar())
                    {
                        if (fr.CheckConnect() == 0)
                        {
                            //Вненение или Выплата, относительно назначения формы
                            if (IsCashIncome)
                            {
                                res = fr.CashIncome(summ);
                            }
                            else
                            {
                                res = fr.CashOutcome(summ);
                            }
                            Close();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Сумма должна быть больше 0!");
                }
            }
            else
            {
                MessageBox.Show("Введите сумму!");
            }
        }
Пример #10
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));
     }
 }