private static PaymentSequence CreatNewSequence(PeriodYear year, PaymentSequence paymentSequence) { return(new PaymentSequence { SequenceNo = paymentSequence.SequenceNo, SequenceDescription = paymentSequence.SequenceDescription, Year = year.Year }); }
/// <summary> /// Check whether Selected Sequece is not already paid. /// </summary> /// <param name="periodYear"></param> /// <returns>True is already withdrawled otherwise false.</returns> private bool SequenceAlreadyPaid(PaymentSequence selectedSequence) { if (selectedSequence == null) { return(false); } var payments = _repository.Where(p => p.Year == selectedSequence.PeriodYear.Year); return(payments.Any(p => p.PaymentSequence.Id == selectedSequence.Id)); }
protected override void Initialize() { _currnetModel = new PaymentSequence(); int tempSeq = GenerateSequenceNo(); if (tempSeq > 12) { string msg = "";//Properties.Resources.PaymentSeqView_ExceedingSeqNo; //Helper.ShowMessage(msg); return; } SequenceNo = tempSeq; SequenceDescription = PaymentWord + PaymentSeqMap[SequenceNo]; }
private void SeqeunceSelectionChnaged(PeriodYear paymentYear, PaymentSequence paymentSequence) { if (paymentSequence == null) { return; } _payment = _paymentRepository.Single ( pay => pay.PeriodYear.Year == paymentYear.Year && pay.PaymentSequence.Id == paymentSequence.Id ); _paymentDetail = _detailRepository.Single ( det => det.FamilyMember.Code == _selectedMember.Code && det.Payment.PaymentNo == _payment.PaymentNo ); LoansHistory = _loanPaymentsRepository.Where ( hist => hist.PaymentTransaction.TransNo == _paymentDetail.TransNo ).ToList(); MemberLoans.Clear(); foreach (LoanPayment loanPayment in LoansHistory) { var memLoan = new MemberLoan ( loanPayment.DocNo, loanPayment.Loan.LoanNo, loanPayment.AmountPaid, loanPayment.Loan.Description, loanPayment.Loan.Remarks ); MemberLoans.Add(memLoan); } MemberShares = _paymentDetail.ShareNumbers; PaymentAmount = _payment.Amount; PaymentTotal = (MemberShares * PaymentAmount); LoansTotal = MemberLoans.Sum(x => x.LoanAmount); NetPayment = _paymentDetail.NetPayments; if (_payment.Posted) { CanEdit = false; } SetState(ViewState.Saved); }
private void AddSequence() { var s = new PaymentSequence(); int tempSeq = GenerateSequenceNo(); if (tempSeq > 12) { string msg = Properties.Resources.PaymentSeqView_ExceedingSeqNo; Helper.ShowMessage(msg); return; } s.SequenceNo = tempSeq; s.SequenceDescription = PaymentWord + PaymentSeqMap[s.SequenceNo]; YearSequences.Add(s); RaisePropertyChanged("YearSequences"); }
private ObservableCollection <PostLoan> CreatePostedLoans(PeriodYear future, PaymentSequence sequence) { ObservableCollection <PostLoan> posLoansList = new ObservableCollection <PostLoan>(); foreach (var loan in CurrentLoans) { if (loan.Selected) { PostLoan pl = new PostLoan(loan.Selected, loan.MemberCode, loan.MemberName, loan.LoanTypeId, loan.LoanTypeDescription, future.Year, future.Year, sequence.Id, sequence.SequenceDescription, loan.LoanAmount); posLoansList.Add(pl); } } return(posLoansList); }
private void AddSequence() { var s = new PaymentSequence(); var tempSeq = GenerateSequenceNo(); if (tempSeq > 12) { var msg = ""; //Properties.Resources.PaymentSeqView_ExceedingSeqNo; Helper.ShowMessage(msg); return; } s.SequenceNo = tempSeq; s.SequenceDescription = PAYMENT_WORD + PaymentSeqMap[s.SequenceNo]; YearSequences.Add(s); OnPropertyChanged(nameof(YearSequences)); }
private void AddToPaymentSequences(PaymentSequence sequence) { _unitOfWork.PaymentSequences.Add(sequence); }
private async Task CreatePaymentDetails(Payment payment) { if (payment == null) { throw new ArgumentNullException("payment"); } await Task.Run(() => { bool isFirstLine = true; RepositoryBase <FamilyMember> familyMemberRepos = _unitOfWork.FamilyMembers; RepositoryBase <PaymentSequence> sequRepos = _unitOfWork.PaymentSequences; RepositoryBase <PeriodSetting> periodRepos = _unitOfWork.PeriodSettings; RepositoryBase <PaymentStatus> payStatusRepos = _unitOfWork.PaymentStatuses; RepositoryBase <PaymentStatus> paymRepos = _unitOfWork.PaymentStatuses; PaymentSequence paySequ = payment.PaymentSequence; PeriodSetting currentYear = payment.PeriodSetting; RepositoryBase <PaymentTransaction> detailsRepos = _unitOfWork.PaymentTransactions; int counter = 0; //Start: _uiLoansHistory.Clear(); List <FamilyMember> eligibleMembers = GetEligibleMembers(); //List<LoansHistory> tempLoansHistory = new List<LoansHistory>(); foreach (FamilyMember familyMember in eligibleMembers) { isFirstLine = true; decimal memberLoansPayment = 0.0M; PaymentTransaction detail = CreateMemberDetail(payment, familyMember); #region "Old" //detail.DetailNo = Guid.NewGuid(); //detail.PaymentNo = payment.PaymentNo; //detail.FamilyMember = familyMember; //detail.ShareNumbers = familyMember.Shares; #endregion List <Loan> memberLoans = GetMemberLoans(payment, familyMember); foreach (Loan loan in memberLoans) { #region "Old" //var order = GetLoanOrder(payment, loan); //if (order == null) throw new InvalidOperationException("You must register payment orders for all types of loans"); //paymentAmountDue = PayMemberLoans(detail, tempLoansHistory, familyMember, paymentAmountDue, loan, order); #endregion memberLoansPayment += PayLoan(loan, detail); } detail.AmountDue = memberLoansPayment; detail.NetPayments = detail.NetPayments - detail.AmountDue; //((payment.Amount * detail.ShareNumbers) - detail.AmountDue); detailsRepos.Add(detail); var progMeta = new Tuple <double, double, string>(counter, eligibleMembers.Count, familyMember.FullName); ShowData(detail, isFirstLine, progMeta); #region "Old algorithm " //if (holderLoans.Count == 0) //{ // //******* Warning: Get an official confirmation for this policy.********// // // If no loans found; either this ShareHolder has no loans completely, // //or has no loans for just this payment. // //and in the latter, we will retrive all INPAYING loans. // holderLoans = loansRepos.Query // ( // x => x.ShareHolder.Code == sharHolder.Code && // x.StatusId == 2 // ).ToList(); //} //decimal paymentAmountDue = 0.0M; //if (holderLoans.Count() > 0) //If no loans, terminate. //{ // //Get the payment orders of this payment. // var paymentOrders = ordersRepos.Query(x => x.Payment.PaymentNo == payment.PaymentNo); // foreach (var loan in holderLoans) // { // decimal tempAmountDue = 0.0M; // //Get the admin order regrad this specific loan. // var order = paymentOrders.Where(x => x.LoanType.Code == loan.LoanType.Code).SingleOrDefault(); // if (order != null) // { // tempAmountDue = (loan.Amount * order.EarnPercent) / 100; // paymentAmountDue += (loan.Amount * order.EarnPercent) / 100; // } // else // { // tempAmountDue = loan.Amount; // paymentAmountDue += loan.Amount; // } // loan.Paid = tempAmountDue; // loan.Balance = loan.Amount - loan.Paid; // } // //amountDue = holderLoans.Sum(x => x.Amount); //} #endregion counter++; } PaymentStatus status = payStatusRepos.GetById(2); //Under Review Status. payment.PaymentStatus = status; } ); }
public void WriteModelValues(PaymentSequence model) { if (model == null) throw new ArgumentNullException("model"); model.SequenceNo = SequenceNo; model.SequenceDescription = SequenceDescription; }