Ejemplo n.º 1
0
        public JsonResult GetSupplierList()
        {
            PurchaseInvoiceViewModel purchaseInvoiceViewModel = new PurchaseInvoiceViewModel();

            purchaseInvoiceViewModel.SupplierList = _iDropDownService.GetSupplierList().ToList();
            return(Json(new { SupplierList = purchaseInvoiceViewModel.SupplierList }));
        }
 public void BuildSelectLists(PurchaseInvoiceViewModel purchaseInvoiceViewModel)
 {
     purchaseInvoiceViewModel.PriceTermDropDown = priceTermSelectListBuilder.BuildSelectListItemsForPriceTerms(priceTermRepository.GetAllPriceTerms());
     purchaseInvoiceViewModel.PaymentTermDropDown = paymentTermSelectListBuilder.BuildSelectListItemsForPaymentTerms(paymentTermRepository.GetAllPaymentTerms());
     purchaseInvoiceViewModel.ApproverDropDown = aspNetUserSelectListBuilder.BuildSelectListItemsForAspNetUsers(aspNetUserRepository.GetAllAspNetUsers(), purchaseInvoiceViewModel.UserID);
     purchaseInvoiceViewModel.PreparedPersonDropDown = aspNetUserSelectListBuilder.BuildSelectListItemsForAspNetUsers(aspNetUserRepository.GetAllAspNetUsers(), purchaseInvoiceViewModel.UserID);
 }
 public void BuildSelectLists(PurchaseInvoiceViewModel purchaseInvoiceViewModel)
 {
     purchaseInvoiceViewModel.PriceTermDropDown      = priceTermSelectListBuilder.BuildSelectListItemsForPriceTerms(priceTermRepository.GetAllPriceTerms());
     purchaseInvoiceViewModel.PaymentTermDropDown    = paymentTermSelectListBuilder.BuildSelectListItemsForPaymentTerms(paymentTermRepository.GetAllPaymentTerms());
     purchaseInvoiceViewModel.ApproverDropDown       = aspNetUserSelectListBuilder.BuildSelectListItemsForAspNetUsers(aspNetUserRepository.GetAllAspNetUsers(), purchaseInvoiceViewModel.UserID);
     purchaseInvoiceViewModel.PreparedPersonDropDown = aspNetUserSelectListBuilder.BuildSelectListItemsForAspNetUsers(aspNetUserRepository.GetAllAspNetUsers(), purchaseInvoiceViewModel.UserID);
 }
        /// <summary>
        /// Delete an entity.
        /// </summary>
        /// <param name="model"></param>
        public void Delete(PurchaseInvoiceViewModel model)
        {
            var entity = model.ToEntity();

            this._PurchaseInvoicesRepository.Delete(entity);

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

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

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

            entity.AdditionalExpensesAmount = model.AdditionalExpensesAmount;
            entity.Code                  = model.Code;
            entity.Date                  = model.Date;
            entity.DiscountAmount        = model.DiscountAmount;
            entity.HasAdditionalExpenses = model.HasAdditionalExpenses;
            entity.HasDiscount           = model.HasDiscount;
            entity.InventoryId           = model.InventoryId;
            entity.NetAmount             = model.NetAmount;
            entity.PurchaseInvoiceTypeId = model.PurchaseInvoiceTypeId;
            entity.SafeId                = model.SafeId;
            entity.VendorId              = model.VendorId;
            entity.VendorInvoiceCode     = model.VendorInvoiceCode;

            //var entity = model.ToEntity();

            if (entity.FirstModifiedByUserId.HasValue == false)
            {
                entity.FirstModifiedByUserId = this._currentUserService.CurrentUserId;
            }
            else
            {
                entity.LastModifiedByUserId = this._currentUserService.CurrentUserId;
            }

            entity = this._PurchaseInvoicesRepository.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 PurchaseInvoiceViewModel Add(PurchaseInvoiceViewModel model)
        {
            if (model.Journal == null)
            {
                this.ThrowExceptionIfExist(model);
                this._closedMonthsService.ValidateIfMonthIsClosed(model.Date);

                var entity = model.ToEntity();
                entity.CreatedByUserId = this._currentUserService.CurrentUserId;
                DateTime now = DateTime.Now;

                if (model.PurchaseInvoiceCostCenters != null)
                {
                    foreach (var item in entity.PurchaseInvoiceCostCenters)
                    {
                        item.CreationDate    = now;
                        item.PurchaseInvoice = entity;
                    }
                }

                if (model.Products != null)
                {
                    foreach (var item in entity.Products)
                    {
                        item.CreationDate    = now;
                        item.PurchaseInvoice = entity;
                        item.InventoryId     = entity.InventoryId;
                    }
                }

                entity = this._PurchaseInvoicesRepository.Add(entity);

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

                //this._journalPostingsService.TryPostAutomatic(entity.Id, MovementType.PurchaseInvoice);

                model = entity.ToModel();

                model.Journal = this._journalPostingsService.Post(model.Id, MovementType.PurchaseInvoice);

                model.Journal.Date = model.Date;

                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._PurchaseInvoicesRepository.Get(model.Id);
                entity.IsPosted       = false;
                entity.PostingDate    = DateTime.Now;
                entity.PostedByUserId = this._currentUserService.CurrentUserId;
                entity = this._PurchaseInvoicesRepository.Update(entity);
                this._unitOfWork.Commit();
            }
            else if (model.Journal.PostingStatus == PostingStatus.Rejected)
            {
            }

            return(model);
        }