public IdCollectionViewModel <long> Reject(IdCollectionViewModel <long> model) { ApprovedRejectedCollectionViewModel viewModel = new ApprovedRejectedCollectionViewModel(); viewModel.RejectedCollection = model.Collection; this.ApproveAndRejectCollection(viewModel); return(model); }
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); }