Example #1
0
        /// <summary>
        /// Delete an entity.
        /// </summary>
        /// <param name="model"></param>
        public void Delete(BankMovementViewModel model)
        {
            var entity = model.ToEntity();

            this._BankMovementsRepository.Delete(entity);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion
        }
Example #2
0
        /// <summary>
        /// Throw an exception if name is exist.
        /// </summary>
        /// <param name="model">BankMovement view model</param>
        public void ThrowExceptionIfExist(BankMovementViewModel model)
        {
            //ConditionFilter<BankMovement, long> condition = new ConditionFilter<BankMovement, long>
            //{
            //	Query = (entity =>
            //		entity.Code == model.Code &&
            //		entity.Id != model.Id)
            //};
            //var existEntity = this._BankMovementsRepository.Get(condition).FirstOrDefault();

            //if (existEntity != null)
            //	throw new ItemAlreadyExistException();
        }
Example #3
0
        /// <summary>
        /// Update an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public BankMovementViewModel Update(BankMovementViewModel model)
        {
            this.ThrowExceptionIfExist(model);
            this._closedMonthsService.ValidateIfMonthIsClosed(model.Date.Value);

            var entity = this._BankMovementsRepository.Get(model.Id);

            entity.AccountChartId = model.AccountChartId;
            entity.Amount         = model.Amount;
            entity.BankId         = model.BankId;
            entity.Code           = model.Code;
            entity.Date           = model.Date;
            entity.JournalTypeId  = model.JournalTypeId;
            entity.SafeId         = model.SafeId;
            entity.ToBankId       = model.ToBankId;

            var ar = entity.ChildTranslatedBankMovements.FirstOrDefault(e => e.Language == Framework.Common.Enums.Language.Arabic);
            var en = entity.ChildTranslatedBankMovements.FirstOrDefault(e => e.Language == Framework.Common.Enums.Language.English);

            ar.Description = model.DescriptionAr;
            en.Description = model.DescriptionEn;

            var userId = this._currentUserService.CurrentUserId;

            if (entity.FirstModifiedByUserId == null)
            {
                entity.FirstModifiedByUserId = userId;
            }
            else
            {
                entity.LastModifiedByUserId = userId;
            }

            entity = this._BankMovementsRepository.Update(entity);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            model = entity.ToModel();
            return(model);
        }
Example #4
0
        /// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public BankMovementViewModel Add(BankMovementViewModel model)
        {
            if (model.Journal == null)
            {
                this.ThrowExceptionIfExist(model);
                this._closedMonthsService.ValidateIfMonthIsClosed(model.Date.Value);

                var entity = model.ToEntity();

                if (entity.JournalTypeId == (long)JournalTypeEnum.PaymentPapers)
                {
                    IList <long> list = new List <long>();
                    foreach (var item in model.Cheques)
                    {
                        ClosedCheque closedCheque = new ClosedCheque
                        {
                            BankMovement = entity,
                            DonationId   = item.Id
                        };
                        this._closedChequeRepository.Add(closedCheque);
                        var donationEntity = this._donationsRepository.Get(item.Id);

                        //TODO:
                        //if (donationEntity.IsPosted)
                        //{
                        donationEntity.Exchangeable = true;
                        list.Add(entity.Id);
                        //}



                        donationEntity = this._donationsRepository.Update(donationEntity);
                    }

                    this._journalPostingsService.PostChecksUnderCollectionOfReceiptsMovement(list);
                }

                entity.CreatedByUserId = this._currentUserService.CurrentUserId;
                DateTime now = DateTime.Now;
                var      ar  = new BankMovement
                {
                    Description  = model.DescriptionAr,
                    Language     = Language.Arabic,
                    CreationDate = now
                };
                var en = new BankMovement
                {
                    Description  = model.DescriptionEn,
                    Language     = Language.English,
                    CreationDate = now
                };

                entity.ChildTranslatedBankMovements.Add(ar);
                entity.ChildTranslatedBankMovements.Add(en);



                entity = this._BankMovementsRepository.Add(entity);



                #region Commit Changes
                this._unitOfWork.Commit();
                #endregion

                //entity.Code = entity.Id.ToString();
                //#region Commit Changes
                //this._unitOfWork.Commit();
                //#endregion

                //this._journalPostingsService.TryPostAutomatic(entity.Id, MovementType.BankMovement);
                if (entity.JournalTypeId == (long)JournalTypeEnum.DirectDonations &&
                    model.CostCenters != null &&
                    model.CostCenters.Any())
                {
                    foreach (var item in model.CostCenters)
                    {
                        var bankMovementCosCenter = new BankMovementCostCenters()
                        {
                            BankMovementId = entity.Id,
                            CostCenterId   = item.Id,
                            Amount         = (double)item.AssignValue
                        };

                        _bankMovementCostCentersRepository.Add(bankMovementCosCenter);
                        #region Commit Changes
                        this._unitOfWork.Commit();
                        #endregion
                    }
                }

                model         = entity.ToModel();
                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 if (model.Journal.PostingStatus == PostingStatus.Approved)
            {
                this._journalsService.AddJournal(model.Journal, PostingStatus.NeedAprove);

                var entity = this._BankMovementsRepository.Get(model.Id);
                entity.IsPosted       = false;
                entity.PostingDate    = DateTime.Now;
                entity.PostedByUserId = this._currentUserService.CurrentUserId;
                entity = this._BankMovementsRepository.Update(entity);
                this._unitOfWork.Commit();
            }
            else if (model.Journal.PostingStatus == PostingStatus.Rejected)
            {
            }

            return(model);
        }