예제 #1
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
 private void OpenSettings()
 {
     frmSetup fOptions = new frmSetup();
     fOptions.ShowDialog();
     prop = new PSA.Lib.Util.Settings();
 }
예제 #2
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
 private void mnuSetup_Click(object sender, EventArgs e)
 {
     frmSetup f = new frmSetup();
     f.ShowDialog();
     prop = new PSA.Lib.Util.Settings();
 }
예제 #3
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                StreamWriter sw = new StreamWriter(prop.Dir_net_export + "\\Exchanger_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:          " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:       " + Environment.MachineName +
                         "\nUser:          "******"\nExchanger mod: " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }

            if (!Checking.checkVersion(Modules.Exchanger, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");

            if (!PSA.Lib.Util.Semaphore.semInventory)
            {
                this.WindowState = FormWindowState.Maximized;

                txtDateBegin.Value = DateTime.Now.AddDays(-20);
                txtDateEnd.Value = DateTime.Now.AddDays(5);
                txtDateBeginPr.Value = DateTime.Now.AddDays(-20);
                txtDateEndPr.Value = DateTime.Now.AddDays(5);

                bool tmp_login_ok = false;
                bool tmp_exit = false;

                // Если ограничение на запуск одной копии пройдено, то продолжаем...
                // Открываем соединение с базой
                try
                {
                    db_connection.ConnectionString = prop.Connection_string;
                    db_connection.Open();
                }
                catch (Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);
                    // Если не удалось подключиться к базе, то
                    // выдаем сообщение об ошибке и открываем форму
                    // подключения к базе данных
                    MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    try
                    {
                        frmSetup fOptions = new frmSetup();
                        fOptions.ShowDialog();
                        prop = new PSA.Lib.Util.Settings();
                        // Опять пробуем подключиться к базе
                        db_connection.ConnectionString = prop.Connection_string;
                        db_connection.Open();
                    }
                    catch (Exception exc)
                    {
                        ErrorNfo.WriteErrorInfo(exc);
                        // Если после второй попытки не удалось подключиться, то закрываем программу.
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tmp_exit = true;
                    }
                }

                if (!tmp_exit)
                {
                    // открываем окно запроса пользователя
                    PSA.Lib.Interface.frmLogin fLogin = new PSA.Lib.Interface.frmLogin();
                    // спрашиваем пока не угадает пароль или не надоест угадывать
                    while (!tmp_login_ok)
                    {
                        switch (fLogin.ShowDialog())
                        {
                            case DialogResult.Cancel:
                                {
                                    tmp_login_ok = true;
                                    tmp_exit = true;
                                    break;
                                }
                            case DialogResult.OK:
                                {
                                    tmp_login_ok = true;
                                    if (fLogin.usr.prmCanLoginAcceptance)
                                    {
                                        this.Show();
                                    }
                                    else
                                    {
                                        tmp_exit = true;
                                        MessageBox.Show("Доступ в модуль приемка заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    break;
                                }
                        }
                    }
                    if (!tmp_exit)
                    {
                        // если мы уже тут, значит пароль все же угадали
                        // Получаем данные о пользователе
                        usr = fLogin.usr;
                        // Показываем окно
                        this.Focus();
                        SqlCommand cmd_status = new SqlCommand("SELECT [order_status], [status_desc] FROM [order_status] ORDER BY [status_desc]", db_connection);
                        SqlDataAdapter da_status = new SqlDataAdapter(cmd_status);
                        DataTable dt_status = new DataTable("status");
                        da_status.Fill(dt_status);
                        checkStatus.DataSource = dt_status;
                        checkStatus.DisplayMember = "status_desc";
                        checkStatus.ValueMember = "order_status";
                        for (int i = 0; i < checkStatus.Items.Count; i++)
                        {
                            checkStatus.SetSelected(i, true);
                            //checkStatus.SelectedItem =  i;
                            if (checkStatus.SelectedValue.ToString().Trim() == "000000")
                                checkStatus.SetItemChecked(i, true);
                        }

                        checkFilterInput.Checked = true;

                        checkFilter();

                        FilterR = new FilterRowLike(GridOder);
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                else
                {
                    Application.Exit();
                }
            }
            else
            {

                MessageBox.Show("В момент проведения инвентаризации вход в модуль запрещен!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Application.Exit();
            }
        }
예제 #4
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            this.Title = "Inventory";
            this.InfoString = "Загружен модуль инвентаризации";
            try
            {
                StreamWriter sw = new StreamWriter(settings.Dir_export + "\\Inventory_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:          " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:       " + Environment.MachineName +
                         "\nUser:          "******"\nExchanger mod: " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }

            if (!Checking.checkVersion(Modules.Inventory, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");

            bool tmp_login_ok = false;
            bool tmp_exit = false;

            using (SqlConnection db_connection = new SqlConnection())
            {
                // Если ограничение на запуск одной копии пройдено, то продолжаем...
                // Открываем соединение с базой
                try
                {
                    db_connection.ConnectionString = settings.Connection_string;
                    db_connection.Open();
                }
                catch (Exception ex)
                {
                    //ErrorNfo.WriteErrorInfo(ex);
                    // Если не удалось подключиться к базе, то
                    // выдаем сообщение об ошибке и открываем форму
                    // подключения к базе данных
                    MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    try
                    {
                        frmSetup fOptions = new frmSetup();
                        fOptions.ShowDialog();
                        settings = new PSA.Lib.Util.Settings();
                        // Опять пробуем подключиться к базе
                        db_connection.ConnectionString = settings.Connection_string;
                        db_connection.Open();
                    }
                    catch (Exception exc)
                    {
                        //ErrorNfo.WriteErrorInfo(exc);
                        // Если после второй попытки не удалось подключиться, то закрываем программу.
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tmp_exit = true;
                    }
                }

                if (!tmp_exit)
                {
                    // открываем окно запроса пользователя
                    frmLogin fLogin = new frmLogin();
                    // спрашиваем пока не угадает пароль или не надоест угадывать
                    while (!tmp_login_ok)
                    {
                        switch (fLogin.ShowDialog())
                        {
                            case DialogResult.Cancel:
                                {
                                    tmp_login_ok = true;
                                    tmp_exit = true;
                                    break;
                                }
                            case DialogResult.OK:
                                {
                                    tmp_login_ok = true;
                                    if (fLogin.usr.prmCanInventory)
                                    {
                                        this.Show();
                                    }
                                    else
                                    {
                                        tmp_exit = true;
                                        MessageBox.Show("Доступ в модуль инвентаризации заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    break;
                                }
                        }
                    }
                    if (!tmp_exit)
                    {
                        // если мы уже тут, значит пароль все же угадали
                        // Получаем данные о пользователе
                        usr = fLogin.usr;
                        // Показываем окно
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                else
                {
                    Application.Exit();
                }

            }
        }
예제 #5
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                StreamWriter sw = new StreamWriter(prop.Dir_net_export + "\\Admin_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:         " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:      " + Environment.MachineName +
                         "\nUser:         "******"\nAdmin mod:    " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }

            if (!Checking.checkVersion(Modules.Administrator, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");

            bool tmp_login_ok = false;
            bool tmp_exit = false;

            // Проверяем, если есть ограничение на запуск одной копии и программа уже запущена
            if ((app.Search_twin()) && (prop.Run_one_copy_admin))
            {
                // То выдаем сообщение и закрываем программу
                MessageBox.Show("Программа уже запущена!");
                Application.Exit();
            }
            else
            {
                // Если ограничение на запуск одной копии пройдено, то продолжаем...
                // Открываем соединение с базой
                try
                {
                    db_connection.ConnectionString = prop.Connection_string;
                    db_connection.Open();
                }
                catch (Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);
                    // Если не удалось подключиться к базе, то
                    // выдаем сообщение об ошибке и открываем форму
                    // подключения к базе данных
                    MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    try
                    {
                        frmSetup fOptions = new frmSetup();
                        fOptions.ShowDialog();
                        prop = new PSA.Lib.Util.Settings();
                        // Опять пробуем подключиться к базе
                        db_connection.ConnectionString = prop.Connection_string;
                        db_connection.Open();
                    }
                    catch (Exception exc)
                    {
                        ErrorNfo.WriteErrorInfo(ex);
                        // Если после второй попытки не удалось подключиться, то закрываем программу.
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tmp_exit = true;
                    }
                }

                if (!tmp_exit)
                {
                    // открываем окно запроса пользователя
                    PSA.Lib.Interface.frmLogin fLogin = new PSA.Lib.Interface.frmLogin();
                    // спрашиваем пока не угадает пароль или не надоест угадывать
                    while (!tmp_login_ok)
                    {
                        switch (fLogin.ShowDialog())
                        {
                            case DialogResult.Cancel:
                                {
                                    tmp_login_ok = true;
                                    tmp_exit = true;
                                    break;
                                }
                            case DialogResult.OK:
                                {
                                    tmp_login_ok = true;
                                    if (fLogin.usr.prmCanLoginAdmin)
                                    {
                                        this.Show();
                                    }
                                    else
                                    {
                                        tmp_exit = true;
                                        MessageBox.Show("Доступ в модуль администратора заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    break;
                                }
                        }
                    }
                    if (!tmp_exit)
                    {
                        // если мы уже тут, значит пароль все же угадали
                        // Получаем данные о пользователе
                        usr = fLogin.usr;
                        // Показываем окно
                        this.Focus();
                        this.Text = "Администратор - " + usr.Name + " - Photoland System Automation " + Application.ProductVersion;

                        // запрос на не поддтвержденные списания
                        SqlCommand _cmd = new SqlCommand("SELECT COUNT(*) AS cnt FROM (SELECT TOP (100) PERCENT dbo.orderbody.datework, dbo.[order].number, dbo.defect.defect_name, dbo.orderbody.name_work, dbo.orderbody.user_defect, dbo.orderbody.defect_quantity, dbo.orderbody.defect_ok, dbo.good.name AS good FROM dbo.orderbody LEFT OUTER JOIN dbo.good ON dbo.orderbody.id_good = dbo.good.id_good LEFT OUTER JOIN dbo.defect ON dbo.orderbody.tech_defect = dbo.defect.defect_code LEFT OUTER JOIN dbo.[order] ON dbo.orderbody.id_order = dbo.[order].id_order WHERE (dbo.orderbody.tech_defect > 0) AND dbo.orderbody.id_user_work > 0) AS derivedtbl_1", db_connection);
                        _cmd.CommandTimeout = 9000;
                        if ((int)_cmd.ExecuteScalar() > 0)
                            MessageBox.Show("Внимание!\nЕсть не подтвержденные списания!", "Внимание",
                                            MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                else
                {
                    Application.Exit();
                }
            }
        }
예제 #6
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                StreamWriter sw = new StreamWriter(prop.Dir_net_export + "\\Designer_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:         " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:      " + Environment.MachineName +
                         "\nUser:         "******"\nDesigner mod: " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }
            if (!Checking.checkVersion(Modules.Designer, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");
            bool tmp_login_ok = false;
            bool tmp_exit = false;

            tmr.Interval = prop.UpdateOrderTableInDesigner * 1000;
            tmr.Stop();

            hidewin = false;

            this.TopMost = prop.Mod_designer_top_most;

            // Проверяем, если есть ограничение на запуск одной копии и программа уже запущена
            if ((app.Search_twin()) && (prop.Run_one_copy_designer))
            {
                // То выдаем сообщение и закрываем программу
                MessageBox.Show("Программа уже запущена!");
                globalexit = true;
                Application.Exit();
            }
            else
            {
                this.TopMost = false;
                // Если ограничение на запуск одной копии пройдено, то продолжаем...
                // Открываем соединение с базой
                try
                {
                    db_connection.ConnectionString = prop.Connection_string;
                    db_connection.Open();
                }
                catch (Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);
                    // Если не удалось подключиться к базе, то
                    // выдаем сообщение об ошибке и открываем форму
                    // подключения к базе данных
                    MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    try
                    {
                        this.TopMost = false;
                        frmSetup fOptions = new frmSetup();
                        fOptions.ShowDialog();
                        prop = new PSA.Lib.Util.Settings();
                        // Опять пробуем подключиться к базе
                        db_connection.ConnectionString = prop.Connection_string;
                        db_connection.Open();
                        this.TopMost = prop.Mod_designer_top_most;

                    }
                    catch (Exception exc)
                    {
                        ErrorNfo.WriteErrorInfo(exc);
                        // Если после второй попытки не удалось подключиться, то закрываем программу.
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tmp_exit = true;
                    }
                }

                if (!tmp_exit)
                {
                    // открываем окно запроса пользователя
                    PSA.Lib.Interface.frmLogin fLogin = new PSA.Lib.Interface.frmLogin();
                    // спрашиваем пока не угадает пароль или не надоест угадывать
                    while (!tmp_login_ok)
                    {
                        switch (fLogin.ShowDialog())
                        {
                            case DialogResult.Cancel:
                                {
                                    tmp_login_ok = true;
                                    tmp_exit = true;
                                    break;
                                }
                            case DialogResult.OK:
                                {
                                    tmp_login_ok = true;
                                    if (fLogin.usr.prmCanLoginDesigner)
                                    {
                                        this.Show();
                                    }
                                    else
                                    {
                                        tmp_exit = true;
                                        MessageBox.Show("Доступ в модуль оператора заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    break;
                                }
                        }
                    }
                    if (!tmp_exit)
                    {
                        // если мы уже тут, значит пароль все же угадали
                        // Получаем данные о пользователе
                        usr = fLogin.usr;
                        this.Text = "Дизайнер - " + usr.Name + " - Photoland System Automation " + Application.ProductVersion;

                        //запрашиваем машину и бумагу
                        this.TopMost = false;
                        //frmSelectMashineAndPaper f = new frmSelectMashineAndPaper();
                        //f.db_connection = this.db_connection;
                        //f.ShowDialog();
                        this.TopMost = prop.Mod_designer_top_most;

                        // Показываем окно
                        this.Focus();

                        if (!usr.prmCanDelEditBrak)
                        {
                            btnDelBrak.Enabled = false;
                            btnEditBrak.Enabled = false;
                        }

                        if (prop.Fly_window_designer)
                        {
                            HideWindow();
                        }

                        // заполняем фильтры
                        FillFilter();

                        // заполняем таблицу заказов
                        FillOrderList();

                        // заполняем таблицу "браков"
                        FillDiscardTable();

                        hidewin = true;

                        ClearOrders();

                        tmr.Start();
                    }
                    else
                    {
                        globalexit = true;
                        Application.Exit();
                    }
                }
                else
                {
                    globalexit = true;
                    Application.Exit();
                }
                this.TopMost = prop.Mod_designer_top_most;
            }
        }
예제 #7
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
 private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     PSA.Lib.Interface.frmSetup f = new frmSetup();
     f.ShowDialog();
     settings = new PSA.Lib.Util.Settings();
 }
예제 #8
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
 private void OpenSettings()
 {
     this.TopMost = false;
     if (usr.prmCanSetup)
     {
         frmSetup fOptions = new frmSetup();
         fOptions.ShowDialog();
         prop = new PSA.Lib.Util.Settings();
     }
     else
     {
         MessageBox.Show("Нет доступа", "Доступ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     this.TopMost = prop.Mod_designer_top_most;
 }
예제 #9
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                StreamWriter sw = new StreamWriter(prop.Dir_net_export + "\\Acceptance_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:           " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:        " + Environment.MachineName +
                         "\nUser:           "******"\nAcceptance mod: " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }

            if (!Checking.checkVersion(Modules.Acceptance, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");

            if (!PSA.Lib.Util.Semaphore.semInventory)
            {

                bool tmp_login_ok = false;
                bool tmp_exit = false;

                // Проверяем, если есть ограничение на запуск одной копии и программа уже запущена
                if ((app.Search_twin()) && (prop.Run_one_copy_acceptance))
                {
                    // То выдаем сообщение и закрываем программу
                    MessageBox.Show("Программа уже запущена!");
                    Application.Exit();
                }
                else
                {
                    // Если ограничение на запуск одной копии пройдено, то продолжаем...
                    // Открываем соединение с базой
                    try
                    {
                        db_connection.ConnectionString = prop.Connection_string;
                        db_connection.Open();
                    }
                    catch (Exception ex)
                    {
                        // Если не удалось подключиться к базе, то
                        // выдаем сообщение об ошибке и открываем форму
                        // подключения к базе данных
                        ErrorNfo.WriteErrorInfo(ex);
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        try
                        {
                            frmSetup fOptions = new frmSetup();
                            fOptions.ShowDialog();
                            // Опять пробуем подключиться к базе
                            prop = new PSA.Lib.Util.Settings();
                            db_connection.ConnectionString = prop.Connection_string;
                            db_connection.Open();
                        }
                        catch (Exception exc)
                        {
                            ErrorNfo.WriteErrorInfo(exc);
                            // Если после второй попытки не удалось подключиться, то закрываем программу.
                            MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            tmp_exit = true;
                        }
                    }

                    if (!tmp_exit)
                    {
                        // открываем окно запроса пользователя
                        PSA.Lib.Interface.frmLogin fLogin = new PSA.Lib.Interface.frmLogin();
                        // спрашиваем пока не угадает пароль или не надоест угадывать
                        while (!tmp_login_ok)
                        {
                            switch (fLogin.ShowDialog())
                            {
                                case DialogResult.Cancel:
                                    {
                                        tmp_login_ok = true;
                                        tmp_exit = true;
                                        break;
                                    }
                                case DialogResult.OK:
                                    {
                                        tmp_login_ok = true;
                                        if (fLogin.usr.prmCanLoginAcceptance)
                                        {
                                            this.Show();
                                        }
                                        else
                                        {
                                            tmp_exit = true;
                                            MessageBox.Show("Доступ в модуль приемка заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                        break;
                                    }
                            }
                        }
                        if (!tmp_exit)
                        {
                            // если мы уже тут, значит пароль все же угадали
                            // Получаем данные о пользователе
                            usr = fLogin.usr;
                            // Показываем окно
                            this.Focus();
                            this.Text = "Приемка - " + usr.Name + " - Photoland System Automation " + Application.ProductVersion;
                            if (prop.ShowQuickOrder)
                            {
                                toolQuick.Visible = true;
                                toolStripQuick.Visible = true;
                            }
                            else
                            {
                                toolQuick.Visible = false;
                                toolStripQuick.Visible = false;
                            }
                            if (prop.ShowMFoto)
                            {
                                toolMFoto.Visible = true;
                                toolStripQuick.Visible = true;
                            }
                            else
                            {
                                toolMFoto.Visible = false;
                                toolStripQuick.Visible = false;
                            }
                        }
                        else
                        {
                            Application.Exit();
                        }
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }
            else
            {
                MessageBox.Show("В момент проведения инвентаризации вход в модуль запрещен!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Application.Exit();
            }
        }
예제 #10
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
 private void OpenSettings()
 {
     if (usr.prmCanSetup)
     {
         frmSetup fOptions = new frmSetup();
         fOptions.ShowDialog();
         prop = new PSA.Lib.Util.Settings();
     }
     else
     {
         MessageBox.Show("Нет доступа", "Доступ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
예제 #11
0
파일: frmMain.cs 프로젝트: slagovskiy/psa
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                StreamWriter sw = new StreamWriter(prop.Dir_export + "\\Operator_" + Environment.MachineName + "_" + Environment.UserName + ".info", false, Encoding.GetEncoding(1251));
                sw.Write("Date:         " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                         "\nMashine:      " + Environment.MachineName +
                         "\nUser:         "******"\nOperator mod: " + Application.ProductVersion);
                sw.Close();
            }
            catch
            {
            }

            if (!Checking.checkVersion(Modules.Operator, Application.ProductVersion))
                if (MessageBox.Show("Внимание! Существует более новая версия модуля!\nУстановить обновление?", "Контроль обновлений", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    System.Diagnostics.Process.Start(System.Environment.GetCommandLineArgs()[0].Substring(
                                                    0,
                                                    System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                                    ) + "\\PSA.Update.cmd");

            bool tmp_login_ok = false;
            bool tmp_exit = false;
            if(!PSA.Lib.Util.Semaphore.semInventory)
            {
            tmr.Interval = prop.UpdateOrderTableInOperator*1000;
            tmr.Stop();

            hidewin = false;

            this.TopMost = prop.Mod_operator_top_most;

            // Проверяем, если есть ограничение на запуск одной копии и программа уже запущена
            if ((app.Search_twin()) && (prop.Run_one_copy_oprator))
            {
                // То выдаем сообщение и закрываем программу
                MessageBox.Show("Программа уже запущена!");
                globalexit = true;
                Application.Exit();
            }
            else
            {
                this.TopMost = false;
                // Если ограничение на запуск одной копии пройдено, то продолжаем...
                // Открываем соединение с базой
                try
                {
                    db_connection.ConnectionString = prop.Connection_string;
                    db_connection.Open();
                }
                catch (Exception ex)
                {
                    ErrorNfo.WriteErrorInfo(ex);
                    // Если не удалось подключиться к базе, то
                    // выдаем сообщение об ошибке и открываем форму
                    // подключения к базе данных
                    MessageBox.Show("Ошибка подключения к базе данных!\n" + ex.Message + "\n" + ex.Source + "\nПроверьте настройки подключения!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    try
                    {
                        this.TopMost = false;
                        frmSetup fOptions = new frmSetup();
                        fOptions.ShowDialog();
                        prop = new PSA.Lib.Util.Settings();
                        // Опять пробуем подключиться к базе
                        db_connection.ConnectionString = prop.Connection_string;
                        db_connection.Open();
                        this.TopMost = prop.Mod_operator_top_most;

                    }
                    catch (Exception exc)
                    {
                        ErrorNfo.WriteErrorInfo(exc);
                        // Если после второй попытки не удалось подключиться, то закрываем программу.
                        MessageBox.Show("Ошибка подключения к базе данных!\n" + exc.Message + "\n" + exc.Source, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        tmp_exit = true;
                    }
                }

                if (!tmp_exit)
                {
                    // открываем окно запроса пользователя
                    PSA.Lib.Interface.frmLogin fLogin = new PSA.Lib.Interface.frmLogin();
                    // спрашиваем пока не угадает пароль или не надоест угадывать
                    while (!tmp_login_ok)
                    {
                        switch (fLogin.ShowDialog())
                        {
                            case DialogResult.Cancel:
                                {
                                    tmp_login_ok = true;
                                    tmp_exit = true;
                                    break;
                                }
                            case DialogResult.OK:
                                {
                                    tmp_login_ok = true;
                                    if (fLogin.usr.prmCanLoginOperator)
                                    {
                                        this.Show();
                                    }
                                    else
                                    {
                                        tmp_exit = true;
                                        MessageBox.Show("Доступ в модуль оператора заперщен!", "Вход в программу", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    break;
                                }
                        }
                    }
                    if (!tmp_exit)
                    {
                        // если мы уже тут, значит пароль все же угадали
                        // Получаем данные о пользователе
                        usr = fLogin.usr;
                        this.Text = "Оператор - " + usr.Name + " - Photoland System Automation " + Application.ProductVersion;

                        txtDateCounter1.Value = DateTime.Now.AddDays(-10);
                        txtDateCounter2.Value = DateTime.Now;

                        //запрашиваем машину и бумагу
                        this.TopMost = false;
                        frmSelectMashineAndPaper f = new frmSelectMashineAndPaper();
                        f.db_connection = this.db_connection;
                        f.ShowDialog();
                        this.TopMost = prop.Mod_operator_top_most;
                        if (f.DialogResult == System.Windows.Forms.DialogResult.OK)
                        {
                            usr.Id_Mashine = f.txtMashine.SelectedValue.ToString();
                            usr.Mashine = f.txtMashine.Text;
                            //usr.Id_Paper = f.txtPaper.SelectedValue.ToString();
                            //usr.Paper = f.txtPaper.Text;

                            SqlCommand _counter_cmd = new SqlCommand();
                            _counter_cmd.Connection = db_connection;
                            _counter_cmd.CommandTimeout = 9000;
                            _counter_cmd.CommandText = "SELECT id_counter, id_mashine, id_user, name_user, c1, c1date, c2, c2date, c0 " +
                                                        "FROM dbo.counters " +
                                                        "WHERE (id_counter = " +
                                                        "(SELECT MAX(id_counter) AS id " +
                                                        "FROM dbo.counters AS counters_1 " +
                                                        "WHERE (id_mashine = '" + usr.Id_Mashine.Trim() + "')))";
                            SqlDataAdapter _counter_da = new SqlDataAdapter(_counter_cmd);
                            DataTable _counter_tbl = new DataTable();
                            _counter_da.Fill(_counter_tbl);
                            bool stop = false;
                            if (_counter_tbl.Rows.Count > 0)
                            {
                                if ((_counter_tbl.Rows[0]["c2"].ToString() == "") && (_counter_tbl.Rows[0]["c2date"].ToString() == ""))
                                {
                                    if (MessageBox.Show("Прошлый счетчик, открытый " + _counter_tbl.Rows[0]["c1date"].ToString() +
                                        " пользователем " + _counter_tbl.Rows[0]["name_user"].ToString().Trim() + " не был закрыт!\n" +
                                        "Автоматически закрываем значением " + f.txtCounter.Value.ToString() + "?", "Закрытие счетчика",
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                    {
                                        _counter_cmd.CommandText = "UPDATE [counters] SET c2 = " + f.txtCounter.Value.ToString() +
                                            ", c2date = getdate(), c0 = (SELECT(ISNULL((" +
                                "SELECT SUM(CASE tech_defect " +
                                            "WHEN 0 THEN actual_quantity " +
                                            "WHEN 1 THEN defect_quantity " +
                                            "WHEN 2 THEN defect_quantity " +
                                            "WHEN 3 THEN defect_quantity " +
                                            "WHEN 4 THEN 0 " +
                                            "WHEN 5 THEN defect_quantity " +
                                            "WHEN 6 THEN defect_quantity " +
                                            "WHEN 7 THEN 0 " +
                                            "WHEN 8 THEN defect_quantity " +
                                            "WHEN 9 THEN 0 " +
                                            "WHEN 10 THEN 0 " +
                                            "END)" +
                                                    "FROM dbo.orderbody " +
                                                    "WHERE (datework >= " +
                                                        "(SELECT c1date " +
                                                        "FROM dbo.counters " +
                                                        "WHERE (id_counter = " + _counter_tbl.Rows[0]["id_counter"].ToString() +
                                                        "))) AND (datework <= GETDATE()) AND (id_user_work = " +
                                                            usr.Id_user + ") AND (id_mashine = N'" + usr.Id_Mashine.Trim() + "')" +
                                                    "), 0))) " +
                                            "WHERE id_counter = " + _counter_tbl.Rows[0]["id_counter"].ToString();
                                        _counter_cmd.ExecuteNonQuery();
                                    }
                                    else
                                    {
                                        stop = true;
                                    }
                                }
                            }
                            if (!stop)
                            {
                                _counter_cmd.CommandText = "INSERT INTO [counters] (id_mashine, id_user, name_user, c1, c1date) VALUES ('" +
                                    usr.Id_Mashine + "', " + usr.Id_user + ", '" + usr.Name.Trim() + "', " + f.txtCounter.Value.ToString() +
                                    ", getdate())";
                                _counter_cmd.ExecuteNonQuery();
                                _counter1 = long.Parse(f.txtCounter.Value.ToString());
                                _counter1Date = DateTime.Now;
                                recalcCounter(true);

                                lblMashine.Text = usr.Mashine.Trim();
                                //lblPaper.Text = usr.Paper.Trim();
                                // Показываем окно
                                this.Focus();

                                if (!usr.prmCanDelEditBrak)
                                {
                                    btnDelBrak.Enabled = false;
                                    btnEditBrak.Enabled = false;
                                    btnEditBrak1.Enabled = false;
                                    btnDelBrak1.Enabled = false;
                                }

                                if (prop.Fly_window_operator)
                                {
                                    this.Top = (-1) * (this.Height - 10);
                                }

                                // заполняем фильтры
                                FillFilter();

                                // заполняем таблицу заказов
                                FillOrderList();

                                // заполняем таблицу "браков"
                                FillTehAction();
                                FillDiscardTable();

                                FillCounters();

                                hidewin = true;

                                ClearOrders();

                                tmr.Start();
                            }
                            else
                            {
                                globalexit = true;
                                Application.Exit();
                            }
                        }
                        else
                        {
                            globalexit = true;
                            Application.Exit();
                        }
                    }
                    else
                    {
                        globalexit = true;
                        Application.Exit();
                    }
                }
                else
                {
                    globalexit = true;
                    Application.Exit();
                }
                this.TopMost = prop.Mod_operator_top_most;
            }
            }
            else
            {

                MessageBox.Show("В момент проведения инвентаризации вход в модуль запрещен!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                globalexit = true;
                hidewin = false;
                Application.Exit();
            }
        }
예제 #12
0
파일: Form1.cs 프로젝트: slagovskiy/psa
 private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     using(PSA.Lib.Interface.frmSetup frm = new PSA.Lib.Interface.frmSetup())
     {
         frm.ShowDialog();
         settings = new Settings();
     }
 }