Beispiel #1
0
        private void ApplyPaymentFilter()
        {
            var filter = new PaymentFilter();

            decimal tempDecimal;

            if(!IsNullOrEmpty(paymentAmountFrom.Text) && Decimal.TryParse(paymentAmountFrom.Text, out tempDecimal) &&
                !IsNullOrEmpty(paymentAmountTo.Text) && Decimal.TryParse(paymentAmountTo.Text, out tempDecimal)){
                filter.From.Amount = Decimal.Parse ( paymentAmountFrom.Text );
                filter.To.Amount = Decimal.Parse ( paymentAmountTo.Text );
            }

            if(!IsNullOrEmpty(paymentRateFrom.Text) && Decimal.TryParse(paymentRateFrom.Text, out tempDecimal) &&
                !IsNullOrEmpty(paymentRateTo.Text) && Decimal.TryParse(paymentRateTo.Text, out tempDecimal)) {
                filter.From.Rate = Decimal.Parse(paymentRateFrom.Text);
                filter.To.Rate = Decimal.Parse(paymentRateTo.Text);
            }

            if(!IsNullOrEmpty(paymentSumFrom.Text) && Decimal.TryParse(paymentSumFrom.Text, out tempDecimal) &&
                !IsNullOrEmpty(paymentSumTo.Text) && Decimal.TryParse(paymentSumTo.Text, out tempDecimal)) {
                filter.SumFrom = Decimal.Parse(paymentSumFrom.Text);
                filter.SumTo = Decimal.Parse(paymentSumTo.Text);
            }

            filter.From.PaymentDate = new DateTime(paymentDateFrom.Value.Year, paymentDateFrom.Value.Month, paymentDateFrom.Value.Day);
            filter.To.PaymentDate = new DateTime(paymentDateTo.Value.Year, paymentDateTo.Value.Month, paymentDateTo.Value.Day);

            filter.From.MonthPaid = new DateTime(paymentMonthFrom.Value.Year, paymentMonthFrom.Value.Month, 1);
            filter.To.MonthPaid = new DateTime(paymentMonthTo.Value.Year, paymentMonthTo.Value.Month, 1);

            if (!IsNullOrEmpty ( paymentCustomerID.SelectedItem ) && !((Customer) paymentCustomerID.SelectedItem ).ID.Equals (Guid.Empty )){
                filter.From.CustomerID = filter.To.CustomerID = ( (Customer) paymentCustomerID.SelectedItem ).ID;
            }

            control.ApplyFilter ( filter );
        }
