Example #1
0
 private void button1_Click(object sender, EventArgs e)
 {
     MessageBox.Show("Список введённых подарков будет очищен.При следующем переходе в окно оплаты необходимо повторить их ввод, если программа предложит это сделать.");
     cc.cancel_action();
     //записать в лог что кассир вернулся в документ
     MainStaticClass.write_event_in_log("Возврат в документ из окна оплата", "Документ чек", cc.numdoc.ToString());
     this.Close();
 }
Example #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            this.button_pay.Enabled = false;

            if (Math.Round(Convert.ToDecimal(cash_sum.Text.Replace(".", ",")), 2) + Math.Round(Convert.ToDecimal(get_non_cash_sum(0)), 2) + Math.Round(Convert.ToDecimal(sertificates_sum.Text), 2) + Math.Round(Convert.ToDecimal(pay_bonus_many.Text.Replace(".", ",")), 2) - Math.Round(Convert.ToDecimal(pay_sum.Text.Replace(".", ",")), 2) < 0)
            {
                MessageBox.Show("Проверьте сумму внесенной оплаты");
                MessageBox.Show("Наличные" + Math.Round(Convert.ToDecimal(cash_sum.Text.Replace(".", ",")), 2).ToString());
                MessageBox.Show("Карта " + Math.Round(Convert.ToDecimal(get_non_cash_sum(0)), 2).ToString());
                MessageBox.Show("Сертификаты " + Math.Round(Convert.ToDecimal(sertificates_sum.Text), 2).ToString());
                MessageBox.Show("Бонусы " + Math.Round(Convert.ToDecimal(pay_bonus_many.Text.Replace(".", ",")), 2).ToString());
                MessageBox.Show("Общая сумма  " + Math.Round(Convert.ToDecimal(pay_sum.Text.Replace(".", ",")), 2));

                return;
            }

            if (Convert.ToDecimal(remainder.Text.Trim()) > 0)
            {
                if (cc.check_type.SelectedIndex != 0)
                {
                    MessageBox.Show(" Сумма возврата должна быть равно сумме оплаты ");
                    return;
                }
            }

            if (Convert.ToInt32(pay_bonus_many.Text) != 0)//При оплате бонусами бонусы не начисляются
            {
                bonus_on_document.Text = "0";
            }

            if (Convert.ToDecimal(pay_bonus_many.Text) > 0)
            {
                if (Convert.ToDecimal(non_cash_sum.Text) + Convert.ToDecimal(sertificates_sum.Text) + Convert.ToDecimal(pay_bonus_many.Text) > Convert.ToDecimal(pay_sum.Text))
                {
                    MessageBox.Show("Сумма сертификатов + сумма по карте оплаты + сумма по бонусам превышает сумму чека ");
                    return;
                }
            }
            else
            {
                if (Convert.ToDecimal(non_cash_sum.Text) + Convert.ToDecimal(sertificates_sum.Text) > Convert.ToDecimal(pay_sum.Text))
                {
                    MessageBox.Show(" Сумма сертификатов + сумма по карте оплаты превышает сумму чека ");
                    return;
                }
            }



            cc.listView_sertificates.Items.Clear();
            foreach (ListViewItem lvi in listView_sertificates.Items)
            {
                cc.listView_sertificates.Items.Add((ListViewItem)lvi.Clone());
            }

            MainStaticClass.write_event_in_log("Окно оплаты перед записью и закрытием документа ", "Документ чек", cc.numdoc.ToString());

            //Необходимо проверка на сумму документа где сумма всех форм оплаты равно сумме документа
            //Получаем общу сумму по оплате
            decimal _cash_summ_        = Convert.ToDecimal(cash_sum.Text) - Convert.ToDecimal(remainder.Text);
            decimal _non_cash_summ_    = Convert.ToDecimal(get_non_cash_sum(1));
            decimal _sertificates_sum_ = Convert.ToDecimal(sertificates_sum.Text);
            //decimal _pay_bonus_many_ = Convert.ToDecimal((int)(Convert.ToInt32(pay_bonus_many.Text)/100));
            decimal _pay_bonus_many_ = Convert.ToDecimal(pay_bonus_many.Text);

            decimal sum_of_the_document = cc.calculation_of_the_sum_of_the_document();

            if (_non_cash_summ_ == 0)
            {
                sum_of_the_document = (int)sum_of_the_document;
            }

            if (Math.Round(sum_of_the_document, 2) != Math.Round((_cash_summ_ + _non_cash_summ_ + _sertificates_sum_ + _pay_bonus_many_), 2))
            {
                MessageBox.Show(" Повторно внесите суммы оплаты, обнаружено несхождение в окне оплаты ");
                MessageBox.Show("Сумма документа = " + sum_of_the_document.ToString() + " а сумма оплат = " + (_cash_summ_ + _non_cash_summ_ + _sertificates_sum_ + _pay_bonus_many_).ToString());
                MessageBox.Show("Сумма наличные = " + _cash_summ_.ToString());
                MessageBox.Show("Сумма карта оплаты = " + _non_cash_summ_.ToString());
                MessageBox.Show("Сумма сертификатов = " + _sertificates_sum_.ToString());
                MessageBox.Show("Сумма бонусов = " + _pay_bonus_many_.ToString());

                return;
            }

            //здесь перед записью еще проверка процессингового центра
            if (cc.client.Tag != null)
            {
                if (cc.check_bonus_is_on())
                {
                    if (!continue_sales())
                    {
                        return;
                    }
                }
            }

            //Если это возврат то необходимо проверить сумму по каждой форме оплаты
            if (cc.check_type.SelectedIndex == 1)
            {
                if (!MainStaticClass.validate_cash_sum_non_cash_sum_on_return(cc.id_sale, _cash_summ_, _non_cash_summ_))
                {
                    return;
                }
            }

            it_is_paid();
        }