public List <XMInvoiceInfoDetail> InitializationInvoiceInfoDetail(List <XMInvoiceInfoDetail> list) { List <XMInvoiceInfoDetail> List = new List <XMInvoiceInfoDetail>(); for (int i = 0; i < list.Count; i++) { XMInvoiceInfoDetail one = new XMInvoiceInfoDetail(); one.ID = i; one.ProductName = list[i].ProductName; one.ProductUnit = list[i].ProductUnit; one.Count = list[i].Count; one.UnitPrice = list[i].UnitPrice; one.Amount = list[i].Amount; one.IsEnable = false; one.CreateID = HozestERPContext.Current.User.CustomerID; one.CreateDate = DateTime.Now; one.UpdateID = HozestERPContext.Current.User.CustomerID; one.UpdateDate = DateTime.Now; List.Add(one); } return(List); }
protected void grdvClients_RowCommand(object sender, GridViewCommandEventArgs e) { try { List <XMInvoiceInfoDetail> list = new List <XMInvoiceInfoDetail>(); if (Session["InvoiceInfoDetailList"] != null) { list = ((List <XMInvoiceInfoDetail>)Session["InvoiceInfoDetailList"]); } if (e.CommandName.Equals("ToDelete"))//删除 { if (Id != 0) { var Info = base.XMInvoiceInfoDetailService.GetXMInvoiceInfoDetailByID(Convert.ToInt32(e.CommandArgument)); if (Info != null)//删除 { Info.IsEnable = true; Info.UpdateID = HozestERPContext.Current.User.CustomerID; Info.UpdateDate = DateTime.Now; base.XMInvoiceInfoDetailService.UpdateXMInvoiceInfoDetail(Info); } } else { list.RemoveAt(Convert.ToInt32(e.CommandArgument)); for (int i = 0; i < list.Count; i++) { list[i].ID = i; } Session["InvoiceInfoDetailList"] = list; } base.ShowMessage("操作成功!"); this.BindGrid(); } if (e.CommandName.Equals("ToEdit"))//修改 { int a = 0; decimal b = 0; GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).Parent.Parent; HtmlInputText lblProductName = (HtmlInputText)gvr.FindControl("lblProductName"); HtmlInputText lblProductUnit = (HtmlInputText)gvr.FindControl("lblProductUnit"); HtmlInputText lblCount = (HtmlInputText)gvr.FindControl("lblCount"); HtmlInputText lblUnitPrice = (HtmlInputText)gvr.FindControl("lblUnitPrice"); HtmlInputText lblAmount = (HtmlInputText)gvr.FindControl("lblAmount"); if (lblProductName.Value == "" || lblCount.Value == "" || lblUnitPrice.Value == "" || lblAmount.Value == "") { base.ShowMessage("数据不能为空!"); return; } if (!int.TryParse(lblCount.Value, out a)) { base.ShowMessage("数量必须为整数!"); return; } if (!decimal.TryParse(lblUnitPrice.Value, out b) || !decimal.TryParse(lblAmount.Value, out b)) { base.ShowMessage("单价,总价必须为数字!"); return; } bool PinPaiCheck = false; var CodeListPinPai = CodeService.GetCodeListInfoByCodeTypeID(187); foreach (var item in CodeListPinPai) { if (lblProductName.Value.Contains(item.CodeName)) { PinPaiCheck = true; } } bool ProductTypeCheck = false; var CodeListProductType = CodeService.GetCodeListInfoByCodeTypeID(188); foreach (var item in CodeListProductType) { if (lblProductName.Value.Contains(item.CodeName)) { ProductTypeCheck = true; } } if (!PinPaiCheck || !ProductTypeCheck) { base.ShowMessage("产品名称不符合规范,格式应是品牌+产品类型!"); } XMInvoiceInfoDetail one = new XMInvoiceInfoDetail(); one.ProductName = lblProductName.Value.Trim(); one.ProductUnit = lblProductUnit.Value.Trim(); one.Count = int.Parse(lblCount.Value.Trim()); one.UnitPrice = decimal.Parse(lblUnitPrice.Value.Trim()); one.Amount = decimal.Parse(lblAmount.Value.Trim()); one.IsEnable = false; one.CreateID = HozestERPContext.Current.User.CustomerID; one.CreateDate = DateTime.Now; one.UpdateID = HozestERPContext.Current.User.CustomerID; one.UpdateDate = DateTime.Now; if (Id != 0) { string OrderCode = this.txtOrderCode.Text.Trim(); var OrderInfo = base.XMOrderInfoService.GetXMOrderInfoByOrderCode(OrderCode); if (OrderInfo != null) { var detaillist = base.XMInvoiceInfoDetailService.GetXMInvoiceInfoDetailListByOrderCode(OrderCode); decimal total = (decimal)detaillist.Sum(x => x.Amount); total += (decimal)one.Amount; if (total > OrderInfo.PayPrice) { base.ShowMessage("该订单发票总金额不能大于订单支付金额!"); return; } } one.InvoiceInfoID = Id; base.XMInvoiceInfoDetailService.InsertXMInvoiceInfoDetail(one); } else { one.ID = list.Count; list.Add(one); Session["InvoiceInfoDetailList"] = list; } base.ShowMessage("添加成功!"); } this.BindGrid(); } catch (Exception ex) { base.ProcessException(ex); } }