public void Init() { IRepository repo = new Repository(); var list = repo.Query<OrderItem>(x => x.OrderID == ID) .FindAll(x => x.IsActive && Product.Cache.Load(x.ProductGuid) != null); if (list.Count > 0) { var oiBase = list.Find(x => Product.Cache.Load(x.ProductGuid).ProductType.Equals(ProductType.PlayerNumber)); if (oiBase != null) { var mapperPlayerNumber = new MapperConfiguration(cfg => cfg.CreateMap<OrderItem, OrdrItmPlayerNumber>().AfterMap((s, d) => d.Init())) .CreateMapper(); OIPlayerNumber = mapperPlayerNumber.Map<OrdrItmPlayerNumber>(oiBase); } oiBase = list.Find(x => Product.Cache.Load(x.ProductGuid).ProductType.Equals(ProductType.PlayerName)); if (oiBase != null) { var mapperPlayerName = new MapperConfiguration(cfg => cfg.CreateMap<OrderItem, OrdrItmPlayerName>().AfterMap((s, d) => d.Init())) .CreateMapper(); OIPlayerName = mapperPlayerName.Map<OrdrItmPlayerName>(oiBase); } if (OIPlayerNumber != null && OIPlayerName != null) { UrlOrderView = "iArsenalOrderView_Printing.aspx"; oiBase = list.Find(x => Product.Cache.Load(x.ProductGuid).ProductType.Equals(ProductType.ArsenalFont)); if (oiBase != null) { var mapperArsenalFont = new MapperConfiguration(cfg => cfg.CreateMap<OrderItem, OrdrItmArsenalFont>().AfterMap((s, d) => d.Init())) .CreateMapper(); OIArsenalFont = mapperArsenalFont.Map<OrdrItmArsenalFont>(oiBase); } oiBase = list.Find(x => Product.Cache.Load(x.ProductGuid).ProductType.Equals(ProductType.PremiershipPatch)); if (oiBase != null) { var mapperPremiershipPatch = new MapperConfiguration(cfg => cfg.CreateMap<OrderItem, OrdrItmPremiershipPatch>().AfterMap((s, d) => d.Init())) .CreateMapper(); OIPremiershipPatch = mapperPremiershipPatch.Map<OrdrItmPremiershipPatch>(oiBase); } oiBase = list.Find( x => Product.Cache.Load(x.ProductGuid).ProductType.Equals(ProductType.ChampionshipPatch)); if (oiBase != null) { var mapperChampionshipPatch = new MapperConfiguration(cfg => cfg.CreateMap<OrderItem, OrdrItmChampionshipPatch>().AfterMap((s, d) => d.Init())) .CreateMapper(); OIChampionshipPatch = mapperChampionshipPatch.Map<OrdrItmChampionshipPatch>(oiBase); } } else { throw new Exception("Unable to init Order_Printing."); } } #region Order Status Workflow Info var strWorkflow = "{{ \"StatusType\": \"{0}\", \"StatusInfo\": \"{1}\" }}"; string[] workflowInfo = { string.Format(strWorkflow, ((int) OrderStatusType.Draft), "未提交"), string.Format(strWorkflow, ((int) OrderStatusType.Submitted), "后台审核"), string.Format(strWorkflow, ((int) OrderStatusType.Confirmed), "球衣收到"), string.Format(strWorkflow, ((int) OrderStatusType.Ordered), "打印中"), string.Format(strWorkflow, ((int) OrderStatusType.Delivered), "已发货") }; StatusWorkflowInfo = workflowInfo; #endregion }
protected void btnSubmit_Click(object sender, EventArgs e) { using (var conn = new SqlConnection(DataAccess.ConnectString)) { conn.Open(); var trans = conn.BeginTransaction(); try { if (string.IsNullOrEmpty(ddlReplicaKit.SelectedValue)) { throw new Exception("请选择需要订购的球衣"); } var m = _repo.Single<Member>(Mid); if (!string.IsNullOrEmpty(tbMemberWeChat.Text.Trim())) { m.WeChat = tbMemberWeChat.Text.Trim(); _repo.Update(m); } else { throw new Exception("请输入会员微信号"); } //New Order var o = new Order(); int newId; if (OrderID > 0) { o = _repo.Single<Order>(OrderID); } o.Mobile = tbOrderMobile.Text.Trim(); o.Address = tbOrderAddress.Text.Trim(); //if (rblOrderPayment.SelectedValue.Equals("Bank", StringComparison.OrdinalIgnoreCase)) //{ // o.Payment = "{" + rblOrderPayment.SelectedValue + "|" + tbBankName.Text.Trim() + "|" + // tbBankAccount.Text.Trim() + "}"; //} //else //{ // o.Payment = "{" + rblOrderPayment.SelectedValue + "|" + tbAlipay.Text.Trim() + "}"; //} o.Payment = string.Empty; o.Postage = Convert.ToSingle(rblOrderPostage.SelectedValue); o.UpdateTime = DateTime.Now; o.Description = tbOrderDescription.Text.Trim(); o.OrderType = OrderBaseType.ReplicaKit; if (OrderID > 0) { _repo.Update(o, trans); // used by setting OrderItem foreign key newId = OrderID; } else { o.MemberID = m.ID; o.MemberName = m.Name; o.Price = 0; o.Sale = null; o.Deposit = null; o.Status = OrderStatusType.Draft; o.Rate = 0; o.CreateTime = DateTime.Now; o.IsActive = true; o.Remark = string.Empty; //Get the Order ID after Insert new one object key; _repo.Insert(o, out key, trans); newId = Convert.ToInt32(key); } //Remove Order Item of this Order if (OrderID > 0 && o.ID.Equals(OrderID)) { _repo.Query<OrderItem>(x => x.OrderID == OrderID).Delete(trans); } //New Order Item for ReplicaKit var pReplicaKit = Product.Cache.Load(new Guid(ddlReplicaKit.SelectedValue)); var oi = new OrdrItmReplicaKit(); if (pReplicaKit == null) throw new Exception("无相关纪念品或缺货,请联系管理员"); // HARD CORD for HongKong Home Kit //bool isHongKongKit = pReplicaKit.Code.Equals("M74756HK", StringComparison.OrdinalIgnoreCase); //float salePrinting = 61f; oi.OrderID = newId; oi.Size = tbOrderItemSize.Text.Trim().ToUpper(); oi.Quantity = 1; oi.Sale = null; oi.Remark = string.Empty; oi.Place(m, pReplicaKit, trans); // New Order Item for Home Player Number & Name if (!string.IsNullOrEmpty(ddlPlayerDetail.SelectedValue)) { var pNumber = Product.Cache.Load(ProductType.PlayerNumber).Find(p => p.IsActive); var pName = Product.Cache.Load(ProductType.PlayerName).Find(p => p.IsActive); if (pNumber == null || pName == null) throw new Exception("无印号信息,请联系管理员"); var oiFont = new OrdrItmArsenalFont(); var oiNumber = new OrdrItmPlayerNumber(); var oiName = new OrdrItmPlayerName(); oiFont.OrderID = newId; oiFont.Size = string.Empty; oiFont.Quantity = 1; oiFont.Sale = null; oiFont.Remark = string.Empty; oiNumber.OrderID = newId; oiNumber.Quantity = 1; oiName.OrderID = newId; oiName.Quantity = 1; if (ddlPlayerDetail.SelectedValue.Equals("custom")) { // Custom Printing if (string.IsNullOrEmpty(tbPlayerNumber.Text.Trim()) || string.IsNullOrEmpty(tbPlayerName.Text.Trim())) throw new Exception("请填写自定义印字印号"); // New Order Item for Arsenal Font if (cbArsenalFont.Checked) { var pFont = Product.Cache.Load(ProductType.ArsenalFont).Find(p => p.IsActive); if (pFont == null) throw new Exception("无特殊字体信息,请联系管理员"); oiFont.Place(m, trans); oiNumber.Size = tbPlayerNumber.Text.Trim(); oiNumber.Sale = 0f; oiNumber.Remark = "custom"; oiNumber.Place(m, trans); oiName.Size = tbPlayerName.Text.Trim(); oiName.Sale = 0f; oiName.Remark = "custom"; oiName.Place(m, trans); } else { oiNumber.Size = tbPlayerNumber.Text.Trim(); //if (isHongKongKit) //{ oiNumber.Sale = salePrinting; } //else //{ oiNumber.Sale = null; } oiNumber.Sale = null; oiNumber.Remark = "custom"; oiNumber.Place(m, trans); oiName.Size = tbPlayerName.Text.Trim(); //if (isHongKongKit) //{ oiName.Sale = salePrinting; } //else //{ oiName.Sale = null; } oiName.Sale = null; oiName.Remark = "custom"; oiName.Place(m, trans); } } else { // Arsenal Player Printing var player = Arsenal_Player.Cache.Load(new Guid(ddlPlayerDetail.SelectedValue)); if (player == null) throw new Exception("无球员信息,请联系管理员"); var printingName = GetArsenalPlayerPrintingName(player); // New Order Item for Arsenal Font if (cbArsenalFont.Checked) { var pFont = Product.Cache.Load(ProductType.ArsenalFont).Find(p => p.IsActive); if (pFont == null) throw new Exception("无特殊字体信息,请联系管理员"); oiFont.Place(m, trans); oiNumber.Size = player.SquadNumber.ToString(); oiNumber.Sale = 0f; oiNumber.Remark = player.ID.ToString(); oiNumber.Place(m, trans); oiName.Size = printingName; oiName.Sale = 0f; oiName.Remark = player.ID.ToString(); oiName.Place(m, trans); } else { oiNumber.Size = player.SquadNumber.ToString(); //if (isHongKongKit) //{ oiNumber.Sale = salePrinting; } //else //{ oiNumber.Sale = null; } oiNumber.Sale = null; oiNumber.Remark = player.ID.ToString(); oiNumber.Place(m, trans); oiName.Size = printingName; //if (isHongKongKit) //{ oiName.Sale = salePrinting; } //else //{ oiName.Sale = null; } oiName.Sale = null; oiName.Remark = player.ID.ToString(); oiName.Place(m, trans); } } } // HARD CODE FOR HongKong Home Kit //if (!isHongKongKit) //{ // New Order Item for Premiership Patch if (Convert.ToInt32(rblPremierPatch.SelectedValue) > 0) { var pPremierPatch = Product.Cache.Load(ProductType.PremiershipPatch).Find(p => p.IsActive); if (pPremierPatch == null) throw new Exception("无英超袖标信息,请联系管理员"); var oiPremierPatch = new OrdrItmPremiershipPatch { OrderID = newId, Size = string.Empty, Quantity = Convert.ToInt32(rblPremierPatch.SelectedValue), Sale = null, Remark = string.Empty }; oiPremierPatch.Place(m, trans); } // New Order Item for Championship Patch if (Convert.ToInt32(rblChampionPatch.SelectedValue) > 0) { var pChampionPatch = Product.Cache.Load(ProductType.ChampionshipPatch).Find(p => p.IsActive); if (pChampionPatch == null) throw new Exception("无欧冠袖标信息,请联系管理员"); var oiChampionShipPatch = new OrdrItmChampionshipPatch { OrderID = newId, Size = string.Empty, Quantity = Convert.ToInt32(rblChampionPatch.SelectedValue), Sale = null, Remark = string.Empty }; oiChampionShipPatch.Place(m, trans); } //} trans.Commit(); ClientScript.RegisterClientScriptBlock(typeof(string), "succeed", string.Format("alert('订单({0})保存成功');window.location.href = 'ServerOrderView.ashx?OrderID={0}'", newId), true); } catch (Exception ex) { trans.Rollback(); ClientScript.RegisterClientScriptBlock(typeof(string), "failed", $"alert('{ex.Message}')", true); } //conn.Close(); } }