private void удалитьToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult res = MessageBox.Show("Вы уверены, что хотите удалить эту запись?", "Предупреждение!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (res == System.Windows.Forms.DialogResult.OK) { if ((dataGridView1.CurrentRow.Cells[clmnNames[10]].Value != DBNull.Value) /* && (itAct == false)*/) { int minus = Convert.ToInt32(dataGridView1.CurrentRow.Cells[clmnNames[10]].Value); MapCasesManager.SetDBMapCasesSumm(dataGridView1.CurrentRow.Cells[3].Value.ToString(), (-minus)); } // И удаляем строку bool deleteDocsSucseed = dm.DeleteDocsForId(currentID); if (deleteDocsSucseed) { DataRow rowToDelete = (dataGridView1.CurrentRow.DataBoundItem as DataRowView).Row; RowEdit.DeleteRow(rowToDelete); rowToDelete.Delete(); LoadTables(sqlForm.CurrentSqlQuery, SqlQueryBuilder.AllDocumentsQuery); } } }
private void SaveEditingBtn_Click(object sender, EventArgs e) { string in_type = null; if (checkBox1.Checked == true) { in_type = "В электронном виде"; } if (checkBox2.Checked == true) { in_type = "На бумажном носителе"; } if ((checkBox1.Checked == true) && (checkBox2.Checked == true)) { in_type = "На электронном и бумажном носителе"; } #region Проверки заполнения if (clientsCB.SelectedValue == null) { MessageBox.Show("Не выбран клиент или организация. Повторите ввод.", "Ошибка заполнения", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (((organizationsCB.Text == "") || organizationsCB.Text == "Начните вводить имя организации") || (in_type == null) || (clientsCB.Text == "") || (costTBox.Text == "")) { MessageBox.Show("Не все поля формы заполнены. \nВнесите всю необходимую информацию и повторите попытку.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (((organizationsCB.SelectedIndex == -1) && (organizationsCB.Text != "Частное лицо")) || (clientsCB.SelectedIndex == -1)) { MessageBox.Show("Выбран несуществующий клиент или организация. Проверьте правильность ввода.", "Ошибка заполнения формы", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //if (dateTimePicker1.Value > DateTime.Now) //{ // MessageBox.Show("Дата документа задана не верно", "Ошибка заполнения", MessageBoxButtons.OK, MessageBoxIcon.Warning); // goto RepeatEnter; //} if (memoTB.Text.Length > 4000) { if (MessageBox.Show("Слишком большой объем поля описания.\n\nСохранить введенное значение?", "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) != DialogResult.OK) { return; } } #endregion //Если пользователь изменил колличество лпаншетов в списке. Вызовем метод пересчета планшетов. //И запишем, сколько планшетов было ДО редактирования //А также запишем организацию которая была в начале редактирования. Потомучто если пользователь изменить организацию, приплюсоваь планшеты уже нужно будет ей string organization_before = rowToEdit["Организация"].ToString(); int mapCasesBeforeEdit = 0; int requireConfirmActBeforeEdit = 0; if (rowToEdit["MapCasesCount"] != DBNull.Value) { mapCasesBeforeEdit = Convert.ToInt32(rowToEdit["MapCasesCount"]); } if (rowToEdit["RequireConfirmAct"] != DBNull.Value) { requireConfirmActBeforeEdit = Convert.ToInt32(rowToEdit["RequireConfirmAct"]); } int mapCasesCount = RegexAnalys.MapCasesCount(memoTB.Text); try { // if (textBox1.Text != "") // rowToEdit["NumRazresh"] = textBox1.Text; // else rowToEdit["NumRazresh"] = DBNull.Value; rowToEdit["Memo"] = memoTB.Text; rowToEdit["Выдал"] = comboBox3.Text; rowToEdit["Организация"] = organizationsCB.SelectedValue; rowToEdit["Документ"] = typeDocCB.Text; //if (dateTimePicker1.Value != new DateTime(2000, 01, 01)) // rowToEdit["DateRazresh"] = dateTimePicker1.Value; // else rowToEdit["DateRazresh"] = DBNull.Value; rowToEdit["Дата"] = Convert.ToDateTime(textBox3.Text); rowToEdit["in_type"] = in_type; rowToEdit["ClientName"] = clientsCB.Text; rowToEdit["Cost"] = costTBox.Text; rowToEdit["MapCasesCount"] = mapCasesCount; rowToEdit["Client_ID"] = clientsCB.SelectedValue.ToString(); // В сумму планшетов прибавим разностьтого что стало после редактирования и до int actual_RequestToDel = MapCasesManager.GetActualRequireAct(Convert.ToInt32(rowToEdit["Номер"])); if ((organization_before != rowToEdit["Организация"].ToString())) { MapCasesManager.SetDBMapCasesSumm(organization_before, -requireConfirmActBeforeEdit); //у старой организации удаляем все ее планшеты из этой записи MapCasesManager.SetDBMapCasesSumm(organizationsCB.Text, mapCasesCount); //а новой прибавляем то что введено rowToEdit["RequireConfirmAct"] = mapCasesCount; } else { MapCasesManager.SetDBMapCasesSumm(organizationsCB.Text, mapCasesCount - mapCasesBeforeEdit); rowToEdit["RequireConfirmAct"] = (requireConfirmActBeforeEdit + (mapCasesCount - mapCasesBeforeEdit) >= 0) ? requireConfirmActBeforeEdit + (mapCasesCount - mapCasesBeforeEdit) : 0; } var docsForChange = GetDocsAfterEdit(); bool insertSucsedeed = false, deleteSucsedeed = false; deleteSucsedeed = dm.DeleteDocsForId(editId); if (deleteSucsedeed) { insertSucsedeed = dm.InsertDocuments(docsForChange); } if (deleteSucsedeed & insertSucsedeed) { RowEdit.ChangeRow(rowToEdit); } else { throw new Exception("Не удалось записать документы в базу данных. Изменение записи отменено."); } } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Close(); callback(DialogResult.OK); }