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); }
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; } }