Beispiel #2
0
        public void PaymentFilterTest()
        {
            PersistenceManager pm = PersistenceManager.GetInstance();
            pm.DeleteAll();
            PaymentController control = PaymentController.GetInstance();

            Customer cust1 = new Customer{	FirstName = "ffd",
                                            LastName = "dsf",
                                            MiddleName = "ds",
                                            Number = "1"
            };

            Customer cust2 = new Customer {
                FirstName = "dsaf",
                LastName = "fsdg",
                MiddleName = "rewr",
                Number = "2"
            };

            Customer cust3 = new Customer {
                FirstName = "gjnhgk",
                LastName = "yiuio",
                MiddleName = "m,.,m.",
                Number = "3"
            };

            Assert.IsTrue(pm.AddCustomer(cust1));
            Assert.IsTrue(pm.AddCustomer(cust2));
            Assert.IsTrue(pm.AddCustomer(cust3));

            Payment p1 = new Payment{
                Amount = (decimal) 1.34,
                CustomerID = cust1.ID,
                MonthPaid = new DateTime(2000, 2, 1),
                PaymentDate = new DateTime(2009, 2, 1),
                Rate = (decimal) 10.435
            };

            Payment p2 = new Payment {
                Amount = (decimal)2.435,
                CustomerID = cust2.ID,
                MonthPaid = new DateTime(2000, 3, 1),
                PaymentDate = new DateTime(2008, 2, 1),
                Rate = (decimal)9.5445435
            };

            Payment p3 = new Payment {
                Amount = (decimal)3.545,
                CustomerID = cust3.ID,
                MonthPaid = new DateTime(2000, 4, 1),
                PaymentDate = new DateTime(2007, 2, 1),
                Rate = (decimal)8.4345435
            };

            Payment p4 = new Payment {
                Amount = (decimal)4.3235,
                CustomerID = cust1.ID,
                MonthPaid = new DateTime(2001, 12, 1),
                PaymentDate = new DateTime(2006, 2, 1),
                Rate = (decimal)7.321432
            };

            Payment p5 = new Payment {
                Amount = (decimal)5.3243,
                CustomerID = cust2.ID,
                MonthPaid = new DateTime(2002, 1, 1),
                PaymentDate = new DateTime(2005, 2, 1),
                Rate = (decimal)6.432435
            };

            Payment p6 = new Payment {
                Amount = (decimal)6.43534,
                CustomerID = cust3.ID,
                MonthPaid = new DateTime(2002, 3, 1),
                PaymentDate = new DateTime(2004, 2, 1),
                Rate = (decimal)5.3232135
            };

            Payment p7 = new Payment {
                Amount = (decimal)7.4325,
                CustomerID = cust1.ID,
                MonthPaid = new DateTime(2002, 4, 1),
                PaymentDate = new DateTime(2003, 2, 1),
                Rate = (decimal)4.3214325
            };

            Payment p8 = new Payment {
                Amount = (decimal)8.432543,
                CustomerID = cust2.ID,
                MonthPaid = new DateTime(2002, 11, 1),
                PaymentDate = new DateTime(2002, 2, 1),
                Rate = (decimal)3.43435
            };

            Payment p9 = new Payment {
                Amount = (decimal)9.3436546545,
                CustomerID = cust3.ID,
                MonthPaid = new DateTime(2010, 1, 1),
                PaymentDate = new DateTime(2001, 2, 1),
                Rate = (decimal)2.44353435
            };

            Payment p10 = new Payment {
                Amount = (decimal)10.43545,
                CustomerID = cust1.ID,
                MonthPaid = new DateTime(2010, 12, 1),
                PaymentDate = new DateTime(2000, 2, 1),
                Rate = (decimal)1.435
            };

            Assert.IsTrue(pm.AddPayment(p1));
            Assert.IsTrue(pm.AddPayment(p2));
            Assert.IsTrue(pm.AddPayment(p3));
            Assert.IsTrue(pm.AddPayment(p4));
            Assert.IsTrue(pm.AddPayment(p5));
            Assert.IsTrue(pm.AddPayment(p6));
            Assert.IsTrue(pm.AddPayment(p7));
            Assert.IsTrue(pm.AddPayment(p8));
            Assert.IsTrue(pm.AddPayment(p9));
            Assert.IsTrue(pm.AddPayment(p10));

            PaymentFilter filter = new PaymentFilter();
            filter.From.Amount = 1;
            filter.To.Amount = 3;

            control.ApplyFilter (filter);
            List <Payment> list = control.GetFilteredPayments();

            Assert.AreEqual ( 2,  list.Count);
            Assert.IsTrue ( list.Contains ( p1 ) );
            Assert.IsTrue ( list.Contains ( p2 ) );

            filter.From.Amount = (decimal) 1.34;
            filter.To.Amount = (decimal) 1.34;

            control.ApplyFilter ( filter );
            list = control.GetFilteredPayments();

            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0].Equals ( p1 ));

            filter = new PaymentFilter();

            filter.From.CustomerID = cust1.ID;
            filter.To.CustomerID = cust1.ID;

            control.ApplyFilter ( filter );
            list = control.GetFilteredPayments();

            Assert.AreEqual(4, list.Count);
            Assert.IsTrue(list.Contains(p1));
            Assert.IsTrue(list.Contains(p4));
            Assert.IsTrue(list.Contains(p10));
            Assert.IsTrue(list.Contains(p7));

            filter.From.CustomerID = cust2.ID;
            filter.To.CustomerID = cust2.ID;

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(3, list.Count);
            Assert.IsTrue(list.Contains(p2));
            Assert.IsTrue(list.Contains(p5));
            Assert.IsTrue(list.Contains(p8));

            filter = new PaymentFilter();

            filter.From.MonthPaid = new DateTime(2002, 1, 1);
            filter.To.MonthPaid = new DateTime(2010, 2, 1);

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(5, list.Count);
            Assert.IsTrue(list.Contains(p5));
            Assert.IsTrue(list.Contains(p6));
            Assert.IsTrue(list.Contains(p7));
            Assert.IsTrue(list.Contains(p8));
            Assert.IsTrue(list.Contains(p9));

            filter.From.MonthPaid = new DateTime(2000, 2, 1);
            filter.To.MonthPaid = new DateTime(2000, 2, 1);

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list[0].Equals ( p1 ));

            filter = new PaymentFilter();

            filter.From.PaymentDate = new DateTime(2005, 12, 1);
            filter.To.PaymentDate = new DateTime(2009, 1, 1);

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(3, list.Count);
            Assert.IsTrue(list.Contains(p2));
            Assert.IsTrue(list.Contains(p3));
            Assert.IsTrue(list.Contains(p4));

            filter.From.PaymentDate = new DateTime(2002, 2, 1);
            filter.To.PaymentDate = new DateTime(2002, 2, 1);

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list.Contains(p8));

            filter = new PaymentFilter();

            filter.From.Rate = 5;
            filter.To.Rate = (decimal)9.53;

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(4, list.Count);
            Assert.IsTrue(list.Contains(p3));
            Assert.IsTrue(list.Contains(p6));
            Assert.IsTrue(list.Contains(p4));
            Assert.IsTrue(list.Contains(p5));

            filter.From.Rate = (decimal)1.435;
            filter.To.Rate = (decimal)1.435;

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list.Contains(p10));

            filter = new PaymentFilter();

            filter.SumFrom = (decimal) 29.9;
            filter.SumTo = (decimal)39.9;

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(5, list.Count);
            Assert.IsTrue(list.Contains(p3));
            Assert.IsTrue(list.Contains(p4));
            Assert.IsTrue(list.Contains(p5));
            Assert.IsTrue(list.Contains(p6));
            Assert.IsTrue(list.Contains(p7));

            filter = new PaymentFilter();

            filter.From.Amount = 1;
            filter.To.Amount = 10;
            filter.From.MonthPaid =  new DateTime(2000, 3, 1);
            filter.To.MonthPaid = new DateTime(2012, 3, 1);
            filter.From.PaymentDate =  new DateTime(2002, 1, 1);
            filter.To.PaymentDate = new DateTime(2008, 1, 1);
            filter.From.Rate = 0;
            filter.To.Rate = 8;
            filter.From.CustomerID = cust1.ID;
            filter.To.CustomerID = cust1.ID;

            control.ApplyFilter(filter);
            list = control.GetFilteredPayments();

            Assert.AreEqual(2, list.Count);
            Assert.IsTrue(list.Contains(p4));
            Assert.IsTrue(list.Contains(p7));
        }
        public void ApplyFilter(PaymentFilter filter)
        {
            var query = new StringBuilder("");
            CultureInfo US = CultureInfo.GetCultureInfo ( "en-US" );

            if (filter.From.Amount != ModelConst.DEFAULT_NUMBER &&
                                        filter.To.Amount != ModelConst.DEFAULT_NUMBER) {

                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append (PaymentColumns.Amount + " >= " + filter.From.Amount.ToString(US));
                query.Append ( " AND " );
                query.Append(PaymentColumns.Amount + " <= " + filter.To.Amount.ToString(US));

            }

            if(filter.From.CustomerID != Guid.Empty && filter.To.CustomerID != Guid.Empty) {
                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append(PaymentColumns.CustomerId + " >= '" + filter.From.CustomerID + "'");
                query.Append(" AND ");
                query.Append(PaymentColumns.CustomerId + " <= '" + filter.To.CustomerID + "'");
            }

            if(filter.From.MonthPaid != ModelConst.DEFAULT_DATE
                                        && filter.To.MonthPaid != ModelConst.DEFAULT_DATE) {
                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append(PaymentColumns.MonthPaid + " >= '" + filter.From.MonthPaid + "'");
                query.Append(" AND ");
                query.Append(PaymentColumns.MonthPaid + " <= '" + filter.To.MonthPaid + "'");
            }

            if(filter.From.PaymentDate != ModelConst.DEFAULT_DATE
                                        && filter.To.PaymentDate != ModelConst.DEFAULT_DATE) {
                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append(PaymentColumns.PaymentDate + " >= '" + filter.From.PaymentDate + "'");
                query.Append(" AND ");
                query.Append(PaymentColumns.PaymentDate + " <= '" + filter.To.PaymentDate + "'");
            }

            if(filter.From.Rate != ModelConst.DEFAULT_NUMBER &&
                                        filter.To.Rate != ModelConst.DEFAULT_NUMBER) {

                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append(PaymentColumns.Rate + " >= " + filter.From.Rate.ToString(US));
                query.Append(" AND ");
                query.Append(PaymentColumns.Rate + " <= " + filter.To.Rate.ToString(US));

            }

            if (filter.SumFrom != decimal.MinValue && filter.SumTo != decimal.MinValue){
                if(query.ToString().Length > 0) query.Append(" AND ");
                query.Append(PaymentColumns.Rate + " * " + PaymentColumns.Amount + " >= " + filter.SumFrom.ToString(US));
                query.Append(" AND ");
                query.Append(PaymentColumns.Rate + " * " + PaymentColumns.Amount + " <= " + filter.SumTo.ToString(US));
            }

            paymentsView.RowFilter = query.ToString();
        }