public IList <CashMutation> CreateCashMutationForCashBankMutation(CashBankMutation cashBankMutation, CashBank sourceCashBank, CashBank targetCashBank) { IList <CashMutation> results = new List <CashMutation>(); CashMutation sourceCashMutation = new CashMutation(); sourceCashMutation.CashBankId = sourceCashBank.Id; sourceCashMutation.Amount = Math.Abs(cashBankMutation.Amount); sourceCashMutation.MutationDate = (DateTime)cashBankMutation.ConfirmationDate.GetValueOrDefault(); sourceCashMutation.SourceDocumentType = MasterConstant.SourceDocumentType.CashBankMutation; sourceCashMutation.SourceDocumentId = cashBankMutation.Id; sourceCashMutation.SourceDocumentCode = cashBankMutation.Code; sourceCashMutation.Status = MasterConstant.MutationStatus.Deduction; _repository.CreateObject(sourceCashMutation); CashMutation targetCashMutation = new CashMutation(); targetCashMutation.CashBankId = targetCashBank.Id; targetCashMutation.Amount = Math.Abs(cashBankMutation.Amount); targetCashMutation.MutationDate = (DateTime)cashBankMutation.ConfirmationDate.GetValueOrDefault(); targetCashMutation.SourceDocumentType = MasterConstant.SourceDocumentType.CashBankMutation; targetCashMutation.SourceDocumentId = cashBankMutation.Id; targetCashMutation.SourceDocumentCode = cashBankMutation.Code; targetCashMutation.Status = MasterConstant.MutationStatus.Addition; _repository.CreateObject(targetCashMutation); results.Add(sourceCashMutation); results.Add(targetCashMutation); return(results); }
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 PaymentVoucher ReconcileObject(PaymentVoucher paymentVoucher, DateTime ReconciliationDate, IPaymentVoucherDetailService _paymentVoucherDetailService, ICashMutationService _cashMutationService, ICashBankService _cashBankService, IPayableService _payableService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { paymentVoucher.ReconciliationDate = ReconciliationDate; if (_validator.ValidReconcileObject(paymentVoucher, _closingService)) { _repository.ReconcileObject(paymentVoucher); CashBank cashBank = _cashBankService.GetObjectById(paymentVoucher.CashBankId); CashMutation cashMutation = _cashMutationService.CreateCashMutationForPaymentVoucher(paymentVoucher, cashBank); _cashMutationService.CashMutateObject(cashMutation, _cashBankService); IList <PaymentVoucherDetail> paymentVoucherDetails = _paymentVoucherDetailService.GetObjectsByPaymentVoucherId(paymentVoucher.Id); foreach (var paymentVoucherDetail in paymentVoucherDetails) { Payable payable = _payableService.GetObjectById(paymentVoucherDetail.PayableId); payable.PendingClearanceAmount -= paymentVoucherDetail.Amount; if (payable.PendingClearanceAmount == 0 && payable.RemainingAmount == 0) { payable.IsCompleted = true; payable.CompletionDate = DateTime.Now; } _payableService.UpdateObject(payable); } } return(paymentVoucher); }
public PaymentVoucher ConfirmObject(PaymentVoucher paymentVoucher, DateTime ConfirmationDate, IPaymentVoucherDetailService _paymentVoucherDetailService, ICashBankService _cashBankService, IPayableService _payableService, ICashMutationService _cashMutationService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { paymentVoucher.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(paymentVoucher, this, _paymentVoucherDetailService, _cashBankService, _payableService, _closingService)) { IList <PaymentVoucherDetail> details = _paymentVoucherDetailService.GetObjectsByPaymentVoucherId(paymentVoucher.Id); foreach (var detail in details) { detail.Errors = new Dictionary <string, string>(); _paymentVoucherDetailService.ConfirmObject(detail, ConfirmationDate, this, _payableService); } _repository.ConfirmObject(paymentVoucher); if (!paymentVoucher.IsGBCH) { CashBank cashBank = _cashBankService.GetObjectById(paymentVoucher.CashBankId); CashMutation cashMutation = _cashMutationService.CreateCashMutationForPaymentVoucher(paymentVoucher, cashBank); _cashMutationService.CashMutateObject(cashMutation, _cashBankService); _generalLedgerJournalService.CreateConfirmationJournalForPaymentVoucher(paymentVoucher, cashBank, _accountService); } } return(paymentVoucher); }
public CashMutation VNonNegativeNorZeroAmount(CashMutation cashMutation) { if (cashMutation.Amount <= 0) { cashMutation.Errors.Add("Amout", "Tidak boleh negatif atau 0"); } return(cashMutation); }
public void ReverseCashMutateObject(CashMutation cashMutation, ICashBankService _cashBankService) { decimal Amount = (cashMutation.Status == MasterConstant.MutationStatus.Deduction) ? cashMutation.Amount : (-1) * cashMutation.Amount; CashBank cashBank = _cashBankService.GetObjectById(cashMutation.CashBankId); cashBank.Amount += Amount; _cashBankService.UpdateObject(cashBank); }
public CashMutation VStatus(CashMutation cashMutation) { if (!cashMutation.Status.Equals(Constant.MutationStatus.Addition) && !cashMutation.Status.Equals(Constant.MutationStatus.Deduction)) { cashMutation.Errors.Add("Status", "Harus merupakan bagian dari Constant.CashMutationStatus"); } return(cashMutation); }
public CashMutation VHasCashBank(CashMutation cashMutation, ICashBankService _cashBankService) { CashBank cashBank = _cashBankService.GetObjectById(cashMutation.CashBankId); if (cashBank == null) { cashMutation.Errors.Add("CashBankId", "Tidak terasosiasi dengan cashBank"); } return(cashMutation); }
public CashMutation VSourceDocumentType(CashMutation cashMutation) { if (!cashMutation.SourceDocumentType.Equals(Constant.SourceDocumentType.CashBankAdjustment) && !cashMutation.SourceDocumentType.Equals(Constant.SourceDocumentType.PaymentVoucher) && !cashMutation.SourceDocumentType.Equals(Constant.SourceDocumentType.ReceiptVoucher)) { cashMutation.Errors.Add("SourceDocumentType", "Harus merupakan bagian dari Constant.SourceDocumentType"); } return(cashMutation); }
public CashMutation CreateCashMutationForCashBankAdjustment(CashBankAdjustment cashBankAdjustment, CashBank cashBank) { CashMutation cashMutation = new CashMutation(); cashMutation.CashBankId = cashBank.Id; cashMutation.Amount = Math.Abs(cashBankAdjustment.Amount); cashMutation.MutationDate = (DateTime)cashBankAdjustment.ConfirmationDate; cashMutation.SourceDocumentType = Constant.SourceDocumentType.CashBankAdjustment; cashMutation.SourceDocumentId = cashBankAdjustment.Id; cashMutation.Status = (cashBankAdjustment.Amount >= 0) ? Constant.MutationStatus.Addition : Constant.MutationStatus.Deduction; return(_repository.CreateObject(cashMutation)); }
public CashMutation CreateCashMutationForReceiptVoucher(ReceiptVoucher receiptVoucher, CashBank cashBank) { CashMutation cashMutation = new CashMutation(); cashMutation.CashBankId = cashBank.Id; cashMutation.Amount = Math.Abs(receiptVoucher.TotalAmount); cashMutation.MutationDate = receiptVoucher.IsGBCH ? (DateTime)receiptVoucher.ReconciliationDate : (DateTime)receiptVoucher.ConfirmationDate; cashMutation.SourceDocumentType = Constant.SourceDocumentType.ReceiptVoucher; cashMutation.SourceDocumentId = receiptVoucher.Id; cashMutation.Status = Constant.MutationStatus.Addition; return(_repository.CreateObject(cashMutation)); }
public CashMutation CreateCashMutationForPaymentVoucher(PaymentVoucher paymentVoucher, CashBank cashBank) { CashMutation cashMutation = new CashMutation(); cashMutation.CashBankId = cashBank.Id; cashMutation.Amount = Math.Abs(paymentVoucher.TotalAmount); cashMutation.MutationDate = paymentVoucher.IsGBCH ? (DateTime)paymentVoucher.ReconciliationDate.GetValueOrDefault() : (DateTime)paymentVoucher.ConfirmationDate.GetValueOrDefault(); cashMutation.SourceDocumentType = MasterConstant.SourceDocumentType.PaymentVoucher; cashMutation.SourceDocumentId = paymentVoucher.Id; cashMutation.SourceDocumentCode = paymentVoucher.Code; cashMutation.Status = MasterConstant.MutationStatus.Deduction; return(_repository.CreateObject(cashMutation)); }
public CashBankAdjustment ConfirmObject(CashBankAdjustment cashBankAdjustment, DateTime ConfirmationDate, ICashMutationService _cashMutationService, ICashBankService _cashBankService) { cashBankAdjustment.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(cashBankAdjustment, _cashBankService)) { CashBank cashBank = _cashBankService.GetObjectById(cashBankAdjustment.CashBankId); CashMutation cashMutation = _cashMutationService.CreateCashMutationForCashBankAdjustment(cashBankAdjustment, cashBank); // cashBank.Amount += cashBankAdjustment.Amount; _cashMutationService.CashMutateObject(cashMutation, _cashBankService); _repository.ConfirmObject(cashBankAdjustment); } return(cashBankAdjustment); }
public string PrintError(CashMutation obj) { string erroroutput = ""; KeyValuePair <string, string> first = obj.Errors.ElementAt(0); erroroutput += first.Key + "," + first.Value; foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1)) { erroroutput += Environment.NewLine; erroroutput += pair.Key + "," + pair.Value; } return(erroroutput); }
public CashMutation VCreateObject(CashMutation cashMutation, ICashBankService _cashBankService) { VHasCashBank(cashMutation, _cashBankService); if (!isValid(cashMutation)) { return(cashMutation); } VStatus(cashMutation); if (!isValid(cashMutation)) { return(cashMutation); } VSourceDocumentType(cashMutation); if (!isValid(cashMutation)) { return(cashMutation); } VNonNegativeNorZeroAmount(cashMutation); return(cashMutation); }
public ReceiptVoucher ConfirmObject(ReceiptVoucher receiptVoucher, DateTime ConfirmationDate, IReceiptVoucherDetailService _receiptVoucherDetailService, ICashBankService _cashBankService, IReceivableService _receivableService, ICashMutationService _cashMutationService) { receiptVoucher.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(receiptVoucher, this, _receiptVoucherDetailService, _cashBankService, _receivableService)) { IList <ReceiptVoucherDetail> details = _receiptVoucherDetailService.GetObjectsByReceiptVoucherId(receiptVoucher.Id); foreach (var detail in details) { detail.Errors = new Dictionary <string, string>(); _receiptVoucherDetailService.ConfirmObject(detail, ConfirmationDate, this, _receivableService); } _repository.ConfirmObject(receiptVoucher); if (!receiptVoucher.IsGBCH) { CashBank cashBank = _cashBankService.GetObjectById(receiptVoucher.CashBankId); CashMutation cashMutation = _cashMutationService.CreateCashMutationForReceiptVoucher(receiptVoucher, cashBank); _cashMutationService.CashMutateObject(cashMutation, _cashBankService); } } return(receiptVoucher); }
public bool isValid(CashMutation obj) { bool isValid = !obj.Errors.Any(); return(isValid); }
public bool ValidDeleteObject(CashMutation cashMutation) { cashMutation.Errors.Clear(); VDeleteObject(cashMutation); return(isValid(cashMutation)); }
public bool ValidCreateObject(CashMutation cashMutation, ICashBankService _cashBankService) { VCreateObject(cashMutation, _cashBankService); return(isValid(cashMutation)); }
public CashMutation VDeleteObject(CashMutation cashMutation) { return(cashMutation); }
public CashMutation CreateObject(CashMutation cashMutation, ICashBankService _cashBankService) { cashMutation.Errors = new Dictionary <String, String>(); return(_validator.ValidCreateObject(cashMutation, _cashBankService) ? _repository.CreateObject(cashMutation) : cashMutation); }
public CashMutation SoftDeleteObject(CashMutation cashMutation) { return(_validator.ValidDeleteObject(cashMutation) ? _repository.SoftDeleteObject(cashMutation) : cashMutation); }