private void button1_Click(object sender, EventArgs e) //Кнопка Сформировать { finalAddString = ""; SetTempData(); #region Проверки даты и заполнения if (((dateTimePicker2.Value > dateTimePicker3.Value) && (checkBox5.Checked == true)) || (dateTimePicker3.Value > DateTime.Now) || dateTimePicker1.Value > DateTime.Now || ((dateTimePicker5.Value > dateTimePicker6.Value) && dateChargeCheckB.Checked)) { MessageBox.Show("Неверно заданы границы диапазона даты", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (((comboBox1.SelectedIndex == -1) && (checkBox2.Checked == true)) || ((comboBox2.SelectedIndex == -1) && (checkBox1.Checked == true)) || ((comboBox3.SelectedIndex == -1) && (checkBox3.Checked == true)) || ((comboBox4.SelectedIndex == -1) && (checkBox6.Checked == true)) || ((textBox1.Text == "") && (checkBox4.Checked == true)) || ((costCheckB.Checked == true) && (costTB.Text == "")) || (checkBox1.Checked == false) && (checkBox2.Checked == false) && (checkBox3.Checked == false) && (checkBox4.Checked == false) && (checkBox5.Checked == false) && (checkBox6.Checked == false) && (costCheckB.Checked == false) && (dateChargeCheckB.Checked == false)) { MessageBox.Show("Выбранные поля не заполнены или заполнены неверно", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } #endregion #region //Алгоритм любимой Валюши int iterator = 0; string _where = " WHERE "; string and_ = " AND "; CheckBox[] checkBoxsMass = { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6, costCheckB, dateChargeCheckB }; //Массив чек боксов string cp0 = "Сотрудники.Фамилия = " + "'" + (comboBox2.Text) + "'"; string cp1 = "Организации.Название = " + "'" + (comboBox1.Text) + "'"; string cp2 = "Клиенты.ClientName = " + "'" + (comboBox3.Text) + "'"; string cp3 = "Журнал.Memo LIKE " + "'%" + (textBox1.Text) + "%'"; string cp4; if (radioButton1.Checked == true) { cp4 = "CAST(Журнал.Date as Date) = " + "'" + (dateTimePicker1.Value.ToString("yyyy-MM-dd")) + "'"; } else { cp4 = "Журнал.Date > " + "'" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "'" + " AND Журнал.Date < DATEADD(day, 1," + "'" + dateTimePicker3.Value.ToString("yyyy-MM-dd") + "')"; } string cp5 = "ТипДокумента.Name = " + "'" + (comboBox4.Text) + "'"; string cp6 = "Журнал.Cost " + costSign.Text.Trim() + " " + costTB.Text; string cp7; if (dateChargeExactDateRadio.Checked) { cp7 = "DOCUMENTS.CHARGE_DATE = " + "'" + (dateTimePicker4.Value.ToString("yyyy-MM-dd")) + "'"; } else { cp7 = "DOCUMENTS.CHARGE_DATE > " + "'" + dateTimePicker5.Value.ToString("yyyy-MM-dd") + "'" + " AND DOCUMENTS.CHARGE_DATE < DATEADD(day, 1," + "'" + dateTimePicker6.Value.ToString("yyyy-MM-dd") + "')"; } string[] commandPartMass = { cp0, cp1, cp2, cp3, cp4, cp5, cp6, cp7 }; for (int i = 0; i < commandPartMass.Length; i++) { if (checkBoxsMass[i].Checked == true) { if (iterator == 0) { finalAddString += _where + commandPartMass[i]; } if ((iterator > 0) && (iterator < 7)) { finalAddString += and_ + commandPartMass[i]; } if (iterator == 7) { finalAddString += and_ + commandPartMass[i]; } iterator++; } } #endregion try { this.newGetDataString = @"SELECT DISTINCT Журнал.ID AS Номер, ТипДокумента.Name AS Документ, Журнал.Date AS Дата, Организации.Название As Организация, Сотрудники.Фамилия AS Выдал, Клиенты.ClientName, Memo, Info_type.in_type, Cost, MapCasesCount, RequireConfirmAct, Журнал.Client_ID FROM Журнал LEFT JOIN DOCUMENTS ON Журнал.ID = DOCUMENTS.FID_JOURNAL LEFT JOIN Организации ON Журнал.Organ_ID = Организации.ID LEFT JOIN ТипДокумента ON Журнал.TypeDoc = ТипДокумента.ID LEFT JOIN Сотрудники ON Журнал.Empl_ID = Сотрудники.ID LEFT JOIN Клиенты ON Журнал.Client_ID = Клиенты.ID LEFT JOIN Info_type ON Журнал.in_id = Info_type.ID " + finalAddString + "ORDER BY Журнал.ID"; button2Shower = true; //DialogResult = DialogResult.OK; callback.Invoke(DialogResult.OK); // this.Close(); } catch { MessageBox.Show("Некорректно сформирован запрос. Повторите попытку", "Ошибка формирования запроса"); // DialogResult = DialogResult.OK; goto RepeatEnter; } Close(); RepeatEnter :; }
private void SaveItem_Click(object sender, EventArgs e) { #region Проверки заполнения if (((radioButton1.Checked == false) && (radioButton2.Checked == false)) || ((organizationsCB.Text == "") || organizationsCB.Text == "Начните вводить имя организации") || ((checkBox1.Checked == false) && (checkBox2.Checked == false)) || (clientsCB.Text == "") || (costTB.Text == "") || (memoTB.Text == "")) { MessageBox.Show("Не все поля формы заполнены. \nВнесите всю необходимую информацию и повторите попытку.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.None; return; } if (((organizationsCB.SelectedIndex == -1) && (organizationsCB.Text != "Частное лицо")) || (clientsCB.SelectedIndex == -1)) { MessageBox.Show("Выбран несуществующий клиент или организация. Проверьте правильность ввода.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.None; return; } //if (dateTimePicker1.Value > DateTime.Now) //{ // MessageBox.Show("Дата документа задана не верно.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} if (typeDocCB.SelectedIndex == -1) { MessageBox.Show("Не выбран тип документа.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int chBoxIndx = 1; if ((checkBox1.Checked == true) && (checkBox2.Checked == false)) { chBoxIndx = 2; } if ((checkBox1.Checked == false) && (checkBox2.Checked == true)) { chBoxIndx = 3; } if ((checkBox1.Checked == true) && (checkBox2.Checked == true)) { chBoxIndx = 4; } string chBoxIndxStr = Convert.ToString(chBoxIndx); if (memoTB.Text.Length > 4000) { if (MessageBox.Show("Слишком большой объем поля описания.\n\nСохранить введенное значение?", "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) != DialogResult.OK) { return; } } #endregion SaveItem.Enabled = false; Cursor = Cursors.AppStarting; //Подготавливаем переменые даты для передачи на sql server DateTime dateNow = Convert.ToDateTime(textBox3.Text); //Отправляем текст на Regex-анализ, чтобы узнать количество выданных планшетов int mapCasesCount = RegexAnalys.MapCasesCount(memoTB.Text); var cn = dm.DBConnection; SqlCommand command = cn.CreateCommand(); //Добавление новой строки со случайными значениями. //Подготавливаем значения //'04-02-2017' формат передаваемой в sql даты //SqlCommand orgIndex = cn.CreateCommand(); int orgId = dm.FindFirstOrganizationId(organizationsCB.Text); int clientId = (int)clientsCB.SelectedValue; //MessageBox.Show(clientsCB.SelectedValue.ToString()); command.CommandText = "INSERT INTO Журнал (TypeDoc, Date, Memo, Organ_ID, Empl_ID, Client_ID, in_id, Cost, mapCasesCount, RequireConfirmAct) VALUES ('" + (typeDocCB.SelectedIndex + 1) + "', '" + dateNow.ToString("yyyy - MM - dd HH:mm:ss") + "' , '" + memoTB.Text + "', '" + orgId + "', '" + (employCB.SelectedIndex + 1) + "', '" + clientId + "', '" + chBoxIndxStr + "', '" + Convert.ToInt32(costTB.Text) + "', '" + mapCasesCount + "', '" + mapCasesCount + "')"; #region ==========СОЗДАЕМ БАЗОВОГО КЛИЕНТА============ SqlCommand baseClient = cn.CreateCommand(); if (topClientCheckB.Checked == true) { baseClient.CommandText = "UPDATE Организации SET ОсновнойКлиент =" + clientId + " WHERE Организации.ID = " + orgId; try { baseClient.Transaction = cn.BeginTransaction(IsolationLevel.Serializable); baseClient.ExecuteNonQuery(); baseClient.Transaction.Commit(); } catch { baseClient.Transaction.Rollback(); MessageBox.Show("Данный клиент не был назначен основным", "Ошибка при изменении статуса клиента", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #endregion //========================COMMIT============================== try { command.Transaction = cn.BeginTransaction(IsolationLevel.Serializable); command.ExecuteNonQuery(); command.Transaction.Commit(); lastID = Convert.ToInt32(SqlQueryBuilder.LastId(cn).ExecuteScalar()); // Вставка документов в БД if (docsForInsert != null) { docsForInsert.ForEach(x => x.FidJournal = lastID); //docsForInsert.ForEach(x => x.Type = (DocType)comboBox2.SelectedIndex + 1); } //else if (comboBox2.Text == "Обращение") //{ // docsForInsert = new List<Document>(); // docsForInsert.Add(new Document((DocType)comboBox2.SelectedIndex + 1) // { // FidJournal = lastID, // TicketNumber = textBox1.Text, // TicketDate = dateTimePicker1.Value, // NumRazresh = null, // DateRazresh = null, // //Type = (DocType)comboBox2.SelectedIndex + 1 // }); //} bool isAdded = dm.CreateDocuments(docsForInsert); DialogResult = DialogResult.OK; } catch { command.Transaction.Rollback(); DialogResult = DialogResult.Abort; MessageBox.Show("Транзакция отменена. Данные не добавлены в базу данных. \nОбратитесь к администратору.", "Системный сбой", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); } //В таблицу Организации в поле количество прибавляем выданные планшеты if (mapCasesCount > 0) { MapCasesManager.SetDBMapCasesSumm(organizationsCB.Text, mapCasesCount); } int allMapCases = MapCasesManager.GetMapCasesSum(organizationsCB.Text); if (allMapCases >= 200) { MessageBox.Show(String.Format("Количество планшетов, выданных организации {0} составляет {1}.\nНеобходимо получить от организации акты об удалении, после чего изменить сумму в таблице Выданные планшеты\n(Данные - Выданные планшеты).", organizationsCB.Text, allMapCases), "Информация", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (checkBox3.Checked == true) { try { _printingService.Print(lastID, Convert.ToDateTime(textBox3.Text), docsForInsert ?? new List <Document> (), organizationsCB.Text, dm.GetClientName(Convert.ToInt32(clientsCB.SelectedValue)), clientsCB.Text, costTB.Text, memoTB.Text, GetInfoType(), employCB.Text, _employeeService.GetActiveSign(), entryType: typeDocCB.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } } Close(); callback.Invoke(DialogResult); RepeatEnter : Cursor = Cursors.Default; SaveItem.Enabled = true; }