public ReceiptVoucher UnreconcileObject(ReceiptVoucher receiptVoucher, IReceiptVoucherDetailService _receiptVoucherDetailService, ICashMutationService _cashMutationService, ICashBankService _cashBankService, IReceivableService _receivableService) { if (_validator.ValidUnreconcileObject(receiptVoucher)) { _repository.UnreconcileObject(receiptVoucher); CashBank cashBank = _cashBankService.GetObjectById(receiptVoucher.CashBankId); IList <CashMutation> cashMutations = _cashMutationService.SoftDeleteCashMutationForReceiptVoucher(receiptVoucher, cashBank); foreach (var cashMutation in cashMutations) { _cashMutationService.ReverseCashMutateObject(cashMutation, _cashBankService); } IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id); foreach (var receiptVoucherDetail in receiptVoucherDetails) { Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); receivable.PendingClearanceAmount += receiptVoucherDetail.Amount; if (receivable.PendingClearanceAmount != 0 || receivable.RemainingAmount != 0) { receivable.IsCompleted = false; receivable.CompletionDate = null; } _receivableService.UpdateObject(receivable); } } return(receiptVoucher); }
public dynamic GetInfoDetail(int Id) { ReceiptVoucherDetail model = new ReceiptVoucherDetail(); try { model = _receiptVoucherDetailService.GetObjectById(Id); } catch (Exception ex) { LOG.Error("GetInfo", ex); Dictionary <string, string> Errors = new Dictionary <string, string>(); Errors.Add("Generic", "Error " + ex); return(Json(new { Errors }, JsonRequestBehavior.AllowGet)); } return(Json(new { model.Id, model.Code, model.ReceivableId, Receivable = _receivableService.GetObjectById(model.ReceivableId).Code, model.Amount, model.Description, model.Errors }, JsonRequestBehavior.AllowGet)); }
public ReceiptVoucher ReconcileObject(ReceiptVoucher receiptVoucher, DateTime ReconciliationDate, IReceiptVoucherDetailService _receiptVoucherDetailService, ICashMutationService _cashMutationService, ICashBankService _cashBankService, IReceivableService _receivableService) { receiptVoucher.ReconciliationDate = ReconciliationDate; if (_validator.ValidReconcileObject(receiptVoucher)) { _repository.ReconcileObject(receiptVoucher); CashBank cashBank = _cashBankService.GetObjectById(receiptVoucher.CashBankId); CashMutation cashMutation = _cashMutationService.CreateCashMutationForReceiptVoucher(receiptVoucher, cashBank); _cashMutationService.CashMutateObject(cashMutation, _cashBankService); IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id); foreach (var receiptVoucherDetail in receiptVoucherDetails) { Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); receivable.PendingClearanceAmount -= receiptVoucherDetail.Amount; if (receivable.PendingClearanceAmount == 0 && receivable.RemainingAmount == 0) { receivable.IsCompleted = true; receivable.CompletionDate = DateTime.Now; } _receivableService.UpdateObject(receivable); } } return(receiptVoucher); }
public ReceiptVoucherDetail VAmountLessOrEqualReceivable(ReceiptVoucherDetail receiptVoucherDetail, IReceivableService _receivableService) { Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); if (receiptVoucherDetail.Amount > receivable.Amount) { receiptVoucherDetail.Errors.Add("Amount", "Tidak boleh lebih dari receivable"); } return(receiptVoucherDetail); }
public ReceiptVoucherDetail VReceivableHasNotBeenCompleted(ReceiptVoucherDetail receiptVoucherDetail, IReceivableService _receivableService) { Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); if (receivable.IsCompleted) { receiptVoucherDetail.Errors.Add("Generic", "Receivable sudah complete"); } return(receiptVoucherDetail); }
public ReceiptVoucherDetail VHasReceivable(ReceiptVoucherDetail receiptVoucherDetail, IReceivableService _receivableService) { Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); if (receivable == null) { receiptVoucherDetail.Errors.Add("Receivable", "Tidak boleh tidak ada"); } return(receiptVoucherDetail); }
public ReceiptVoucherDetail VUniqueReceivableId(ReceiptVoucherDetail receiptVoucherDetail, IReceiptVoucherDetailService _receiptVoucherDetailService, IReceivableService _receivableService) { IList <ReceiptVoucherDetail> receiptVoucherDetails = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucherDetail.ReceiptVoucherId); Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); foreach (var detail in receiptVoucherDetails) { if (detail.ReceivableId == receiptVoucherDetail.ReceivableId && detail.Id != receiptVoucherDetail.Id) { receiptVoucherDetail.Errors.Add("Generic", "ReceivableId harus unique dibandingkan receipt voucher details di dalam satu receipt voucher"); return(receiptVoucherDetail); } } return(receiptVoucherDetail); }
public ReceiptVoucherDetail UnconfirmObject(ReceiptVoucherDetail receiptVoucherDetail, IReceiptVoucherService _receiptVoucherService, IReceivableService _receivableService) { if (_validator.ValidUnconfirmObject(receiptVoucherDetail)) { ReceiptVoucher receiptVoucher = _receiptVoucherService.GetObjectById(receiptVoucherDetail.ReceiptVoucherId); Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); if (receiptVoucher.IsGBCH) { receivable.PendingClearanceAmount -= receiptVoucherDetail.Amount; } receivable.RemainingAmount += receiptVoucherDetail.Amount; if (receivable.RemainingAmount != 0 || receivable.PendingClearanceAmount != 0) { receivable.IsCompleted = false; receivable.CompletionDate = null; } _receivableService.UpdateObject(receivable); receiptVoucherDetail = _repository.UnconfirmObject(receiptVoucherDetail); } return(receiptVoucherDetail); }
public ReceiptVoucherDetail ConfirmObject(ReceiptVoucherDetail receiptVoucherDetail, DateTime ConfirmationDate, IReceiptVoucherService _receiptVoucherService, IReceivableService _receivableService) { receiptVoucherDetail.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(receiptVoucherDetail, _receivableService)) { ReceiptVoucher receiptVoucher = _receiptVoucherService.GetObjectById(receiptVoucherDetail.ReceiptVoucherId); Receivable receivable = _receivableService.GetObjectById(receiptVoucherDetail.ReceivableId); if (receiptVoucher.IsGBCH) { receivable.PendingClearanceAmount += receiptVoucherDetail.Amount; } receivable.RemainingAmount -= receiptVoucherDetail.Amount; if (receivable.RemainingAmount == 0 && receivable.PendingClearanceAmount == 0) { receivable.IsCompleted = true; receivable.CompletionDate = DateTime.Now; } _receivableService.UpdateObject(receivable); receiptVoucherDetail = _repository.ConfirmObject(receiptVoucherDetail); } return(receiptVoucherDetail); }