private void TextBoxToModel(DataRow dr) { TPurchase info = _TPurchase; TPurchaseDetail tinfoDetail = new TPurchaseDetail(); tinfoDetail.DetDetail = new MMS_PurchaseDetail(); //TPurchaseDetail tinfoDetail = _TPurchase.Detail[0]; string BillCode = dr["PurchaseBillCode"].ToString().Trim(); int BillId = 0; if (BillId == 0) { info.Content.AuditFlag = false; info.Content.InvoiceCode = dr["InvoiceCode"].ToString().Trim(); info.Content.Provider = dr["Provider"].ToString().Trim(); info.Content.PurchaseBillCode = dr["PurchaseBillCode"].ToString(); if (!string.IsNullOrEmpty(dr["InvoiceDate"].ToString().Trim())) { info.Content.InvoiceDate = Convert.ToDateTime(dr["InvoiceDate"].ToString().Trim()); } if (!string.IsNullOrEmpty(dr["InvoiceCode"].ToString().Trim())) { info.Content.InvoiceCode = dr["InvoiceCode"].ToString().Trim(); } info.Content.PurchaseDate = DateTime.Now; info.Content.CheckMan = RequestSession.GetSessionUser().UserAccount.ToString(); info.Content.Operator = Context.User.Identity.Name; info.Content.OperateDate = DateTime.Now; info.OprType = OperateType.otInsert; } MMS_PurchaseDetail detail = tinfoDetail.DetDetail; detail.PurchaseBillCode = dr["PurchaseBillCode"].ToString(); //入库单号 detail.ProductCode = dr["ProductCode"].ToString(); //货品代码 detail.Lot = dr["Lot"].ToString(); //批号 detail.ValidDate = dr["ValidDate"].ToString(); //有效期 if (!string.IsNullOrEmpty(dr["Quantity"].ToString())) //数量 { detail.Quantity = Convert.ToInt32(dr["Quantity"].ToString()); } if (!string.IsNullOrEmpty(dr["Price"].ToString())) //单价 { detail.Price = Convert.ToDouble(dr["Price"].ToString()); } tinfoDetail.DetDetail = detail; tinfoDetail.OprType = OperateType.otInsert; info.Detail.Add(tinfoDetail); //将操作实体添加到入库货品集合中 int tempId = PurchaseService.Instance.SavePurchase(info); }
protected void btnOK_Click(object sender, EventArgs e) { TPurchase info = _TPurchase; if (string.IsNullOrEmpty(detailId)) //插入操作 { //创建入库货品实例 TPurchaseDetail tinfoDetail = new TPurchaseDetail(); tinfoDetail.DetDetail = new MMS_PurchaseDetail(); if (info.Detail.Count > 0) //新插入的以-1开始,以后渐减 { //设置新录入入库货品的主键ID,以-1开始,以后渐减 int minId = info.Detail.Min(itm => itm.DetDetail.ID); if (minId < 0) { tinfoDetail.DetDetail.ID = minId - 1; } else { tinfoDetail.DetDetail.ID = -1; } } else //该入库单没有货品信息 { tinfoDetail.DetDetail.ID = -1; } DetailTextBoxToModel(tinfoDetail); //将入库货品赋值给实体 tinfoDetail.OprType = OperateType.otInsert; info.Detail.Add(tinfoDetail); //将操作实体添加到入库货品集合中 _TPurchase = info; ClearDetailTextBox(); //清除入库货品服务器控件内容 LoadData(); //加载Gridview数据 } else //编辑操作 { //根据入库货品ID取实体 TPurchaseDetail tinfoDetail = info.Detail.First(itm => itm.DetDetail.ID == Convert.ToInt32(detailId)); DetailTextBoxToModel(tinfoDetail); //将服务器控件赋给实体 if (tinfoDetail.OprType != OperateType.otInsert) //如果是新插入的仍保留插入状态 { tinfoDetail.OprType = OperateType.otUpdate; } _TPurchase = info; LoadData(); //加载GridView数据 EntryDetailInputPage(false); //切换到入库单录入页面 } }
private void ModelToDetailTextBox(TPurchaseDetail tinfo) { BindDict("Unit", ddlUnit); //将计量单位下拉框绑定字典 //调用业务层方法取货品信息实体 MMS_MaterialInfo product = MaterialInfoService.Instance.GetProductInfoByCode(tinfo.DetDetail.ProductCode); MMS_PurchaseDetail detail = tinfo.DetDetail; txtProductCode.Text = detail.ProductCode; //货品代码 txtShortName.Text = product.Material_Name; //货品简称 txtSpecs.Text = product.Material_Specification; //规格 txtLot.Text = detail.Lot.ToString(); //批号 txtValidDate.Text = detail.ValidDate.ToString(); //有效期 txtProvider.Text = product.Material_Supplier.ToString(); //生产厂同 ddlUnit.Text = product.Material_Unit; //计量单位 txtQuantity.Text = detail.Quantity.ToString(); //数量 txtPrice.Text = detail.Price.ToString(); //单价 txtSeldPrice.Text = detail.SeldPrice.ToString(); txtAmount.Text = (detail.Quantity * detail.Price).ToString(); //金额=数量*单价 }
/// <summary> /// 根据主键值获取入库单实体 /// </summary> /// <param name="id"> </param> /// <returns> </returns> public TPurchase GetPurchase(int id) { TPurchase resu = new TPurchase(); //创建入库单实体 resu.OprType = OperateType.otNone; //取入库单主内容信息赋值给实体 resu.Content = dc.MMS_PurchaseContent.Where(itm => itm.ID == id).First(); //取入库单货品明细信息 List <MMS_PurchaseDetail> tempList = dc.MMS_PurchaseDetail.Where(itm => itm.PurchaseBillCode == resu.Content.PurchaseBillCode).ToList(); foreach (MMS_PurchaseDetail item in tempList) { TPurchaseDetail TDetail = new TPurchaseDetail(); TDetail.OprType = OperateType.otNone; TDetail.DetDetail = item; resu.Detail.Add(TDetail); //将入库单货品添加到实体的入库货品列表 } return(resu); }
private void DetailTextBoxToModel(TPurchaseDetail tinfo) { MMS_PurchaseDetail detail = tinfo.DetDetail; detail.PurchaseBillCode = txtPurchaseBillCode.Text; //入库单号 detail.ProductCode = txtProductCode.Text; //货品代码 detail.Lot = txtLot.Text.ToString(); //批号 detail.ValidDate = txtValidDate.Text; //有效期 if (!string.IsNullOrEmpty(txtQuantity.Text)) //数量 { detail.Quantity = Convert.ToInt32(txtQuantity.Text); } if (!string.IsNullOrEmpty(txtPrice.Text)) //单价 { detail.Price = Convert.ToDouble(txtPrice.Text); } if (!string.IsNullOrEmpty(txtSeldPrice.Text)) //出货单价 { detail.SeldPrice = Convert.ToDouble(txtSeldPrice.Text.ToString()); } }
/// <summary> /// GridView行命令事件,点击GridView行按钮时触发的事件 /// </summary> /// <param name="sender"> </param> /// <param name="e"> </param> protected void dgvInfo_RowCommand(object sender, GridViewCommandEventArgs e) { if (!string.IsNullOrEmpty(e.CommandName)) //判断命令名是否为空 { if (e.CommandName == "Edi") //如果触发的是详细信息按钮事件 { int index = Convert.ToInt32(e.CommandArgument); //取GridView行索引 GridView grid = (GridView)e.CommandSource; //取当前操作的GridView int tempId = Convert.ToInt32(grid.DataKeys[index].Value); detailId = tempId.ToString(); TPurchaseDetail detail = _TPurchase.Detail.FirstOrDefault(itm => itm.DetDetail.ID == tempId); ModelToDetailTextBox(detail); //将实体赋值给对应的服务器控件 EntryDetailInputPage(true); //切换到货品录入页面 } else if (e.CommandName == "Del") { int index = Convert.ToInt32(e.CommandArgument); //取GridView行索引 GridView grid = (GridView)e.CommandSource; //取当前操作的GridView int id = Convert.ToInt32(grid.DataKeys[index].Value); //取GridView主键值 TPurchase temp = _TPurchase; TPurchaseDetail tempDetail = temp.Detail.First(itm => itm.DetDetail.ID == id); if (tempDetail.OprType == OperateType.otInsert) //如果是新插入的直接将其删除 { temp.Detail.Remove(tempDetail); } else //如是不是新插入的置删除标志 { tempDetail.OprType = OperateType.otDelete; } _TPurchase = temp; LoadData(); } else if (e.CommandName == "Page") { LoadData(); } } }