Пример #1
0
 private void ПечатьToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         _printingService.Print(currentID,
                                Convert.ToDateTime(dataGridView1.CurrentRow.Cells[2].Value),
                                GetDocsById(currentID),
                                dataGridView1.CurrentRow?.Cells[3].Value.ToString(),
                                ClientName.Text,
                                dm.GetIdentityClientName(Convert.ToInt32(dataGridView1.CurrentRow.Cells["Client_ID"].Value)) ?? ClientName.Text,
                                label6.Text.Replace("Стоимость: ", "").Replace("руб.", "").Trim(),
                                textBox1.Text,
                                InfoType.Text,
                                dataGridView1.CurrentRow.Cells[4].Value.ToString(),
                                _employeeService.GetActiveSign(),
                                entryType: dataGridView1.CurrentRow?.Cells[1].Value.ToString());
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
Пример #2
0
        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;
        }