Пример #1
0
        /// <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 { }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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
            });
        }
Пример #4
0
 /// <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);
 }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
 /// <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();
 }
Пример #9
0
 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";
 }
Пример #10
0
        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);
        }
Пример #11
0
        /// <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);
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        /// <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);
        }
Пример #16
0
        /// <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);
        }
Пример #17
0
        /// <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);
        }
Пример #18
0
        /// <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);
            }
        }
Пример #19
0
        /// <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);
        }
Пример #20
0
        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);
        }
Пример #21
0
 /// <summary>
 /// 更新收货地址信息
 /// </summary>
 /// <param name="entity">订单收货地址实体</param>
 /// <returns></returns>
 /// <remarks>2013-06-27 朱成果 创建</remarks>
 public abstract void UpdateEntity(SoReceiveAddress entity);
Пример #22
0
        /// <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);
        }
Пример #23
0
        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);
        }
Пример #24
0
        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);
        }
Пример #25
0
        /// <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);
        }
Пример #26
0
        /// <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);
        }
Пример #27
0
        /// <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);
        }
Пример #28
0
        /// <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);
        }
Пример #29
0
 /// <summary>
 /// 保存订单收货地址
 /// </summary>
 /// <param name="entity">订单收货地址实体</param>
 /// <returns>订单收货地址实体(带编号)</returns>
 /// <remarks>2013-06-27 黄志勇 创建</remarks>
 public abstract SoReceiveAddress InsertEntity(SoReceiveAddress entity);