コード例 #1
0
        public IdCollectionViewModel <long> Reject(IdCollectionViewModel <long> model)
        {
            ApprovedRejectedCollectionViewModel viewModel = new ApprovedRejectedCollectionViewModel();

            viewModel.RejectedCollection = model.Collection;
            this.ApproveAndRejectCollection(viewModel);

            return(model);
        }
コード例 #2
0
        public ApprovedRejectedCollectionViewModel ApproveAndRejectCollection(ApprovedRejectedCollectionViewModel model)
        {
            bool needCommit = false;

            if (model?.ApprovedCollection?.Count > 0)
            {
                foreach (var item in model.ApprovedCollection)
                {
                    var entity = this._JournalsRepository.Get(item);

                    if (entity.PostingStatus != PostingStatus.Approved)
                    {
                        entity.PostingStatus = PostingStatus.Approved;
                        this._JournalsRepository.Update(entity);

                        this.UpdateCurrentValueOfAccountChartTreeByJournal(journalId: entity.Id);
                        if (needCommit == false)
                        {
                            needCommit = true;
                        }
                    }
                }
            }

            if (model?.RejectedCollection?.Count > 0)
            {
                foreach (var item in model.RejectedCollection)
                {
                    var transCollection = this._transactionsRepository.Get(null).Where(x => x.JournalId == item);
                    if (transCollection.Count() > 0)
                    {
                        this._transactionsRepository.Delete(transCollection);
                    }

                    var entity = this._JournalsRepository.Get(item);
                    switch (entity.MovementType)
                    {
                    case MovementType.BankMovement:
                    {
                        var movement = this._bankMovementsRepository.Get(entity.ObjectId.Value);
                        movement.IsPosted       = false;
                        movement.PostedByUserId = null;
                        movement.PostingDate    = null;
                        this._bankMovementsRepository.Update(movement);
                    }
                    break;

                    case MovementType.PaymentMovement:
                    {
                        var movement = this._paymentMovmentsRepository.Get(entity.ObjectId.Value);
                        movement.IsPosted       = false;
                        movement.PostedByUserId = null;
                        movement.PostingDate    = null;
                        this._paymentMovmentsRepository.Update(movement);
                    }
                    break;

                    case MovementType.PurchaseInvoice:
                    {
                        var movement = this._purchaseInvoicesRepository.Get(entity.ObjectId.Value);
                        movement.IsPosted       = false;
                        movement.PostedByUserId = null;
                        movement.PostingDate    = null;
                        this._purchaseInvoicesRepository.Update(movement);
                    }
                    break;

                    case MovementType.PurchaseRebate:
                    {
                        var movement = this._purchaseRebatesRepository.Get(entity.ObjectId.Value);
                        movement.IsPosted       = false;
                        movement.PostedByUserId = null;
                        movement.PostingDate    = null;
                        this._purchaseRebatesRepository.Update(movement);
                    }
                    break;

                    case MovementType.ReceiptsMovement:
                    {
                        var movement = this._donationsRepository.Get(entity.ObjectId.Value);
                        movement.IsPosted       = false;
                        movement.PostedByUserId = null;
                        movement.PostingDate    = null;
                        this._donationsRepository.Update(movement);
                    }
                    break;

                    case MovementType.StoreMovement:
                    {
                    }
                    break;

                    case MovementType.SalesInvoice:
                    {
                    }
                    break;

                    case MovementType.SalesRebate:
                    {
                    }
                    break;

                    default:
                        break;
                    }

                    var journlChileds = this._JournalsRepository.Get(null).Where(x => x.ParentKeyJournalId == entity.Id);
                    if (journlChileds.Count() > 0)
                    {
                        this._JournalsRepository.Delete(journlChileds);
                    }
                    this._JournalsRepository.Delete(entity);

                    if (needCommit == false)
                    {
                        needCommit = true;
                    }
                }
            }

            if (needCommit)
            {
                this._unitOfWork.Commit();
            }

            return(model);
        }