Example #1
0
        private IQueryable <PaymentDetail> CreateQuery(PaymentType type, PaymentDetailFilterModel filter)
        {
            var items = from i in db.PaymentDetail
                        select i;

            if (type == PaymentType.Sales)
            {
                items = items.Where(a => a.SalesPayments.Any());
            }
            else
            {
                items = items.Where(a => a.PurchasePayments.Any());
            }

            if (filter != null)
            {
                if (filter.CustomerId != 0)
                {
                    items = items.Where(a => a.CustomerId == filter.CustomerId);
                }

                if (!string.IsNullOrWhiteSpace(filter.VoucherNumber))
                {
                    items = items.Where(a => a.VoucherNumber.Contains(filter.VoucherNumber));
                }

                if (filter.AmountType != NumericSearchType.All)
                {
                    if (filter.AmountType == NumericSearchType.Equal)
                    {
                        items = items.Where(a => a.TotalCashPayment + a.TotalCheckPayment == filter.AmountValue);
                    }
                    else if (filter.AmountType == NumericSearchType.GreaterThan)
                    {
                        items = items.Where(a => a.TotalCashPayment + a.TotalCheckPayment > filter.AmountValue);
                    }
                    else if (filter.AmountType == NumericSearchType.LessThan)
                    {
                        items = items.Where(a => a.TotalCashPayment + a.TotalCheckPayment < filter.AmountValue);
                    }
                }

                if (filter.DateType != DateSearchType.All)
                {
                    DateTime dateFrom = filter.DateFrom.Date;
                    DateTime dateTo   = filter.DateTo.AddDays(1).Date;

                    items = items.Where(a => a.PaymentDate >= dateFrom && a.PaymentDate < dateTo);
                }
            }

            return(items);
        }
        private PaymentDetailFilterModel ComposeSearch()
        {
            PaymentDetailFilterModel model = new PaymentDetailFilterModel();

            if (CustomerDropdown.SelectedIndex != -1)
            {
                model.CustomerId = (int)CustomerDropdown.SelectedValue;
            }

            if (!string.IsNullOrWhiteSpace(VoucherTextbox.Text))
            {
                model.VoucherNumber = VoucherTextbox.Text.Trim();
            }

            if (AmountTypeDropdown.SelectedIndex != -1)
            {
                if (AmountTypeDropdown.SelectedIndex == 1)
                {
                    model.AmountType  = NumericSearchType.Equal;
                    model.AmountValue = AmountTextbox.Text.ToDecimal();
                }
                else if (AmountTypeDropdown.SelectedIndex == 2)
                {
                    model.AmountType  = NumericSearchType.GreaterThan;
                    model.AmountValue = AmountTextbox.Text.ToDecimal();
                }
                else if (AmountTypeDropdown.SelectedIndex == 3)
                {
                    model.AmountType  = NumericSearchType.LessThan;
                    model.AmountValue = AmountTextbox.Text.ToDecimal();
                }
            }
            else
            {
                model.AmountType = NumericSearchType.All;
            }

            if (AllDateRB.Checked)
            {
                model.DateType = DateSearchType.All;
            }
            else
            {
                model.DateType = DateSearchType.DateRange;
                model.DateFrom = DateFromPicker.Value;
                model.DateTo   = DateToPicker.Value;
            }

            return(model);
        }
        private void LoadPayments(PaymentDetailFilterModel filter)
        {
            int  records     = 0;
            long elapsedTime = ClientHelper.PerformFetch(() =>
            {
                var results = this.paymentDetailController.FetchPaymentDetailWithSearch(PaymentType.Sales, filter);
                paymentDetailDisplayModelBindingSource.DataSource = results;

                if (paymentDetailDisplayModelBindingSource.Count == 0)
                {
                    paymentDetailDisplayModelBindingSource.DataSource = null;
                }

                records = results.Count;
            });

            ((MainForm)this.ParentForm).AttachStatus(records, elapsedTime);
        }
        void form_SalesPaymentUpdated(object sender, EventArgs args)
        {
            PaymentDetailFilterModel filter = ComposeSearch();

            LoadPayments(filter);

            if (selectedId == 0)
            {
                paymentDetailDisplayModelBindingSource.Position = paymentDetailDisplayModelBindingSource.Count - 1;
            }
            else
            {
                PaymentDetailDisplayModel item = ((SortableBindingList <PaymentDetailDisplayModel>)paymentDetailDisplayModelBindingSource.DataSource)
                                                 .FirstOrDefault(a => a.Id == selectedId);
                int index = paymentDetailDisplayModelBindingSource.IndexOf(item);

                paymentDetailDisplayModelBindingSource.Position = index;
                dataGridView1.Rows[index].Selected = true;
            }
        }
        public void RefreshView()
        {
            PaymentDetailFilterModel filter = ComposeSearch();

            LoadPayments(filter);
        }
        private void SearchButton_Click(object sender, EventArgs e)
        {
            PaymentDetailFilterModel filter = ComposeSearch();

            LoadPayments(filter);
        }
Example #7
0
        public SortableBindingList <PaymentDetailDisplayModel> FetchPaymentDetailWithSearch(PaymentType type, PaymentDetailFilterModel filter)
        {
            try
            {
                var query = CreateQuery(type, filter);

                var modResult = query.Select(a => new PaymentDetailDisplayModel()
                {
                    Id                = a.Id,
                    VoucherNumber     = a.VoucherNumber,
                    PaymentDate       = a.PaymentDate.Value,
                    TotalCashPayment  = a.TotalCashPayment.HasValue ? a.TotalCashPayment.Value : 0,
                    TotalCheckPayment = a.TotalCheckPayment.HasValue ? a.TotalCheckPayment.Value : 0,
                    TotalAmount       = (a.TotalCashPayment.HasValue ? a.TotalCashPayment.Value : 0) +
                                        (a.TotalCheckPayment.HasValue ? a.TotalCheckPayment.Value : 0),
                    RecordedBy = a.RecordedByUser.Firstname + " " + a.RecordedByUser.Lastname,
                    IsDeleted  = a.IsDeleted.Value,
                    Customer   = a.CustomerId != null ? a.Customer.CompanyName : "-",
                    Status     = a.TotalAmountDue < a.TotalCashPayment + a.TotalCheckPayment ? "Fully Paid" :
                                 a.TotalCashPayment == 0 && a.TotalCheckPayment == 0 ? "Not Paid" : "Partially Paid"
                });

                if (filter == null)
                {
                    modResult = modResult.OrderByDescending(a => a.PaymentDate);
                }

                SortableBindingList <PaymentDetailDisplayModel> b = new SortableBindingList <PaymentDetailDisplayModel>(modResult);

                return(b);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }