Example #1
0
        private void LoadCurrentYearPayments(PeriodYear currentYear)
        {
            var currentYearPayments = _repository.Where(p => p.Year == currentYear.Year);
            var list = new ObservableCollection <Payment>(currentYearPayments);

            CurrenYearPayments = new ListCollectionView(list);
        }
        private void LoadStatment(int memberCode, PeriodYear year)
        {
            _internalStatementDetails = new HashSet <MemberStatmentDetail>();
            List <MemberStatmentDetail> msdList = new List <MemberStatmentDetail>();
            string  statementYear      = null;
            int     searchedMemberCode = 0;
            string  searchedMemberName = null;
            decimal netTotals          = 0.0M;

            var yearPayments  = _dbContext.Payments.Where(x => x.PeriodYear.Year == year.Year);
            int fieldsCounter = 0;

            foreach (var yearPayment in yearPayments)
            {
                if (fieldsCounter == 0) //Assgin once
                {
                    statementYear = yearPayment.PeriodYear.Year;
                }

                var pymentDetails = _dbContext.PaymentTransactions.Where
                                    (
                    x => x.Payment.PaymentNo == yearPayment.PaymentNo
                    &&
                    x.FamilyMember.Code == memberCode
                                    );
                foreach (var payDetail in pymentDetails)
                {
                    if (fieldsCounter == 0) //Assgin once
                    {
                        searchedMemberCode = payDetail.MemberCode;
                        searchedMemberName = payDetail.FamilyMember.FullName;
                        fieldsCounter++;
                    }
                    //Get loans paying history for this payment detail.
                    //var loanHistory = _unitOfWork.LoanPayments.Where(
                    //    x => x.PaymentTransaction.TransNo == payDetail.TransNo
                    //        &&
                    //        x.FamilyMember.Code == payDetail.FamilyMember.Code).ToList();

                    //int loansHisotoryCount = loanHistory.Count();
                    //switch (loansHisotoryCount)
                    //{
                    //    case 0:
                    //        AddNoLoansHeaderRow(yearPayment, payDetail);
                    //        netTotals += payDetail.NetPayments;
                    //        continue;
                    //    case 1:
                    //        AddOneLoanRow(yearPayment, payDetail, loanHistory);
                    //        netTotals += payDetail.NetPayments;
                    //        continue;
                    //    default:
                    //        AddManyLoansRow(yearPayment, payDetail, loanHistory);
                    //        netTotals += payDetail.NetPayments;
                    //        break;
                    // }
                }
            }
            Statment = new MemberStatmentReport(
                statementYear, searchedMemberCode, searchedMemberName, netTotals, _internalStatementDetails);
        }
Example #3
0
        private IList <PaymentSequence> LoadYearPayments(PeriodYear selectedYear)
        {
            var yearPayments = new ObservableCollection <PaymentSequence>();

            try
            {
                var result =
                    _unitOfWork.Payments
                    .Where(x => x.PeriodYear.Year == selectedYear.Year)
                    .Select(x => x.PaymentSequence).ToList();
                if (!result.Any())
                {
                    string msg = _resource["SelectedYearHasNoPayments"];
                    RaiseNotification(msg);
                    return(yearPayments);
                }
                yearPayments = new ObservableCollection <PaymentSequence>(result);
            }
            catch (Exception ex)
            {
                var exception = Helper.ProcessExceptionMessages(ex);
                _logger.Log(exception.DetialsMsg, Category.Exception, Priority.High);
                RaiseNotification(exception.UserMsg);
            }
            return(yearPayments);
        }
Example #4
0
        private ObservableCollection <PaymentSequence> GetSequences(PeriodYear selectedYear)
        {
            var yearSeqeunces =
                _unitOfWork.PaymentSequences.Where(ps => ps.PeriodYear.Year == selectedYear.Year).ToList();

            return(new ObservableCollection <PaymentSequence>(yearSeqeunces));
        }
Example #5
0
        private IList <PaymentSequence> GetYearSequences(PeriodYear year)
        {
            if (year == null)
            {
                throw new ArgumentException("year");
            }
            FamilyContext db = new FamilyContext();

            return(db.PaymentSequences.Where(x => x.Year == year.Year).ToList());
        }
Example #6
0
        private bool AllPastPaymentsPosted(PeriodYear currentYear)
        {
            if (currentYear == null)
            {
                return(false);
            }
            var payments = _repository.Where(p => p.PeriodYear.Year == currentYear.Year);

            return(!(payments.Any(p => p.Posted)));
        }
Example #7
0
        public static IPeriodsStrategy Create(string description)
        {
            IPeriodsStrategy instance = null;

            instance = PeriodDay.GetInstance(description, instance);
            instance = PeriodWeek.GetInstance(description, instance);
            instance = PeriodMonth.GetInstance(description, instance);
            instance = PeriodYear.GetInstance(description, instance);

            return(instance);
        }
Example #8
0
        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);
        }
Example #9
0
        private ObservableCollection <LoanType> LoadLoanTypes(PeriodYear year)
        {
            ObservableCollection <LoanType> ltList = new ObservableCollection <LoanType>();
            var result = _loansRepository.Where(x => x.PeriodYear.Year == year.Year)
                         .Select(s => s.LoanType)
                         .GroupBy(g => g.Code)
                         .Select(p => p.FirstOrDefault());

            foreach (var item in result)
            {
                ltList.Add(item);
            }
            return(ltList);
        }
Example #10
0
        private PeriodYear GetCurrentYear()
        {
            PeriodYear currnet = null;

            try
            {
                var c = _unitOfWork.PeriodYears.Where(x => x.Status == YearStatus.Present).Single();
                currnet = c;
            }
            catch (InvalidOperationException)
            {
                //Sowallo as we sure nothing happend other than that there are no open year.
            }
            return(currnet);
        }
Example #11
0
        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);
        }
Example #12
0
 protected override void Initialize()
 {
     try
     {
         LoansTypes   = GetLoansTypes();
         Years        = GetYears();
         _currentYear = _unitOfWork.PeriodYears.Single(x => x.Status == YearStatus.Present);
         OnStateChanged(ViewModelState.AddNew);
     }
     catch (Exception ex)
     {
         var exception = Helper.ProcessExceptionMessages(ex);
         _logger.Log(exception.DetialsMsg, Category.Exception, Priority.High);
         _logger.LogUiNotifications(exception.UserMsg);
         DispatchLoggedNotification(_logger);
     }
 }
Example #13
0
 public static Period EndYear(PeriodYear year)
 {
     return(new Period(year, 12));
 }
Example #14
0
 public static Period BeginYear(PeriodYear year)
 {
     return(new Period(year, 1));
 }
Example #15
0
 public static Period PeriodWithYearAndMonth(PeriodYear year, PeriodMnth month)
 {
     return(new Period(year, month));
 }
Example #16
0
 private void UpdatePaymentSequences(PeriodYear selectedYear)
 {
     PaymentSequences = new ObservableCollection <PaymentSequence>(LoadYearPayments(selectedYear));
 }
Example #17
0
 public Period(PeriodYear year, PeriodMnth month) : this((PeriodCode)(year * 100 + month))
 {
 }
Example #18
0
        private ObservableCollection <PaymentSequence> LoadSeqeunces(PeriodYear year)
        {
            var yearSeqeunces = _unitOfWork.PaymentSequences.Where(ps => ps.PeriodYear.Year == year.Year);

            return(new ObservableCollection <PaymentSequence>(yearSeqeunces));
        }