public InventoryMovementViewModel MapToViewModel(InventoryMovement model) { var viewModel = new InventoryMovementViewModel() { no = model.No, date = model.Date, referenceNo = model.ReferenceNo, referenceType = model.ReferenceType, productId = model.ProductId, productCode = model.ProductCode, productName = model.ProductName, uomId = model.UomId, uomUnit = model.UomUnit, storageId = model.StorageId, storageCode = model.StorageCode, storageName = model.StorageName, stockPlanning = model.StockPlanning, before = model.Before, quantity = model.Quantity, after = model.After, remark = model.Remark, type = model.Type, _LastModifiedUtc = model._LastModifiedUtc }; PropertyCopier <InventoryMovement, InventoryMovementViewModel> .Copy(model, viewModel); return(viewModel); }
public InventoryMovement MapToModel(InventoryMovementViewModel viewModel) { var model = new InventoryMovement() { No = viewModel.no, Date = viewModel.date, ReferenceNo = viewModel.referenceNo, ReferenceType = viewModel.referenceType, ProductId = viewModel.productId, ProductCode = viewModel.productCode, ProductName = viewModel.productName, UomId = viewModel.uomId, UomUnit = viewModel.uomUnit, StorageId = viewModel.storageId, StorageCode = viewModel.storageCode, StorageName = viewModel.storageName, StockPlanning = viewModel.stockPlanning, Before = viewModel.before, Quantity = viewModel.quantity, After = viewModel.after, Remark = viewModel.remark, Type = viewModel.type }; PropertyCopier <InventoryMovementViewModel, InventoryMovement> .Copy(viewModel, model); return(model); }
/// <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> /// Throw an exception if name is exist. /// </summary> /// <param name="model">InventoryMovement view model</param> public void ThrowExceptionIfExist(InventoryMovementViewModel model) { ConditionFilter <InventoryMovement, long> condition = new ConditionFilter <InventoryMovement, long> { Query = (entity => entity.Code == model.Code && entity.Id != model.Id) }; var existEntity = this._InventoryMovementsRepository.Get(condition).FirstOrDefault(); if (existEntity != null) { throw new ItemAlreadyExistException(); } }
/// <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); }