Пример #1
0
        /// <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
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }