public static ClientOrderDetail InsertOrderDetail(ClientOrderDetail orderDetail) { try { var endPointString = endPointQLBH + "api/orderdetails"; var orderDetailNew = Task.Run(() => PostAsync <ClientOrderDetail>(endPointString, orderDetail)).Result; return(orderDetailNew); } catch (BusinessLayerException) { throw new BusinessLayerException(500, "#1001002 Không thêm được chi tiết hóa đơn."); } catch (Exception) { throw new BusinessLayerException(500, "#1001003 Không thêm được chi tiết hóa đơn."); } }
//bấm nút thanh toán, nó sẽ lưu vào csdl và giỏ hàng sẽ trở về số 0 public ActionResult Checkout(decimal totalPrice) { var c = Session["cart"] as ClientCart; var ui = Session["Logged"] as ClientUserInfo; var user = CSDLQLBH.UserGetSingleByUserName(ui.Username); var order = new ClientOrder { OrderDate = DateTime.Now, User = user, Total = totalPrice, }; var totalOrders = CSDLQLBH.GetOrders().ToList().Count; if (totalOrders == 0) { order.OrderID = 1; } CSDLQLBH.InsertOrders(order); decimal amount = 0; foreach (var ci in c.Items) { var p = CSDLQLBH.GetSingleProduct(ci.Product.ProID); amount = (decimal)p.Price * ci.Quantity; var od = new ClientOrderDetail { Order = order, Product = p, Quantity = ci.Quantity, Price = (decimal)p.Price, Amount = amount }; CSDLQLBH.InsertOrderDetail(od); p.Quantity -= ci.Quantity; CSDLQLBH.UpdateProduct(p); } c = CSDLQLBH.Checkout(c); Session["CheckOut"] = 1; return(RedirectToAction("Detail", "Cart")); }
public virtual void DeleteClientOrderDetail(ClientOrderDetail entity) { entityDao.DeleteClientOrderDetail(entity); }
public virtual void CreateClientOrderDetail(ClientOrderDetail entity) { entityDao.CreateClientOrderDetail(entity); }
/// <summary> /// 升级客户服务 /// </summary> /// <param name="client"></param> public JsonResult SaveClientAuthorize(string clientID, int serviceType, int giveType, int userQuantity, string endTime, int buyType, int buyUserQuantity, int buyUserYears) { bool flag = false; var client = ClientBusiness.GetClientDetail(clientID); ClientAuthorizeLog log = new ClientAuthorizeLog(); log.CreateUserID = CurrentUser.UserID; log.ClientID = clientID; log.OrderID = string.Empty; if (serviceType == 1) //赠送 { if (giveType == 1) //赠送人数 { flag = ClientBusiness.AddClientUserQuantity(client.ClientID, userQuantity); log.BeginTime = client.EndTime; log.EndTime = client.EndTime; log.UserQuantity = userQuantity; log.Type = 2; } else//赠送时间 { log.BeginTime = client.EndTime; flag = ClientBusiness.SetClientEndTime(client.ClientID, DateTime.Parse(endTime)); log.EndTime = DateTime.Parse(endTime); log.UserQuantity = client.UserQuantity; log.Type = 3; } ClientBusiness.UpdateClientCache(client.ClientID); ClientBusiness.InsertClientAuthorizeLog(log); ClearClientCache(client.ClientID); } else//购买生成订单 { log.Type = buyType; int remainderMonths = 0;//剩余月份 int years = 1; if (buyType == 2)//购买人数 { remainderMonths = (client.EndTime.Year - DateTime.Now.Year) * 12 + (client.EndTime.Month - DateTime.Now.Month) - 1; if (client.EndTime.Day >= DateTime.Now.Day) { remainderMonths += 1; } years = remainderMonths / 12 == 0 ? 1 : remainderMonths / 12; log.BeginTime = client.EndTime; log.EndTime = client.EndTime; log.UserQuantity = userQuantity; } else { years = buyUserYears; log.BeginTime = client.EndTime; log.EndTime = client.EndTime.AddYears(years); log.UserQuantity = client.UserQuantity; } int pageCount = 0; int totalCount = 0; List <ModulesProduct> list = ModulesProductBusiness.GetModulesProducts(string.Empty, int.MaxValue, 1, ref totalCount, ref pageCount); //获取订单产品的最佳组合 var way = ModulesProductBusiness.GetBestWay(buyUserQuantity, list.OrderByDescending(m => m.UserQuantity).Where(m => m.PeriodQuantity == years).ToList()); //获取订单参数 ClientOrder model = new ClientOrder(); model.UserQuantity = way.TotalQuantity; model.Type = buyType; model.Years = years; model.Amount = way.TotalMoney; model.RealAmount = way.TotalMoney; model.SourceType = 1; //购买人数 float remainderYears = 1; if (buyType == 2) { remainderYears = (float)remainderMonths / (12 * years); model.Amount = decimal.Parse((float.Parse(model.Amount.ToString()) * remainderYears).ToString("f2")); model.RealAmount = model.Amount; } model.ClientID = client.ClientID; model.CreateUserID = CurrentUser.UserID; model.Details = new List <ClientOrderDetail>(); foreach (var p in way.Products) { ClientOrderDetail detail = new ClientOrderDetail(); detail.ProductID = p.Key; detail.Qunatity = p.Value; detail.CreateUserID = CurrentUser.CreateUserID; detail.Price = list.Find(m => m.ProductID == p.Key).Price; //购买人数 if (buyType == 2) { detail.Price = decimal.Parse((float.Parse(detail.Price.ToString()) * remainderYears).ToString("f2")); } model.Details.Add(detail); } string orderID = ClientOrderBusiness.AddClientOrder(model); log.OrderID = orderID; flag = string.IsNullOrEmpty(orderID) ? false : true; } JsonDictionary.Add("Result", flag ? 1 : 0); return(new JsonResult() { Data = JsonDictionary, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public virtual void DeleteClientOrderDetail(ClientOrderDetail entity) { Delete(entity); }
public virtual void UpdateClientOrderDetail(ClientOrderDetail entity) { Update(entity); }
public virtual void CreateClientOrderDetail(ClientOrderDetail entity) { Create(entity); }
public virtual void UpdateClientOrderDetail(ClientOrderDetail entity) { entityDao.UpdateClientOrderDetail(entity); }
/// <summary> /// 根据人数、年数生成客户订单 /// </summary> public JsonResult AddClientOrder(int quantity, int years, int type) { int remainderMonths = 12;//剩余月份 //购买人数 if (type == 2) { remainderMonths = (CurrentClient.EndTime.Year - DateTime.Now.Year) * 12 + (CurrentClient.EndTime.Month - DateTime.Now.Month) - 1; if (CurrentClient.EndTime.Day >= DateTime.Now.Day) { remainderMonths += 1; } years = remainderMonths / 12 == 0 ? 1 : remainderMonths / 12; } int pageCount = 0; int totalCount = 0; List <ModulesProduct> list = ModulesProductBusiness.GetModulesProducts(string.Empty, int.MaxValue, 1, ref totalCount, ref pageCount); //获取订单产品的最佳组合 var way = ModulesProductBusiness.GetBestWay(quantity, list.OrderByDescending(m => m.UserQuantity).Where(m => m.PeriodQuantity == years).ToList()); //获取订单参数 ClientOrder model = new ClientOrder(); model.UserQuantity = way.TotalQuantity; model.Type = type; model.Years = years; model.Amount = way.TotalMoney; //if (!string.IsNullOrEmpty(CurrentUser.Client.AliMemberID)) //{ // if (type == 1 || type == 2) // { // discount = 0.50M; // } // else // { // discount = 0.88M; // } //} //else //{ // if (type == 1 || type == 2) // { // discount = 0.5M; // } //} model.RealAmount = way.TotalMoney * OrderDiscount; //购买人数 float remainderYears = 1; if (type == 2) { remainderYears = (float)remainderMonths / (12 * years); model.Amount = decimal.Parse((float.Parse(model.Amount.ToString()) * remainderYears).ToString("f2")); model.RealAmount = decimal.Parse((float.Parse(model.RealAmount.ToString()) * remainderYears).ToString("f2")); } model.ClientID = CurrentUser.ClientID; model.CreateUserID = CurrentUser.UserID; model.SourceType = 0; model.Details = new List <ClientOrderDetail>(); foreach (var p in way.Products) { ClientOrderDetail detail = new ClientOrderDetail(); detail.ProductID = p.Key; detail.Qunatity = p.Value; detail.CreateUserID = CurrentUser.CreateUserID; detail.Price = list.Find(m => m.ProductID == p.Key).Price; //购买人数 if (type == 2) { detail.Price = decimal.Parse((float.Parse(detail.Price.ToString()) * remainderYears).ToString("f2")); } model.Details.Add(detail); } string orderID = ClientOrderBusiness.AddClientOrder(model); JsonDictionary.Add("ID", orderID); JsonDictionary.Add("RealAmount", model.RealAmount); return(new JsonResult { Data = JsonDictionary, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
//保存 private void tsbSave_Click(object sender, EventArgs e) { txtRemark.Focus(); gridView1.UpdateCurrentRow(); if (dtpClientOrderDate.Text == "") { this.ShowAlertMessage("必须输入下单日期!"); return; } if (cboOrderType.Text.Trim() == "") { this.ShowAlertMessage("请选择订单类别!"); cboOrderType.Focus(); return; } if (gridView1.RowCount <= 0) { this.ShowAlertMessage("必须增加明细数据!"); return; } //if (bm.IsExistBillID(txtBillID.Text) == true && this.Tag.ToString() == "add") //{ // this.ShowAlertMessage("订单号已经存在,请重新输入!"); // return; //} ClientOrder ClientOrder = new ClientOrder(); ClientOrder.ClientOrderGuid = txtClientOrderGuid.Text; ClientOrder.ClientOrderID = txtClientOrderID.Text; ClientOrder.ClientOrderDate = DateTime.Parse(dtpClientOrderDate.Text); if (dtpEncasementDate.Text.Trim() == "") { ClientOrder.EncasementDate = DateTime.Parse("1900-01-01"); } else { ClientOrder.EncasementDate = DateTime.Parse(dtpEncasementDate.Text); } ClientOrder.ContractID = txtContractID.Text; ClientOrder.CheckBatchID = txtCheckBatchID.Text; if (txtDownDept.Tag != null) { ClientOrder.DownDept = txtDownDept.Tag.ToString(); } ClientOrder.ReceiveDept = txtReceiveDept.Text; ClientOrder.OrderType = cboOrderType.Text; ClientOrder.Remark = txtRemark.Text; ClientOrder.CreateGuid = txtCreateGuid.Tag.ToString(); ClientOrder.CreateDate = DateTime.Now; ClientOrder.CheckGuid = ""; ClientOrder.CheckDate = DateTime.Parse("1900-01-01"); ClientOrder.CheckGuid2 = ""; ClientOrder.CheckDate2 = DateTime.Parse("1900-01-01"); ClientOrder.EndGuid = ""; ClientOrder.EndDate = DateTime.Parse("1900-01-01"); List <ClientOrderDetail> list = new List <ClientOrderDetail>(); ClientOrderDetail ClientOrderDetail = new ClientOrderDetail(); for (int i = 0; i < gridView1.RowCount; i++) { DataRowView dr = (DataRowView)(gridView1.GetRow(i)); ClientOrderDetail = new ClientOrderDetail(); ClientOrderDetail.ClientOrderGuid = ClientOrder.ClientOrderGuid; ClientOrderDetail.MaterialGuid = dr["MaterialGuID"].ToString(); if (dr["MaterialSum"].ToString().Trim() != "") { ClientOrderDetail.MaterialSum = decimal.Parse(dr["MaterialSum"].ToString()); } else { ClientOrderDetail.MaterialSum = 0; } ClientOrderDetail.Remark = dr["Remark"].ToString(); //gridView1.GetRowCellValue(i, gridProductGuid).ToString(); list.Add(ClientOrderDetail); } //保存 ClientOrderManage.SaveBill(ClientOrder, list); tsbCheck.Enabled = true; tsbUnCheck.Enabled = false; DataTable dtl = base.GetDataTable((DataView)gridView1.DataSource); ds.Tables.Clear(); ds.Tables.Add(dtl.Copy()); ds.Tables[0].TableName = "ClientOrderDetail"; SetRight(); //写日志 SysLog.AddOperateLog(SysParams.UserName, "客户订单保存", "保存", SysParams.UserName + "用户保存了客户订单,订单唯一号:" + txtClientOrderGuid.Text + "订单号:" + txtClientOrderID.Text); this.Tag = "edit"; this.ShowMessage("保存成功"); frmClientOrder.frmclientorder.LoadData(); }