/// <summary> /// Edit division details. /// </summary> /// <param name="Id">Division Id</param> /// <returns> Divisiondetails</returns> public ActionResult DivisionEdit(int id) { MODEL.Division division = null; try { DivisionService divisionService = new DivisionService(); //Get division details DivisionVO divisionVO = divisionService.GetDivisionById(id); if (divisionVO == null) { ModelState.AddModelError("", String.Format(Constants.ITEM_NOT_FOUND, Constants.DIVISION)); } else { division = new Division(divisionVO); division.defaultInvoiceInAdvancedList = GetInvoiceInAdvancedList(); } } catch (Exception e) { ModelState.AddModelError("", e.Message); } return(PartialView("DivisionDetails", division)); }
/// <summary> /// Save the division /// </summary> /// <param name="division">Value Object division</param> public void SaveDivision(DivisionVO division) { if (!string.IsNullOrEmpty(division.DivisionName)) { if (division.IsActive == true) { IsDivisionActivatedInCompany(division); } if (!division.IsActive) { IsDivisionAssociatedWithContract(division); } DivisionVO divisionExist = divisionDAL.GetDivisionByName(division.DivisionName, division.CompanyId); //Check whether division already exist or not if (divisionExist != null && division.DivisionId != divisionExist.DivisionId) { throw new ApplicationException(Constants.DIVISION_ALREADY_EXIST); } else { divisionDAL.SaveDivision(division); } } }
/// <summary> /// Check whether division is associated with contract /// </summary> /// <param name="division">division value object</param> /// <returns></returns> private void IsDivisionAssociatedWithContract(DivisionVO division) { int count = divisionDAL.IsDivisionAssociatedWithContract(division); if (count > 0) { throw new ApplicationException(Constants.DIVISION_CANNOT_BE_INACTIVE); } }
/// <summary> /// Check whether division is associated with company /// </summary> /// <param name="divisionVO">division Value object</param> private void IsDivisionActivatedInCompany(DivisionVO divisionVO) { DivisionVO division = divisionDAL.IsDivisionActivatedInCompany(divisionVO); if (division != null) { throw new ApplicationException(String.Format(Constants.DIVISION_ALREADY_ACTIVE_IN_COMPANY, division.DivisionName, division.CompanyName)); } }
/// <summary> /// Gets division by name /// </summary> /// <param name="divisionName"> division name</param> /// <returns></returns> public DivisionVO GetDivisionByName(string divisionName, int companyId) { Division division = mdbDataContext.Divisions .Where(div => div.DivisionName.Equals(divisionName) && div.CompanyID == companyId).SingleOrDefault(); DivisionVO selectedDivision = null; if (division != null) { selectedDivision = new DivisionVO(division); } return(selectedDivision); }
/// <summary> /// Transpose division value object to model object /// </summary> public Division(DivisionVO divisionVO) { ID = divisionVO.DivisionId; CompanyId = divisionVO.CompanyId; DivisionId = divisionVO.DivisionId; DivisionName = divisionVO.DivisionName; IsActive = divisionVO.IsActive; DocumentTypeCR = divisionVO.DocumentTypeCR; DocumentTypeIN = divisionVO.DocumentTypeIN; DocumentTypeDepositInvoices = divisionVO.DocumentTypeDepositInvoices; DocumentTypeDepositCredits = divisionVO.DocumentTypeDepositCredits; DefaultInvoiceInAdvance = divisionVO.DefaultInvoiceInAdvance; CompanyName = divisionVO.CompanyName; }
/// <summary> /// Check whether division is associated with company /// </summary> /// <param name="divisionVO">division Value Object</param> /// <returns></returns> public DivisionVO IsDivisionActivatedInCompany(DivisionVO divisionVO) { Division division = mdbDataContext.Divisions.Where(div => div.DivisionName.Equals(divisionVO.DivisionName) && (div.IsActive == true) && div.CompanyID != divisionVO.CompanyId).SingleOrDefault(); DivisionVO selectedDivision = null; if (division != null) { selectedDivision = new DivisionVO(division); //set the company name OACompany company = mdbDataContext.OACompanies.SingleOrDefault(oac => oac.ID == selectedDivision.CompanyId); selectedDivision.CompanyName = company.CompanyName; } return(selectedDivision); }
/// <summary> /// Gets Divisiondetails by DivisionId /// </summary> /// <param name="DivisionId">Division Id</param> /// <returns>Division details</returns> public DivisionVO GetDivisionById(int DivisionId = 0) { Division division = mdbDataContext.Divisions.SingleOrDefault(c => c.ID == DivisionId); DivisionVO divisionVO = null; if (division != null) { divisionVO = new DivisionVO(division); //set the company name OACompany company = mdbDataContext.OACompanies .SingleOrDefault(oac => oac.ID == division.CompanyID); divisionVO.CompanyName = company.CompanyName; } return(divisionVO); }
/// <summary> /// Transpose Model object to Value Object /// </summary> /// <param name="userId">user Id</param> /// <returns>Value object</returns> public DivisionVO Transpose(int?userId) { DivisionVO divisionVO = new DivisionVO(); divisionVO.DivisionId = this.ID; divisionVO.CompanyId = this.CompanyId; divisionVO.DivisionName = this.DivisionName; divisionVO.CompanyName = this.CompanyName; divisionVO.IsActive = this.IsActive; divisionVO.DocumentTypeCR = this.DocumentTypeCR; divisionVO.DocumentTypeIN = this.DocumentTypeIN; divisionVO.DocumentTypeDepositInvoices = this.DocumentTypeDepositInvoices; divisionVO.DocumentTypeDepositCredits = this.DocumentTypeDepositCredits; divisionVO.DefaultInvoiceInAdvance = this.DefaultInvoiceInAdvance; divisionVO.CreatedByUserId = userId; divisionVO.LastUpdatedByUserId = userId; return(divisionVO); }
/// <summary> /// Save the division /// </summary> /// <param name="division">Value Object division</param> public void SaveDivision(DivisionVO division) { if (division.DivisionId == 0) { //Insert New Record Division newDivision = new Division(); newDivision.DivisionName = division.DivisionName; newDivision.CompanyID = division.CompanyId; newDivision.IsActive = division.IsActive; newDivision.DocumentTypeCR = division.DocumentTypeCR; newDivision.DocumentTypeIN = division.DocumentTypeIN; newDivision.DepositDocumentTypeIN = division.DocumentTypeDepositInvoices; newDivision.DepositDocumentTypeCR = division.DocumentTypeDepositCredits; newDivision.DefaultInvoiceInAdvanced = division.DefaultInvoiceInAdvance; //newDivision.ID = division.DivisionId; newDivision.CreationDate = DateTime.Now; newDivision.CreatedBy = division.CreatedByUserId; mdbDataContext.Divisions.InsertOnSubmit(newDivision); mdbDataContext.SubmitChanges(); } else { //Update Existing Record Division selectedDivision = mdbDataContext.Divisions.SingleOrDefault(c => c.ID == division.DivisionId); selectedDivision.DivisionName = division.DivisionName; selectedDivision.CompanyID = division.CompanyId; selectedDivision.IsActive = division.IsActive; selectedDivision.DocumentTypeCR = division.DocumentTypeCR; selectedDivision.DocumentTypeIN = division.DocumentTypeIN; selectedDivision.DepositDocumentTypeIN = division.DocumentTypeDepositInvoices; selectedDivision.DepositDocumentTypeCR = division.DocumentTypeDepositCredits; selectedDivision.DefaultInvoiceInAdvanced = division.DefaultInvoiceInAdvance; selectedDivision.LastUpdatedDate = DateTime.Now; selectedDivision.LastUpdatedBy = division.LastUpdatedByUserId; mdbDataContext.SubmitChanges(); } }
/// <summary> /// Save the Division details. /// </summary> /// <param name="model">The division model</param> /// <returns></returns> public ActionResult DivisionSave(MODEL.Division model) { try { DivisionService divisionService = new DivisionService(); List <MODEL.Division> Division = new List <MODEL.Division>(); if (ModelState.IsValid) { //Get user id int?userId = Session.GetUserId(); //DivisionVO divisionVO = new DivisionVO(model, userId.Value); DivisionVO divisionVO = model.Transpose(userId); divisionService.SaveDivision(divisionVO); List <DivisionVO> divisionVOlist = divisionService.GetDivisionListByCompany(model.CompanyId); foreach (DivisionVO division in divisionVOlist) { Division.Add(new MODEL.Division(division)); } return(new HttpStatusCodeResult(200)); } else { throw new ApplicationException(String.Format(Constants.CANNOT_SAVE, Constants.DIVISION)); } } catch (ApplicationException e) { return(new HttpStatusCodeAndErrorResult(500, e.Message)); } }
/// <summary> /// Check whether division is associated with contract /// </summary> /// <param name="division">division value object</param> /// <returns></returns> public int IsDivisionAssociatedWithContract(DivisionVO division) { int count = mdbDataContext.Contracts.Where(c => c.DivisionID == division.DivisionId && !c.IsDeleted).Count(); return(count); }