//设置查询条件 private DeliveryIndexInput InitDeliveryIndexInput() { DeliveryIndexInput dii = new DeliveryIndexInput(); dii.OrderNumber = this.txtSalesOrder.Text.Trim(); dii.DeliveryFromDate = dtFrom.Value.Date; dii.DeliveryToDate = dtTo.Value.AddDays(1).Date; if (this.cmbDeliveryMethod.SelectedValue != null) { dii.DeliveryMethodValue = cmbDeliveryMethod.SelectedIndex - 1; } else { dii.DeliveryMethodValue = -1; } if (this.cmbDeliveryStatus.SelectedValue != null) { dii.DeliveryStatusValue = Convert.ToInt16(cmbDeliveryStatus.SelectedValue); } else { dii.DeliveryStatusValue = -1; } dii.ReceivingCompasnyName = this.textBox1.Text.Trim(); dii.ReceivingCompasnyID = this.ReceivingCmpID; return(dii); }
private void GetListDelivery(int pageIndex, int pageSize) { try { _DeliveryList = null; DeliveryIndexInput qsom = InitDeliveryIndexInput(); string msg = string.Empty; var c = PharmacyDatabaseService.GetDeliveryPaged(out pageInfo, out msg, qsom, pageIndex, pageSize); var result = from ds in ListStatus join i in c on ds.num equals i.DeliveryStatusValue join u in ListUser on i.AcceptedOperatorId equals u.Id into Left1 from u in Left1.DefaultIfEmpty() join u1 in ListUser on i.outedOperatorId equals u1.Id into Left2 from u1 in Left2.DefaultIfEmpty() join u2 in ListUser on i.SignedOperatorId equals u2.Id into Left3 from u2 in Left3.DefaultIfEmpty() select new Business.Models.DeliveryModel { AcceptedOperator = u == null ? "未受理" : u.Employee.Name, AcceptedTime = u == null ? i.CreateTime : i.AcceptedTime, DeliveryAddress = i.DeliveryAddress, DeliveryMethod = u == null ? "未受理" : (i.DeliveryMethodValue == 0 ? "客户自理" : i.DeliveryMethodValue == 1 ? "自有车辆运输" : "委托运输"), DeliveryStatus = ds.nam, DrugsCount = i.DrugsCount, ID = i.Id, outedOperator = u1 == null ? "未出库" : u1.Employee.Name, outedTime = u1 == null ? i.CreateTime : i.outedTime, Principal = u == null ? string.Empty : i.Principal, PrincipalPhone = u == null ? string.Empty : i.PrincipalPhone, ReceivingCompasnyID = i.ReceivingCompasnyID, ReceivingCompasnyName = i.ReceivingCompasnyName, SalesOrderID = i.OrderID, SalesOrderNumber = i.SalesOrder, ShippingAddress = i.ShippingAddress, SignedOperator = u2 == null ? "未签收" : u2.Employee.Name, SignedTime = u2 == null ? i.CreateTime : i.SignedTime, TransportCompany = u == null ? string.Empty : i.TransportCompany, TransportMethod = u == null ? "未受理" : (i.TransportMethodValue == 0 ? "客户自理" : i.TransportMethodValue == 1 ? "自有车辆运输" : "委托运输"), VehicleInfo = u == null ? string.Empty : i.VehicleInfo, Memo = i.Memo }; this.dgvMain.DataSource = result.ToList(); pcMain.RecordCount = pageInfo.RecordCount; this.HideColumns(); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK); Log.Error(ex); } }
//查询条件 private DeliveryIndexInput InitDeliveryIndexInput() { DeliveryIndexInput dii = new DeliveryIndexInput(); dii.DeliveryMethodValue = -1; dii.DeliveryStatusValue = (int)deliveryStatus; dii.TransportMethodValue = -1; dii.DeliveryFromDate = DateTime.Now.AddYears(-1); dii.DeliveryToDate = DateTime.Now.AddYears(1); dii.OrderNumber = this.toolStripTextBox2.Text.Trim(); dii.ReceivingCompasnyName = this.toolStripTextBox1.Text.Trim(); return(dii); }
/// <summary> ///翻页的时候处理检索 /// </summary> private void pager_DataPaging() { PagerInfo pagerInfo = new PagerInfo(); pagerInfo.Index = this.pager.PageIndex; pagerInfo.Size = this.pager.PageSize; string message = string.Empty; try { DeliveryIndexInput qsom = InitDeliveryIndexInput(); this.DeliveryList = PharmacyDatabaseService.GetDeliveryTransactionPaged(qsom, out pagerInfo, pager.PageIndex, pager.PageSize).ToList(); this.dgvDelivery.DataSource = this.DeliveryList; pager.RecordCount = pagerInfo.RecordCount; } catch (Exception e) { MessageBox.Show("数据检索失败!"); } }
/// <summary> /// 分页检索配送 /// </summary> /// <param name="totalpage"></param> /// <param name="deliveryIndexInput"></param> /// <param name="pager"></param> /// <returns></returns> public IEnumerable <Delivery> GetDeliveryPaged(DeliveryIndexInput deliveryIndexInput, out PagerInfo pager, int pageindex, int pageSize) { try { PagerInfo pageInfo = new PagerInfo(); pageInfo.Index = pageindex; pageInfo.Size = pageSize; pageindex = pageindex - 1; int skipCount = pageindex * pageSize; var varDelivery = base.Queryable; if (deliveryIndexInput.DeliveryFromDate != null) { varDelivery = varDelivery.Where(p => p.DeliveryTime >= deliveryIndexInput.DeliveryFromDate); } if (deliveryIndexInput.DeliveryToDate != null) { varDelivery = varDelivery.Where(p => p.DeliveryTime <= deliveryIndexInput.DeliveryToDate); } if (deliveryIndexInput.DeliveryMethodValue > -1) { varDelivery = varDelivery.Where(p => p.DeliveryMethodValue == deliveryIndexInput.DeliveryMethodValue); } if (deliveryIndexInput.DeliveryStatusValue > -1) { varDelivery = varDelivery.Where(p => p.DeliveryStatusValue == deliveryIndexInput.DeliveryStatusValue); } if (deliveryIndexInput.ReceivingCompasnyID != Guid.Empty) { varDelivery = varDelivery.Where(p => p.ReceivingCompasnyID == deliveryIndexInput.ReceivingCompasnyID); } #region var saleOrders = RepositoryProvider.Db.SalesOrders.AsQueryable(); if (!string.IsNullOrEmpty(deliveryIndexInput.OrderNumber)) { saleOrders = saleOrders.Where(r => r.OrderCode.Contains(deliveryIndexInput.OrderNumber)); } var PurchaseUnits = RepositoryProvider.Db.PurchaseUnits.AsQueryable(); if (!string.IsNullOrEmpty(deliveryIndexInput.ReceivingCompasnyName)) { PurchaseUnits = PurchaseUnits.Where(r => r.Name.Contains(deliveryIndexInput.ReceivingCompasnyName) || (r.PinyinCode != null && r.PinyinCode.ToUpper().Contains(deliveryIndexInput.ReceivingCompasnyName.ToUpper()))); } var SalesInfo = (from i in varDelivery join p in PurchaseUnits on i.ReceivingCompasnyID equals p.Id join so in saleOrders on i.OrderID equals so.Id select new { pid = p.Id, pName = p.Name, soid = so.Id, soCode = so.OrderCode, addr = string.IsNullOrEmpty(p.ReceiveAddress)?p.DetailedAddress:p.ReceiveAddress }).ToList(); var PurchaseorderReturns = RepositoryProvider.Db.PurchaseOrderReturns.AsQueryable(); if (!string.IsNullOrEmpty(deliveryIndexInput.OrderNumber)) { PurchaseorderReturns = PurchaseorderReturns.Where(r => r.DocumentNumber.Contains(deliveryIndexInput.OrderNumber)); } var SupplyUnits = RepositoryProvider.Db.SupplyUnits.AsQueryable(); if (!string.IsNullOrEmpty(deliveryIndexInput.ReceivingCompasnyName)) { SupplyUnits = SupplyUnits.Where(r => r.Name.Contains(deliveryIndexInput.ReceivingCompasnyName) || (r.PinyinCode != null && r.PinyinCode.ToUpper().Contains(deliveryIndexInput.ReceivingCompasnyName.ToUpper()))); } var SupplyReturnInfo = (from sr in PurchaseorderReturns join i in varDelivery on sr.Id equals i.OrderID join su in SupplyUnits on i.ReceivingCompasnyID equals su.Id select new { pid = su.Id, pName = su.Name, soid = sr.Id, soCode = sr.DocumentNumber, addr = su.ReceiveAddress == string.Empty?su.DetailedAddress:su.ReceiveAddress }).ToList(); SalesInfo = SalesInfo.Concat(SupplyReturnInfo).ToList(); var ListVarDelivery = varDelivery.ToList(); foreach (var u in ListVarDelivery) { var re = SalesInfo.FirstOrDefault(r => r.pid == u.ReceivingCompasnyID); if (re == null) { continue; } u.ReceivingCompasnyName = re.pName; var sa = SalesInfo.FirstOrDefault(r => r.soid == u.OrderID); if (sa == null) { continue; } u.SalesOrder = sa.soCode; var su = SalesInfo.FirstOrDefault(r => r.pid == u.ReceivingCompasnyID); if (su == null) { continue; } u.DeliveryAddress = su.addr; } ListVarDelivery = ListVarDelivery.Where(r => !string.IsNullOrEmpty(r.SalesOrder)).ToList(); varDelivery = null; #endregion pageInfo.RecordCount = ListVarDelivery.Count; pager = pageInfo; ListVarDelivery = ListVarDelivery.OrderBy(o => o.DeliveryTime).ToList(); ListVarDelivery = (skipCount == 0 ? ListVarDelivery.Take(pageSize) : ListVarDelivery.Skip(skipCount).Take(pageSize)).ToList(); return(ListVarDelivery.OrderByDescending(r => r.CreateTime).AsEnumerable()); } catch (Exception ex) { pager = null; return(this.HandleException <IEnumerable <Delivery> >("分页检索配送失败", ex)); } finally { this.Dispose(); } }