Ejemplo n.º 1
0
        private void CreateMoneySourceTab(EstimateMoneyOnSourceTable source)
        {
            // Создаём новую вкладку под источник с тем же форматированием, что и первой вкладки
            TabPage newTab = new TabPage();

            newTab.Text    = source.Source.Name;
            newTab.Padding = tabControl1.TabPages[0].Padding;

            DataGridView newDGV = CopyDataGridView(estimateTotalsTable);

            newTab.Controls.Add(newDGV);
            tabControl1.TabPages.Add(newTab);

            tableDataWasChangedByUser = false;
            for (int i = 0; i < kekvsList.Count; i++)
            {
                for (int k = 0; k < monthes.Length; k++)
                {
                    if (newSystemRButton.Checked)
                    {
                        newDGV.Rows[i].Cells[k].Value = source.PrimarySumValues[i, k];
                    }
                    else
                    {
                        newDGV.Rows[i].Cells[k].Value = source.SecondarySumValues[i, k];
                    }
                }
            }
            tableDataWasChangedByUser = true;

            estimateMoneyList.Add(source);
            sourcesList.Remove(source.Source);
            CheckPossibilityToAddMoneySources();
        }
Ejemplo n.º 2
0
        private void saveEstimateDataButton_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(estimateNameTextBox.Text))
            {
                NotificationHelper.ShowError("Ви не вказали назву кошторису!");
                return;
            }

            for (int i = 0; i < estimateMoneyList.Count; i++)
            {
                for (int j = 0; j < kekvsList.Count; j++)
                {
                    for (int k = 0; k < monthes.Length; k++)
                    {
                        if ((estimateMoneyList[i].PrimarySumValues[j, k] < 0) ||
                            (estimateMoneyList[i].SecondarySumValues[j, k] < 0))
                        {
                            NotificationHelper.ShowError("В кошторисі наявні суми менші за нуль!");
                            return;
                        }
                    }
                }
            }

            string wrongRemainsMsg = null;

            // Сверяем новые суммы сметы и запланированные траты в годовом плане по отдельным КЕКВ
            wrongRemainsMsg = EstimateMoneyOnSourceTable.CheckPlannedKekvSum(estimateMoneyList, plannedMoneyOnKekvs, kekvsList, monthes);
            if (wrongRemainsMsg != null)
            {
                NotificationHelper.ShowError(wrongRemainsMsg);
                return;
            }

            // Сверяем новые суммы сметы и фактические траты по отдельным КЕКВ
            wrongRemainsMsg = EstimateMoneyOnSourceTable.FindIncorrectSpending(estimateMoneyList, estimateSpendingList, kekvsList, monthes);
            if (wrongRemainsMsg != null)
            {
                NotificationHelper.ShowError(wrongRemainsMsg);
                return;
            }

            WaitingForm wf = new WaitingForm("Іде збеження даних до бази ...", SaveDataToDb);

            wf.ShowDialog();

            if (!string.IsNullOrWhiteSpace(wf.Error))
            {
                NotificationHelper.ShowError("Помилка! Деталі: " + wf.Error);
                return;
            }
            else
            {
                NotificationHelper.ShowInfo("Дані по кошторису успішно оновлені в базі даних!");
                Close();
            }
        }
Ejemplo n.º 3
0
        public EstimateForm(Estimate est)
        {
            InitializeFormControls();

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

            currentEstimate          = est;
            estimateNameTextBox.Text = currentEstimate.Name;

            using (TenderContext tc = new TenderContext())
            {
                tc.Estimates.Attach(currentEstimate);
                tc.Entry <Estimate>(currentEstimate).Collection(p => p.RelatedFiles).Load();

                relatedFiles.Clear();
                foreach (var elem in currentEstimate.RelatedFiles)
                {
                    relatedFiles.Add(elem);
                }

                // Получаем все поступления по смете
                EstimateMoneyOnSourceTable.GetEstimateMoneyTable(currentEstimate,
                                                                 kekvsList,
                                                                 monthes,
                                                                 p => (p.PlannedSpending == null && p.Invoice == null),
                                                                 CreateMoneySourceTab);

                // Получаем список затрат сметы
                estimateSpendingList = EstimateMoneyOnSourceTable.GetEstimateMoneyTable(currentEstimate,
                                                                                        kekvsList,
                                                                                        monthes,
                                                                                        p => (p.PlannedSpending != null || p.Invoice != null));

                // Получаем список запланированных трат по годовому плану по КЕКВ
                plannedMoneyOnKekvs = (from plItem in tc.TenderPlanRecords.ToList()
                                       where plItem.EstimateId == currentEstimate.Id
                                       group plItem by plItem.PrimaryKekv into g1
                                       select new KekvMoneyRecord
                {
                    Kekv = g1.Key,
                    Sum = g1.Sum(p => p.UsedByRecordSum)
                }).ToList();
            }
        }