Example #1
0
        public PlannedSpendingForm(TenderYear year)
        {
            spendingRecord = new PlannedSpending();
            InitializeFormControls(year);

            LoadKekvsList();
        }
Example #2
0
        public PlannedSpendingForm(TenderYear year, PlannedSpending spending)
        {
            spendingRecord = spending;
            InitializeFormControls(year);

            if (!UserSession.IsAuthorized)
            {
                this.Text = "Перегляд даних витрати";
            }
            else
            {
                this.Text = "Редагування даних витрати";
            }

            using (TenderContext tc = new TenderContext())
            {
                tc.PlannedSpending.Attach(spendingRecord);

                controlValueWasChangedByUser = false;
                estimateCBList.DataSource    = new List <Estimate> {
                    spendingRecord.Estimate
                };
                mainKekvCBList.DataSource = new List <KekvCode> {
                    spendingRecord.PrimaryKekv
                };
                altKekvCBList.DataSource = new List <KekvCode> {
                    spendingRecord.SecondaryKekv
                };
                estimateCBList.Enabled       = mainKekvCBList.Enabled = altKekvCBList.Enabled = false;
                controlValueWasChangedByUser = true;

                foreach (var file in spendingRecord.RelatedFiles)
                {
                    relatedFiles.Add(file);
                }

                var lst = tc.BalanceChanges
                          .Where(p => (p.EstimateId == spendingRecord.EstimateId) &&
                                 (p.PrimaryKekvId == spendingRecord.PrimaryKekvId) &&
                                 ((p.PrimaryKekvSum > 0) || (p.PlannedSpendingId != null)))
                          .Select(p => p.PrimaryKekvSum)
                          .ToList();

                decimal notPlannedMoneyOnKekv = tc.BalanceChanges
                                                .Where(p => (p.EstimateId == spendingRecord.EstimateId) &&
                                                       (p.PrimaryKekvId == spendingRecord.PrimaryKekvId) &&
                                                       ((p.PrimaryKekvSum > 0) || (p.PlannedSpendingId != null)))
                                                .Select(p => p.PrimaryKekvSum)
                                                .ToList()
                                                .DefaultIfEmpty(0)
                                                .Sum();
                decimal plannedMoneyOnKekv = tc.TenderPlanRecords.ToList()
                                             .Where(p => (p.EstimateId == spendingRecord.EstimateId) &&
                                                    (p.PrimaryKekvId == spendingRecord.PrimaryKekvId))
                                             .Select(p => p.UsedByRecordSum)
                                             .ToList()
                                             .DefaultIfEmpty(0)
                                             .Sum();

                decimal moneyRemainAtMainKekv = notPlannedMoneyOnKekv - plannedMoneyOnKekv;

                label6.Text = string.Format("Доступно: {0:N2} грн.", moneyRemainAtMainKekv);
                if (moneyRemainAtMainKekv > 0)
                {
                    spendingFullSum.Maximum = spendingRecord.Sum + moneyRemainAtMainKekv;
                }
                else
                {
                    spendingFullSum.Maximum = spendingRecord.Sum;
                }

                LoadMoneysTable();

                // Заполняем затраты счёта по источникам финансирования
                if (spendingRecord.Changes.Count > 0)
                {
                    for (int i = 0; i < sourcesList.Count; i++)
                    {
                        foreach (var rec in spendingRecord.Changes)
                        {
                            if (rec.MoneySourceId == sourcesList[i].Id)
                            {
                                controlValueWasChangedByUser = false;
                                balanceChangesTable.Rows[i].Cells[0].Value = -rec.PrimaryKekvSum;
                                controlValueWasChangedByUser = true;
                            }
                        }
                    }
                }
            }
        }