Example #1
0
        private void execute_enter(string barcode)
        {
            fail_autorize.Text = "";
            int result = -1;

            if (MainStaticClass.Use_Usb_to_Com_Barcode_Scaner)
            {
                this.input_barcode.Text = barcode;
            }
            //Проверка наличия таблицы если не найдена то это первый запуск

            NpgsqlConnection conn = null;

            try
            {
                conn = MainStaticClass.NpgsqlConn();
                conn.Open();
                NpgsqlCommand command = new NpgsqlCommand();
                command.Connection  = conn;
                command.CommandText = "select COUNT(*) from information_schema.tables 		where table_schema='public' 	and table_name='users'	";
                if (Convert.ToInt16(command.ExecuteScalar()) == 0)
                {
                    //if (caller_type == 3)
                    //{

                    //    return;
                    //}
                    //else
                    //{
                    this.Close();
                    MainStaticClass.Code_right_of_user = 1;
                    MainStaticClass.Main.InitializeComponent1();
                    conn.Close();
                    return;
                    //}
                }
            }
            catch (NpgsqlException ex)
            {
                MessageBox.Show(ex.Message);
                conn.Close();
            }

            if ((count_users() == 0) && (input_barcode.Text.Trim() == "1"))
            {//Пользователей еще нет, это первый вход
                this.Close();
                MainStaticClass.Code_right_of_user = 1;
                MainStaticClass.Main.InitializeComponent1();
            }
            else
            {
                //if (barcode.Length < 10)
                //{
                //    MessageBox.Show("Неверный код входа");
                //    return;
                //}

                //Если версия программы < 18.12.2017 тогда вызываем старую процедуру
                //иначе если версия = 18.12.2017 тогда вызываем промежуточную
                //иначе если версия > 18.12.2017 тогда вызываем новую
                //string cash_version = MainStaticClass.version();
                //int year = int.Parse("" + cash_version.Substring(6, 5).Replace(".", ""));
                //int month = int.Parse("" + cash_version.Substring(3, 2).Replace(".", ""));
                //int day = int.Parse("" + cash_version.Substring(0, 2));
                //DateTime date_version_program = new DateTime(year, month, day);
                //if (new DateTime(2017, 12, 18) <= date_version_program)
                //{
                //проверим схему бд она старая или уже новая
                //if (MainStaticClass.check_new_shema_autenticate() == 0)
                //{
                //    result = find_user_role(input_barcode.Text);
                //}

                if (MainStaticClass.check_new_shema_autenticate() == 1)
                {
                    result = find_user_role_new(input_barcode.Text);
                }
                else
                {
                    MessageBox.Show(" Из за произошедших ошибок авторизация невозможна ");
                    result = 0;
                }
                //}
                //else
                //{
                //    //result = find_user_role(input_barcode.Text);
                //    result = find_user_role_new(input_barcode.Text);
                //}
            }
            if (result == 1)
            {
                if (MainStaticClass.Use_Usb_to_Com_Barcode_Scaner)
                {
                    result_execute_enter = true;
                    stop_com_barcode_scaner();
                }
                MainStaticClass.First_Login_Admin = true;
                this.Close();

                if ((caller_type == 3) && (cc != null))//Это авторизация на удаление чека
                {
                    cc.enable_delete = true;
                    return;
                }

                MainStaticClass.Code_right_of_user = 1;
                MainStaticClass.Main.InitializeComponent1();
                //MainStaticClass.write_event_dssl_in_log("POSNG_ADMIN_LOGIN","", MainStaticClass.Cash_Operator,DateTime.Now.Date, DateTime.Now.TimeOfDay,0,0,0,"","",MainStaticClass.CashDeskNumber.ToString(),"");
                //if (MainStaticClass.Use_Trassir > 0)
                //{
                //    string s = MainStaticClass.get_string_message_for_trassir("POSNG_ADMIN_LOGIN", "", MainStaticClass.Cash_Operator, DateTime.Now.Date.ToString("dd'/'MM'/'yyyy"), DateTime.Now.ToString("HH:mm:ss"), "", "", "", "", "", MainStaticClass.CashDeskNumber.ToString(), "");
                //    MainStaticClass.send_data_trassir(s);
                //}
            }
            else if (result == 2)
            {
                if (MainStaticClass.Use_Usb_to_Com_Barcode_Scaner)
                {
                    result_execute_enter = true;
                    stop_com_barcode_scaner();
                }
                if (!MainStaticClass.First_Login_Admin)
                {
                    MessageBox.Show(" Первая регистрация должна с правами администратора ");
                    return;
                }
                this.Close();
                MainStaticClass.Main.show_Cash_checks();
                //MainStaticClass.write_event_dssl_in_log("POSNG_CASHIER_LOGIN", "", MainStaticClass.Cash_Operator, DateTime.Now.Date, DateTime.Now.TimeOfDay, 0, 0, 0, "", "", MainStaticClass.CashDeskNumber.ToString(), "");
                //MainStaticClass.write_event_dssl_in_log("POSNG_CASHIER_LOGIN", MainStaticClass.Cash_Operator_Client_Code, DateTime.Now, 0);
            }
            else if (result == 13)
            {
                fail_autorize.Text = " У вас нет прав для входа в программу ";
                this.input_barcode.Focus();
            }
            else if (result == 0)
            {
                fail_autorize.Text = "Неудачная попытка авторизации";
                this.input_barcode.Focus();
            }

            this.input_barcode.Text = "";
        }