public async Task <IActionResult> Pdf(string id) { Guid idToken; if (Guid.TryParse(id, out idToken) && idToken != Guid.Empty) { var token = await _tokenService.GetValidToken(idToken, TokenType.OrderInvoicePdfAdminGenerateRequest); if (token != null) { int idOrder; if (int.TryParse(token.Data, out idOrder)) { var order = await _orderService.SelectAsync(idOrder, true); if (order != null) { OrderInvoiceModel model = await _mapper.ToModelAsync <OrderInvoiceModel>(order); return(View(model)); } } } } return(View(null)); }
public async Task <IActionResult> Base(int id) { var order = await _orderService.SelectAsync(id, true); if (order == null) { return(View(null)); } var token = await _tokenService.CreateTokenAsync(order.Id.ToString(), TimeSpan.FromMinutes(BaseAppConstants.DEFAULT_TOKEN_EXPIRED_MINUTES), TokenType.OrderInvoicePdfAdminGenerateRequest); if (token == null) { return(View(null)); } OrderInvoiceModel model = await _mapper.ToModelAsync <OrderInvoiceModel>(order); string invoicePageUrl = String.Format(BaseAppConstants.ORDER_INVOICE_PAGE_URL_TEMPLATE, _options.Value.AdminHost, token.IdToken.ToString().ToLower()); model.PDFUrl = String.Format(BaseAppConstants.PDF_URL_GENERATE_ORDER_INVOICE_TEMPLATE, _options.Value.PDFMyUrl.ServiceUrl, _options.Value.PDFMyUrl.LicenseKey, WebUtility.UrlEncode(invoicePageUrl), order.Id); return(View(model)); }
/// <summary> /// /// </summary> /// <param name="orderL"></param> /// <param name="uId"></param> /// <returns></returns> private void InsertOrderList(OrderListModel orderL, int uId, OrderInvoiceModel invoice, ref long orderId) { orderId = GetInserScalar(uId); if (orderId > 0) { DbUtil.Master.BeginTransaction(); try { //保存订单明细 方法 foreach (var dtl in orderL.OrdrList) { dtl.OrderId = orderId; OrderDtlService.InsertOrderDtl(dtl); } //保存订单信息 string sql = $"UPDATE OrderList SET OrderPrice=?orderPrice,OrderPNumber=?orderPNumber,OrderState=?orderState,NameExpress=?nameExpress,ExpressCode=?expressCode,ExpressAmount=?expressAmount," + "OrderAmount=?orderAmount,ReceivingAddress=?receivingAddress,Consignee=?consignee,Telephone=?telephone,CreateTime=?createTime,IsInvoice=?isInvoice,PaymentMethod=?paymentMethod," + "PaymentMethodName=?paymentMethodName,Remarks=?remarks,IsSample=?isSample,Weight=?weight WHERE OrderId=?orderId AND UserId=?userId "; Dictionary <string, object> p = new Dictionary <string, object>(); p["orderPrice"] = orderL.OrderPrice; p["orderPNumber"] = orderId; p["orderState"] = 0; //未支付 p["nameExpress"] = orderL.NameExpress; p["expressCode"] = orderL.ExpressCode; p["expressAmount"] = orderL.ExpressAmount; p["orderAmount"] = orderL.OrderAmount; p["receivingAddress"] = orderL.ReceivingAddress; p["consignee"] = orderL.Consignee; p["telephone"] = orderL.Telephone; p["createTime"] = DateTime.Now; p["isInvoice"] = orderL.IsInvoice; p["paymentMethod"] = orderL.PaymentMethod; p["paymentMethodName"] = orderL.PaymentMethodName; p["remarks"] = orderL.Remarks; p["orderId"] = orderId; p["userId"] = uId; p["isSample"] = orderL.IsSample; p["weight"] = orderL.Weight; DbUtil.Master.ExecuteNonQuery(sql, p); invoice.OrderId = orderId; invoice.OrderPNumber = orderId.ToString(); if (orderL.IsInvoice == 1) { OrderInvoiceService.Instance.InserInvoice(invoice); } DbUtil.Master.CommitTransaction(); } catch (Exception ex) { DbUtil.Master.RollbackTransaction(); LogUtil.Error(ex.Message); throw ex; } } }
public void InserInvoice(OrderInvoiceModel invoce) { string sql = $"INSERT OrderInvoice (OrderId,OrderPNumber,InvoicePayable,BusinessName,TaxpayerNumber,BillContactPhone,BillContactEmail,BillContent,InvoiceAmount,UserId)" + " VALUES (?orderId,?orderPNumber,?invoicePayable,?businessName,?taxpayerNumber,?billContactPhone,?billContactEmail,?billContent,?invoiceAmount,?userId)"; Dictionary <string, object> p = new Dictionary <string, object>(); p["orderId"] = invoce.OrderId; p["orderPNumber"] = invoce.OrderPNumber; p["invoicePayable"] = invoce.InvoicePayable; p["businessName"] = invoce.BusinessName; p["taxpayerNumber"] = invoce.TaxpayerNumber; p["billContactPhone"] = invoce.BillContactPhone; p["billContactEmail"] = invoce.BillContactEmail; p["billContent"] = invoce.BillContent; p["invoiceAmount"] = invoce.InvoiceAmount; p["userId"] = invoce.UserId; DbUtil.Master.ExecuteNonQuery(sql, p); }
protected OrderInvoiceFacade(OrderInvoiceModel model) : base(model) { }
/// <summary> /// /// </summary> /// <param name="spId"></param> /// <param name="spCount"></param> /// <param name="token"></param> /// <param name="isSC">是否来自于购物车</param> /// <returns></returns> public string WapPay(string spId, string spCount, string token, int isSC, int cityId, int exId, string exName, string addres, string consignee, string phone, int isInvoice, int payid, string payName, string ramrk, string invoicePayable, string businessName, string taxpayerNumber, string billContactPhone, string billContactEmail, string billContent, int IsSample) { var user = UserService.CkToken(token); if (user != null) { OrderListModel orderList = new OrderListModel(); long orderId = 0; var idList = spId.Split(',').Select(x => int.Parse(x)).ToList(); var spcList = spCount.Split(',').Select(x => int.Parse(x)).ToList(); List <CommodityModel> comDtl = new List <CommodityModel>(); #region 获取基础数据 if (isSC == 1) { //获取购物车信息 var comStr = CommodityService.Instance.GetShoppingInId(token, spId); comDtl = JsonUtil.Deserialize <List <CommodityModel> >(comStr); } else { var data = CommodityService.Instance.GetCommodityInfo(Convert.ToInt32(spId)); comDtl.Add(JsonUtil.Deserialize <CommodityModel>(data)); } #endregion //生成订单 List <OrderDtlModel> oderDtl = new List <OrderDtlModel>(); double orderAmount = 0; #region 订单明细 int weight = 0; //订单重量 foreach (var cm in comDtl) { int cIndex = idList.FindIndex(o => o == cm.CommodityId); OrderDtlModel dtl = new OrderDtlModel(); dtl.CommodityId = cm.CommodityId; dtl.CommodityName = cm.CommodityName; dtl.CommodityGeneral = cm.CommodityGeneral; dtl.CommodityPrice = cm.CommodityPrice; dtl.CommodityUnitName = cm.UnitIdName; dtl.CommoditySpec = cm.CommoditySpec; dtl.CommodityBrandId = cm.CommodityBrandId; dtl.CommodityBrandName = cm.BrandName; dtl.CommodityFamilyId = cm.CommodityFamilyId; dtl.CommodityImg = cm.CommodityImg; dtl.CommodityIndex = cm.CommodityIndex; dtl.CommodityCode = cm.CommodityCode; dtl.CommodityRH = cm.CommodityRH; dtl.CommodityRM = cm.CommodityRM; dtl.CommodityFL = cm.CommodityFL; dtl.UserId = user.Uid; dtl.CommNumber = spcList[cIndex]; dtl.OriginalTotalPrice = spcList[cIndex] * (cm.CommodityPrice * cm.CommoditySpec); orderAmount = orderAmount + spcList[cIndex] * (cm.CommodityPrice * cm.CommoditySpec); weight = weight + cm.CommoditySpec * dtl.CommNumber; oderDtl.Add(dtl); } #endregion orderList.OrdrList = oderDtl; orderList.OrderPrice = orderAmount; orderList.IsSample = IsSample; //计算运费 string cityStr = CityExLogisticsAmountService.Instance.GetCityExLogisticsAmount(cityId, exId); var cityData = JsonUtil.Deserialize <CityExLogisticsAmountModel>(cityStr); if (IsSample == 1) { orderList.OrderAmount = 0; orderList.NameExpress = string.Empty; } else { orderList.Weight = weight; orderList.ExpressAmount = cityData.Amount * weight; orderList.OrderAmount = orderList.OrderPrice + orderList.ExpressAmount; orderList.NameExpress = exName; } orderList.ReceivingAddress = addres; orderList.Consignee = consignee; orderList.Telephone = phone; orderList.IsInvoice = isInvoice; orderList.PaymentMethod = payid; orderList.PaymentMethodName = payName; orderList.Remarks = ramrk; //保存发票抬头信息 #region 发票 OrderInvoiceModel invoice = new OrderInvoiceModel(); invoice.InvoicePayable = invoicePayable; invoice.BusinessName = businessName; invoice.TaxpayerNumber = taxpayerNumber; invoice.BillContactPhone = billContactPhone; invoice.BillContactEmail = billContactEmail; invoice.BillContent = billContent; invoice.UserId = user.Uid; invoice.InvoiceAmount = orderList.OrderAmount; #endregion InsertOrderList(orderList, user.Uid, invoice, ref orderId); if (isSC == 1) { //删除购物车 CommodityService.Instance.DeleteShopping(spId, token); } string key = CryptoUtil.GetRandomAesKey(); string wapSpId = CryptoUtil.AesEncryptHex(orderId.ToString(), key); CacheHelp.Set(wapSpId, DateTimeOffset.Now.AddDays(1), orderId.ToString()); return(wapPay(orderList, orderId, IsSample, wapSpId)); } else { return(UserService.ckTokenState()); } }
/// <summary> /// 得到数据列表 /// <para>返回 OrderInvoiceList</para> /// </summary> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">每页行数</param> /// <param name="DBwhere">条件</param> /// <param name="orderWhere">排序</param> /// <returns></returns> public OrderInvoiceList GetPage(int pageIndex, int pageSize, string strWhere, string orderWhere) { OrderInvoiceList dataList = new OrderInvoiceList(); dataList.PageIndex = pageIndex; dataList.PageSize = pageSize; dataList.Data = new List <OrderInvoiceModel>(); dataList.PageCount = 0; dataList.RowCount = 0; dataList.PageHtml = ""; string oidFilter = string.Empty; string originOids = string.Empty; string Column = "id,invoiceName,invoiceAddress,invoicePhone,invoiceMoney,o.createDate,o.accId,o.oid,invoiceDesc,invoiceStatus,invoiceRemark,invoiceNo,invoiceOPeratorTime,invoiceOperatorId,invoiceAddressee,invoiceExpress"; //List<OrderInvoiceModel> Invoiceorigin = GetPage(pageIndex, pageSize, Column, strWhere, orderWhere); //foreach (OrderInvoiceModel dr in Invoiceorigin) //{ // if (dr.oid != 0) // { // originOids += "," + dr.oid.ToString(); // } //} //T_OrderInfoDAL orderDalFilter = new T_OrderInfoDAL(); //List<dynamic> orderFilter = // orderDalFilter.GetListContainOrderBusiness( // "T_OrderInfo.oid,T_OrderInfo.orderStatus,T_Order_Project.displayName bus_name", // " T_OrderInfo.oid in(" + originOids.Trim(',') + ") and T_OrderInfo.orderStatus=2 "); //foreach (dynamic filter in orderFilter) //{ // oidFilter += "," + filter.oid.ToString(); //} //strWhere += " oid in (" + oidFilter.Trim(',') + ") "; List <OrderInvoiceModel> InvoiceDs = GetPage(pageIndex, pageSize, Column, strWhere, orderWhere); if (InvoiceDs != null) { string accids = string.Empty; string oids = string.Empty; string opids = string.Empty; foreach (OrderInvoiceModel dr in InvoiceDs) { if (dr.accId != 0) { accids += "," + dr.accId.ToString(); } if (dr.oid != 0) { oids += "," + dr.oid.ToString(); } if (dr.invoiceOperatorId != 0) { opids += "," + dr.invoiceOperatorId.ToString(); } } #region 得到相关 店铺信息 List <T_Account> AccountDs = new List <T_Account>(); if (accids.Length > 0) { T_AccountDAL accDal = new T_AccountDAL(); AccountDs = accDal.GetListByColumn("id,CompanyName,UserRealName", " id in(" + accids.Trim(',') + ") "); } #endregion #region 得到相关 订单信息 List <dynamic> OrderDs = new List <dynamic>(); if (oids.Length > 0) { T_OrderInfoDAL orderDal = new T_OrderInfoDAL(); OrderDs = orderDal.GetListContainOrderBusiness("T_OrderInfo.oid,T_OrderInfo.orderStatus,T_Order_Project.displayName bus_name", " T_OrderInfo.oid in(" + oids.Trim(',') + ") "); } #endregion #region 得到相关 操作人员信息 List <dynamic> OperDs = new List <dynamic>(); if (opids.Length > 0) { Sys_Manage_UserDAL ManageUserDal = new Sys_Manage_UserDAL(); OperDs = ManageUserDal.GetList("Id,UserName", " Id in(" + opids.Trim(',') + ") "); } #endregion foreach (OrderInvoiceModel dr in InvoiceDs) { OrderInvoiceModel OIModel = new OrderInvoiceModel(); if (dr.id != 0) { OIModel.id = dr.id; } #region 店铺信息 if (dr.accId != 0) { OIModel.accId = dr.accId; foreach (T_Account t in AccountDs.Where(x => x.ID == OIModel.accId)) { OIModel.CompanyName = t.CompanyName; OIModel.UserRealName = t.UserRealName; } } #endregion #region 订单信息 if (dr.oid != 0) { OIModel.oid = dr.oid; try { foreach (dynamic busRow in OrderDs.Where(x => x.oid == OIModel.oid)) { OIModel.bus_name = busRow.bus_name.ToString(); if (busRow.orderStatus != null && busRow.orderStatus.ToString() != "") { OIModel.orderStat = int.Parse(busRow.orderStatus.ToString()); } else { OIModel.orderStat = 0; } OIModel.orderStatName = Enum.GetName(typeof(Model.Enum.OrderEnum.OrderStatus), OIModel.orderStat); } } catch (Exception ex) { } } #endregion if (dr.createDate != null) { OIModel.createDate = Convert.ToDateTime(dr.createDate); } if (dr.invoiceMoney != null) { OIModel.invoiceMoney = Convert.ToDecimal(dr.invoiceMoney); } OIModel.invoiceName = dr.invoiceName; OIModel.invoiceDesc = dr.invoiceDesc; OIModel.invoicePhone = dr.invoicePhone; OIModel.invoiceAddress = dr.invoiceAddress; OIModel.invoiceAddressee = dr.invoiceAddressee; if (dr.invoiceStatus != null) { OIModel.invoiceStatus = dr.invoiceStatus; if (OIModel.invoiceStatus == 1) { OIModel.invoiceStatusName = "已开发票"; } } OIModel.invoiceNo = dr.invoiceNo; OIModel.invoiceRemark = dr.invoiceRemark; if (dr.invoiceOperatorId != 0) { OIModel.invoiceOperatorId = dr.invoiceOperatorId; if (OperDs != null && OperDs.Count > 0) { foreach (dynamic opDr in OperDs.Where(x => x.Id == OIModel.invoiceOperatorId)) { OIModel.invoiceOperatorName = opDr.UserName; } } } if (dr.invoiceOPeratorTime != null) { OIModel.invoiceOPeratorTime = Convert.ToDateTime(dr.invoiceOPeratorTime); } dataList.Data.Add(OIModel); } //总行数 int count = GetPageCount(strWhere); if (count != 0) { dataList.RowCount = count; } if (dataList.RowCount > 0) { dataList.PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(dataList.RowCount) / Convert.ToDecimal(dataList.PageSize))); } } return(dataList); }