Exemplo n.º 1
0
        /// <summary>
        /// 设置订单明细信息
        /// </summary>
        /// <returns></returns>
        /// <remarks>2016-4-12 王耀发 创建</remarks>
        Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderDetail SetOrderDetail(int OrderSysNo)
        {
            Hyt.Model.Manual.SoOrderMods OrderEntity = SoOrderBo.Instance.GetSoOrderMods(OrderSysNo);
            OrderEntity.Customer         = CrCustomerBo.Instance.GetModel(OrderEntity.CustomerSysNo);
            OrderEntity.ReceiveAddress   = SoOrderBo.Instance.GetOrderReceiveAddress2(OrderEntity.ReceiveAddressSysNo);
            OrderEntity.ReceiverCountry  = ((Hyt.Model.Manual.SoReceiveAddressMod)OrderEntity.ReceiveAddress).ReceiverCountry.Trim();
            OrderEntity.ReceiverProvince = ((Hyt.Model.Manual.SoReceiveAddressMod)OrderEntity.ReceiveAddress).ReceiverProvince.Trim();
            OrderEntity.ReceiverCity     = ((Hyt.Model.Manual.SoReceiveAddressMod)OrderEntity.ReceiveAddress).ReceiverCity.Trim();
            OrderEntity.ReceiverArea     = ((Hyt.Model.Manual.SoReceiveAddressMod)OrderEntity.ReceiveAddress).ReceiverArea.Trim();
            OrderEntity.OrderItemList    = SoOrderBo.Instance.GetOrderItemsByOrderId(OrderEntity.SysNo);
            OrderEntity.OrderInvoice     = SoOrderBo.Instance.GetFnInvoice(OrderEntity.InvoiceSysNo);

            Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderDetail OrderDetail = new Hyt.Model.Icp.GZBaiYunJiChang.Order.OrderDetail();
            //获取电子订单编号
            FnOnlinePayment OnPayment = Hyt.BLL.Finance.FinanceBo.Instance.GetOnlinePaymentBySourceSysNo(OrderSysNo);

            //企业电子订单编号
            OrderDetail.EntOrderNo = OnPayment.BusinessOrderSysNo;
            //电子订单状态 0-订单确认、1-订单完成、2-订单取消
            OrderDetail.OrderStatus = "1";
            //支付状态 0-已付款、1-未付款
            OrderDetail.PayStatus = "0";
            //订单商品总额
            OrderDetail.OrderGoodTotal = OrderEntity.OrderAmount.ToString();
            //订单商品总额币制
            OrderDetail.OrderGoodTotalCurr = "142";
            //订单运费
            OrderDetail.Freight = OrderEntity.FreightAmount.ToString();
            //运费币制
            OrderDetail.FreightCurr = "142";
            //税款
            OrderDetail.Tax = OrderEntity.TaxFee.ToString();
            //税款币制
            OrderDetail.TaxCurr = "142";
            //抵付金额
            OrderDetail.OtherPayment = "";
            //币制代码
            OrderDetail.OtherPayCurr = "";
            //抵付说明
            OrderDetail.OtherPayNotes = "";
            //其它费用
            OrderDetail.OtherCharges = "";
            //币制代码
            OrderDetail.OtherChargesCurr = "";
            //实际支付金额
            OrderDetail.ActualAmountPaid = OrderEntity.CashPay.ToString();
            //实际支付币制
            OrderDetail.ActualCurr = "142";
            //收货人名称
            OrderDetail.RecipientName = OrderEntity.ReceiveAddress.Name;
            //收货人地址
            OrderDetail.RecipientAddr = (OrderEntity as Hyt.Model.Manual.SoOrderMods).ReceiverProvince + " " +
                                        (OrderEntity as Hyt.Model.Manual.SoOrderMods).ReceiverCity + " " +
                                        (OrderEntity as Hyt.Model.Manual.SoOrderMods).ReceiverArea + " " +
                                        OrderEntity.ReceiveAddress.StreetAddress;
            //收货人电话
            OrderDetail.RecipientTel = OrderEntity.ReceiveAddress.MobilePhoneNumber;
            //收货人所在国
            if (OrderEntity.ReceiverCountry == "中国")
            {
                OrderDetail.RecipientCountry = "142";
            }
            //下单人账户
            OrderDetail.OrderDocAcount = OrderEntity.Customer.Account;
            //下单人姓名
            OrderDetail.OrderDocName = OrderEntity.Customer.Account;
            //下单人证件类型
            OrderDetail.OrderDocType = "01";
            //下单人证件号
            OrderDetail.OrderDocId = OrderEntity.ReceiveAddress.IDCardNo;
            //下单人电话
            OrderDetail.OrderDocTel = OrderEntity.ReceiveAddress.MobilePhoneNumber;
            //订单日期
            OrderDetail.OrderDate = OrderEntity.CreateDate.ToString("yyyyMMddHHmmss");
            //备注
            OrderDetail.Notes     = "";
            OrderDetail.GoodsList = SetGoodsList(OrderSysNo);
            return(OrderDetail);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 推送订单
        /// </summary>
        /// <returns></returns>
        /// <remarks>2016-3-21 王耀发 创建</remarks>
        public override Result PushOrder(int soOrderSysNo)
        {
            Result result  = new Result();
            int    IcpType = (int)Model.CommonEnum.商检.广州南沙;

            Hyt.Model.Manual.SoOrderMods order = SoOrderBo.Instance.GetSoOrderMods(soOrderSysNo);
            order.ReceiveAddress         = SoOrderBo.Instance.GetOrderReceiveAddress2(order.ReceiveAddressSysNo);
            order.ReceiverProvince       = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverProvince.Trim();
            order.ReceiverCity           = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverCity.Trim();
            order.ReceiverArea           = ((Hyt.Model.Manual.SoReceiveAddressMod)order.ReceiveAddress).ReceiverArea.Trim();
            order.OrderItemList          = SoOrderBo.Instance.GetOrderItemsByOrderId(order.SysNo);
            order.OrderInvoice           = SoOrderBo.Instance.GetFnInvoice(order.InvoiceSysNo);
            order.ReceiptVoucher         = Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherByOrder(soOrderSysNo);
            order.ReceiptVoucherItemList = Hyt.BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(order.ReceiptVoucher.SysNo);

            IList <int> proIdList = new List <int>();
            List <Hyt.Model.Manual.SoOrderItemByPro> soProList = new List <Model.Manual.SoOrderItemByPro>();

            foreach (var item in order.OrderItemList)
            {
                proIdList.Add(item.ProductSysNo);
            }

            IList <IcpGZNanShaGoodsInfo> proList = Hyt.BLL.Product.PdProductBo.Instance.GetIcpGZNanShaGoodsInfoList(proIdList);

            if (order.OrderItemList.Count != proList.Count)
            {
                return(new Result()
                {
                    Message = "订单明细有尚未备案的商品,推送失败", Status = false
                });
            }
            foreach (var proItem in proList)
            {
                SoOrderItem item = order.OrderItemList.First(p => p.ProductSysNo == proItem.ProductSysNo);

                Hyt.Model.Manual.SoOrderItemByPro mod = new Model.Manual.SoOrderItemByPro();
                mod.GCode        = proItem.Gcode;
                mod.ProductSysNo = proItem.ProductSysNo;
                mod.Hscode       = proItem.HSCode;
                mod.CiqGoodsNo   = proItem.CIQGoodsNo;
                mod.ProductName  = proItem.Gname;
                mod.Brand        = proItem.Brand;
                mod.Spec         = proItem.Spec;
                mod.Origin       = proItem.AssemCountry;
                mod.QtyUnit      = proItem.Unit;
                mod.Qty          = item.Quantity.ToString();
                mod.DecPrice     = item.SalesUnitPrice;
                mod.DecTotal     = item.SalesAmount;
                mod.SellWebSite  = proItem.SellWebSite;
                soProList.Add(mod);
            }

            ////测试
            //foreach (var proItem in order.OrderItemList)
            //{
            //    var product = Hyt.BLL.Product.PdProductBo.Instance.GetProduct(proItem.ProductSysNo);
            //    //获取启邦商品备案信息
            //    var IcpQiBang = Hyt.BLL.ApiIcq.IcpBo.Instance.GetIcpQiBangGoodsInfoEntityByPid(proItem.ProductSysNo);

            //    Hyt.Model.Manual.SoOrderItemByPro mod = new Model.Manual.SoOrderItemByPro();
            //    mod.GCode = IcpQiBang.item_code;
            //    mod.ProductSysNo = proItem.ProductSysNo;
            //    mod.Hscode = IcpQiBang.item_id;
            //    mod.CiqGoodsNo = IcpQiBang.ciqgoodsno;
            //    mod.ProductName = IcpQiBang.item_name;
            //    mod.Brand = Hyt.BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo).Name;
            //    mod.Spec = IcpQiBang.item_spec;
            //    mod.Origin = IcpQiBang.origincountry;
            //    mod.QtyUnit = "克";
            //    mod.Qty = proItem.Quantity.ToString();
            //    mod.DecPrice = proItem.SalesUnitPrice;
            //    mod.DecTotal = proItem.SalesAmount;
            //    mod.SellWebSite = "http://www.gaopin999.com/";
            //    soProList.Add(mod);

            //}


            Hyt.Model.Icp.GZNanSha.Order.Root root = new Hyt.Model.Icp.GZNanSha.Order.Root();
            root.head                    = new Model.Icp.GZNanSha.Head();
            root.body                    = new Model.Icp.GZNanSha.Order.OrderBody();
            root.body.record             = new Model.Icp.GZNanSha.Order.OrderBodyRecord();
            root.body.record.cusOrderMod = new Model.Icp.GZNanSha.Order.CustomOrderMod();
            root.body.record.cusOrderMod.orderGoodsList = new Model.Icp.GZNanSha.Order.OrderGoodsList();

            //生成最大流水号
            string   MaxSerialNumber = GetMaxSerialNumberByMType(IcpType.ToString(), config.NSIcpInfo.OrderMessageType);
            DateTime now             = DateTime.Now;
            string   strDate         = now.ToString("yyyyMMddHHmmssfff");
            string   strDateMid      = now.ToString("yyyyMMddHHmmss");
            //string fileName = config.NSIcpInfo.OrderMessageType + "_" + strDate + MaxSerialNumber;
            string fileName  = config.NSIcpInfo.OrderMessageType + "_" + strDate;
            string MessageID = "ICIP" + strDateMid;

            SetCustomOrderHead(MessageID, root.head);
            BindCusOrderData(order, root.body.record.cusOrderMod);
            BindCusOrderGoodsData(soProList, root.body.record.cusOrderMod.orderGoodsList);

            string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Model.Icp.GZNanSha.Order.Root>(root);

            str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\"");
            str = str.Replace("Root", "ROOT");
            FtpUtil ftp = new FtpUtil(config.NSIcpInfo.FtpUrl, config.NSIcpInfo.FtpName, config.NSIcpInfo.FtpPassword);
            string  msg = "";

            fileName = fileName + ".xml";
            try
            {
                ftp.UploadFile(config.NSIcpInfo.FtpUrl + "4200.IMPBA.SWBEBTRADE.REPORT/in", fileName, Encoding.UTF8.GetBytes(str), out msg);
                //新增商检表信息
                int  UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo;
                CIcp model     = new CIcp();
                model.SourceSysNo    = soOrderSysNo;
                model.IcpType        = Hyt.Model.CommonEnum.商检.广州南沙.GetHashCode();
                model.MessageID      = MessageID;
                model.MessageType    = config.NSIcpInfo.OrderMessageType;
                model.SerialNumber   = MaxSerialNumber;
                model.XmlContent     = str;
                model.Status         = (int)IcpStatus.商品商检推送状态.已推送;
                model.CreatedBy      = UserSysNo;
                model.CreatedDate    = DateTime.Now;
                model.LastUpdateBy   = UserSysNo;
                model.LastUpdateDate = DateTime.Now;
                model.SysNo          = IcpDao.Instance.Insert(model);
                //插入明细
                foreach (var proItem in proList)
                {
                    var m = new CIcpGoodsItem
                    {
                        SourceSysNo    = soOrderSysNo,
                        IcpType        = model.IcpType,
                        MessageID      = MessageID,
                        IcpGoodsSysNo  = model.SysNo,
                        ProductSysNo   = proItem.ProductSysNo,
                        EntGoodsNo     = "None",
                        CreatedBy      = UserSysNo,
                        CreatedDate    = DateTime.Now,
                        LastUpdateBy   = UserSysNo,
                        LastUpdateDate = DateTime.Now
                    };
                    IcpDao.Instance.InsertIcpGoodsItem(m);
                }
                //foreach (var proItem in order.OrderItemList)
                //{
                //    var m = new CIcpGoodsItem
                //    {
                //        SourceSysNo = soOrderSysNo,
                //        IcpType = model.IcpType,
                //        MessageID = MessageID,
                //        IcpGoodsSysNo = model.SysNo,
                //        ProductSysNo = proItem.ProductSysNo,
                //        EntGoodsNo = "None",
                //        CreatedBy = UserSysNo,
                //        CreatedDate = DateTime.Now,
                //        LastUpdateBy = UserSysNo,
                //        LastUpdateDate = DateTime.Now
                //    };
                //    IcpDao.Instance.InsertIcpGoodsItem(m);
                //}
                //更新订单的商检推送状态
                SoOrderBo.Instance.UpdateOrderNsStatus(soOrderSysNo, (int)OrderStatus.商检状态.已推送);
                result.Status  = true;
                result.Message = root.head.MessageID;
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = ex.Message;
            }
            return(result);
        }