public DataAccess() { Settings settings = new Settings(); if (settings.Connection_string == "") { throw new ApplicationException("Пропущено определение строки подключения к базе данных."); } else { _connectionString = settings.Connection_string; } }
private void frmSelectStatus_Load(object sender, EventArgs e) { Settings prop = new Settings(); SqlConnection db_connection = new SqlConnection(prop.Connection_string); SqlCommand cmd = new SqlCommand("SELECT order_status, status_desc FROM order_status ORDER BY status_desc", db_connection); DataTable tbl = new DataTable("t"); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(tbl); DataRow rw = tbl.NewRow(); rw[0] = "-1"; rw[1] = "< НЕ ВЫБРАНО >"; tbl.Rows.InsertAt(rw, 0); txtStatus.DataSource = tbl; txtStatus.DisplayMember = "status_desc"; txtStatus.ValueMember = "order_status"; CheckAccess(); }
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(); } }
public static bool checkVersion(Modules Module, string version) { bool ret = false; try { Settings sett = new Settings(); ftpClient ftp = new ftpClient(sett.FTP_Server, sett.FTP_User, sett.FTP_Password); foreach(String file in ftp.GetFileList(sett.FTP_Path)) { if(file == "info.version") { ftp.Download(Environment.GetEnvironmentVariable("TEMP"), "info.version", sett.FTP_Path, "info.version"); ini ver = new ini(Environment.GetEnvironmentVariable("TEMP") + "\\info.version"); switch(Module) { case Modules.Acceptance: { if (ver.IniReadValue("version", "Acceptance", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Administrator: { if (ver.IniReadValue("version", "Administrator", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Designer: { if (ver.IniReadValue("version", "Designer", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Operator: { if (ver.IniReadValue("version", "Operator", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Robot: { if (ver.IniReadValue("version", "Robot", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Inventory: { if (ver.IniReadValue("version", "Inventory", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Kiosk: { if (ver.IniReadValue("version", "Kiosk", "0").Trim() != version) ret = false; else ret = true; break; } case Modules.Exchanger: { if (ver.IniReadValue("version", "Exchanger", "0").Trim() != version) ret = false; else ret = true; break; } default: { ret = false; break; } } } } //ret = true; } catch (Exception ex) { ret = true; } finally { } return ret; }
private void mnuSetup_Click(object sender, EventArgs e) { frmSetup f = new frmSetup(); f.ShowDialog(); prop = new PSA.Lib.Util.Settings(); }
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(); } } }
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(); } } }
private void settingsToolStripMenuItem_Click(object sender, EventArgs e) { using(PSA.Lib.Interface.frmSetup frm = new PSA.Lib.Interface.frmSetup()) { frm.ShowDialog(); settings = new Settings(); } }
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; } }
private void semaphoresToolStripMenuItem_Click(object sender, EventArgs e) { this.TopMost = false; if (usr.prmCanSetup) { frmSemaphores fOptions = new frmSemaphores(); fOptions.ShowDialog(); prop = new PSA.Lib.Util.Settings(); } else { MessageBox.Show("Нет доступа", "Доступ", MessageBoxButtons.OK, MessageBoxIcon.Warning); } this.TopMost = prop.Mod_designer_top_most; }
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; }
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(); } }
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); } }
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(); } }
private void OpenSettings() { frmSetup fOptions = new frmSetup(); fOptions.ShowDialog(); prop = new PSA.Lib.Util.Settings(); }
private void NewInventory() { frmDialogYesNo f = new frmDialogYesNo(); f.Message = "Начать инвентаризацию?\nВход в другие модули будет запрещен!"; f.Title = "Инвентаризация"; f.ShowDialog(); if (f.DialogResult == DialogResult.Yes) { PSA.Lib.Util.Semaphore.semInventory = true; settings = new Settings(); frmInventoryDoc fi = new frmInventoryDoc(usr); fi.Title = "Новый документ инвентаризации"; fi.ShowDialog(); } }
private void semaphoresToolStripMenuItem_Click(object sender, EventArgs e) { frmSemaphores fOptions = new frmSemaphores(); fOptions.ShowDialog(); prop = new PSA.Lib.Util.Settings(); }
private void settingsToolStripMenuItem_Click(object sender, EventArgs e) { PSA.Lib.Interface.frmSetup f = new frmSetup(); f.ShowDialog(); settings = new PSA.Lib.Util.Settings(); }
public static void autoExport(int type, string order_id) { Settings prop = new Settings(); SqlConnection db_connection = new SqlConnection(); db_connection.ConnectionString = prop.Connection_string; db_connection.Open(); bool finalStatus = false; if (type == 2) { finalStatus = true; } else { finalStatus = false; } string file = ""; SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT [id_order], id_user_accept, id_user_operator, id_user_designer, id_user_delivery, id_client, guid, del, name_accept, name_operator, name_designer, name_delivery, status, number, input_date, expected_date, output_date, advanced_payment, final_payment, discont_percent, discont_code, preview, comment, crop, type, exported, [id_order], [konvert] FROM [order] WHERE (number IN ('" + order_id + "'))"; cmd.Connection = db_connection; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable t = new DataTable("order"); da.Fill(t); if (t.Rows.Count > 0) { for (int i = 0; i < t.Rows.Count; i++) { string y = DateTime.Parse(t.Rows[i]["input_date"].ToString()).Year.ToString(); string m = DateTime.Parse(t.Rows[i]["input_date"].ToString()).Month < 10 ? "0" + DateTime.Parse(t.Rows[i]["input_date"].ToString()).Month. ToString() : DateTime.Parse(t.Rows[i]["input_date"].ToString()).Month. ToString(); string d = DateTime.Parse(t.Rows[i]["input_date"].ToString()).Day < 10 ? "0" + DateTime.Parse(t.Rows[i]["input_date"].ToString()).Day. ToString() : DateTime.Parse(t.Rows[i]["input_date"].ToString()).Day. ToString(); if (!Directory.Exists(prop.Dir_export + "\\auto_export\\")) Directory.CreateDirectory(prop.Dir_export + "\\auto_export"); if (!Directory.Exists(prop.Dir_export + "\\auto_export\\" + t.Rows[i]["number"].ToString().Trim() + "\\")) Directory.CreateDirectory(prop.Dir_export + "\\auto_export\\" + t.Rows[i]["number"].ToString().Trim()); file = prop.Dir_export + "\\auto_export\\" + t.Rows[i]["number"].ToString().Trim() + "\\" + t.Rows[i]["number"].ToString().Trim() + ".export"; FileInfo fli = new FileInfo(file); StreamWriter fl = new StreamWriter(file, false, Encoding.GetEncoding(1251)); /* * 0 id_user_accept, * 1 id_user_operator, * 2 id_user_designer, * 3 id_user_delivery, * 4 id_client, * 5 guid, * 6 del, * 7 name_accept, * 8 name_operator, * 9 name_designer, * 10 name_delivery, * 11 status, * 12 number, * 13 input_date, * 14 expected_date, * 15 output_date, * 16 advanced_payment, * 17 final_payment, * 18 discont_percent, * 19 discont_code, * 20 preview, * 21 comment, * 22 crop, * 23 type, * 24 exported */ string _status = t.Rows[i][12].ToString().Trim(); if (_status == "100000") { //if(MessageBox.Show("Заказ № " + t.Rows[i][13].ToString().Trim() + " экспортируется в статусе \"Выдано\", экспортировать его в статусе \"На предпросмотре\"?", "Экспорт", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //{ _status = "000010"; //} } CultureInfo ci = CultureInfo.InvariantCulture; fl.WriteLine("[order]"); fl.WriteLine(t.Rows[i][0].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][1].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][2].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][3].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][4].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][5].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][6].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][7].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][8].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][9].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][10].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][11].ToString().Trim().Replace(";", " ") + ";" + _status + ";" + t.Rows[i][13].ToString().Trim().Replace(";", " ") + ";" + ((t.Rows[i][14].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][14]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + ((t.Rows[i][15].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][15]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + ((t.Rows[i][16].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][16]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + t.Rows[i][17].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][18].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][19].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][20].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][21].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][22].ToString().Trim().Replace(";", " ").Replace("!Экспорт", "") + ";" + t.Rows[i][23].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][24].ToString().Trim().Replace(";", " ") + ";" + t.Rows[i][25].ToString().Trim().Replace(";", " ")); if (t.Rows[i][27].ToString().Trim() == "1") { FileStream __file = File.Create(prop.Dir_export + "\\auto_export\\" + t.Rows[i]["number"].ToString().Trim() + "\\" + ".k"); __file.Close(); } //GridOder.Rows[i + 2].Style = GridOder.Styles["Normal"]; if (finalStatus) { SqlCommand cmd_write = new SqlCommand( "UPDATE [order] SET [comment] = '" + t.Rows[i][22].ToString().Replace("!Экспорт", "").Trim() + "', [status] = '100000' WHERE [id_order] = " + t.Rows[i][26].ToString().Trim(), db_connection); cmd_write.ExecuteNonQuery(); } else { SqlCommand cmd_write = new SqlCommand( "UPDATE [order] SET [comment] = '!Экспорт " + t.Rows[i][22].ToString().Replace("!Экспорт", "").Trim() + "' WHERE [id_order] = " + t.Rows[i][26].ToString().Trim(), db_connection); cmd_write.ExecuteNonQuery(); } fl.WriteLine("[order body]"); SqlCommand rcmd = new SqlCommand(); rcmd.CommandText = "SELECT [id_order], [id_mashine], [id_material], [id_good], [guid], [del], [quantity], [actual_quantity], [sign], [price], [dateadd], [id_user_add], [name_add], [datework], [id_user_work], [name_work], [defect_quantity], [id_user_defect], [user_defect], [tech_defect], [exported] FROM [orderbody] WHERE ([id_order] in (" + t.Rows[i][0].ToString().Trim() + "))"; rcmd.Connection = db_connection; SqlDataAdapter rda = new SqlDataAdapter(rcmd); DataTable rt = new DataTable("order"); rda.Fill(rt); if (rt.Rows.Count > 0) { for (int ii = 0; ii < rt.Rows.Count; ii++) { /* * 0 [id_order], * 1 [id_mashine], * 2 [id_material], * 3 [id_good], * 4 [guid], * 5 [del], * 6 [quantity], * 7 [actual_quantity], * 8 [sign], * 9 [price], * 10 [dateadd], * 11 [id_user_add], * 12 [name_add], * 13 [datework], * 14 [id_user_work], * 15 [name_work], * 16 [defect_quantity], * 17 [id_user_defect], * 18 [user_defect], * 19 [tech_defect], * 20 [exported] */ //Application.DoEvents(); fl.WriteLine(rt.Rows[ii][0].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][1].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][2].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][3].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][4].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][5].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][6].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][7].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][8].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][9].ToString().Trim().Replace(";", " ") + ";" + ((rt.Rows[ii][10].GetType().Name == "DBNull") ? "" : ((DateTime)rt.Rows[ii][10]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + rt.Rows[ii][11].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][12].ToString().Trim().Replace(";", " ") + ";" + ((rt.Rows[ii][13].GetType().Name == "DBNull") ? "" : ((DateTime)rt.Rows[ii][13]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + rt.Rows[ii][14].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][15].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][16].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][17].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][18].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][19].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][20].ToString().Trim().Replace(";", " ")); } } fl.WriteLine("[order events]"); //AddEvent("Заказ был экспортирован", int.Parse(t.Rows[i][0].ToString().Trim())); rcmd = new SqlCommand(); rcmd.CommandText = "SELECT [id_orderevent], [del], [guid], [id_order], [event_date], [event_user], [event_status], [event_point], [event_text] FROM [dbo].[orderevent] WHERE ([id_order] in (" + t.Rows[i][0].ToString().Trim() + "))"; rcmd.Connection = db_connection; rda = new SqlDataAdapter(rcmd); rt = new DataTable("order"); rda.Fill(rt); if (rt.Rows.Count > 0) { for (int ii = 0; ii < rt.Rows.Count; ii++) { /* * [id_orderevent], * [del], * [guid], * [id_order], * [event_date], * [event_user], * [event_status], * [event_point], * [event_text] */ //Application.DoEvents(); fl.WriteLine(rt.Rows[ii][0].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][1].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][2].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][3].ToString().Trim().Replace(";", " ") + ";" + ((rt.Rows[ii][4].GetType().Name == "DBNull") ? "" : ((DateTime)rt.Rows[ii][4]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" + rt.Rows[ii][5].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][6].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][7].ToString().Trim().Replace(";", " ") + ";" + rt.Rows[ii][8].ToString().Trim().Replace(";", " ")); } } StreamWriter batw = new StreamWriter(file + ".bat", false, Encoding.GetEncoding(866)); batw.WriteLine("@echo off\n"); batw.WriteLine("mkdir edit\n"); batw.WriteLine("mkdir print\n"); ////////////// batw.WriteLine("echo Копируются файлы для печати заказа № " + t.Rows[i]["number"].ToString().Trim()); batw.WriteLine("xcopy \"" + prop.Dir_print + "\\" + y + "\\" + m + "\\" + d + "\\" + t.Rows[i]["number"].ToString().Trim() + "\\*.*" + "\" print\\" + t.Rows[i]["number"].ToString().Trim() + "\\ /E /Y"); batw.WriteLine("echo Копируются файлы для обработки заказа № " + t.Rows[i]["number"].ToString().Trim()); batw.WriteLine("xcopy \"" + prop.Dir_edit + "\\" + y + "\\" + m + "\\" + d + "\\" + t.Rows[i]["number"].ToString().Trim() + "\\*.*" + "\" edit\\" + t.Rows[i]["number"].ToString().Trim() + "\\ /E /Y"); batw.Close(); if (File.Exists(file + ".bat")) { System.Diagnostics.Process pr = new System.Diagnostics.Process(); pr.StartInfo.WorkingDirectory = fli.DirectoryName; pr.StartInfo.FileName = file + ".bat"; pr.Start(); pr.WaitForExit(); } fl.Close(); } } //System.Diagnostics.Process pre = new System.Diagnostics.Process(); //pre.StartInfo.WorkingDirectory = System.Environment.GetEnvironmentVariables()["SystemRoot"].ToString(); //pre.StartInfo.Arguments = (new FileInfo(file).Directory.ToString()); //pre.StartInfo.FileName = "explorer.exe"; //pre.Start(); }
private void btnSelectQBtn9_Click(object sender, EventArgs e) { try { Util.Settings p = new Util.Settings(); frmSelectService fsel = new frmSelectService(new SqlConnection(p.Connection_string), false, ""); fsel.ShowDialog(); if (fsel.DialogResult == DialogResult.OK) { lblQbtn9_id.Text = fsel.id_serv.ToString(); txtQbtn9_string.Text = fsel.text_serv; lblqbnts9.Text = fsel.stext_serv; } fsel.Close(); } catch(Exception ex) { ErrorNfo.WriteErrorInfo(ex); MessageBox.Show("Необходимо установить соединение с бызой данных!\nПроверьте настройки, сохраните их попробуйте снова."); } }