Beispiel #1
0
        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);
 }
Beispiel #5
0
        /// <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
            });
        }
Beispiel #6
0
 public virtual void DeleteClientOrderDetail(ClientOrderDetail entity)
 {
     Delete(entity);
 }
Beispiel #7
0
 public virtual void UpdateClientOrderDetail(ClientOrderDetail entity)
 {
     Update(entity);
 }
Beispiel #8
0
 public virtual void CreateClientOrderDetail(ClientOrderDetail entity)
 {
     Create(entity);
 }
 public virtual void CreateClientOrderDetail(ClientOrderDetail entity)
 {
     Create(entity);
 }
Beispiel #10
0
 public virtual void DeleteClientOrderDetail(ClientOrderDetail entity)
 {
     entityDao.DeleteClientOrderDetail(entity);
 }
Beispiel #11
0
 public virtual void UpdateClientOrderDetail(ClientOrderDetail entity)
 {
     entityDao.UpdateClientOrderDetail(entity);
 }
Beispiel #12
0
 public virtual void CreateClientOrderDetail(ClientOrderDetail entity)
 {
     entityDao.CreateClientOrderDetail(entity);
 }
 public virtual void DeleteClientOrderDetail(ClientOrderDetail entity)
 {
     Delete(entity);
 }
 public virtual void UpdateClientOrderDetail(ClientOrderDetail entity)
 {
     Update(entity);
 }
 public virtual void UpdateClientOrderDetail(ClientOrderDetail entity)
 {
     entityDao.UpdateClientOrderDetail(entity);
 }
Beispiel #16
0
        /// <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
            });
        }
Beispiel #17
0
        //保存
        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();
        }