public int AddHeadsToProject(Project project, IList <Head> heads) { int count = 0; string headNames = ""; foreach (Head addableHead in heads) { ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == project.ID && ph.Head.ID == addableHead.ID); if (projectHead == null) { ProjectHead newProjectHead = new ProjectHead { Project = project, Head = addableHead, IsActive = true }; _projectHeadRepository.Insert(newProjectHead); headNames += string.IsNullOrWhiteSpace(headNames) ? addableHead.Name : ", " + addableHead.Name; } } count = _projectHeadRepository.Save(); if (count > 0) { InvokeManagerEvent(EventType.Success, "", string.Concat("Head(s) added to project '", project.Name, "': ", headNames, ".")); } else { _projectHeadRepository.Discard(); InvokeManagerEvent(EventType.Information, string.Concat("No head(s) added to project '", project.Name, "'.")); } return(count); }
public int RemoveHeadsFromProject(Project project, IList <Head> heads) { int count = 0; string headNames = ""; foreach (Head deletableHead in heads) { ProjectHead deletableProjectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == project.ID && ph.Head.ID == deletableHead.ID); if (deletableProjectHead != null) { headNames += string.IsNullOrWhiteSpace(headNames) ? deletableHead.Name : ", " + deletableHead.Name; } project.ProjectHeads.Remove(deletableProjectHead); } count = _projectHeadRepository.Save(); if (count > 0) { InvokeManagerEvent(EventType.Success, "", string.Concat("Head(s) removed from project '", project.Name, "': ", headNames, ".")); } else { InvokeManagerEvent(EventType.Information, "", string.Concat("No head(s) removed from project '", project.Name, "'.")); } return(count); }
private int GetProjectHeadId(string projectName, string headName) { int projectId = _db.Projects.Where(p => p.Name == projectName).SingleOrDefault().ID; int headId = _db.Heads.Where(h => h.Name == headName).SingleOrDefault().ID; ProjectHead pc = _db.ProjectHeads.Where(pcc => pcc.ProjectID == projectId && pcc.HeadID == headId).SingleOrDefault(); return(pc.ID); }
public bool Set(MassVoucher massVoucher) { bool isValid = true; double ignored = 0; if (massVoucher.Project == null) { isValid = SetErrorMessage("NoProjectSelected"); } else if (massVoucher.VoucherType != "Contra" && massVoucher.Head == null) { isValid = SetErrorMessage("NoHeadSelected"); } else if (massVoucher.Amount == 0) { isValid = SetErrorMessage("AmountCannotBeZero"); } else if (massVoucher.VoucherType == "Contra" && string.IsNullOrWhiteSpace(massVoucher.ContraType)) { isValid = SetErrorMessage("ContraTypeIsNotSelected"); } else if (massVoucher.VoucherType == "JV" && string.IsNullOrWhiteSpace(massVoucher.JVDebitOrCredit)) { isValid = SetErrorMessage("JVDebitOrCreditNotSelected"); } else if (massVoucher.IsFixedAsset && string.IsNullOrWhiteSpace(massVoucher.FixedAssetName)) { isValid = SetWarningMessage("NoFixedAssetParticularNameFound"); } else if (massVoucher.IsCheque && (string.IsNullOrWhiteSpace(massVoucher.ChequeNo) || string.IsNullOrWhiteSpace(massVoucher.BankName))) { isValid = SetInformationMessage("NoChequeOrBankInfo"); } else if (massVoucher.IsFixedAsset && massVoucher.FixedAssetDepreciationRate == 0) { isValid = SetInformationMessage("ZeroDepreciationProvidedForFixedAsset"); } else if (_voucherManager.GetVouchers(massVoucher.VoucherType + "-" + massVoucher.VoucherSerialNo.ToString(), ref ignored).Count() != 0) { isValid = SetWarningMessage("VoucherAlreadyExists"); } if (isValid) { _massVoucher = massVoucher; if (!massVoucher.VoucherType.Equals("Contra", StringComparison.OrdinalIgnoreCase)) { _projectHead = _projectHeadRepository.GetSingle( ph => ph.Project.ID == massVoucher.Project.ID && ph.Head.ID == massVoucher.Head.ID); } isValid = SetEntryableRecords(); } return(isValid); }
public bool IsRecordFound(int projectId, int headId) { ProjectHead projectHead = _db.ProjectHeads.Where(ph => ph.ProjectID == projectId && ph.HeadID == headId).SingleOrDefault(); if (projectHead != null) { return(_db.Records.Where(r => r.ProjectHeadID == projectHead.ID).Count() > 0); } return(false); }
public bool RemoveHeadFromProject(int projectId, int headId) { ProjectHead projectHead = _db.ProjectHeads.Where(pc => pc.ProjectID == projectId && pc.HeadID == headId).SingleOrDefault(); if (projectHead != null) { _db.DeleteObject(projectHead); _db.SaveChanges(); return(true); } return(false); }
public double GetDepreciationRate(string projectName, string headName) { double rate = 0; ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Head.Name == headName && ph.Project.Name == projectName); if (projectHead != null) { DepreciationRate depreciationRate = _depreciationRateRepository.GetSingle(dr => dr.ProjectHead != null ? (dr.ProjectHead.ID == projectHead.ID) : false); rate = (depreciationRate != null) ? depreciationRate.Rate : 0; } return(rate); }
public bool Set(Project project, Head head, double rate) { if (project == null) { InvokeManagerEvent(EventType.Error, "NoProjectSelected"); return(false); } if (head == null) { InvokeManagerEvent(EventType.Error, "NoHeadSelected"); return(false); } if (rate == 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.DepreciationRates != null) { DepreciationRate depreciationRate = projectHead.DepreciationRates.SingleOrDefault(b => b.IsActive); if (depreciationRate != null) { depreciationRate.Rate = rate; update = true; } else { depreciationRate = new DepreciationRate { Rate = rate, IsActive = true, ProjectHead = projectHead }; } return(InsertOrUpdateNewDepreciationRate(depreciationRate, update)); } else { return(false); } }
public bool IsRecordFound(Project project, Head head) { if (project == null || head == null) { return(false); } ProjectHead projectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == project.ID && ph.Head.ID == head.ID); if (projectHead == null) { return(false); } return(_recordRepository.Get(r => r.ProjectHead.ID == projectHead.ID).Count() > 0); }
public bool AddHeadToProject(int projectId, int headId) { ProjectHead projectHead = _db.ProjectHeads.Where(pc => pc.ProjectID == projectId && pc.HeadID == headId).SingleOrDefault(); if (projectHead == null) { ProjectHead newProjectHead = new ProjectHead { ProjectID = projectId, HeadID = headId, IsActive = true }; _db.AddToProjectHeads(newProjectHead); _db.SaveChanges(); return(true); } return(false); }
private bool SetEntryableRecords() { bool isValid = true; IList <Record> records = new List <Record>(); if (_massVoucher.VoucherType.Equals("DV", StringComparison.OrdinalIgnoreCase)) { DebitVoucher debitVoucher = GetDebitVoucher(); Record transaction = _massVoucher.IsCheque ? (Record)GetTransactionInCheque(0, _massVoucher.Amount) : (Record)GetTransactionInCash(0, _massVoucher.Amount); records.Add(debitVoucher); records.Add(transaction); } else if (_massVoucher.VoucherType.Equals("CV", StringComparison.OrdinalIgnoreCase)) { CreditVoucher creditVoucher = GetCreditVoucher(); Record transaction = _massVoucher.IsCheque ? (Record)GetTransactionInCheque(_massVoucher.Amount, 0) : (Record)GetTransactionInCash(_massVoucher.Amount, 0); records.Add(creditVoucher); records.Add(transaction); } else if (_massVoucher.VoucherType.Equals("JV", StringComparison.OrdinalIgnoreCase)) { JournalVoucher journalVoucher = GetJournalVoucher(); records.Add(journalVoucher); } else if (_massVoucher.VoucherType.Equals("Contra", StringComparison.OrdinalIgnoreCase)) { double cashDebit = _massVoucher.ContraType.Equals("bank to cash", StringComparison.OrdinalIgnoreCase) ? _massVoucher.Amount : 0; double cashCredit = _massVoucher.ContraType.Equals("cash to bank", StringComparison.OrdinalIgnoreCase) ? _massVoucher.Amount : 0; Head bankBook = _headRepository.GetSingle(h => h.Name.Equals("Bank Book", StringComparison.OrdinalIgnoreCase)); Head cashBook = _headRepository.GetSingle(h => h.Name.Equals("Cash Book", StringComparison.OrdinalIgnoreCase)); ProjectHead bankBookProjectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == _massVoucher.Project.ID && ph.Head.ID == bankBook.ID); ProjectHead cashBookProjectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == _massVoucher.Project.ID && ph.Head.ID == cashBook.ID); TransactionInCash cashTransaction = GetTransactionInCash(cashDebit, cashCredit); cashTransaction.ProjectHead = cashBookProjectHead; TransactionInCheque chequeTransaction = GetTransactionInCheque(cashCredit, cashDebit); chequeTransaction.ProjectHead = bankBookProjectHead; records.Add(cashTransaction); records.Add(chequeTransaction); } if (records.Count > 0) { _entryableRecords = records; } else { isValid = false; } return(isValid); }
//<<<<<<< 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); //} }
internal static DALBudget GetDALBudget(string projectName, string headName) { ProjectHead projectHead = DBFactory.Instance.DB.ProjectHeads.Where(ph => ph.Project.Name == projectName && ph.Head.Name == headName).SingleOrDefault(); return(DBFactory.Instance.DB.Budgets.Where(b => b.ProjectHeadID == projectHead.ID && b.IsActive == true).SingleOrDefault()); }