public FormOrderReturnDetailIndex() { InitializeComponent(); BugsBox.Pharmacy.UI.Common.BaseRightMenu brm = new BugsBox.Pharmacy.UI.Common.BaseRightMenu(this.dataGridView1); brm.InsertMenuItem("导出查询结果", delegate() { MyExcelUtls.DataGridview2Sheet(this.dataGridView1, "销售品种退货记录"); }); brm.InsertMenuItem("查看销退详情", delegate() { if (this.dataGridView1.CurrentRow == null) { return; } var m = this.dataGridView1.CurrentRow.DataBoundItem as Business.Models.SalesOrderReturnDetailModel; var orderReturn = PharmacyDatabaseService.GetSalesOrderReturn(out msg, m.SalesOrderReturnId); using (FormSalesOrderReturn frm = new FormSalesOrderReturn(orderReturn)) { frm.ShowDialog(); } }); brm.InsertMenuItem("查看销售单", delegate() { if (this.dataGridView1.CurrentRow == null) { return; } var m = this.dataGridView1.CurrentRow.DataBoundItem as Business.Models.SalesOrderReturnDetailModel; SalesOrder so = this.PharmacyDatabaseService.GetSalesOrder(out msg, m.SalesOrderId); using (FormSalesOrderEdit frm = new FormSalesOrderEdit(so, true)) { frm.ShowDialog(); } }); Business.Models.SalesOrderReturnDetailQueryModel q = null; //初始化查询条件 Action InitQuery = () => { this.dateTimePicker1.Value = DateTime.Now.Date.AddDays(-3); this.dateTimePicker2.Value = DateTime.Now.Date; q = new Business.Models.SalesOrderReturnDetailQueryModel { DTF = this.dateTimePicker1.Value, DTT = this.dateTimePicker2.Value.AddDays(1) }; this.salesOrderReturnDetailQueryModelBindingSource.Clear(); this.salesOrderReturnDetailQueryModelBindingSource.Add(q); }; InitQuery(); #region 初始化表格控件 this.dataGridView1.AllowUserToAddRows = false; this.dataGridView1.ReadOnly = true; this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; this.dataGridView1.RowPostPaint += (s, e) => DataGridViewOperator.SetRowNumber(this.dataGridView1, e); this.dataGridView1.AllowUserToOrderColumns = true; #endregion #region 钮事件 this.toolStripButton1.Click += (s, e) => { this.Validate(); q.DTT = this.dateTimePicker2.Value.AddDays(1); q.DTF = this.dateTimePicker1.Value; var re = this.PharmacyDatabaseService.GetSalesOrderReturnDetailModels(q, out msg).ToList(); re.Add(new Business.Models.SalesOrderReturnDetailModel { ProductGeneralName = "合计", ReturnAmount = re.Sum(r => r.ReturnAmount), Price = re.Sum(r => decimal.Round(r.ReturnAmount * r.UnitPrice, 4)) }); this.dataGridView1.DataSource = re; this.dataGridView1.Columns["DrugInfoId"].Visible = false; this.dataGridView1.Columns["CreateTime"].Visible = false; this.dataGridView1.Columns["ReturnEmName"].Visible = false; this.dataGridView1.Columns["Id"].Visible = false; this.dataGridView1.Columns["SalesOrderId"].Visible = false; this.dataGridView1.Columns["SalesOrderReturnId"].Visible = false; Business.Models.SalesOrderReturnDetailModel m = new Business.Models.SalesOrderReturnDetailModel(); PropertyInfo[] pis = m.GetType().GetProperties(); foreach (PropertyInfo pi in pis) { int a = (pi.GetCustomAttributes(typeof(DataMemberAttribute), false)[0] as DataMemberAttribute).Order; if (a < 0) { continue; } this.dataGridView1.Columns[pi.Name].DisplayIndex = a; } }; this.toolStripButton2.Click += (s, e) => { InitQuery(); }; this.toolStripButton3.Click += (s, e) => { MyExcelUtls.DataGridview2Sheet(this.dataGridView1, "销售品种退货记录"); }; #endregion }
/// <summary> /// 销退细节查询 /// </summary> /// <param name="q"></param> /// <returns></returns> public Business.Models.SalesOrderReturnDetailModel[] GetSalesOrderReturnDetailModels(Business.Models.SalesOrderReturnDetailQueryModel q) { var all = RepositoryProvider.Db.SalesOrderReturnDetails.Where(r => r.Deleted == false); if (!string.IsNullOrEmpty(q.Keyword))//品种名称 { all = all.Where(r => r.productName.Contains(q.Keyword)); } if (!string.IsNullOrEmpty(q.BatchNumber))//品种批号 { all = all.Where(r => r.BatchNumber.Contains(q.BatchNumber)); } var SalesOrders = RepositoryProvider.Db.SalesOrders.Include(r => r.PurchaseUnit).Where(r => r.Deleted == false); if (!string.IsNullOrEmpty(q.SalesOrderCode))//销售单号 { SalesOrders = SalesOrders.Where(r => r.OrderCode.Contains(q.SalesOrderCode)); } if (!string.IsNullOrEmpty(q.ReturnPurchaseUnitName))//销售客户 { SalesOrders = SalesOrders.Where(r => r.PurchaseUnit.Name.Contains(q.ReturnPurchaseUnitName)); } var SalesReturnOrders = RepositoryProvider.Db.SalesOrderReturns.Where(r => r.Deleted == false && r.CreateTime > q.DTF && r.CreateTime < q.DTT); //退货单 if (!string.IsNullOrEmpty(q.SalesOrderReturnCode)) //退货单号 { SalesReturnOrders = SalesReturnOrders.Where(r => r.OrderReturnCode.Contains(q.SalesOrderReturnCode)); } var re = from i in all join sro in SalesReturnOrders on i.OrderReturnID equals sro.Id join so in SalesOrders on sro.SalesOrderID equals so.Id join di in RepositoryProvider.Db.DrugInventoryRecords.Include(r => r.DrugInfo) on i.DrugInventoryRecordID equals di.Id select new Business.Models.SalesOrderReturnDetailModel { Id = i.Id, DictionaryDosageCode = i.DictionaryDosageCode, DictionaryMeasurementUnitCode = i.MeasurementUnit, DictionarySpecificationCode = i.SpecificationCode, FactoryName = i.FactoryName, DrugInfoId = di.DrugInfoId, LicensePermissionNumber = di.DrugInfo.LicensePermissionNumber, Origin = i.Origin, ProductGeneralName = i.productName, ReturnAmount = i.ReturnAmount, SalerName = so.SalerName, UnitPrice = i.ActualUnitPrice, SalesOrderCode = so.OrderCode, SalesOrderId = so.Id, SalesOrderReturnCode = sro.OrderReturnCode, SalesOrderReturnId = sro.Id, CreateTime = sro.CreateTime, BatchNumber = i.BatchNumber, Price = decimal.Round(i.ActualUnitPrice * i.ReturnAmount, 4), PurchaseUnitName = so.PurchaseUnit.Name }; return(re.OrderBy(r => r.ProductGeneralName).ToArray()); }