public YearPlanReport(TenderYear year, Estimate est, bool isNewSystem, KekvCode kekv) { this.year = year; this.estFilter = est; this.isNewSystem = isNewSystem; this.kekvFilter = kekv; }
private void button1_Click(object sender, EventArgs e) { selectedEstimate = comboBox1.SelectedItem as Estimate; selectedKekv = comboBox2.SelectedItem as KekvCode; isNewSystemSelected = radioButton1.Checked; filteDataWasSelected = true; this.Close(); }
public ContractsSpendingReport(TenderYear year, Estimate est, bool isNewSystem, KekvCode kekv, Contractor contractor) { this.estFilter = est; this.year = year; this.isNewSystem = isNewSystem; this.kekvFilter = kekv; this.contractorFilter = contractor; LoadMoneySourceList(); }
private void LoadMoneysTable() { if (!updateMoneysRemainsWorker.IsBusy && controlValueWasChangedByUser) { Estimate selectedEstimate = estimateCBList.SelectedItem as Estimate; KekvCode selectedMainKekv = mainKekvCBList.SelectedItem as KekvCode; if (selectedEstimate != null && selectedMainKekv != null) { ToggleLoadingMoneysAnimation(); updateMoneysRemainsWorker.RunWorkerAsync(new UpdateMoneysWorkerArgument { Estimate = selectedEstimate, Kekv = selectedMainKekv, DocumentDate = dateTimePicker1.Value }); } } }
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 (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 WriteTotals(TotalsType type, KekvCode kekv = null, string totalSpendingFormula = null, string prevMonthRemainFormula = null, string plannedSpendingFormula = null, decimal[] plannedSpendingRow = null) { // Итоги по затратам xlWorksheet.get_Range(numColumnLetter + currentRowNumber.ToString(), lastMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; if (type == TotalsType.KekvTotal) { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = kekv.Code; } else { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = "ВСІ"; } xlWorksheet.get_Range(documentColumnLetter + currentRowNumber.ToString()).Value = "ВСЬОГО ВИТРАЧЕНО"; currentSourceColumnLetter = moneySourceSpendingBeginColumn; for (int j = 0; j < sourcesNum; j++) { if (totalSpendingFormula != null) { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format(totalSpendingFormula, currentSourceColumnLetter); } else { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Value = 0; } if (j != (sourcesNum - 1)) { currentSourceColumnLetter = GetNextColumnLetter(currentSourceColumnLetter); } } xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("=SUM({1}{0}:{2}{0})", currentRowNumber, moneySourceSpendingBeginColumn, lastMoneySourceColumnLetter); if (type == TotalsType.KekvTotal) { estimateKekvSpendingTotals[kekv].Add("{0}" + currentRowNumber); monthSpendingCells.Add("{0}" + currentRowNumber); } currentRowNumber++; // Сколько было заложено сметой xlWorksheet.get_Range(numColumnLetter + currentRowNumber.ToString(), lastMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; if (type == TotalsType.KekvTotal) { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = kekv.Code; } else { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = "ВСІ"; } xlWorksheet.get_Range(documentColumnLetter + currentRowNumber.ToString()).Value = "ВИДІЛЕНО ЗА КОШТОРИСОМ"; currentSourceColumnLetter = moneySourceSpendingBeginColumn; for (int j = 0; j < sourcesNum; j++) { if (plannedSpendingFormula != null) { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format(plannedSpendingFormula, currentSourceColumnLetter); } else { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Value = plannedSpendingRow[j]; } if (j != (sourcesNum - 1)) { currentSourceColumnLetter = GetNextColumnLetter(currentSourceColumnLetter); } } xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("=SUM({1}{0}:{2}{0})", currentRowNumber, moneySourceSpendingBeginColumn, lastMoneySourceColumnLetter); if (type == TotalsType.KekvTotal) { estimateKekvPlannedMoneyTotals[kekv].Add("{0}" + currentRowNumber); monthPlannedMoneyCells.Add("{0}" + currentRowNumber); } currentRowNumber++; // Сколько осталось с предыдущего месяца if (prevMonthRemainFormula != null) { xlWorksheet.get_Range(numColumnLetter + currentRowNumber.ToString(), lastMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; if (type == TotalsType.KekvTotal) { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = kekv.Code; } else { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = "ВСІ"; } xlWorksheet.get_Range(documentColumnLetter + currentRowNumber.ToString()).Value = "ЗАЛИШОК З ПОПЕРЕДНЬОГО МІСЯЦЯ"; currentSourceColumnLetter = moneySourceSpendingBeginColumn; for (int j = 0; j < sourcesNum; j++) { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format(prevMonthRemainFormula, currentSourceColumnLetter); if (j != (sourcesNum - 1)) { currentSourceColumnLetter = GetNextColumnLetter(currentSourceColumnLetter); } } xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("=SUM({1}{0}:{2}{0})", currentRowNumber, moneySourceSpendingBeginColumn, lastMoneySourceColumnLetter); lastMonthRemainCells.Add("{0}" + currentRowNumber); currentRowNumber++; } // Сколько осталось по истечению месяца (либо года) xlWorksheet.get_Range(numColumnLetter + currentRowNumber.ToString(), lastMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; if (type == TotalsType.KekvTotal) { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = kekv.Code; } else { xlWorksheet.get_Range(kekvColumnLetter + currentRowNumber.ToString()).Value = "ВСІ"; } xlWorksheet.get_Range(documentColumnLetter + currentRowNumber.ToString()).Value = "ЗАЛИШОК НА КІНЕЦЬ ПОТОЧНОГО МІСЯЦЯ"; currentSourceColumnLetter = moneySourceSpendingBeginColumn; for (int j = 0; j < sourcesNum; j++) { if (prevMonthRemainFormula != null) { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("={0}{1} + {0}{2} - {0}{3}", currentSourceColumnLetter, (currentRowNumber - 2), (currentRowNumber - 1), (currentRowNumber - 3)); } else { xlWorksheet.get_Range(currentSourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("={0}{1} - {0}{2}", currentSourceColumnLetter, (currentRowNumber - 1), (currentRowNumber - 2)); } if (j != (sourcesNum - 1)) { currentSourceColumnLetter = GetNextColumnLetter(currentSourceColumnLetter); } } xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Font.Bold = true; xlWorksheet.get_Range(totalMoneySourceColumnLetter + currentRowNumber.ToString()).Formula = string.Format("=SUM({1}{0}:{2}{0})", currentRowNumber, moneySourceSpendingBeginColumn, lastMoneySourceColumnLetter); if (type == TotalsType.KekvTotal) { estimateKekvMoneyRemainTotals[kekv].Add("{0}" + currentRowNumber); } currentRowNumber++; }
protected override void Seed(ZcrlTenderContext context) { UserSession.CreateUser("Адміністратор", "1234567", "Обліковий запис адміністратора системи"); KekvCode k1 = new KekvCode { Code = "2110", Name = "Оплата праці" }; KekvCode k2 = new KekvCode { Code = "2210", Name = "Предмети, матеріали, обладнання та інвентар" }; KekvCode k3 = new KekvCode { Code = "2220", Name = "Медикаменти та перев'язувальні матеріали" }; KekvCode k4 = new KekvCode { Code = "2230", Name = "Продукти харчування" }; KekvCode k5 = new KekvCode { Code = "2240", Name = "Оплата послуг (крім комунальних)" }; KekvCode k6 = new KekvCode { Code = "2271", Name = "Оплата теплопостачання" }; KekvCode k7 = new KekvCode { Code = "2272", Name = "Оплата водопостачання та водовідведення" }; KekvCode k8 = new KekvCode { Code = "2273", Name = "Оплата електроенергії" }; KekvCode k9 = new KekvCode { Code = "2274", Name = "Оплата природного газу" }; KekvCode k10 = new KekvCode { Code = "2275", Name = "Оплата інших енергоносіїв" }; KekvCode k11 = new KekvCode { Code = "2281", Name = "Дослідження і розробки, окремі заходи розвитку по реалізації державних (регіональних) програм" }; KekvCode k12 = new KekvCode { Code = "2282", Name = "Окремі заходи по реалізації державних (регіональних) програм, не віднесені до заходів розвитку" }; KekvCode k13 = new KekvCode { Code = "2710", Name = "Виплата пенсій і допомоги" }; KekvCode k14 = new KekvCode { Code = "2730", Name = "Інші виплати населенню" }; KekvCode k15 = new KekvCode { Code = "2800", Name = "Інші поточні видатки" }; KekvCode k16 = new KekvCode { Code = "3110", Name = "Придбання обладнання і предметів довгострокового користування" }; context.KekvCodes.Add(k1); context.KekvCodes.Add(k2); context.KekvCodes.Add(k3); context.KekvCodes.Add(k4); context.KekvCodes.Add(k5); context.KekvCodes.Add(k6); context.KekvCodes.Add(k7); context.KekvCodes.Add(k8); context.KekvCodes.Add(k9); context.KekvCodes.Add(k10); context.KekvCodes.Add(k11); context.KekvCodes.Add(k12); context.KekvCodes.Add(k13); context.KekvCodes.Add(k14); context.KekvCodes.Add(k15); context.KekvCodes.Add(k16); context.SaveChanges(); int priority = 1; MoneySource ms1 = new MoneySource { Name = "Місцевий бюджет", ViewPriority = priority++ }; MoneySource ms2 = new MoneySource { Name = "Додаткова дотація", ViewPriority = priority++ }; MoneySource ms3 = new MoneySource { Name = "Медична субвенція", ViewPriority = priority++ }; MoneySource ms4 = new MoneySource { Name = "Долинська субвенція", ViewPriority = priority++ }; MoneySource ms5 = new MoneySource { Name = "Біленьківська субвенція", ViewPriority = priority++ }; MoneySource ms6 = new MoneySource { Name = "Широківська субвенція", ViewPriority = priority++ }; MoneySource ms7 = new MoneySource { Name = "Суми за дорученням", ViewPriority = priority++ }; MoneySource ms8 = new MoneySource { Name = "Спецрахунок", ViewPriority = priority++ }; context.MoneySources.Add(ms1); context.MoneySources.Add(ms2); context.MoneySources.Add(ms3); context.MoneySources.Add(ms4); context.MoneySources.Add(ms5); context.MoneySources.Add(ms6); context.MoneySources.Add(ms7); context.MoneySources.Add(ms8); context.SaveChanges(); base.Seed(context); }