public void ValidateReturnsTrueProjectNotNullHeadNotNull()
 {
     var p = new Project();
     var h = new Head();
     var actual = _ledgerManager.Validate(p, h, false);
     Assert.AreEqual(true, actual, "Shoild return true when  project and head is not null");
 }
        public IList<Record> GetLedgerBook(Project project, Head head, bool isCashBankShown = false)
        {
            DateTime financialYearStartDate = _parameterManager.GetFinancialYearStartDate();

            return _recordRepository.Get(r => r.ProjectHead.Project.ID == project.ID && r.ProjectHead.Head.ID == head.ID).OrderBy(l => l.Date).ToList().Where(
                    l => GetDateAt12Am(l.Date) >= financialYearStartDate && GetDateAt12Am(l.Date) <= LedgerEndDate).
                    ToList();

            //return
            //    _ledgerRepository.GetLedger(projectId, headId) .OrderBy(l => l.Date).Where(
            //        l => GetDateAt12Am(l.Date) >= financialYearStartDate && GetDateAt12Am(l.Date) <= LedgerEndDate).
            //        ToList();
        }
        public bool Validate(Project project, Head head, bool showAllAdvance)
        {
            if (project == null)
            {
                InvokeManagerEvent(EventType.Error, "NoProjectSelected");
                return false;
            }

            if (!showAllAdvance && head == null)
            {
                InvokeManagerEvent(EventType.Error, "NoHeadSelected");
                return false;
            }
            return true;
        }
Exemple #4
0
 public bool Update(Head head)
 {
     _headRepository.Update(head);
     if (_headRepository.Save() > 0)
     {
         InvokeManagerEvent(new BLLEventArgs
                                {
                                    EventType = EventType.Success,
                                    MessageKey = "HeadSuccessfullyUpdated",
                                    Parameters = new Dictionary<string, string> { { "HeadName", head.Name } }
                                });
         return true;
     }
     InvokeManagerEvent(new BLLEventArgs { EventType = EventType.Error, MessageKey = "HeadUpdatedFailed", Parameters = new Dictionary<string, string> { { "HeadName", head.Name } } });
     return false;
 }
