static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); LoginForm lf = null; Application.Run(lf = new LoginForm()); if (!lf.AuthorizationComplete) { return; } TenderYearForm tf = null; Application.Run(tf = new TenderYearForm()); if (tf.SelectedYear == null) { return; } else { MainProgramForm.CurrentTenderYear = tf.SelectedYear; } try { Application.Run(new MainProgramForm()); } catch (Exception ex) { NotificationHelper.ShowException(ex); } }
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { DkCode selectedCode = dkCodesTable.SelectedRows[0].DataBoundItem as DkCode; using (TenderContext tc = new TenderContext()) { bool codeHasReferences = tc.TenderPlanRecords.Where(p => (p.DkCodeId == selectedCode.Id)).Any(); if (codeHasReferences) { NotificationHelper.ShowError("Неможливо видалити код, оскільки під нього існують записи у річних планах закупівель"); return; } else { tc.DkCodes.Attach(selectedCode); tc.DkCodes.Remove(selectedCode); tc.SaveChanges(); codesList.Remove(selectedCode); NotificationHelper.ShowInfo("Код успішно видалений!"); wasDbUpdated = true; } } }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(spendingDescription.Text)) { NotificationHelper.ShowError("Ви не вказали стислий опис витрати"); return; } if (estimateCBList.SelectedIndex < 0) { NotificationHelper.ShowError("Ви не обрали кошторис"); return; } if (mainKekvCBList.SelectedIndex < 0) { NotificationHelper.ShowError("Ви не обрали основний КЕКВ"); return; } if (altKekvCBList.SelectedIndex < 0) { NotificationHelper.ShowError("Ви не обрали старий КЕКВ"); return; } if (spendingFullSum.Value <= 0) { NotificationHelper.ShowError("Сумма витрати повинна бути быльна за нуль"); return; } if (!newStatusRButton.Checked && spendingFullSum.Value != GetTableTotalSum()) { NotificationHelper.ShowError("Загальна сума витрати не дорівнює загальній сумі яку потрібно зняти з джерел фінансування"); return; } using (TenderContext tc = new TenderContext()) { Estimate selectedEstimate = estimateCBList.SelectedItem as Estimate; KekvCode selectedMainKekv = mainKekvCBList.SelectedItem as KekvCode; KekvCode selectedAltKekv = altKekvCBList.SelectedItem as KekvCode; if (spendingRecord.Id > 0) { tc.PlannedSpending.Attach(spendingRecord); tc.Entry <PlannedSpending>(spendingRecord).State = EntityState.Modified; } spendingRecord.Description = spendingDescription.Text.Trim(); spendingRecord.CreationDate = dateTimePicker1.Value; spendingRecord.EstimateId = selectedEstimate.Id; spendingRecord.PrimaryKekvId = selectedMainKekv.Id; spendingRecord.SecondaryKekvId = selectedAltKekv.Id; spendingRecord.Sum = spendingFullSum.Value; // Удаляем старые записи об изменениях в балансе foreach (var item in spendingRecord.Changes.ToList()) { tc.BalanceChanges.Attach(item); tc.Entry <BalanceChanges>(item).State = EntityState.Deleted; } tc.SaveChanges(); if (onPayStatusRButton.Checked || paidStatusRButton.Checked) { for (int i = 0; i < sourcesList.Count; i++) { decimal balanceChangeOnSource = Convert.ToDecimal(balanceChangesTable.Rows[i].Cells[0].Value); if (balanceChangeOnSource == 0) { continue; } spendingRecord.Changes.Add(new BalanceChanges { DateOfReceiving = spendingRecord.CreationDate, MoneySourceId = sourcesList[i].Id, PrimaryKekvId = spendingRecord.PrimaryKekvId, SecondaryKekvId = spendingRecord.SecondaryKekvId, EstimateId = spendingRecord.EstimateId, PrimaryKekvSum = -balanceChangeOnSource, SecondaryKekvSum = -balanceChangeOnSource, }); } spendingRecord.IsPaid = paidStatusRButton.Checked; tc.SaveChanges(); } if (spendingRecord.Id == 0) { tc.PlannedSpending.Add(spendingRecord); } tc.SaveChanges(); FileManager.UpdateRelatedFilesOfEntity(tc, spendingRecord.RelatedFiles, relatedFiles, deletingFiles); NotificationHelper.ShowInfo("Дані успішно збережені!"); dbWasChanged = true; this.Close(); } }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(shortNameTextBox.Text)) { NotificationHelper.ShowError("Ви не вказали скорочену назву контрагента"); return; } if (string.IsNullOrWhiteSpace(edrTextBox.Text)) { NotificationHelper.ShowError("Ви не вказали код ЄДРПОУ"); return; } if (string.IsNullOrWhiteSpace(legalAdressTextBox.Text)) { NotificationHelper.ShowError("Ви не вказали юридичну адресу"); return; } if (string.IsNullOrWhiteSpace(actualAdressTextBox.Text)) { NotificationHelper.ShowError("Ви не вказали фактичну адресу"); return; } using (TenderContext tc = new TenderContext()) { if (contractorRecord.Id > 0) { tc.Contractors.Attach(contractorRecord); } else { // Проверяем существует ли в базе контрагент с таким кодом ЕГРПОУ Contractor existingContractor = tc.Contractors.Where(p => p.EdrCode.Equals(edrTextBox.Text.Trim())).FirstOrDefault(); if (existingContractor != null) { NotificationHelper.ShowError(string.Format("За даним кодом ЄДРПОУ вже зареєстрований контрагент '{0}'", existingContractor.ShortName)); return; } } contractorRecord.LongName = fullNameTextBox.Text.Trim(); contractorRecord.ShortName = shortNameTextBox.Text.Trim(); contractorRecord.EdrCode = edrTextBox.Text.Trim(); contractorRecord.LegalAddress = legalAdressTextBox.Text.Trim(); contractorRecord.ActualAddress = actualAdressTextBox.Text.Trim(); contractorRecord.Description = descriptionTextBox.Text.Trim(); if (contractorRecord.Id == 0) { tc.Contractors.Add(contractorRecord); tc.SaveChanges(); } foreach (var item in deletingContacts) { tc.ContactPersons.Attach(item); tc.ContactPersons.Remove(item); } tc.SaveChanges(); contractorRecord.Persons.Clear(); foreach (var item in contactsList) { if (item.Id > 0) { tc.ContactPersons.Attach(item); tc.Entry <ContactPerson>(item).State = System.Data.Entity.EntityState.Modified; } contractorRecord.Persons.Add(item); } FileManager.UpdateRelatedFilesOfEntity(tc, contractorRecord.RelatedFiles, relatedFiles, deletingFilesList); tc.SaveChanges(); NotificationHelper.ShowInfo("Дані успішно збережені!"); wasDbUpdated = true; this.Close(); } }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(numberTextBox.Text)) { NotificationHelper.ShowError("Ви не ввели номер рахунку"); return; } if (invoiceFullSum.Value == 0) { NotificationHelper.ShowError("Сумма рахунку повинна бути більша за 0"); return; } if (contractorsCBList.SelectedItem == null) { NotificationHelper.ShowError("Ви не обрали контрагента"); return; } if (contractsCBList.SelectedItem == null) { NotificationHelper.ShowError("Ви не обрали договір"); return; } if (!newStatusRButton.Checked && invoiceFullSum.Value != GetTableTotalSum()) { NotificationHelper.ShowError("Загальна сума рахунку не дорівнює загальній сумі яку потрібно зняти з джерел фінансування"); return; } using (TenderContext tc = new TenderContext()) { Contract selectedContract = contractsCBList.SelectedItem as Contract; // Если мы создаём новый счёт - проверяем доступный для него остаток по договору if ((invoiceRecord.Id == 0) && (invoiceFullSum.Value > selectedContract.MoneyRemain)) { NotificationHelper.ShowError("На договорі недостатньо коштів для проплати данного рахунку"); return; } if (invoiceRecord.Id > 0) { if (invoiceFullSum.Value > (selectedContract.MoneyRemain + invoiceRecord.Sum)) { NotificationHelper.ShowError("На договорі недостатньо коштів для проплати вказаної суми"); return; } tc.Invoices.Attach(invoiceRecord); tc.Entry <Invoice>(invoiceRecord).State = EntityState.Modified; } invoiceRecord.IsCredit = IsCreditCheckBox.Checked; invoiceRecord.Number = numberTextBox.Text.Trim(); invoiceRecord.Description = descriptionTextBox.Text.Trim(); invoiceRecord.ContractId = selectedContract.Id; invoiceRecord.Date = invoiceDate.Value; invoiceRecord.Sum = invoiceFullSum.Value; // Удаляем старые записи об изменениях в балансе foreach (var item in invoiceRecord.Changes.ToList()) { tc.BalanceChanges.Attach(item); tc.Entry <BalanceChanges>(item).State = EntityState.Deleted; } tc.SaveChanges(); if (onPayStatusRButton.Checked || paidStatusRButton.Checked) { for (int i = 0; i < sourcesList.Count; i++) { decimal balanceChangeOnSource = Convert.ToDecimal(balanceChangesTable.Rows[i].Cells[0].Value); if (balanceChangeOnSource == 0) { continue; } invoiceRecord.Changes.Add(new BalanceChanges { DateOfReceiving = invoiceRecord.Date, MoneySourceId = sourcesList[i].Id, PrimaryKekvId = selectedContract.RecordInPlan.PrimaryKekvId, SecondaryKekvId = selectedContract.RecordInPlan.SecondaryKekvId, EstimateId = selectedContract.RecordInPlan.EstimateId, PrimaryKekvSum = -balanceChangeOnSource, SecondaryKekvSum = -balanceChangeOnSource, }); } invoiceRecord.IsPaid = paidStatusRButton.Checked; tc.SaveChanges(); } if (invoiceRecord.Id == 0) { tc.Invoices.Add(invoiceRecord); } tc.SaveChanges(); FileManager.UpdateRelatedFilesOfEntity(tc, invoiceRecord.RelatedFiles, relatedFiles, deletingFiles); NotificationHelper.ShowInfo("Дані успішно збережені!"); dbWasChanged = true; this.Close(); } }
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(); } }