/// <summary> /// Delete an entity. /// </summary> /// <param name="model"></param> public void Delete(InventoryMovementViewModel model) { var entity = model.ToEntity(); this._InventoryMovementsRepository.Delete(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion }
/// <summary> /// Update an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public InventoryMovementViewModel Update(InventoryMovementViewModel model) { this.ThrowExceptionIfExist(model); this._closedMonthsService.ValidateIfMonthIsClosed(model.Date.Value); var entity = model.ToEntity(); entity = this._InventoryMovementsRepository.Update(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); return(model); }
/// <summary> /// Add an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public InventoryMovementViewModel Add(InventoryMovementViewModel model) { if (model.Journal == null) { this.ThrowExceptionIfExist(model); this._closedMonthsService.ValidateIfMonthIsClosed(model.Date.Value); var entity = model.ToEntity(); entity = this._InventoryMovementsRepository.Add(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); if (model.InventoryMovementTypeId == (int)InventoryMovementTypeEnum.InventoryOut) { model.Journal = this._journalPostingsService.Post(model.Id, MovementType.BankMovement); model.Journal.Date = model.Date.Value; foreach (var Journal in model.Journal.journalDetails) { Journal.AccountFullCode = this._accountChartsRepository.Get().FirstOrDefault(x => x.Id == Journal.AccountId).FullCode; } //model.Journal.DescriptionAr = model.DescriptionAr; //model.Journal.DescriptionEn = model.DescriptionEn; } else { this._journalPostingsService.TryPostAutomatic(entity.Id, MovementType.StoreMovement); } } else if (model.Journal.PostingStatus == PostingStatus.Approved) { model.Journal.PostingStatus = PostingStatus.NeedAprove; Journal journal = model.Journal.ToEntity(); journal = this._journalsRepository.Add(journal); Journal journalAr = new Journal { Description = model.Journal.DescriptionAr, Language = Language.Arabic, ParentKeyJournal = journal }; journalAr = this._journalsRepository.Add(journalAr); journal.ChildTranslatedJournals.Add(journalAr); Journal journalEn = new Journal { Description = model.Journal.DescriptionEn, Language = Language.English, ParentKeyJournal = journal }; journalEn = this._journalsRepository.Add(journalEn); journal.ChildTranslatedJournals.Add(journalEn); var entity = this._InventoryMovementsRepository.Get(model.Id); entity.IsPosted = false; entity.PostingDate = DateTime.Now; entity.PostedByUserId = this._currentUserService.CurrentUserId; entity = this._InventoryMovementsRepository.Update(entity); this._unitOfWork.Commit(); } else if (model.Journal.PostingStatus == PostingStatus.Rejected) { } return(model); }