/// <summary> /// 订单送积分 /// </summary> /// <param name="customerSysNo">会员编号</param> /// <param name="orderSysNo">订单编号</param> /// <param name="point">积分数量(正整数)</param> /// <param name="transactionSysNo">事务编号</param> /// <returns>void</returns> /// <remarks>2013-07-10 黄波 创建</remarks> public void OrderIncreasePoint(int customerSysNo, int orderSysNo, int point, string transactionSysNo) { var customerModel = Hyt.DataAccess.CRM.ICrCustomerDao.Instance.GetCrCustomerItem(customerSysNo); if (customerModel == null) { throw new Hyt.Model.Exception.UserNotMatchException(customerSysNo); } if (string.IsNullOrWhiteSpace(transactionSysNo)) { transactionSysNo = Guid.NewGuid().ToString("N"); } point = Math.Abs(point); try { var logMessage = "交易获得,订单号:" + BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo).OrderNo; if (!CheckExperiencePointIsFixed(customerModel) && !HasExperiencePoint((int)CustomerStatus.经验积分变更类型.交易变更, transactionSysNo)) { UpdateExperiencePoint(customerModel, 0, CustomerStatus.经验积分变更类型.交易变更, point, logMessage, transactionSysNo); //获取订单地址信息 SoReceiveAddress srEnity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(orderSysNo); //2016-1-18 王耀发 屏蔽 //SmsBO.Instance.发送购物获得积分短信(srEnity.MobilePhoneNumber, point); } if (!CheckLevelIsFixed(customerModel) && !HasLevelPoint((int)CustomerStatus.等级积分日志变更类型.交易变更, transactionSysNo)) { UpdateLevelPoint(customerModel, 0, CustomerStatus.等级积分日志变更类型.交易变更, point, logMessage, transactionSysNo); } } catch { } }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 杨浩 创建</remarks> public override void ExportOrder(object data) { List <JuMeiWarehouseModel> listmodel = new List <JuMeiWarehouseModel>(); var fileName = string.Format("聚美仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { JuMeiWarehouseModel rmodel = new JuMeiWarehouseModel(); var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.订单号 = "10000" + model.SysNo; //订单编号 rmodel.到付金额 = ""; rmodel.收件人姓名 = ReceiveAddress.Name; //收件人姓名 rmodel.收件人电话 = ReceiveAddress.MobilePhoneNumber; //收件人电话 rmodel.收件人单位 = ""; //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.收件人省 = provinceEntity.AreaName; //收件人省份 rmodel.收件人市 = cEntity.AreaName; //收件人城市 rmodel.收件人区 = aEntity.AreaName; //收件人区/县 rmodel.收件人地址 = ReceiveAddress.StreetAddress; //收件人地址行1 } rmodel.备注 = ""; #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.品名 = item.EasName; rmodel.数量 = item.Quantity.ToString(); listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <JuMeiWarehouseModel>(listmodel, new List <string> { "订单号", "到付金额", "收件人姓名", "收件人电话", "收件人省", "收件人市", "收件人区", "收件人地址", "收件人单位", "品名", "数量", "备注" }, fileName); }
/// <summary> /// 提交订单 /// </summary> /// <param name="order">新建订单模型</param> /// <returns>返回新订单信息</returns> /// <remarks>2013-8-15 杨浩 创建</remarks> /// <remarks>2014-0616 陶辉 增加订单来源逻辑</remarks> public Result <OrderResult> CreateOrder(CreateOrder order) { var receiveAddressTemp = Hyt.BLL.CRM.CrReceiveAddressBo.Instance.GetCrReceiveAddress(order.ReceiveAddressSysNo); var receiveAddress = new SoReceiveAddress { SysNo = receiveAddressTemp.SysNo, AreaSysNo = receiveAddressTemp.AreaSysNo, Name = receiveAddressTemp.Name, EmailAddress = receiveAddressTemp.EmailAddress, MobilePhoneNumber = receiveAddressTemp.MobilePhoneNumber, PhoneNumber = receiveAddressTemp.PhoneNumber, StreetAddress = receiveAddressTemp.StreetAddress, ZipCode = receiveAddressTemp.ZipCode, Gender = receiveAddressTemp.Gender, FaxNumber = receiveAddressTemp.FaxNumber }; var contactBeforeDelivery = OrderStatus.配送前是否联系.否; if (order.ContactBeforeDelivery) { contactBeforeDelivery = OrderStatus.配送前是否联系.是; } var shoppingCart = CrShoppingCartBo.Instance.GetShoppingCart(_platformTypes, order.CustomerSysNo, null, null, null, null, order.CouponCode, true); SoOrder newOrder = new SoOrder(); using (var tran = new TransactionScope()) { //newOrder = Hyt.BLL.Order.SoOrderBo.Instance.CreateOrder(User.SystemUser, order.CustomerSysNo, receiveAddress, //order.DefaultWarehouseSysNo, order.DeliveryTypeSysNo, //order.PayTypeSysNo, shoppingCart, 0, null, //order.OrderSource==null? OrderStatus.销售单来源.手机商城:(OrderStatus.销售单来源)order.OrderSource, null, OrderStatus.销售方式.普通订单, null, //OrderStatus.销售单对用户隐藏.否, string.Empty, string.Empty, //string.Empty, order.DeliveryTime, contactBeforeDelivery, //string.Empty,0); tran.Complete(); } //返回新订单信息 var data = new OrderResult { OrderSysNo = newOrder.SysNo.ToString(), Subject = "商城订单号:" + newOrder.SysNo, SettlementAmount = shoppingCart.SettlementAmount, CreateDate = newOrder.CreateDate, PaymentType = GetPaymentType(order.ReceiveAddressSysNo).Data.SingleOrDefault(x => x.SysNo == order.PayTypeSysNo) }; return(new Result <OrderResult> { Data = data, Status = true, StatusCode = 1 }); }
/// <summary> /// 保存订单收货地址 /// </summary> /// <param name="entity">订单收货地址实体</param> /// <returns>订单收货地址实体(带编号)</returns> /// <remarks>2013-06-27 黄志勇 创建</remarks> public override SoReceiveAddress InsertEntity(SoReceiveAddress entity) { //entity.Name = entity.Name.Trim(); //entity.ZipCode = entity.ZipCode.Trim(); //entity.StreetAddress = entity.StreetAddress.Trim(); //entity.PhoneNumber = entity.PhoneNumber.Trim(); //entity.MobilePhoneNumber = entity.MobilePhoneNumber.Trim(); //entity.EmailAddress = entity.EmailAddress.Trim(); //entity.FaxNumber = entity.FaxNumber.Trim(); entity.SysNo = Context.Insert("SoReceiveAddress", entity) .AutoMap(o => o.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(entity); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 吴琨 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("兴业仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <XingYeWarehouseModel> listmodel = new List <XingYeWarehouseModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { XingYeWarehouseModel rmodel = new XingYeWarehouseModel(); var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 //获取订单收货地址 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.OrderId = "10000" + model.SysNo; //订单编号 rmodel.TheRecipient = ReceiveAddress.Name; //收件人 rmodel.Mobile = ReceiveAddress.PhoneNumber; //固话 rmodel.Phone = ReceiveAddress.MobilePhoneNumber; //手机 rmodel.Address = ReceiveAddress.StreetAddress; //地址 rmodel.Shipping = item.EasName; //发货信息 rmodel.Deliver = model.StockOutDate.ToString(); //发货日期 rmodel.DeliverPhone = item.Quantity.ToString(); //发件人电话 rmodel.DeliverAddress = item.BarCode; //发件人地址 rmodel.Remarks = model.Remarks; //备注 rmodel.UnitPrice = item.SalesUnitPrice.ToString(); //单价 rmodel.Total = model.Receivable.ToString(); //总价 rmodel.BusinessType = ""; //业务类型 listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <XingYeWarehouseModel>(listmodel, new List <string> { "订单编号", "收件人", "固话", "手机", "地址", "发货信息", "发件人", "发件人电话", "发件人地址", "备注", "单价", "总价", "业务类型" }, fileName); }
/// <summary> /// 门店提货转快递 /// </summary> /// <param name="stockOutSysNo">出库单编号</param> /// <param name="receiveAddress">快递收货地址</param> /// <param name="reason">转快递原因</param> /// <param name="message">会员留言</param> /// <param name="invoice">发票 null表示不开发票</param> /// <param name="payType">付款方式,现金或者刷卡</param> /// <param name="receiveMoney">收款金额 null 表示无应收款</param> /// <param name="voucherNo">刷卡流水号</param> /// <param name="easReceiptCode">eas收款科目编号</param> /// <returns></returns> /// <remarks> /// 2013-07-08 朱成果 创建 /// 2013/10/14 朱家宏 增加 voucherNo参数 /// </remarks> public void SetOrderToCourier(int stockOutSysNo, SoReceiveAddress receiveAddress, string reason, string message, FnInvoice invoice, int payType, decimal?receiveMoney, SyUser user, string voucherNo, string easReceiptCode = null) { var model = SetOutOfStock(stockOutSysNo, reason, user, false); //作废出库单 Hyt.BLL.Order.SoOrderBo.Instance.WriteSoTransactionLog(model.TransactionSysNo, "出库单门店自提转快递:" + stockOutSysNo, user.UserName); //转快递日志 var order = SoOrderBo.Instance.GetEntity(model.OrderSysNO); //更新订单信息 if (order == null) { throw new Exception("订单信息不存在"); } order.DeliveryTypeSysNo = DeliveryType.第三方快递; //修改配送方式 if (payType > 0) { order.PayTypeSysNo = payType; //门店现付 } else if (order.PayStatus == (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单支付状态.未支付) { order.PayTypeSysNo = (int)PaymentType.现金预付; } order.Status = (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单状态.待审核; order.InternalRemarks = "【门店转快递】:" + reason; order.CustomerMessage = message; //会员留言 order.ReceiveAddress = Hyt.BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); //收货地址 order.ReceiveAddress.AreaSysNo = receiveAddress.AreaSysNo; //收货地区 order.ReceiveAddress.StreetAddress = receiveAddress.StreetAddress; //详细收货地址 if (invoice == null) { order.InvoiceSysNo = 0; //发票 } else { //以前没有创建发票 if (order.InvoiceSysNo == 0) { order.OrderInvoice = new FnInvoice { CreatedBy = user.SysNo, CreatedDate = DateTime.Now, InvoiceRemarks = invoice.InvoiceRemarks, InvoiceTitle = invoice.InvoiceTitle, InvoiceTypeSysNo = invoice.InvoiceTypeSysNo, InvoiceAmount = order.CashPay, Status = 10, TransactionSysNo = model.TransactionSysNo }; order.InvoiceSysNo = Hyt.BLL.Order.SoOrderBo.Instance.InsertOrderInvoice(order.OrderInvoice); } else //以前有发票 { order.OrderInvoice = Hyt.BLL.Order.SoOrderBo.Instance.GetFnInvoice(order.InvoiceSysNo); order.OrderInvoice.LastUpdateBy = user.SysNo; order.OrderInvoice.LastUpdateDate = DateTime.Now; order.OrderInvoice.InvoiceTitle = invoice.InvoiceTitle; order.OrderInvoice.InvoiceTypeSysNo = invoice.InvoiceTypeSysNo; order.OrderInvoice.InvoiceAmount = order.CashPay; Hyt.BLL.Order.SoOrderBo.Instance.UpdateOrderInvoice(order.OrderInvoice); } } var warehouse = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWhWareHouse(receiveAddress.AreaSysNo, null, (int)Hyt.Model.SystemPredefined.DeliveryType.第三方快递, WarehouseStatus.仓库状态.启用).FirstOrDefault(); if (warehouse != null) { order.DefaultWarehouseSysNo = warehouse.SysNo; //快递仓库默认为当前仓库 } SoOrderBo.Instance.UpdateOrder(order); //更新订单 余勇 修改为调用业务层方法 //Hyt.DataAccess.Order.ISoOrderDao.Instance.Update(order);//更新订单 SoOrderBo.Instance.SaveSoReceiveAddress(order.ReceiveAddress); //保存订单收货地址 //更新收款明细 if (receiveMoney.HasValue) { FnReceiptVoucherItem item = new FnReceiptVoucherItem() { Amount = receiveMoney.Value, CreatedBy = user.SysNo, CreatedDate = DateTime.Now, PaymentTypeSysNo = payType, TransactionSysNo = order.TransactionSysNo, Status = (int)Model.WorkflowStatus.FinanceStatus.收款单明细状态.效, VoucherNo = voucherNo, EasReceiptCode = easReceiptCode, ReceivablesSideType = (int)Hyt.Model.WorkflowStatus.FinanceStatus.收款方类型.仓库, //收款单仓库 ReceivablesSideSysNo = model.WarehouseSysNo //仓库编号 }; Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.InsertOrderReceiptVoucher(order.SysNo, item); if (receiveMoney.HasValue && (payType == (int)Hyt.Model.SystemPredefined.PaymentType.现金 || payType == (int)Hyt.Model.SystemPredefined.PaymentType.现金预付)) { Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.AutoConfirmReceiptVoucher(order.SysNo, user); //收现金自动确认收款单 } } //同步支付时间的到订单主表 ISoOrderDao.Instance.UpdateOrderPayDteById(order.SysNo); //写订单池记录 SyJobPoolPublishBo.Instance.OrderAuditBySysNo(order.SysNo); SyJobDispatcherBo.Instance.WriteJobLog(string.Format("门店提货转快递创建订单审核任务,销售单编号:{0}", order.SysNo), order.SysNo, null, user.SysNo); }
/// <summary> /// 补单 /// </summary> /// <param name="model">补单实体</param> /// <param name="user">当前用户实体</param> /// <returns>true:成功,失败抛出异常</returns> /// <remarks>2013-07-16 黄伟 创建</remarks> /// <remarks>2013-11-15 周唐炬 加入商品借货、EAS业务、恢复配送员信用</remarks> private Result CreateOrder(ParaLogisticsControllerAdditionalOrders model, SyUser user) { var result = new Result { Status = false, StatusCode = -1, Message = "补单失败!" }; var so = new SoOrder(); var currentTime = DateTime.Now; var client = EasProviderFactory.CreateProvider(); //EAS Provider var borrowInfoGroupList = new List <BorrowInfoGroup>(); //EAS还货数据 var saleInfoGroupList = new List <SaleInfoGroup>(); //EAS出库分组数据 var deliveryUser = SyUserBo.Instance.GetSyUser(model.DeliverymanSysNo); #region 补单实体数据 //保存收货地址 var address = model.ReceiveAddress; var soReceiveAddress = new SoReceiveAddress { AreaSysNo = address.AreaSysNo, MobilePhoneNumber = address.MobilePhoneNumber, Name = address.Name, PhoneNumber = address.PhoneNumber, StreetAddress = address.Address, ZipCode = address.ZipCode }; //创建收货地址 ISoReceiveAddressDao.Instance.InsertEntity(soReceiveAddress); so.ReceiveAddressSysNo = soReceiveAddress.SysNo; so.CustomerSysNo = model.UserSysNo; so.LevelSysNo = model.LevelSysNo; var deliveryType = GetDelTypeByNameLike("普通百城当日"); //普通百城当日 so.DeliveryTypeSysNo = deliveryType.SysNo; so.Remarks = so.DeliveryRemarks = "补单"; so.DeliveryTime = deliveryType.DeliveryTime; //全天 so.PayTypeSysNo = model.PaymentTypeSysNo; so.DefaultWarehouseSysNo = model.WarehouseSysNo; so.CreateDate = currentTime; so.LastUpdateBy = user.SysNo; so.LastUpdateDate = currentTime; so.OrderCreatorSysNo = user.SysNo; //order status related so.OrderSource = (int)OrderStatus.销售单来源.业务员补单; so.OrderSourceSysNo = model.DeliverymanSysNo; so.PayStatus = (int)OrderStatus.销售单支付状态.已支付; so.SalesSysNo = 0; so.SalesType = (int)OrderStatus.销售方式.普通订单; so.Status = (int)OrderStatus.销售单状态.已完成; so.OnlineStatus = Constant.OlineStatusType.已发货; //创建订单主表 ISoOrderDao.Instance.InsertEntity(so); so = SoOrderBo.Instance.GetEntity(so.SysNo); var lstSoOrderItem = new List <SoOrderItem>(); var soItems = model.OrderInformations; #endregion //该商品配送员等级价总金额 var deliveryPrice = decimal.Zero; foreach (var item in soItems) { var originalPrice = SoOrderBo.Instance.GetOriginalPrice(model.UserSysNo, item.ProductSysNo); var soItem = new SoOrderItem() { OrderSysNo = so.SysNo, OriginalPrice = originalPrice, ProductName = item.ProductName, ProductSysNo = item.ProductSysNo, TransactionSysNo = so.TransactionSysNo, Quantity = item.ProductOrderNumber, SalesAmount = originalPrice * item.ProductOrderNumber, RealStockOutQuantity = item.ProductOrderNumber, ProductSalesType = (int)CustomerStatus.商品销售类型.普通, SalesUnitPrice = originalPrice }; so.OrderAmount += originalPrice * item.ProductOrderNumber; //创建订单明细 soItem.SysNo = ISoOrderItemDao.Instance.Insert(soItem); lstSoOrderItem.Add(soItem); #region 计算商品配送员进货价 var productLendItem = IProductLendDao.Instance.GetWhProductLendItemInfo(new ParaWhProductLendItemFilter() { DeliveryUserSysNo = model.DeliverymanSysNo, ProductSysNo = item.ProductSysNo, PriceSource = ProductStatus.产品价格来源.配送员进货价.GetHashCode() }); if (productLendItem != null) { deliveryPrice += item.ProductOrderNumber * productLendItem.Price; } #endregion #region 修改借货数量 //配送员补单的时候,eas 要做还货,然后再做销售出库 //(即补单完成后,要先调用还货接口、再调用销售出库接口) ProductReturn(model.DeliverymanSysNo, item, user.SysNo); #endregion #region EAS业务数据 var product = PdProductBo.Instance.GetProduct(item.ProductSysNo); if (product == null) { continue; } //重新获取到包含信用等级价格的借货明细 var productLend = IProductLendDao.Instance.GetWhProductLendItemInfo(new ParaWhProductLendItemFilter() { ProductSysNo = product.SysNo, DeliveryUserSysNo = model.DeliverymanSysNo, PriceSource = ProductStatus.产品价格来源.配送员进货价.GetHashCode() }); var warehouse = WhWarehouseBo.Instance.GetWarehouse(model.WarehouseSysNo); var warehouseErpCode = string.Empty; string organizationCode = string.Empty;//组织机构代码 if (warehouse != null) { warehouseErpCode = warehouse.ErpCode; var oraganization = OrganizationBo.Instance.GetOrganization(warehouse.SysNo); if (oraganization != null) { organizationCode = oraganization.Code; } } if (productLend == null) { continue; } #region EAS还货数据 var borrowInfoGroup = borrowInfoGroupList.SingleOrDefault(x => x.ProductLendSysNo == productLend.ProductLendSysNo) ?? new BorrowInfoGroup() { ProductLendSysNo = productLend.ProductLendSysNo }; var borrowInfo = new BorrowInfo() { ErpCode = product.ErpCode, Quantity = item.ProductOrderNumber, WarehouseNumber = warehouseErpCode, Amount = productLend.Price, Remark = string.Empty, WarehouseSysNo = model.WarehouseSysNo }; //入库单 var stockin = IInStockDao.Instance.GetStockInBySource(WarehouseStatus.入库单据类型.借货单.GetHashCode(), productLend.SysNo); if (stockin != null) { borrowInfoGroup.StockInSysno = stockin.SysNo; } borrowInfoGroup.BorrowInfoList.Add(borrowInfo); //添加到GroupList中 if (borrowInfoGroupList.All(x => x.ProductLendSysNo != productLend.ProductLendSysNo)) { borrowInfoGroupList.Add(borrowInfoGroup); } #endregion #region EAS销售出库数据 //根据借货单编号查询分组数据中的SaleInfo信息 var saleInfoGroup = saleInfoGroupList.SingleOrDefault(x => x.ProductLendSysNo == productLend.ProductLendSysNo) ?? new SaleInfoGroup() { ProductLendSysNo = productLend.ProductLendSysNo }; var saleInfo = new SaleInfo() { ErpCode = product.ErpCode, Quantity = item.ProductOrderNumber, WarehouseNumber = warehouseErpCode, WarehouseSysNo = model.WarehouseSysNo, OrganizationCode = organizationCode, Amount = originalPrice, //销售出库接口的备注格式:JC[Hyt借货单系统编号]-[借货员姓名]-XS[Hyt订单号] Remark = string.Format("JC[{0}]-[{1}]-XS[{2}],配送方式:百城当日达(补单)", saleInfoGroup.ProductLendSysNo, deliveryUser != null ? deliveryUser.UserName : model.DeliverymanSysNo.ToString(CultureInfo.InvariantCulture), so.SysNo) }; saleInfoGroup.SaleInfoList.Add(saleInfo); //添加到Groups中 if (saleInfoGroupList.All(x => x.ProductLendSysNo != productLend.ProductLendSysNo)) { saleInfoGroupList.Add(saleInfoGroup); } #endregion #endregion } #region 恢复配送员信用 if (deliveryPrice > decimal.Zero) { DeliveryUserCreditBo.Instance.UpdateRemaining(model.WarehouseSysNo, model.DeliverymanSysNo, 0, deliveryPrice, "补单,单号:" + so.SysNo); } #endregion #region 更新订单、创建收款单、加入订单池、创建配送单配送在途 //从接口调用金额计算 so.CashPay = ISoOrderItemDao.Instance.SynchronousOrderAmount(so.SysNo);//同步订单价格 //so.CashPay = so.OrderAmount; //订单现金支付金额 //更新订单金额 so.ProductAmount = so.OrderAmount; SoOrderBo.Instance.UpdateOrder(so); //更新订单 余勇修改为调用业务层方法 ISoOrderDao.Instance.Update(so); //创建订单收款单 FnReceiptVoucherBo.Instance.CreateReceiptVoucherByOrder(so); SoOrderBo.Instance.WriteSoTransactionLog(so.TransactionSysNo , string.Format(Constant.ORDER_TRANSACTIONLOG_CREATE, so.SysNo) , user.UserName); //补单不用加入订单池 //创建出库单已签收 var stockOut = CreateOutStock(lstSoOrderItem, model.WarehouseSysNo, user); //配送方式 var delivertType = DeliveryTypeBo.Instance.GetDeliveryType(so.DeliveryTypeSysNo); //创建配送单配送在途 LgDeliveryBo.Instance.CreateLgDelivery(model.WarehouseSysNo, model.DeliverymanSysNo, delivertType, user.SysNo, new List <LgDeliveryItem> { new LgDeliveryItem { NoteType = (int)LogisticsStatus.配送单据类型.出库单, NoteSysNo = stockOut.SysNo, ExpressNo = "" } }, true); #endregion #region EAS还货 if (borrowInfoGroupList.Any()) { //摘要:JC[Hyt借出编号]-[借货员姓名]-RK[Hyt入库编号] //(如果还货的商品在不同 借货单中,就以借货单明细分开调用) borrowInfoGroupList.ForEach(x => { if (x.BorrowInfoList.Count > 0) { client.Return(x.BorrowInfoList, string.Format("JC[{0}]-[{1}]-RK[{2}]", x.ProductLendSysNo, deliveryUser != null ? deliveryUser.UserName : model.DeliverymanSysNo.ToString(), x.StockInSysno), x.ProductLendSysNo.ToString()); } }); } #endregion #region EAS出库 if (saleInfoGroupList.Any()) { saleInfoGroupList.ForEach(x => { if (x.SaleInfoList.Count > 0) { client.SaleOutStock(x.SaleInfoList, Extra.Erp.Model.EasConstant.HytCustomer, so.SysNo.ToString(), so.TransactionSysNo); } }); } #endregion //新增会员明细 2014-1-17 黄志勇 添加 LgSettlementBo.Instance.WriteShopNewCustomerDetail(so.CustomerSysNo, stockOut.StockOutAmount); result.Status = true; result.StatusCode = so.SysNo; result.Message = "补单成功!"; return(result); }
/// <summary> /// 更新收货地址信息 /// </summary> /// <param name="entity">订单收货地址实体</param> /// <returns></returns> /// <remarks>2013-06-27 朱成果 创建</remarks> public override void UpdateEntity(SoReceiveAddress entity) { Context.Update("SoReceiveAddress", entity).AutoMap(o => o.SysNo).Where("SysNo", entity.SysNo).Execute(); }
void BindOrderHeadData(SoOrder order, OrderHead head, CBFnOnlinePayment payment, SoReceiveAddress srenity, string buyer_idcard, string District, string City, string Province, WhWarehouse warehouseMod, BsArea wareDistrictEntity, BsArea wareCityEntity, BsArea wareProvinceEntity) { head.cbeCode = config2.CIECode; head.cbeName = config2.CIEName; head.ecpCode = config2.CIECode; head.ecpName = config2.CIEName; head.orderNo = payment.BusinessOrderSysNo; head.charge = order.OrderAmount; head.goodsValue = order.ProductAmount; head.freight = order.FreightAmount; head.other = 0; head.tax = order.TaxFee; head.currency = "142"; head.customer = srenity.Name; head.shipper = warehouseMod.Contact; head.shipperAddress = wareProvinceEntity.AreaName + " " + wareCityEntity.AreaName + " " + wareDistrictEntity.AreaName + " " + warehouseMod.StreetAddress; head.shipperTelephone = warehouseMod.Phone; head.consignee = srenity.Name; head.consigneeAddress = Province + " " + City + " " + District + " " + srenity.StreetAddress; head.consigneeTelephone = srenity.MobilePhoneNumber; head.idType = "1"; head.customerId = srenity.IDCardNo; head.accessType = "1"; head.ieType = "I"; head.modifyMark = "1"; head.appTime = DateTime.Now.ToString("yyyyMMddHHmmss"); head.appStatus = "2"; }
public override Model.Result AddOrderTrade(int orderSysno) { Result result = new Result(); try { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetAnnaConfig(); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim().ToUpper(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); payment.CusPaymentCode = config.PaymentCode; IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); LgDeliveryType deliveryType = Hyt.BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); order.OrderItemList = new List <SoOrderItem>(); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); order.OrderItemList.Add(item); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); foreach (var mod in productList) { var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo); if (tempitem != null) { tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name; } } Order pushOrder = new Order(); pushOrder.OrderHead = new OrderHead(); pushOrder.OrderPaymentLogistics = new OrderPaymentLogistics(); pushOrder.itemList = new List <OrderList>(); BindOrderHeadData(order, pushOrder.OrderHead, payment, srenity, buyer_idcard, District, City, Province, warehouseMod, wareDistrictEntity, wareCityEntity, wareProvinceEntity); BindOrderItemListData(datao, pushOrder.itemList); OrderPaymentLogistic(pushOrder.OrderPaymentLogistics, payment, deliveryType); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Order>(pushOrder); str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); str = str.Replace("Root", "ROOT"); str = str.Replace("<itemList>", ""); str = str.Replace("</itemList>", ""); FtpUtil ftp = new FtpUtil(config2.RequestUrl, config2.Account, config2.Password); string msg = ""; string fileName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + ".xml"; try { ftp.UploadFile(config2.RequestUrl, fileName, Encoding.UTF8.GetBytes(str), out msg); } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } result.Message = str; } catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 吴琨 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("卓鼎仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <ZhuoDingWarehouseModel> listmodel = new List <ZhuoDingWarehouseModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { ZhuoDingWarehouseModel rmodel = new ZhuoDingWarehouseModel(); //获取出库单信息 var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.OrderId = "10000" + model.SysNo; //订单编号 var soOrder = SoOrderBo.Instance.GetModel(model.OrderSysNO); rmodel.Freight = soOrder.FreightAmount.ToString(); //运杂费 rmodel.NonDeductibleAmount = ""; //非现金抵扣金额 rmodel.ActualPaymentAmount = soOrder.OrderAmount.ToString(); //实际支付金额 var Customer = Hyt.BLL.Web.CrCustomerBo.Instance.GetModel(soOrder.OrderCreatorSysNo); rmodel.OrderMakerNumber = Customer.Account; //订购人注册号 rmodel.OrderName = Customer.Name; //订购人姓名 rmodel.IdentityNumber = Customer.IDCardNo; //订购人证件号码 rmodel.PaymentNumber = ""; //支付交易编号 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.ConsigneeName = ReceiveAddress.Name; //收货人名称 rmodel.ConsigneePhone = ReceiveAddress.PhoneNumber; //收货人电话 //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.Province = provinceEntity.AreaName; //省 rmodel.City = cEntity.AreaName; //市 rmodel.Area = aEntity.AreaName; //区 rmodel.StreetAddress = ReceiveAddress.StreetAddress; //街道地址 } rmodel.ProductCode = ""; //企业商品货号 rmodel.ProductName = item.EasName; //企业商品名称 rmodel.TurnoverQuantity = item.Quantity.ToString(); //成交数量 rmodel.LumpSumPrice = ""; //单品总价 rmodel.CourierServicesCompany = ""; //快递公司 rmodel.ExpressNumber = ""; //快递号 rmodel.DeliveryNumbers = ""; //提运单号 var product = Hyt.BLL.Web.PdProductBo.Instance.GetProductInfo(item.ProductSysNo); rmodel.BarCode = product.Barcode; //条形码 rmodel.Remarks = ""; //备注 listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <ZhuoDingWarehouseModel>(listmodel, new List <string> { "订单编号", "运杂费", "非现金抵扣金额", "实际支付金额", "订购人注册号", "订购人姓名", "订购人证件号码", "支付交易编号", "收货人名称", "收货人电话", "省", "市", "区", "街道地址", "企业商品货号", "企业商品名称", "成交数量", "单品总价", "快递公司", "快递号", "提运单号", "条形码", "备注" }, fileName); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 杨浩 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("满江红出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <ManJiangHongWarehouseModel> listmodel = new List <ManJiangHongWarehouseModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { ManJiangHongWarehouseModel rmodel = new ManJiangHongWarehouseModel(); var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); rmodel.商户订单号 = "10000" + model.SysNo;//订单编号 rmodel.客户编码 = ""; rmodel.SKU = ""; rmodel.批次编号 = ""; rmodel.过期时间 = ""; rmodel.DanJia = ""; rmodel.订单行小计 = ""; rmodel.运费 = "0"; rmodel.商品总金额 = ""; rmodel.订单总金额 = ""; rmodel.邮政编码 = ""; rmodel.支付企业编码 = ""; rmodel.支付流水号 = ""; rmodel.备注 = ""; foreach (var item in itemmodel) { //根据商品编号查询商品详细信息 var product = Hyt.BLL.Web.PdProductBo.Instance.GetProductInfo(item.ProductSysNo); rmodel.产品名称 = item.EasName; rmodel.购买数量 = item.Quantity.ToString(); #region 收货人信息 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.收件人身份证号码 = ReceiveAddress.IDCardNo; //身份证 rmodel.收件人 = ReceiveAddress.Name; //收件人姓名 rmodel.联络电话 = ReceiveAddress.MobilePhoneNumber; rmodel.配送方式 = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(model.DeliveryTypeSysNo).DeliveryTypeName; if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.省份 = provinceEntity.AreaName; //收件人省份 rmodel.城市 = cEntity.AreaName; //城市 rmodel.县 = aEntity.AreaName; //区县 rmodel.详细地址 = ReceiveAddress.StreetAddress; //详细地址 } #endregion listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <ManJiangHongWarehouseModel>(listmodel, new List <string> { "商户订单号", "客户编码", "SKU", "批次编号", "过期时间", "产品名称", "单价(元)", "购买数量", "订单行小计", "收件人", "收件人身份证号码", "省份", "城市", "县(区)", "详细地址", "联络电话", "配送方式", "运费", "商品总金额", "订单总金额", "邮政编码", "支付企业编码", "支付流水号", "备注" }, fileName); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 吴琨 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("各仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <TongYongModel> listmodel = new List <TongYongModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { TongYongModel rmodel = new TongYongModel(); //获取出库单信息 var model = Hyt.BLL.Order.SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.序号 = item.ErpCode; rmodel.出货仓 = WhWarehouseBo.Instance.GetModel(model.WarehouseSysNo).BackWarehouseName; rmodel.代理商 = ""; rmodel.销售部门 = ""; rmodel.电商平台名称 = ""; rmodel.订单日期 = model.CreatedDate.ToString(); rmodel.发货日期 = ""; rmodel.商品品名 = item.EasName; rmodel.商品条形码 = item.BarCode; rmodel.商品单位 = ""; rmodel.申报数量 = item.Quantity.ToString(); rmodel.实发 = item.Quantity.ToString(); rmodel.申报单价 = item.SalesUnitPrice.ToString(); rmodel.申报总价 = item.SalesAmount.ToString(); var soOrder = Hyt.BLL.Order.SoOrderBo.Instance.GetModel(model.OrderSysNO); rmodel.运费 = soOrder.FreightAmount.ToString();//运费 rmodel.保价费 = ""; rmodel.税款 = ""; rmodel.毛重 = ""; rmodel.净重 = ""; rmodel.收款账号 = ""; rmodel.内部订单号 = "10000" + model.SysNo; //订单编号 rmodel.销售订单号 = "10000" + model.SysNo; //订单编号 rmodel.用的快递公司 = ""; var PeiSong = Hyt.BLL.Logistics.LgDeliveryBo.Instance.GetDeliveryListByOrderSysNo(model.OrderSysNO); rmodel.快递单号 = ""; rmodel.问题明细 = ""; //获取订单收货地址 SoReceiveAddress ReceiveAddress = Hyt.BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); rmodel.电商客户电话 = ReceiveAddress.MobilePhoneNumber; //联系电话 rmodel.收件人姓名 = ReceiveAddress.Name; //收货人 rmodel.身份证 = ReceiveAddress.IDCardNo; //身份证号码 //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.收件人省份 = provinceEntity.AreaName; //收货地址省 rmodel.城市 = cEntity.AreaName; //收货地址市 rmodel.区县 = aEntity.AreaName; //收货地址区县 rmodel.详细地址 = ReceiveAddress.StreetAddress; //详细地址 } rmodel.备注 = ""; rmodel.平台编码 = ""; rmodel.支付交易号 = sysnoStr.Split(',')[i]; listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <TongYongModel>(listmodel, new List <string> { "序号", "出货仓", "代理商", "销售部门", "电商平台名称", "订单日期", "发货日期", "商品品名", "商品条形码", "商品单位", "申报数量", "实发", "申报单价", "申报总价", "运费", "保价费", "税款", "毛重(kg)", "净重(kg)", "收款账号", "内部订单号", "销售订单号", "选用的快递公司", "快递单号", "问题明细", "电商客户电话", "身份证", "收件人姓名", "收件人省份", "城市", "区县", "详细地址", "备注", "平台编码", "支付交易号" }, fileName); }
private void AddBaseTaskObjectToList(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask bsDP = new BsDeliveryPayment(); BaseTask bsPT = new BsPaymentType(); BaseTask bsCode = new BsCode(); BaseTask bsOrganization = new BsOrganization(); BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask dsMallType = new DsMallType(); BaseTask dsDealerLevel = new DsDealerLevel(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask feSearchKeyword = new FeSearchKeyword(); BaseTask feadvertgroup = new FeAdvertGroup(); BaseTask feadvertitem = new FeAdvertItem(); BaseTask feproductgroup = new FeProductGroup(); BaseTask feproductitem = new FeProductItem(); BaseTask fnIT = new FnInvoiceType(); BaseTask fninvoice = new FnInvoice(); BaseTask fnpv = new FnReceiptVoucher(); BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem(); BaseTask fnop = new FnOnlinePayment(); BaseTask fnPaymentVoucher = new FnPaymentVoucher(); BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem(); BaseTask lgDelivery = new LgDelivery(); BaseTask lgDI = new LgDeliveryItem(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDT = new LgDeliveryType(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask lgPT = new LgPickupType(); BaseTask lgsettlement = new LgSettlement(); BaseTask lgSI = new LgSettlementItem(); BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask pdProductStatistics = new PdProductStatistics(); BaseTask soOrder = new SoOrder(); BaseTask soOrderItem = new SoOrderItem(); BaseTask soRA = new SoReceiveAddress(); BaseTask SyUG = new SyUserGroup(); BaseTask syGU = new SyGroupUser(); BaseTask syMenu = new SyMenu(); BaseTask syMenuPrivilege = new SyMenuPrivilege(); BaseTask syPrivilege = new SyPrivilege(); BaseTask syRole = new SyRole(); BaseTask syRoleMenu = new SyRoleMenu(); BaseTask syRolePrivilege = new SyRolePrivilege(); BaseTask syPermission = new SyPermission(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask syMyMenu = new SyMyMenu(); BaseTask spcombo = new SpCombo(); BaseTask spComboItem = new SpComboItem(); BaseTask spcopon = new spcoupon(); BaseTask sqpromotion = new SPpromotion(); BaseTask spromotiongift = new SPpromotiongift(); BaseTask sppromotionoverlay = new SPpromotionoverlay(); BaseTask sppromotionrule = new SPpromotionrule(); BaseTask sppromotionrulecondition = new SPpromotionrulecondition(); BaseTask sppromotionrulekeyvalue = new SPpromotionrulekeyvalue(); BaseTask syTaskConfig = new SyTaskConfig(); BaseTask whStockOut = new WhStockOut(); BaseTask whStockOutItem = new WhstockOutItem(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); BaseTask whwdy = new WHwarehouseDeliveryType(); BaseTask whWPT = new WhWarehousePickupType(); BaseTask whstockin = new WhStockIn(); BaseTask whstockinItem = new WHStockinItem(); BaseTask rcReturn = new RCReturn(); BaseTask rcReturnItem = new RcReturnItem(); listObject.Add(bsAT); listObject.Add(bsDP); listObject.Add(bsPT); listObject.Add(bsCode); listObject.Add(bsOrganization); listObject.Add(bsOrganizationWarehouse); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(dsMallType); listObject.Add(dsDealerLevel); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(fepc); listObject.Add(feSearchKeyword); listObject.Add(feadvertgroup); listObject.Add(feadvertitem); listObject.Add(feproductgroup); listObject.Add(feproductitem); listObject.Add(fnIT); listObject.Add(fnpv); listObject.Add(fnReceiptVoucherItem); listObject.Add(fnop); listObject.Add(fninvoice); listObject.Add(fnPaymentVoucher); listObject.Add(fnPaymentVoucherItem); listObject.Add(lgDelivery); listObject.Add(lgDI); listObject.Add(lgDS); listObject.Add(lgDT); listObject.Add(lgPT); listObject.Add(lgsettlement); listObject.Add(lgSI); listObject.Add(lgDeliveryPrintTemplate); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); listObject.Add(pdProductStatistics); listObject.Add(soOrder); listObject.Add(soOrderItem); listObject.Add(spcombo); listObject.Add(spComboItem); listObject.Add(spcopon); listObject.Add(sqpromotion); listObject.Add(spromotiongift); //listObject.Add(sppromotionoverlay); listObject.Add(sppromotionrule); listObject.Add(sppromotionrulecondition); listObject.Add(sppromotionrulekeyvalue); listObject.Add(syGU); listObject.Add(syUW); listObject.Add(SyUG); listObject.Add(syMenu); listObject.Add(syUser); listObject.Add(syPermission); listObject.Add(syMenuPrivilege); listObject.Add(syPrivilege); listObject.Add(syRole); listObject.Add(syRoleMenu); listObject.Add(syRolePrivilege); listObject.Add(syMyMenu); listObject.Add(syTaskConfig); listObject.Add(whStockOut); listObject.Add(whStockOutItem); listObject.Add(whwarehouse); listObject.Add(whwa); listObject.Add(whwdy); listObject.Add(whWPT); listObject.Add(whstockin); listObject.Add(whstockinItem); listObject.Add(rcReturn); listObject.Add(rcReturnItem); listObject.Add(lgDUC); listObject.Add(pdPI); listObject.Add(soRA); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 吴琨 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("五洲仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <WuZhouWarehouseModel> listmodel = new List <WuZhouWarehouseModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { WuZhouWarehouseModel rmodel = new WuZhouWarehouseModel(); //获取出库单信息 var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.OrderId = "10000" + model.SysNo; //订单编号 rmodel.OrderTime = model.CreatedDate.ToString(); //下单时间 rmodel.OrderTotal = model.StockOutAmount.ToString(); //订单总价 rmodel.ProductTotal = model.Receivable.ToString(); //商品总价 #region 订单信息 var soOrder = SoOrderBo.Instance.GetModel(model.OrderSysNO); rmodel.Freight = soOrder.FreightAmount.ToString();//运费 #endregion //获取订单收货地址 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); rmodel.Consignee = ReceiveAddress.Name; //收货人 rmodel.Mobile = ReceiveAddress.MobilePhoneNumber; //联系电话 rmodel.IDCardNo = ReceiveAddress.IDCardNo; //身份证号码 //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.AddressProvince = provinceEntity.AreaName; //收货地址省 rmodel.AddressCity = cEntity.AreaName; //收货地址市 rmodel.AddresseeCounty = aEntity.AreaName; //收货地址区县 rmodel.Addressee = ReceiveAddress.StreetAddress; //详细地址 } //根据商品编号查询商品详细信息 var product = Hyt.BLL.Web.PdProductBo.Instance.GetProductInfo(item.ProductSysNo); //根据商品编号查询价格 //var PdPrice =PdPriceBo.Instance.GetModel(product.SysNo); rmodel.ProductName = product.ProductName; //商品名称 rmodel.ProductUnitPrice = item.SalesUnitPrice.ToString(); //商品单价 rmodel.ProductCount = item.Quantity.ToString(); //商品数量 rmodel.ProductSKU = ""; //商品Sku rmodel.IsCustoms = ""; //是否完税(是/否) rmodel.SettlementPrice = ""; //商品结算价 rmodel.Platform = ""; //电商平台 rmodel.PaymentEnterprise = ""; //支付企业 rmodel.PaymentNumber = ""; //支付单号 listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <WuZhouWarehouseModel>(listmodel, new List <string> { "订单号", "下单时间", "订单总价", "商品总价", "运费", "收货人", "联系电话", "身份证号码", "收货地址省", "收货地址市", "收货地址区县", "详细地址", "商品名称", "商品单价", "商品数量", "商品Sku", "是否完税(是/否)", "商品结算价", "电商平台", "支付企业", "支付单号" }, fileName); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 杨浩 创建</remarks> public override void ExportOrder(object data) { var fileName = string.Format("深圳仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); List <ShenZhenWarehouseModel> listmodel = new List <ShenZhenWarehouseModel>(); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { ShenZhenWarehouseModel rmodel = new ShenZhenWarehouseModel(); var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { //根据商品编号查询商品详细信息 var product = Hyt.BLL.Web.PdProductBo.Instance.GetProductInfo(item.ProductSysNo); rmodel.SysNo = product.ErpCode; //序号 var ware = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModel(model.WarehouseSysNo); rmodel.WarehouseSysNo = ware.WarehouseName; //出货仓库 rmodel.Agent = ""; //代理商 rmodel.SaleDepartment = ""; //销售部门 rmodel.PlatformName = ""; //电商平台名称 rmodel.OrderTime = model.CreatedDate; //订单日期 rmodel.DeliverTime = model.StockOutDate; //发货日期 rmodel.ProductName = product.ProductName; //商品名称 rmodel.BarCode = product.Barcode; //商品条形码 rmodel.ProductCompany = ""; //商品单位 rmodel.DeclareCount = ""; //申报数量 rmodel.ActualDeliver = ""; //实发 rmodel.DeclarePrice = ""; //申报单价 rmodel.DeclarePriceSum = ""; //申报总价 #region 订单信息 var soOrder = SoOrderBo.Instance.GetModel(model.OrderSysNO); rmodel.Freight = soOrder.FreightAmount.ToString(); //运费 #endregion rmodel.InsuredValue = ""; //保价费 rmodel.Tax = ""; //税款 rmodel.GrossWeight = ""; //毛重 rmodel.NetWeight = ""; //净重 rmodel.CollectionAccount = ""; //收款账号 rmodel.InternalOrderNumber = "10000" + model.SysNo; //订单编号 rmodel.SalesOrderNo = "10000" + model.SysNo; //订单编号 rmodel.Courier = ""; //选用的快递公司 rmodel.CourierNumber = ""; //快递单号 rmodel.ProblemBreakdown = ""; //问题明细 rmodel.RetailersPhone = ""; //电商客户电话 #region 收货人信息 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.Identity = ReceiveAddress.IDCardNo; //身份证 rmodel.RecipientName = ReceiveAddress.Name; //收件人姓名 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.RecipientProvince = provinceEntity.AreaName; //收件人省份 rmodel.City = cEntity.AreaName; //城市 rmodel.District = aEntity.AreaName; //区县 rmodel.Address = ReceiveAddress.StreetAddress; //详细地址 } rmodel.Remarks = ""; //备注 rmodel.PlatformCoding = ""; //平台编码 rmodel.TransactioNnumber = ""; //支付交易号 #endregion listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <ShenZhenWarehouseModel>(listmodel, new List <string> { "序号", "出货仓", "代理商", "销售部门", "电商平台名称", "订单日期", "发货日期", "商品品名", "商品条形码", "商品单位", "申报数量", "实发", "申报单价", "申报总价", "运费", "保价费", "税款", "毛重(kg)", "净重(kg)", "收款账号", "内部订单号", "销售订单号", "选用的快递公司", "快递单号", "问题明细", "电商客户电话", "身份证", "收件人姓名", "收件人省份", "城市", "区县", "详细地址", "备注", "平台编码", "支付交易号" }, fileName); }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 杨浩 创建</remarks> public override void ExportOrder(object data) { List <FuJianWarehouseModel> listmodel = new List <FuJianWarehouseModel>(); var fileName = string.Format("福建仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { FuJianWarehouseModel rmodel = new FuJianWarehouseModel(); var model = Hyt.BLL.Order.SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 SoReceiveAddress ReceiveAddress = Hyt.BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.收货人 = ReceiveAddress.Name; //收件人姓名 rmodel.身份证号 = ReceiveAddress.IDCardNo; ////收件人身份证 rmodel.身份证姓名 = ReceiveAddress.Name; //收件人姓名 rmodel.联系电话 = ReceiveAddress.MobilePhoneNumber; //联系电话 //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.省 = provinceEntity.AreaName; //收件人省份 rmodel.市 = cEntity.AreaName; //收件人城市 rmodel.区 = aEntity.AreaName; //收件人区/县 rmodel.街道 = ReceiveAddress.StreetAddress; //收件人地址行1 } rmodel.邮编 = ReceiveAddress.ZipCode; //邮编 rmodel.原始订单号 = "10000" + model.SysNo; //订单编号 rmodel.仓库代码 = WhWarehouseBo.Instance.GetModel(model.WarehouseSysNo).ErpCode; rmodel.配送方式 = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(model.DeliveryTypeSysNo).DeliveryTypeName; #region 未知来源数据 rmodel.销售平台 = ""; rmodel.进口模式 = ""; rmodel.价格1 = ""; rmodel.SKU2 = ""; rmodel.价格2 = ""; rmodel.数量2 = ""; rmodel.SKU3 = ""; rmodel.价格3 = ""; rmodel.数量3 = ""; #endregion #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.SKU1 = item.EasName; rmodel.数量1 = item.Quantity.ToString(); listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <FuJianWarehouseModel>(listmodel, new List <string> { "销售平台", "进口模式", "原始订单号", "省", "市", "区", "街道", "邮编", "身份证号", "身份证姓名", "收货人", "联系电话", "仓库代码", "配送方式", "SKU1", "价格1", "数量1", "SKU2", "价格2", "数量2", "SKU3", "价格3", "数量3" }, fileName); }
/// <summary> /// 补单(订单-出库单-配送单-结算单) /// </summary> /// <param name="deliverUserSysNo">配送员系统编号</param> /// <param name="customerSysNo">顾客系统编号</param> /// <param name="receiveAddress">收货地址</param> /// <param name="defaultWarehouseSysNo">仓库系统编号</param> /// <param name="shoppingCart">购物车</param> /// <param name="user">登录用户信息</param> /// <returns>补单完成情况</returns> /// <remarks> /// 2013-09-25 郑荣华 创建 /// 2014-04-21 何方 不再使用补单功能 /// </remarks> public Result RemedyOrder(int deliverUserSysNo, int customerSysNo, SoReceiveAddress receiveAddress, int defaultWarehouseSysNo, CrShoppingCart shoppingCart, SyUser user) { var result = new Result() { Message = "开始补单", Status = false, StatusCode = 0 }; var deliveryTypeSysNo = DeliveryType.百城当日达; try { //创建订单 var order = SoOrderBo.Instance.CreateOrder(user.SysNo, customerSysNo, receiveAddress, defaultWarehouseSysNo, deliveryTypeSysNo, PaymentType.现金, shoppingCart, 0, null, OrderStatus.销售单来源.业务员补单, null, OrderStatus.销售方式.售后订单, null, OrderStatus.销售单对用户隐藏.否, "", "补单", "补单", "补单任意时间段", OrderStatus.配送前是否联系.否, "补单"); result.Message = "订单创建完成"; //修改订单状态 order.Status = (int)OrderStatus.销售单状态.待创建出库单; SoOrderBo.Instance.UpdateOrder(order); //更新订单 余勇修改为调用业务层方法 ISoOrderDao.Instance.Update(order); result.Message = "订单状态修改完成"; //获取订单明细 order.OrderItemList = SoOrderBo.Instance.GetOrderItemsByOrderId(order.SysNo); if (order.OrderItemList != null) { foreach (var oo in order.OrderItemList) { oo.RealStockOutQuantity = oo.Quantity; } } //创建出库单 var stockout = SoOrderBo.Instance.CreateOutStock(order.OrderItemList, defaultWarehouseSysNo, user); result.Message = "出库单创建完成"; //更新出库单状态处于待配送状态 WhWarehouseBo.Instance.UpdateOrderStockOutStatus(order.SysNo, WarehouseStatus.出库单状态.待配送, user.SysNo); //创建配送单+结算单 var item = new LgDeliveryItem() { NoteType = (int)LogisticsStatus.配送单据类型.出库单, NoteSysNo = stockout.SysNo, ExpressNo = "" }; var list = new List <LgDeliveryItem> { item }; //配送方式 var delivertType = DeliveryTypeBo.Instance.GetDeliveryType(deliveryTypeSysNo); LgDeliveryBo.Instance.CreateLgDelivery(defaultWarehouseSysNo, deliverUserSysNo, delivertType, user.SysNo, list, true); //新增会员明细 2014-1-17 黄志勇 添加 LgSettlementBo.Instance.WriteShopNewCustomerDetail(order.CustomerSysNo, stockout.StockOutAmount); result.Status = true; result.StatusCode = 1; result.Message = "补单操作完成"; return(result); } catch (Exception ex) { Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, result.Message, LogStatus.系统日志目标类型.补单, 0, ex); return(result); } }
/// <summary> /// 导出订单 /// </summary> /// <param name="data">查询参数</param> /// <returns></returns> /// <remarks>2017-07-07 杨浩 创建</remarks> public override void ExportOrder(object data) { List <ShaTianWarehouseModel> listmodel = new List <ShaTianWarehouseModel>(); var fileName = string.Format("沙田仓出库单({0})", DateTime.Now.ToString("yyyyMMddHHmmss")); var sysnoStr = data.ToString().Trim(','); //获取出库单id字符串 for (int i = 0; i < sysnoStr.Split(',').Length; i++) { ShaTianWarehouseModel rmodel = new ShaTianWarehouseModel(); var model = SoOrderBo.Instance.GetEntityTo(Convert.ToInt32(sysnoStr.Split(',')[i])); //获取出库单信息 SoReceiveAddress ReceiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(model.ReceiveAddressSysNo); //获取订单收货地址 rmodel.AddresseeName = ReceiveAddress.Name; //收件人姓名 rmodel.AddresseeId = ReceiveAddress.IDCardNo; ////收件人身份证 //显示省市区 if (ReceiveAddress != null) { //市 Hyt.Model.BsArea cEntity; //地区 Hyt.Model.BsArea aEntity; //省 Hyt.Model.BsArea provinceEntity; //国家 Hyt.Model.BsArea countryEntity; var pEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetCountryEntity(ReceiveAddress.AreaSysNo, out countryEntity, out provinceEntity, out cEntity, out aEntity); rmodel.AddresseeCountry = countryEntity.AreaName; //收件人国家 rmodel.AddresseeProvince = provinceEntity.AreaName; //收件人省份 rmodel.AddresseeCity = cEntity.AreaName; //收件人城市 rmodel.AddresseeStreet = aEntity.AreaName; //收件人区/县 rmodel.AddresseeAddress1 = ReceiveAddress.StreetAddress; //收件人地址行1 rmodel.AddresseeAddress2 = ""; //收件人地址行2 } rmodel.AddresseeZipCode = ReceiveAddress.ZipCode; //收件人邮编 rmodel.AddresseePhone = ReceiveAddress.MobilePhoneNumber; //收件人手机 rmodel.AddresseeNumber = ReceiveAddress.PhoneNumber; //收件人电话 rmodel.AddresseeEmail = ReceiveAddress.EmailAddress; //收件人邮箱 #region 未知来源数据 rmodel.ChannelId = ""; //渠道编码 rmodel.RFNumber = OrderNoPrefix + model.SysNo.ToString(); //参考号 rmodel.AddresseeCompanyName = ""; //收件人公司名称 rmodel.PlatformStore = ""; //平台店铺 rmodel.ShopName = ""; //店铺名称 rmodel.Remarks = model.Remarks; //备注 rmodel.ParcelWeight = ""; //包裹重量 rmodel.DeclareValue = ""; //面单申报价值 rmodel.Currency = ""; //币制 rmodel.OddNumbers = ""; //报关单号 rmodel.SmallTicket = ""; //小票号或交易号 rmodel.SmallTicketJPG = ""; //内件小票jpg图片附件 rmodel.PalletNumber = ""; //托盘号(卡板号) #endregion #region 订单商品明细 List <CBSoOrderItem> itemmodel = SoOrderItemBo.Instance.GetCBOrderItemListBySysNos(model.OrderSysNO.ToString()); foreach (var item in itemmodel) { rmodel.Number = item.Quantity.ToString(); //数量 rmodel.UnitPrice = item.SalesUnitPrice.ToString(); //单价 var product = Hyt.BLL.Web.PdProductBo.Instance.GetProductInfo(item.ProductSysNo); rmodel.ProductType = product == null ? "" : product.ProductType.ToString(); //商品类型 rmodel.InternalName = product.ProductName; //内件名称 rmodel.SKU = product.Barcode; //条形码 listmodel.Add(rmodel); } #endregion } Util.ExcelUtil.Export <ShaTianWarehouseModel>(listmodel, new List <string> { "收件人名称", "收件人身份证号码", "收件人国家", "收件人省份", "收件人城市", "收件人街道", "收件人地址行1", "收件人地址行2", "收件人邮编", "收件人手机", "收件人电话", "收件人邮箱", "渠道编码", "参考号", "收件人公司名称", "平台店铺", "店铺名称", "备注", "包裹重量", "面单申报价值", "币制", "报关单号", "小票号或交易号", "内件小票jpg图片附件", "托盘号(卡板号)", "内件名称", "SKU", "数量", "单价", "商品类型" }, fileName); }
public override Result AddOrderTrade(int orderSysno) { //throw new NotImplementedException(); List <SoOrderSyncLogisticsLog> logList = SoOrderSyncLogisticsLogBo.Instance.GetModelList(orderSysno); List <SoOrderSyncLogisticsLog> haveLogisticsList = logList.Where(p => p.Code == (int)this.Code && p.StatusCode == "OK" && !string.IsNullOrEmpty(p.LogisticsOrderId)).ToList(); SoOrderSyncLogisticsLog nowLogistics = null; if (haveLogisticsList.Count == 0) { Result expressResult = GetExpressno(orderSysno.ToString()); nowLogistics = (expressResult as Result <SoOrderSyncLogisticsLog>).Data; if (!expressResult.Status) { return(expressResult); } } else { nowLogistics = haveLogisticsList[0]; } var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig(); var result = new Result <string>(); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); decimal goodsGweight = 0; foreach (var mod in productList) { goodsGweight += mod.GrosWeight; } LgGaoJiePushInfo model = new LgGaoJiePushInfo(); string strorder = ""; strorder += "{\"order_sn\":\"" + order.OrderNo + "\",\"pfreight_no\":\"\",\"express_num\":\"" + nowLogistics.LogisticsOrderId + "\","; strorder += "\"sender_name\":\"" + warehouseMod.Contact + "\",\"sender_city\":\"" + wareCityEntity.AreaName + "\",\"sender_address\":\"" + warehouseMod.StreetAddress + "\","; strorder += "\"sender_phone\":\"" + warehouseMod.Phone + "\",\"sender_country_code\":\"" + wareCityEntity.AreaCode + "\","; strorder += "\"buyer_name\":\"" + srenity.Name + "\",\"buyer_idcard\":\"" + buyer_idcard + "\",\"buyer_phone\":\"" + srenity.MobilePhoneNumber + "\","; strorder += "\"province_code\":\"" + ProvinceEntity.AreaCode + "" + "\",\"buyer_address\":\"" + Province + "^^^" + City + "^^^" + District + "^^^" + srenity.StreetAddress + "\","; strorder += "\"curr\":\"502" + "\",\"pkg_gweight\":" + goodsGweight + ",\"p_name\":\"" + (payment == null ? "" : payment.PaymentName) + "\",\"p_no\":\"" + (payment == null ? "" : payment.VoucherNo) + "\","; strorder += "\"p_time\":\"" + (payment == null ? DateTime.Now.ToString("yyyy-mm-dd hh :MM") : payment.CreatedDate.ToString("yyyy-mm-dd hh :MM")) + "\",\"sh_fee\":\"" + order.FreightAmount.ToString() + "\","; strorder += "\"cus_tax\":\"" + order.TaxFee.ToString() + "\",\"pweb\":\"" + config.pweb + "\",\"web_name\":\"" + config.web_name + "\",\"re_no\":\"" + config.re_no + "\",\"re_name\":\"" + config.re_name + "\","; strorder += "\"order_goods\":"; strorder += "["; string str = ""; int i = 0; foreach (CBSoOrderItem item in datao) { //LgGaoJieGoodsInfo goodsInfo = LogisticsBo.Instance.GetLgGaoJieGoodsInfoEntityByPid(item.ProductSysNo); List <CBPdProduct> tempProductList = productList.Where(p => p.SysNo == item.ProductSysNo).ToList(); var originInfo = BLL.Basic.OriginBo.Instance.GetEntity(tempProductList[0].OriginSysNo); var brandInfo = BLL.Product.PdBrandBo.Instance.GetEntity(tempProductList[0].BrandSysNo); string ycg_code = originInfo != null ? originInfo.CusOriginNO : ""; if (i > 0) { str += ",{"; } else { str += "{"; } str += "\"goods_ptcode\":\"" + tempProductList[0].ProductDeclare; str += "\",\"goods_name\":\"" + tempProductList[0].ProductName; str += "\",\"brand\":\"" + brandInfo.Name; str += "\",\"goods_spec\":\"" + tempProductList[0].GrosWeight + "kg"; str += "\",\"goods_num\":\"" + item.Quantity.ToString(); str += "\",\"goods_price\":\"" + item.SalesUnitPrice.ToString(); str += "\",\"ycg_code\":\"" + originInfo.CusOriginNO; str += "\",\"goods_barcode\":\"" + tempProductList[0].Barcode.Trim() + "\""; str += "}"; i++; } strorder += str; strorder += "]}"; string orders = strorder; strorder = EncodeBase64(EncodeBase64(strorder)); var strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&mark=" + EncodeBase64("order") + "&confirm=" + EncodeBase64("2") + "&order=" + strorder; var strResult = GetResponse(url, strPost); var json = JObject.Parse(strResult); string jsons = json.ToString(); result.Status = true; result.Data = json.ToString(); var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderSysno; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.Packets = orders.ToString(); soOrderSyncLogisticsLog.ReceiptContent = json.ToString(); soOrderSyncLogisticsLog.LogisticsOrderId = ""; //var model = new LgGaoJiePushInfo(); //model.OrderSysNo = orderSysno; //model.OrderInfo = orders.ToString(); ////保存订单回执信息 //model.ReturnInfo = json.ToString(); ////保存推送回执信息 //LogisticsBo.Instance.InsertLgGaoJiePushInfoEntity(model, BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base); string state = json["flag"].ToString().ToLower(); //推送成功 if (state == "ok" || json["info"].ToString() == "重复下单") { result.Status = true; result.Message = json["info"].ToString(); soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = result.Message; //更新物流状态CBLogisticsSendStatus BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno); } else { result.Status = false; result.Message = json["info"].ToString(); soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = result.Message; BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.失败, 3, orderSysno); } SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); return(result); }
/// <summary> /// 更新收货地址信息 /// </summary> /// <param name="entity">订单收货地址实体</param> /// <returns></returns> /// <remarks>2013-06-27 朱成果 创建</remarks> public abstract void UpdateEntity(SoReceiveAddress entity);
/// <summary> /// 获取快递单号 /// </summary> /// <param name="orderId"></param> /// <returns></returns> /// <remarks>2016-9-3 杨浩 创建</remarks> private Result GetExpressno(string orderId) { var config = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig(); var result = new Result <SoOrderSyncLogisticsLog>(); var orderInfo = BLL.Order.SoOrderBo.Instance.GetEntity(int.Parse(orderId)); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(orderInfo.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(orderInfo.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(orderInfo.SysNo); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(orderInfo.SysNo); string goods_Names = ""; int goods_Nums = 0; decimal goods_Weight = 0; foreach (var mod in datao) { if (!string.IsNullOrEmpty(goods_Names)) { goods_Names += ","; } goods_Names += mod.ProductName; goods_Nums += mod.Quantity; goods_Weight += mod.GrosWeight; } StringBuilder strorder = new StringBuilder();//"{\"orderSn\":\"" + orderInfo.OrderNo + "\"}"; strorder.Append("{"); strorder.Append(" \"order_sn\":\"" + orderInfo.OrderNo + "\","); strorder.Append(" \"send_name\":\"" + warehouseMod.Contact + "\","); strorder.Append(" \"send_telno\":\"" + warehouseMod.Phone + "\","); strorder.Append(" \"send_cardno\":\"\","); strorder.Append(" \"send_postcode\":\"\","); strorder.Append(" \"send_code\":\"1\","); strorder.Append(" \"receive_name\":\"" + srenity.Name + "\","); strorder.Append(" \"receive_telno\":\"" + srenity.MobilePhoneNumber + "\","); strorder.Append(" \"receive_cardno\":\"" + srenity.IDCardNo + "\","); strorder.Append(" \"receive_postcode\":\"\","); strorder.Append(" \"receive_province\":\"" + Province + "\","); strorder.Append(" \"receive_city\":\"" + City + "\","); strorder.Append(" \"receive_area\":\"" + District + "\","); strorder.Append(" \"receive_address\":\"" + Province + " " + City + " " + District + " " + srenity.StreetAddress + "\","); strorder.Append(" \"goods_name\":\"" + goods_Names + "\","); strorder.Append(" \"goods_sku\":\"\","); strorder.Append(" \"goods_num\":\"" + goods_Nums + "\","); strorder.Append(" \"notes\":\"\","); strorder.Append(" \"weight\":\"" + goods_Weight + "\""); strorder.Append("}"); string enStrorder = ""; enStrorder = EncodeBase64(EncodeBase64(strorder.ToString())); string strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&express=" + EncodeBase64("3") + "&order_type=" + EncodeBase64("1") + "&order=" + enStrorder; var strResult = GetResponse(expressUrl, strPost); var json = JObject.Parse(strResult); string jsons = json.ToString(); result.Message = json.ToString(); /*{ * "orderSn": "So00003784", * "state": "success", * "expressNo": "50323423506251", * "expressCode": "3", * "destinationCode": "粤-肇庆", * "nodeCode": { * "pkgCode": "广州夏良转运中心", * "billProvideSiteName": "广州新花山站", * "billProvideSiteCode": "Z04" * } * }*/ //string destinationCode = ""; //string pkgCode = ""; ; //string billProvideSiteCode = ""; //string expressNo = ""; //if (json["state"].ToString().ToLower() == "success") //{ // destinationCode = json["destinationCode"].ToString(); // pkgCode = json["nodeCode"]["pkgCode"].ToString(); // billProvideSiteCode = json["nodeCode"]["billProvideSiteCode"].ToString(); // expressNo = json["expressNo"].ToString(); //} ///订单物流信息 SoOrderSyncLogisticsLog soLogisticsLogMod = new SoOrderSyncLogisticsLog(); soLogisticsLogMod.OrderSysNo = orderInfo.SysNo; soLogisticsLogMod.Code = (int)this.Code; try { soLogisticsLogMod.LogisticsOrderId = json["express_no"].ToString(); } catch { } soLogisticsLogMod.StatusCode = json["flag"].ToString(); try { soLogisticsLogMod.StatusMsg = json["express_notes"].ToString(); } catch { try { soLogisticsLogMod.StatusMsg = json["info"].ToString(); } catch { } } soLogisticsLogMod.Packets = strorder.ToString(); soLogisticsLogMod.ReceiptContent = strResult; soLogisticsLogMod.CreateDate = DateTime.Now; soLogisticsLogMod.LastUpdateDate = DateTime.Now; SoOrderSyncLogisticsLogBo.Instance.Insert(soLogisticsLogMod); if (json["flag"].ToString().ToUpper() == "OK") { result.Status = true; result.StatusCode = 100; result.Data = soLogisticsLogMod; } else { result.Status = false; result.StatusCode = 0; result.Data = soLogisticsLogMod; } return(result); }
public override Result AddOrderTrade(int orderSysno) { Result result = new Result(); var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); var kuaidi = Hyt.BLL.Logistics.DeliveryTypeBo.Instance.GetKuaidi(orderSysno); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); order.OrderItemList = new List <SoOrderItem>(); int ParcelNo = 0; string GoodsName = ""; foreach (CBSoOrderItem item in datao) { ParcelNo += item.Quantity; GoodsName = item.EasName; order.OrderItemList.Add(item); } CrossBorderParam cp = new CrossBorderParam(); cp.Cost = order.FreightAmount; cp.OrderDateTime = order.CreateDate; cp.OrderNo = order.SysNo.ToString().Trim(); cp.CustomerID = 689; cp.S_Address = warehouseMod.BackWarehouseName.Trim(); cp.S_Province = wareProvinceEntity.AreaName.Trim(); cp.S_City = wareCityEntity.AreaName.Trim(); cp.S_County = wareDistrictEntity.AreaName.Trim(); cp.S_Name = warehouseMod.WarehouseName.Trim(); cp.S_Phone = warehouseMod.Phone.Trim(); if (!string.IsNullOrEmpty(srenity.IDCardNo)) { cp.R_IDNo = srenity.IDCardNo.Trim().ToUpper(); } cp.R_Name = srenity.Name.Trim(); cp.R_Phone = srenity.MobilePhoneNumber.Trim(); cp.R_Address = srenity.StreetAddress.Trim(); cp.R_Province = ProvinceEntity.AreaName.Trim(); cp.R_City = CityEntity.AreaName.Trim(); cp.R_County = DistrictEntity.AreaName.Trim(); cp.Type = "4"; cp.ParcelNo = ParcelNo; cp.GoodsName = GoodsName; cp.Mark = "300-012-005"; cp.Batch = "114批"; cp.DeliveryType = -1; cp.PrintSenderMsg = warehouseMod.WarehouseName.Trim(); cp.PayType = -1; cp.Company = kuaidi.Company; cp.Date = kuaidi.Date; cp.TrackingNo = kuaidi.TrackingNo; using (ChannelFactory <IExpress> channelFactory = new ChannelFactory <IExpress>("WSHttpBinding_IExpress")) { UserNamePasswordClientCredential credential = channelFactory.Credentials.UserName; credential.UserName = UserName; credential.Password = Password; IExpress calculator = channelFactory.CreateChannel(); #region 参数 T_Express express = new T_Express { PicLocalNo = cp.PicLocalNo, Batch = cp.Batch, Type = cp.Type, S_Name = cp.S_Name, S_Phone = cp.S_Phone, S_Province = cp.S_Province, S_City = cp.S_City, S_County = cp.S_County, S_Address = cp.S_Address, R_Name = cp.R_Name, R_Phone = cp.R_Phone, R_Province = cp.R_Province, R_City = cp.R_City, R_County = cp.R_County, R_Address = cp.R_Address, R_IDNo = cp.R_IDNo, OrderNo = cp.OrderNo, GoodsName = cp.GoodsName, CollectionPayment = cp.CollectionPayment, Cost = cp.Cost, OrderDateTime = cp.OrderDateTime, Account = cp.Account, BankAccount = cp.BankAccount, PayType = cp.PayType, DeliveryType = cp.DeliveryType, Mark = cp.Mark, PrintSenderMsg = cp.PrintSenderMsg, ParcelNo = cp.ParcelNo.ToString(), Date = DateTime.Parse(cp.Date), Company = cp.Company, TrackingNo = cp.TrackingNo, CustomerID = cp.CustomerID #region 测试数据 // //预留溯源码 //Batch = "114批", ////已下订单,未受理 //Type = "4", //S_Name = "货之家", //S_Phone = "15802026993", //S_Province = "广东省", //S_City = "广州市", //S_County = "南沙区", //S_Address = "货之家保税仓", //R_Name = "周恒", //R_Phone = "13662656512", //R_Province = "四川省", //R_City = "达州市", //R_County = "开江县", //R_Address = "新宁镇接龙桥惠民社区5号楼三楼八号", //R_IDNo = "440103698954523618", //OrderNo = "Test_70151538959", ////快递面单,底部信息 //GoodsName = "日用品", //Company = "圆通", //TrackingNo = "81257111826892", //Cost = 0, ////订单日期 //OrderDateTime = DateTime.Parse("2018-01-08 09:48:23"), //PayType = -1, //DeliveryType = -1, ////三段码、大头笔 //Mark = "300-012-005", ////覆盖详细的发件信息 //PrintSenderMsg = "货之家南沙保税仓", //ParcelNo = "1", ////快递单日期 //Date = DateTime.Parse("2018-01-08 09:48:23"), ////新绕城,固定为689 //CustomerID = 689, //PicLocalNo = null, //CollectionPayment = null, //可空 = null, //BankAccount = null, #endregion }; #endregion result.Status = calculator.ExpressSaveOrUpdate(express); } return(result); }
public override Result AddOrderTrade(int orderSysno) { Result result = new Result(); try { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetAnnaConfig(); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim().ToUpper(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); payment.CusPaymentCode = config.PaymentCode; IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); order.OrderItemList = new List <SoOrderItem>(); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); order.OrderItemList.Add(item); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); foreach (var mod in productList) { var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo); if (tempitem != null) { tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name; } } OrderShip orderShip = new OrderShip(); orderShip.storeCode = config.WhNumber; orderShip.orderCode = payment.BusinessOrderSysNo;//order.OrderNo; orderShip.orderType = "TRANS"; orderShip.createTime = order.CreateDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.checker = order.AuditorSysNo.ToString(); orderShip.checkTime = order.AuditorDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.payTime = payment.CreatedDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.sourcePlatformCode = "ZY"; orderShip.sourceOrderCode = order.SysNo.ToString(); orderShip.receiver = new Receiver() { receiverAddress = srenity.StreetAddress.Replace("\n", "").Replace("\r", ""), receiverProvince = Province.Replace("\n", "").Replace("\r", ""), receiverCity = City.Replace("\n", "").Replace("\r", ""), receiverDistrict = District.Replace("\n", "").Replace("\r", ""), receiverCountry = "中国", receiverIdNumber = buyer_idcard, receiverName = srenity.Name, receiverMobile = srenity.MobilePhoneNumber, receiverPhone = srenity.PhoneNumber }; orderShip.invoiceFlag = "N"; orderShip.codFlag = "N"; orderShip.gotAmount = order.OrderAmount; orderShip.arAmount = order.OrderAmount; orderShip.insuranceFlag = "N"; orderShip.orderTotalAmount = order.ProductAmount + order.TaxFee + order.FreightAmount + order.ProductChangeAmount; orderShip.orderActualAmount = order.OrderAmount; orderShip.totalAmount = order.OrderAmount; orderShip.orderGoodsAmount = order.ProductAmount + order.ProductChangeAmount; orderShip.feeAmount = order.FreightAmount; orderShip.orderTaxAmount = order.TaxFee; orderShip.payEntNo = payment.CusPaymentCode; orderShip.payEnterpriseName = payment.PaymentName;//"支付宝(中国)网络技术有限公司"; orderShip.recipientProvincesCode = "440000"; var deliverTypeInfo = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); if (deliverTypeInfo != null && string.IsNullOrWhiteSpace(deliverTypeInfo.OverseaCarrier) || deliverTypeInfo == null) { orderShip.courierCode = config.CourierCode; } else { orderShip.courierCode = deliverTypeInfo.OverseaCarrier; } string importType = ""; if (warehouseMod.WarehouseType == 30) { importType = "BBC"; } else if (warehouseMod.WarehouseType == 40) { importType = "BC"; } orderShip.buyerId = customer.Account; orderShip.importType = importType; orderShip.portload = "142"; orderShip.items = new List <Items>(); int rowIndex = 0; foreach (var item in datao) { rowIndex++; item.SalesUnitPrice = ((item.SalesAmount + item.ChangeAmount) / item.Quantity); orderShip.items.Add(new Items() { actualPrice = item.SalesUnitPrice, barCode = item.BarCode, discountAmount = item.DiscountAmount, inventoryType = "ZP", itemCode = item.ErpCode, itemName = item.ProductName.Replace("+", ""), orderLineNo = rowIndex.ToString(), originCountry = item.OrginCountry, quantity = item.Quantity, retailPrice = item.OriginalPrice, subOrderCode = item.SysNo.ToString(), supplierCode = config.supplierCode, supplierName = config.supplierName, weight = Convert.ToInt32((item.NetWeight * 1000)) }); } orderShip.sender = new Sender() { senderAddress = warehouseMod.StreetAddress.Trim(), senderProvince = wareProvinceEntity.AreaName.Trim(), senderCity = wareCityEntity.AreaName.Trim(), senderDistrict = wareDistrictEntity.AreaName.Trim(), senderCountry = "中国", senderName = config.SenderUser.Trim(), senderMobile = warehouseMod.Phone, senderPhone = warehouseMod.Phone, senderIdNumbe = config.SenderIdNumber }; Dictionary <string, string> dicKeyList = new Dictionary <string, string>(); dicKeyList.Add("notifyId", DateTime.Now.ToString("yyMMddHHmmssffff")); dicKeyList.Add("notifyTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); dicKeyList.Add("format", "json"); dicKeyList.Add("signMethod", "md5"); dicKeyList.Add("busiType", "alog.ordership.notify"); dicKeyList.Add("partnerCode", config.OnNumber); dicKeyList.Add("ownerCode", config.OnNumber); dicKeyList.Add("content", JsonUtil.ToJson(orderShip));// dicKeyList["content"] = dicKeyList["content"].Replace("\"courierCode\":null,", ""); Dictionary <string, string> dic1Asc1 = (from d in dicKeyList orderby d.Key ascending select d).ToDictionary(k => k.Key, v => v.Value); string strParams = ""; foreach (string key in dic1Asc1.Keys) { if (!string.IsNullOrEmpty(strParams)) { strParams += "&"; } strParams += key + "=" + dic1Asc1[key]; } string sign = Hyt.Util.Security.UserMd5(config.secretKey + strParams.Replace("&", "").Replace("=", "") + config.secretKey).ToUpper(); strParams = "sign=" + sign + "&" + strParams; string testData = MyHttp.GetResponse(config.URLPath, strParams, "utf-8"); //{"success":true,"errCode":"","errMsg":"","courierCode":"SF","mailNo":"444746031132"} PosDataResult postResult = JsonUtil.ToObject <PosDataResult>(testData); if (postResult.success) { Hyt.BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity( new CrossBorderLogisticsOrder() { ExpressNo = postResult.courierCode + "_" + postResult.mailNo, LogisticsCode = 0, LogisticsOrderId = strParams, SoOrderSysNo = orderSysno, } ); string express = postResult.courierCode + "_" + postResult.mailNo; BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.成功, 3, order.SysNo); result.Status = postResult.success; } else { result.Status = postResult.success; result.Message = testData; } }catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
/// <summary> /// 创建退换货事务 /// </summary> /// <param name="model">退换货信息</param> /// <param name="exchange">客户提交退换货信息</param> /// <returns>返回结果</returns> /// <remarks>2013-09-12 周唐炬 创建</remarks> private static Result CreateReceiptTransaction(CBRcReturn model, ExchangeOrders exchange) { var result = new Result() { StatusCode = -1, Status = false }; var syUser = SyUserBo.Instance.GetSyUser(User.SystemUser); #region 地址 //取件地址 SoReceiveAddress pickAddress = null; if (exchange.PickupTypeSysNo == PickupType.百城当日取件) { var address = BLL.Web.CrCustomerBo.Instance.GetCustomerReceiveAddressBySysno(exchange.PickUpAddressSysNo); if (address != null) { pickAddress = new SoReceiveAddress { AreaSysNo = address.AreaSysNo, EmailAddress = address.EmailAddress, FaxNumber = address.FaxNumber, Gender = address.Gender, MobilePhoneNumber = address.MobilePhoneNumber, Name = address.Name, PhoneNumber = address.PhoneNumber, StreetAddress = address.StreetAddress, ZipCode = address.ZipCode }; } } //收货地址 SoReceiveAddress receiveAddress = null; if (exchange.ReceiveAddressSysNo == -10) { var soOrder = SoOrderBo.Instance.GetEntity(exchange.OrderSysNo); if (soOrder != null) { exchange.ReceiveAddressSysNo = soOrder.ReceiveAddressSysNo; receiveAddress = SoOrderBo.Instance.GetOrderReceiveAddress(exchange.ReceiveAddressSysNo); } } if (exchange.ReceiveAddressSysNo > 0) { var address = BLL.Web.CrCustomerBo.Instance.GetCustomerReceiveAddressBySysno(exchange.ReceiveAddressSysNo); if (address != null) { receiveAddress = new SoReceiveAddress { AreaSysNo = address.AreaSysNo, EmailAddress = address.EmailAddress, FaxNumber = address.FaxNumber, Gender = address.Gender, MobilePhoneNumber = address.MobilePhoneNumber, Name = address.Name, PhoneNumber = address.PhoneNumber, StreetAddress = address.StreetAddress, ZipCode = address.ZipCode }; } } #endregion var options = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.DefaultTimeout }; using (var scope = new TransactionScope(TransactionScopeOption.Required, options)) { var id = RmaBo.Instance.InsertRMA(model, pickAddress, receiveAddress, syUser); if (id > 0) { result.Status = true; result.StatusCode = 1; result.Message = "退换货申请成功!"; } else { result.Message = "系统错误,请稍后重试!"; } scope.Complete(); } return(result); }
/// <summary> /// 海关支付报关查询 /// </summary> /// <param name="orderId">订单编号</param> /// <returns></returns> /// <remarks>2015-12-31 杨浩 创建</remarks public override Result CustomsQuery(int orderId) { Result result = new Result(); //List<SoOrder> orderList = SoOrderBo.Instance.GetOrderByWeiXinCustomsData(); SoOrder order = SoOrderBo.Instance.GetEntity(orderId); result.Status = false; try { IList <FnOnlinePayment> list = FinanceBo.Instance.GetOnlinePaymentList(order.SysNo); FnOnlinePayment payment; if (list.Count > 0) { payment = list[0]; } else { result.Status = false; result.Message = "付款单信息无效,请核实订单是否付款?"; return(result); } SoReceiveAddress address = SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); //List<AliAcquireCustomsBack> payBackList = AcquireCustomsBo.Instance.GetAllAcquireCustomsBackByOrderSysNos(order.SysNo.ToString()); RequestHandler reqHandler = new RequestHandler(System.Web.HttpContext.Current, customsConfig.key, customsConfig.GATEWAY_NEW); //if (payBackList.Count == 0) //{ // continue; //} reqHandler.init(); //协议参数 reqHandler.setParameter("sign_type", "MD5"); reqHandler.setParameter("service_version", "1.0"); reqHandler.setParameter("input_charset", "UTF-8"); reqHandler.setParameter("sign_key_index", "1"); // 设置支付参数 //----------------------------- reqHandler.setParameter("partner", customsConfig.partner); //商户号 string out_trade_no = ""; if (string.IsNullOrEmpty(payment.BusinessOrderSysNo)) { out_trade_no = payment.SourceSysNo.ToString(); } else { out_trade_no = payment.BusinessOrderSysNo; } reqHandler.setParameter("out_trade_no", out_trade_no); //商户号 payBackList[0].OutRequestNo //if (list.Count > 0) //{ // reqHandler.setParameter("transaction_id", list[0].VoucherNo); //商户号 //} //reqHandler.setParameter("sub_order_no", payBackList[0].CustomsTradeNo); //商户号 //reqHandler.setParameter("sub_order_id", order.SysNo.ToString()); //商户号 reqHandler.setParameter("customs", customsConfig.customs_place); //商户号 string uriPath = reqHandler.getRequestURL("http://mch.tenpay.com/cgi-bin/mch_custom_query.cgi"); string xml = MyHttp.GetResponse(uriPath); //Game.Utils.FileManager.WriteFile(Hyt.Util.WebUtil.GetMapPath("/TenpayCustomsMdl.txt"), xml); ///插入更新记录 ///Hyt.Model.Customs.AliAcquireCustomsBack backMod = Pay.SaveTenpayAcquireCustomsBackData(xml); /// AliAcquireCustomsBack cusMod = SaveTenpayAcquireCustomsBackData(xml); object obj = GetTenpayReturnCustomsBack(xml); //AliAcquireCustomsBack backMod = payBackList[0]; string status = obj.GetType().GetProperty("state").GetValue(obj, null).ToString(); //backMod.PushDataInfo = uriPath; //backMod.Success = Enum.GetName(typeof(Hyt.Model.WorkflowStatus.OrderStatus.海关微信申报状态), Convert.ToInt32(status)); //backMod.Type = 1; //backMod.OutReportXML = xml; //AcquireCustomsBo.Instance.UpdateAcquireCustoms(backMod); ///更新付款人信息 /// BLL.Log.SysLog.Instance.Info(LogStatus.系统日志来源.前台, "订单编号:" + order.SysNo + ",支付信息查询!" + "回执:" + xml, LogStatus.系统日志目标类型.订单支付报关, order.SysNo, 0); if (status == "4") { Hyt.BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(GetOrderPayCustomStatus(GetTenpayStatus(status)), 0, orderId); /////获取付款人信息名称 //Model.Generated.SoPaymentInfo payInfo = SoPaymentInfoBo.Instance.GetPaymentInfo(order.SysNo); //if (payInfo != null) //{ // payInfo.PaymentName = obj.GetType().GetProperty("name").GetValue(obj, null).ToString(); // payInfo.PaymentIDC = obj.GetType().GetProperty("cert_id").GetValue(obj, null).ToString(); // payInfo.PaymentPhone = address.MobilePhoneNumber; // SoPaymentInfoBo.Instance.UpdatePaymentInfo(payInfo); //} //else //{ // payInfo = new SoPaymentInfo(); // payInfo.SoSysNo = order.SysNo; // payInfo.PaymentName = obj.GetType().GetProperty("name").GetValue(obj, null).ToString(); // payInfo.PaymentIDC = obj.GetType().GetProperty("cert_id").GetValue(obj, null).ToString(); // payInfo.PaymentPhone = address.MobilePhoneNumber; // SoPaymentInfoBo.Instance.InsertPaymentInfo(payInfo); //} } ///更新支付报关情况。 if (status == "5") { Hyt.BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(GetOrderPayCustomStatus(GetTenpayStatus(status)), 0, orderId); //backMod.Success = ""; //order.AutoPush = 0; } //order.CustomsResult = backMod.Success; //SoOrderBo.Instance.UpdateOrder(order); //content = order.SysNo + " 更新结束。"; result.Message = xml; result.Status = true; } catch (Exception e) { result.Message = e.Message; } //return Json(new { content = content }); return(result); }
/// <summary> /// 二期基础数据 /// </summary> /// <param name="listObject"></param> private void AddBaseTaskObject2ToList1(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); //BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask soRA = new SoReceiveAddress(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); listObject.Add(bsAT); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fepc); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(lgDS); listObject.Add(lgDUC); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); //listObject.Add(pdPI); listObject.Add(soRA); listObject.Add(syUW); listObject.Add(syUser); listObject.Add(whwarehouse); listObject.Add(whwa); }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderSysno"></param> /// <returns>2016-09-07 杨浩 创建</returns> public override Result AddOrderTrade(int orderSysno) { var result = new Result <string>(); result.Status = true; result.StatusCode = 0; result.Message = "接口调用成功"; if (orderSysno <= 0) { return(result); } try { var orderInfo = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(orderInfo.SysNo); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(orderInfo.CustomerSysNo); var order = new AddWuZhouRequest(); order.item_list = new List <Item_Lists>(); var pager = new Pager <AddWuZhouRequest>() { PageSize = 999999, CurrentPage = 1 }; //pager = Hyt.BLL.ApiLogistics.WuZhou.WuZhouBll.PdProductBo.Instance.GetWuZhouList(pager); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(orderInfo.SysNo); orderInfo.OrderItemList = new List <SoOrderItem>(); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); orderInfo.OrderItemList.Add(item); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); foreach (var mod in productList) { var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo); if (tempitem != null) { tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name; } } SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(orderSysno); #region 订单信息 order.outer_code = orderSysno.ToString(); order.goods_total = orderInfo.OrderAmount; order.order_pay = orderInfo.OrderAmount; order.logis_pay = orderInfo.FreightAmount; order.favourable = orderInfo.CouponAmount; order.item_count = 0; order.ebp_account = customer.Account; order.buyer_name = customer.Name; order.buyer_idtype = 1; order.buyer_idnumber = customer.IDCardNo; order.buyer_tel = customer.MobilePhoneNumber; order.consignee = srenity.Name; order.consignee_postcode = srenity.ZipCode; order.consignee_tel = srenity.MobilePhoneNumber; order.consignee_province = srenity.AreaSysNo.ToString(); order.consignee_city = srenity.AreaSysNo.ToString(); order.consignee_district = srenity.AreaSysNo.ToString(); order.consignee_addr = srenity.StreetAddress; order.consignee_email = srenity.EmailAddress; order.ebc_code = ""; order.ebp_code = ""; order.pay_code = ""; order.payment_no = ""; order.is_ordermsg = 1; order.is_paymsg = 1; order.is_logismsg = 1; order.is_invtmsg = 1; order.express_name = ""; order.logis_num = ""; order.note = orderInfo.Remarks; #endregion //循环商品信息 foreach (var item in datao) { var productInfo = productList.Where(x => x.SysNo == item.ProductSysNo).FirstOrDefault(); if (productInfo == null) { result.Status = false; result.StatusCode = 1; result.Message = "产品系统编号【" + item.ProductSysNo + "】在系统中不存在"; return(result); } var orderItem = new Item_Lists(); orderItem.sku_code = item.TransactionSysNo; orderItem.chcus_sku = item.ProductSysNo.ToString(); orderItem.sku_price = item.SalesUnitPrice; orderItem.qty = item.Quantity; orderItem.total = item.SalesUnitPrice; orderItem.discount = 0; orderItem.note = orderInfo.DeliveryRemarks; order.item_list.Add(orderItem); } //Dictionary<string, string> dicKeyList = new Dictionary<string, string>(); //dicKeyList.Add("outer_code", orderSysno.ToString()); //ERP的合作者帐号 string partner = ""; //由ERP分配 string send_key = ""; //ERP的外部接口帐号 string interface_id = ""; //请求业务 string method = "neworder"; //将数组装换为json格式 var orders = Hyt.Util.Serialization.JsonUtil.EntityToJson(order); //进行md5加密 string md5 = MD5Encrypt(orders + send_key).ToLower(); //进行Base64编码 string base64 = EncodeBase64(md5); //进行url编码 string sign = UrlEncode(base64); //请求参数 string requiredParameter = "/" + method + "/?partner=" + partner + "&interface_id=" + interface_id + "&sign=" + sign + "&content=" + orders + ""; //请求地址 string requestUrl = "ht"; //完整参数 string url = requestUrl + requiredParameter; string testData = MyHttp.GetResponse(url, orders, "utf-8"); //{"success":true,"errCode":"","errMsg":"","courierCode":"SF","mailNo":"444746031132"} PosDataResult postResult = JsonUtil.ToObject <PosDataResult>(testData); if (postResult.success) { Hyt.BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity( new CrossBorderLogisticsOrder() { ExpressNo = postResult.courierCode + "_" + postResult.mailNo, LogisticsCode = 0, LogisticsOrderId = "", SoOrderSysNo = orderSysno, } ); string express = postResult.courierCode + "_" + postResult.mailNo; BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.成功, 3, orderInfo.SysNo); result.Status = postResult.success; } else { result.Status = postResult.success; result.Message = testData; } } catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
/// <summary> /// 保存订单收货地址 /// </summary> /// <param name="entity">订单收货地址实体</param> /// <returns>订单收货地址实体(带编号)</returns> /// <remarks>2013-06-27 黄志勇 创建</remarks> public abstract SoReceiveAddress InsertEntity(SoReceiveAddress entity);