Exemple #1
0
        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);
        }