//Добавление услуги в договор, создание связанных документов private void addServiceToContractBtn_Click(object sender, EventArgs e) { try { if (dateEnd.Value <= dateStart.Value) { MessageBox.Show("Дата окончания не может быть меньше или равна дате начала!"); return; } DBConnection.NewServiceInContract(serviceNum, cost.ToString().Replace(',', '.'), dateStart.Value.ToString("yyyy-MM-dd"), dateEnd.Value.ToString("yyyy-MM-dd")); int start_month = dateStart.Value.Month; //месяц начала действия услуги в году for (int i = dateStart.Value.Year; i <= dateEnd.Value.Year; i++) { int end_month = 12; //последний месяц действия услуги в году if (i == dateEnd.Value.Year) { end_month = dateEnd.Value.Month; } for (int j = start_month; j <= end_month; j++) { int end_day = DateTime.DaysInMonth(i, j); //последний день предоставления услуги в месяце if (j == end_month && i == dateEnd.Value.Year) { end_day = dateEnd.Value.Day; } string month_name = "Не задан"; //название месяца switch (j) { case 1: month_name = "Январь"; break; case 2: month_name = "Февраль"; break; case 3: month_name = "Март"; break; case 4: month_name = "Апрель"; break; case 5: month_name = "Май"; break; case 6: month_name = "Июнь"; break; case 7: month_name = "Июль"; break; case 8: month_name = "Август"; break; case 9: month_name = "Сентябрь"; break; case 10: month_name = "Октябрь"; break; case 11: month_name = "Ноябрь"; break; case 12: month_name = "Декабрь"; break; } start_month = 1; DBConnection.msCommand.CommandText = "SELECT id FROM docs WHERE name = 'Счет-фактура за " + month_name + "' AND request_num = '" + Form1.requestNum + "' AND EXTRACT(YEAR FROM date_create) = '" + i + "';"; object data = DBConnection.msCommand.ExecuteScalar(); //результат запрос if (data != null) { continue; } DBConnection.NewDoc(Form1.requestNum, "Счет-фактура за " + month_name, String.Format("{0}-{1}-{2}", i, j, end_day)); DBConnection.GetDocs(Form1.requestNum); Form1.form.docsTable.DataSource = DBConnection.dtDocs; Form1.ReadDocsTableRow(0); } } DBConnection.GetServicesInContract(Form1.requestNum); Form1.form.servicesInContractTable.DataSource = DBConnection.dtServicesInContract; if (DBConnection.dtServicesInContract.Rows.Count > 0) { Form1.ReadServicesInContractTableRow(0); } this.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }