コード例 #1
0
        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
        }
コード例 #2
0
        /// <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());
        }