private void button1_Click(object sender, EventArgs e) { if (estimatesCBList.SelectedItem == null) { NotificationHelper.ShowError("Ви не вибрали кошторис"); return; } if (mainKekv.SelectedItem == null) { NotificationHelper.ShowError("Ви не вибрали основний КЕКВ"); return; } if (altKekv.SelectedItem == null) { NotificationHelper.ShowError("Ви не вибрали старий КЕКВ"); return; } if (dkCodeSum.Value == 0 && planRecord == null) { NotificationHelper.ShowError("Сума повинна бути більша за 0"); return; } if (string.IsNullOrWhiteSpace(conctretePlanItemName.Text.Trim())) { NotificationHelper.ShowError("Ви не вказали конкретну назву предмету"); return; } if (dkCodesCBList.SelectedItem == null) { NotificationHelper.ShowError("Ви не вибрали код за ДК"); return; } if (isCodeRepeatCheckBox.Checked && string.IsNullOrWhiteSpace(codeRepeatReasonTextBox.Text)) { NotificationHelper.ShowError("Ви не вказали причину створення ще одного запису з існуючим кодом"); return; } string msg = string.Empty; string actionDescriptionPrefix = string.Empty; if (planRecord != null) { msg = "Вкажіть причину вказаної зміни коду"; actionDescriptionPrefix = "[ЗМІНА КОДУ]"; } else { msg = "Прокоментуйте створення коду (необов'язково)"; actionDescriptionPrefix = "[СТВОРЕННЯ КОДУ]"; } ActionCommentForm af = new ActionCommentForm(msg); af.ShowDialog(); string actionDescription = af.ReasonDescription; // Для изменение кода указание причины необходимо if (planRecord != null && actionDescription == null) { NotificationHelper.ShowError("Зміна коду без зазначення причини неможлива"); return; } if (planRecord == null) { planRecord = new TenderPlanRecord(); } using (TenderContext tc = new TenderContext()) { if (planRecord.Id != 0) { tc.TenderPlanRecords.Attach(planRecord); tc.Entry <TenderPlanRecord>(planRecord).State = System.Data.Entity.EntityState.Modified; } else { tc.TenderPlanRecords.Add(planRecord); } Estimate selectedEstimate = estimatesCBList.SelectedItem as Estimate; KekvCode selectedPrimaryKekv = (mainKekv.SelectedItem as KekvRemain).Kekv; KekvCode selectedAltKekv = (altKekv.SelectedItem as KekvRemain).Kekv; planRecord.EstimateId = selectedEstimate.Id; planRecord.DkCodeId = Convert.ToInt32(dkCodesCBList.SelectedValue); planRecord.PrimaryKekvId = selectedPrimaryKekv.Id; planRecord.SecondaryKekvId = selectedAltKekv.Id; planRecord.DateOfCreating = planRecord.DateOfLastChange = DateTime.Now; planRecord.ProcedureType = (ProcedureType)procedureTypeCBList.SelectedValue; planRecord.CodeRepeatReason = isCodeRepeatCheckBox.Checked ? codeRepeatReasonTextBox.Text.Trim() : null; decimal changeOfSum = dkCodeSum.Value; planRecord.IsTenderComplete = isProcedureComplete.Checked; planRecord.TenderBeginDate = tenderBeginDate.Value; planRecord.PlannedSum = dkCodeSum.Value; planRecord.ConcreteName = conctretePlanItemName.Text; planRecord.DateOfLastChange = DateTime.Now; planRecord.ProtocolNum = protocolNum.Text.Trim(); planRecord.ProtocolDate = protocolDate.Value; planRecord.BasedOnNeed = basedOnNeed.Checked; TenderPlanRecordChange tpChange = new TenderPlanRecordChange(); if (!string.IsNullOrWhiteSpace(actionDescription)) { tpChange.Description = actionDescriptionPrefix + '\n' + actionDescription; } else { tpChange.Description = actionDescriptionPrefix; } tpChange.DateOfChange = DateTime.Now; tpChange.TenderPlanRecordId = planRecord.Id; tpChange.ChangeOfSum = changeOfSum; tpChange.ChangedConcreteName = planRecord.ConcreteName; tc.SaveChanges(); FileManager.UpdateRelatedFilesOfEntity(tc, planRecord.RelatedFiles, relatedFiles, deletingFiles); planRecord.Changes.Add(tpChange); tc.TenderPlanRecordChanges.Add(tpChange); tc.SaveChanges(); NotificationHelper.ShowInfo("Зміни до річного плану успішно внесено"); dbWasChanged = true; Close(); } }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(number.Text)) { NotificationHelper.ShowError("Ви не вказали номер договору"); return; } if (tenderPlanRecordPicker1.SelectedRecord == null) { NotificationHelper.ShowError("Для реєстрації договору потрібно обрати запис у річному плані."); return; } if ((currentContract.Id == 0) && (fullSum.Value == 0)) { NotificationHelper.ShowError("Сума договору повинна бути більша за нуль"); return; } if (contractorCBList.SelectedItem == null) { NotificationHelper.ShowError("Ви не обрали контрагента"); return; } StringBuilder contractChanges = new StringBuilder(string.Empty); using (TenderContext tc = new TenderContext()) { if (currentContract.Id > 0) { tc.Contracts.Attach(currentContract); // Записываем изменения внесённые пользователем if (currentContract.Sum != fullSum.Value) { contractChanges.Append(string.Format("[Сумма договору змінена з '{0}' на '{1}']\n", currentContract.Sum, fullSum.Value)); } if (!currentContract.Number.Equals(number.Text)) { contractChanges.Append(string.Format("[Номер договору змінений з '{0}' на '{1}']\n", currentContract.Number, number.Text)); } if (currentContract.SignDate != dateOfSigning.Value) { contractChanges.Append(string.Format("[Дата підписання договору змінена з '{0}' на '{1}']\n", currentContract.SignDate.ToShortDateString(), dateOfSigning.Value.ToShortDateString())); } if (currentContract.BeginDate != dateOfStart.Value) { contractChanges.Append(string.Format("[Дата набуття чинності договору змінена з '{0}' на '{1}']\n", currentContract.BeginDate.ToShortDateString(), dateOfStart.Value.ToShortDateString())); } if (currentContract.EndDate != dateOfEnd.Value) { contractChanges.Append(string.Format("[Дата закінчення договору змінена з '{0}' на '{1}']\n", currentContract.EndDate.ToShortDateString(), dateOfEnd.Value.ToShortDateString())); } // Если были изменения - необходимо указать причину изменений if (!string.IsNullOrWhiteSpace(contractChanges.ToString())) { ActionCommentForm af = new ActionCommentForm(); af.ShowDialog(); if (af.ReasonDescription == null) { NotificationHelper.ShowError("Без зазначення причини змін вони не будуть внесені в базу даних!"); return; } else { contractChanges.Append(string.Format("Причина: {0}", af.ReasonDescription)); currentContract.ContractChanges.Add(new ContractChange { DateOfChange = DateTime.Now, ContractId = currentContract.Id, Description = contractChanges.ToString() }); } } } currentContract.Number = number.Text.Trim(); currentContract.SignDate = dateOfSigning.Value; currentContract.BeginDate = dateOfStart.Value; currentContract.EndDate = dateOfEnd.Value; currentContract.ContractorId = (contractorCBList.SelectedItem as Contractor).Id; currentContract.TenderPlanRecordId = tenderPlanRecordPicker1.SelectedRecord.Id; currentContract.Description = description.Text.Trim(); currentContract.Sum = fullSum.Value; if (currentContract.Id == 0) { tc.Contracts.Add(currentContract); } else { tc.Entry <Contract>(currentContract).State = System.Data.Entity.EntityState.Modified; } tc.SaveChanges(); FileManager.UpdateRelatedFilesOfEntity(tc, currentContract.RelatedFiles, relatedFiles, deletingFiles); dbWasChanged = true; NotificationHelper.ShowInfo("Дані успішно збережено до бази!"); this.Close(); } }