Exemple #5
0
        public bool Add(Head head)
        {
            Head existingHead = _headRepository.GetSingle(h => h.Name == head.Name);

            if (existingHead != null)
            {
                InvokeManagerEvent(new BLLEventArgs { EventType = EventType.Error, MessageKey = "HeadAlreadyExists", Parameters = new Dictionary<string, string> { { "HeadName", head.Name } } });
                return false;
            }
            _headRepository.Insert(head);
            if (_headRepository.Save() > 0)
            {
                InvokeManagerEvent(new BLLEventArgs
                                       {
                                           EventType = EventType.Success,
                                           MessageKey = "NewHeadSuccessfullyCreated",
                                           Parameters = new Dictionary<string, string> { { "HeadName", head.Name } }
                                       });
                return true;
            }
            //TODO: possible bug
            return false;
        }
        //<<<<<<< HEAD
        //        public bool Set(Project project, Head head, string financialYear, double budgetAmount)
        //        {
        //            ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == project.ID && ph.Head.ID == head.ID );
        //            if (projectHead == null) return false;
        //            Budget budget = projectHead.Budgets.SingleOrDefault(b => b.FinancialYear == financialYear && b.IsActive);
        //            //TODO: depends on current accounting year.
        //            if (budget == null)
        //            {
        //                return InsertNewBudget(projectHead, budgetAmount);
        //=======
        public bool Set(Project project, Head head, double amount, int budgetYear)
        {
            if (project == null)
            {
                InvokeManagerEvent(EventType.Error, "NoProjectSelected");
                return false;
                //>>>>>>> githubJakaria42/master
            }
            if (head == null)
            {
                InvokeManagerEvent(EventType.Error, "NoHeadSelected");
                return false;
            }
            if (amount == 0)
            {
                // TODO: This will not work right now, think through. But not a big problem.
                InvokeManagerEvent(EventType.Warning, "ZeroBudgetProvidedForFixedAsset");
            }

            string projectName = project.Name;
            string headName = head.Name;

            ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == project.ID && ph.Head.ID == head.ID);

            bool update = false;
            if (projectHead != null && projectHead.Budgets != null)
            {
                //<<<<<<< HEAD
                //                budget.IsActive = false;
                //                return InsertNewBudget(projectHead, budgetAmount);
                //=======
                Budget budget = projectHead.Budgets.SingleOrDefault(b => b.FinancialYear == budgetYear.ToString());
                if (budget != null)
                {
                    budget.Amount = amount;
                    budget.FinancialYear = budgetYear.ToString();
                    budget.Date = DateTime.Today;
                    budget.IsActive = budgetYear < DateTime.Now.Year ? false : true;

                    update = true;
                }
                else
                {
                    budget = new Budget
                    {
                        Amount = amount,
                        FinancialYear = budgetYear.ToString(),
                        Date = DateTime.Today,
                        IsActive = budgetYear < DateTime.Now.Year ? false : true,
                        ProjectHead = projectHead
                    };
                }

                return InsertOrUpdateBudget(budget, update);
                //>>>>>>> githubJakaria42/master
            }
            else
                return false;

            //ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Head.Name == headName && ph.Project.Name == projectName);
            //Budget budget = projectHead.Budgets.SingleOrDefault(b => b.IsActive);
            ////TODO: depends on current accounting year.
            //if (budget == null)
            //{
            //    return InsertNewBudget(projectHead, amount);
            //}
            //else
            //{
            //    budget.IsActive = false;
            //    return InsertNewBudget(projectHead, amount);
            //}
        }
        public bool Set(Project project, Head head, double amount)
        {
            if (project == null)
            {
                InvokeManagerEvent(EventType.Error, "NoProjectSelected");
                return false;
            }
            if (head == null)
            {
                InvokeManagerEvent(EventType.Error, "NoHeadSelected");
                return false;
            }
            if (amount == 0)
            {
                // TODO: This will not work right now, think through. But not a big problem.
                InvokeManagerEvent(EventType.Warning, "ZeroDepreciationProvidedForFixedAsset");
            }

            string projectName = project.Name;
            string headName = head.Name;

            ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Head.Name == headName && ph.Project.Name == projectName);

            bool update = false;
            //if (projectHead != null && projectHead.Budgets != null)
            if (projectHead != null && projectHead.OpeningBalances != null)
            {
                string currentFinancialYear = GetCurrentFinancialYear();
                OpeningBalance openingBalance = projectHead.OpeningBalances.SingleOrDefault(b => b.FinancialYear == currentFinancialYear);
                if (openingBalance != null)
                {
                    openingBalance.Balance = amount;
                    openingBalance.FinancialYear = currentFinancialYear;
                    openingBalance.Date = DateTime.Today;
                    openingBalance.IsActive = Convert.ToInt32(currentFinancialYear) < DateTime.Now.Year ? false : true;
                    openingBalance.Description = "opening";

                    update = true;
                }
                else
                {
                    openingBalance = new OpeningBalance
                    {
                        Balance = amount,
                        FinancialYear = currentFinancialYear,
                        Date = DateTime.Today,
                        IsActive = Convert.ToInt32(currentFinancialYear) < DateTime.Now.Year ? false : true,
                        Description = "opening",
                        ProjectHead = projectHead
                    };
                }

                return InsertOrUpdateOpeningBalance(openingBalance, update);
            }
            else
                return false;

            //return true;
        }
        // TODO: Refactor -- Code cloning with the overload below.
        public double GetOpeningBalance(Project project, Head head)
        {
            if (!head.HeadType.Equals("Capital", StringComparison.OrdinalIgnoreCase))
                return 0.0;

            string currentFinancialYear = GetCurrentFinancialYear();
            OpeningBalance openingBalance = _openingBalanceRepository.GetSingle(r => r.ProjectHead.Project.ID == project.ID
                                                                                  && r.ProjectHead.Head.ID == head.ID
                                                                                  && r.FinancialYear == currentFinancialYear && r.Description.Equals("opening", StringComparison.OrdinalIgnoreCase));

            if (openingBalance == null)
                return 0.0;
            else
                return openingBalance.Balance;
        }
 public AddEditHeadWindow(Head head)
 {
     Init();
     _vm.Head = head;
 }
 private void RemoveHeadFromProjetListToRemainingList()
 {
     RemainingHeads.Add(SelectedHeadForProject);
     HeadsForProject.Remove(SelectedHeadForProject);
     SelectedRemainingHead = SelectedHeadForProject;
     SelectedHeadForProject = null;
 }
 private void AddHeadInProjetListFromRemainingList()
 {
     HeadsForProject.Add(SelectedRemainingHead);
     RemainingHeads.Remove(SelectedRemainingHead);
     SelectedHeadForProject = SelectedRemainingHead;
     SelectedRemainingHead = null;
 }