Пример #1
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>修改记录编号</returns>
 /// <remarks>2015-08-21  王耀发 创建</remarks>
 public override int Update(PdProductStock entity)
 {
     return(Context.Update("PdProductStock", entity)
            .AutoMap(o => o.SysNo)
            .Where("SysNo", entity.SysNo)
            .Execute());
 }
Пример #2
0
        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="entity">数据实体</param>
        /// <returns>新增记录编号</returns>
        /// <remarks>2015-08-21  王耀发 创建</remarks>
        public override int Insert(PdProductStock entity)
        {
            entity.SysNo = Context.Insert("PdProductStock", entity)
                           .AutoMap(o => o.SysNo)
                           .ExecuteReturnLastId <int>("SysNo");

            ///更新库存信息,修改商品档案的更新时间
            string sql = " update PdProduct set LastUpdateDate='" + DateTime.Now.ToString() + "' where SysNo='" + entity.PdProductSysNo + "' ";

            return(entity.SysNo);
        }
Пример #3
0
        public JsonResult PurchaseReturnCreate(PrPurchaseReturn model)
        {
            var result = new Result
            {
                Status     = false,
                StatusCode = 0
            };

            try
            {
                if (model.SysNo <= 0)
                {
                    model.CreatedBy   = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
                    model.CreatedDate = DateTime.Now;
                    model.Status      = (int)PurchaseStatus.采购退货单状态.待审核;
                }

                var         detailList = model.PurchaseReturnDetails;
                IList <int> indxList   = new List <int>();
                foreach (var mod in detailList)
                {
                    indxList.Add(mod.ProductSysNo);
                }

                var stockList = Hyt.BLL.Warehouse.PdProductStockBo.Instance.GetAllStockList(model.WarehouseSysNo, indxList);
                foreach (var mod in detailList)
                {
                    PdProductStock stock = stockList.First(p => p.PdProductSysNo == mod.ProductSysNo);
                    if (mod.ReturnQuantity > stock.StockQuantity)
                    {
                        result.StatusCode = -1;
                        result.Message    = "采购退货单的退货数量大于退货仓商品库存数,不能进行退货,请核实情况。";
                        return(Json(result, JsonRequestBehavior.AllowGet));
                    }
                }

                BLL.Purchase.PrPurchaseReturnBo.Instance.AddPurchaseReturn(model);
            }
            catch (Exception ex)
            {
                result.StatusCode = -1;
                result.Message    = ex.Message;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        /// <summary>
        /// 调拨单入库
        /// </summary>
        /// <param name="model"></param>
        /// <remarks>2016-07-01 陈海裕 创建</remarks>
        private static void AtAllocationTranslations(WhStockIn model)
        {
            IList <WhWarehouse> wareList = WhWarehouseBo.Instance.GetAllWarehouseList();
            var outInfo         = BLL.Warehouse.WhInventoryOutBo.Instance.GetWhInventoryOut(model.SourceSysNO);     //调拨出库单
            var allocationInfo  = BLL.Warehouse.AtAllocationBo.Instance.GetAtAllocationEntity(outInfo.SourceSysNO); //调拨单
            var tempInWarehouse = wareList.First(p => p.SysNo == model.WarehouseSysNo);
            //AtAllocation tempOutStock = AtAllocationBo.Instance.GetAtAllocationEntity(model.SourceSysNO);
            var tempOutWarehouse = wareList.First(p => p.SysNo == allocationInfo.OutWarehouseSysNo);

            var query = new List <TransferStockInfo>();

            if (model.ItemList != null)
            {
                foreach (var x in model.ItemList)
                {
                    var stock = new PdProductStock();
                    stock.StockQuantity  = x.RealStockInQuantity;
                    stock.PdProductSysNo = x.ProductSysNo;
                    stock.WarehouseSysNo = model.WarehouseSysNo;
                    //保存仓库产品的库存数
                    BLL.Warehouse.PdProductStockBo.Instance.SaveProductStock(stock, BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo);

                    var erpCode = BLL.Product.PdProductBo.Instance.GetProductErpCode(x.ProductSysNo);
                    query.Add(new TransferStockInfo()
                    {
                        WarehouseSysNo  = model.WarehouseSysNo,
                        WarehouseNumber = tempInWarehouse.ErpCode,
                        ErpCode         = erpCode,
                        FSCStockID      = tempOutWarehouse.ErpCode,
                        Quantity        = x.RealStockInQuantity,
                        FNote           = model.Remarks,
                        FFManagerID     = model.CreatedBy.ToString(),
                        FDate           = model.CreatedDate.ToString("yyyy-MM-dd"),
                    });
                }
                //金蝶接口
                string description  = model.SourceSysNO + "_" + model.SysNo;
                string flowIdentify = allocationInfo.SysNo.ToString();
                var    client       = Extra.Erp.Kis.KisProviderFactory.CreateProvider();
                client.TransferStock(query, description, flowIdentify);
            }
        }
Пример #5
0
 public override void CreateExcelProductStockYS(List <PdProductStock> models)
 {
     foreach (PdProductStock model in models)
     {
         PdProductStock PdStockData = new PdProductStock();
         PdStockData.WarehouseSysNo    = model.WarehouseSysNo;
         PdStockData.PdProductSysNo    = model.PdProductSysNo;
         PdStockData.Barcode           = model.Barcode;
         PdStockData.ProductSku        = model.ProductSku;
         PdStockData.CustomsNo         = model.CustomsNo;
         PdStockData.CostPrice         = model.CostPrice;
         PdStockData.StockQuantity     = model.StockQuantity;
         PdStockData.LockStockQuantity = model.LockStockQuantity;
         PdStockData.CreatedBy         = model.CreatedBy;
         PdStockData.CreatedDate       = model.CreatedDate;
         PdStockData.LastUpdateBy      = model.LastUpdateBy;
         PdStockData.LastUpdateDate    = model.LastUpdateDate;
         int ProductSysNo = Context.Insert <PdProductStock>("PdProductStock", PdStockData)
                            .AutoMap(o => o.SysNo)
                            .ExecuteReturnLastId <int>("SysNo");
     }
 }
Пример #6
0
        /// <summary>
        /// 更新商品库存信息
        /// </summary>
        /// <param name="models">商品信息列表</param>
        /// <returns>空</returns>
        /// <remarks>
        /// 2015-09-10 王耀发 创建
        /// 2016-04-09 陈海裕 修改 添加ProductSku
        /// 2016-9-20 修改商品库存,更新商品档案时间
        /// </remarks>
        public override void UpdateProductStockInfo(PdProductStock model)
        {
            string sql = @"update PdProductStock set Barcode = @Barcode,CustomsNo = @CustomsNo,CostPrice = @CostPrice,StockQuantity = @StockQuantity,LastUpdateBy = @LastUpdateBy,
                    LastUpdateDate = @LastUpdateDate,ProductSku=@ProductSku ,InStockTime=@InStockTime,Remark=@Remark where SysNo = @SysNo ";

            Context.Sql(sql)
            .Parameter("Barcode", model.Barcode)
            .Parameter("CustomsNo", model.CustomsNo)
            .Parameter("CostPrice", model.CostPrice)
            .Parameter("StockQuantity", model.StockQuantity)
            .Parameter("LastUpdateBy", model.LastUpdateBy)
            .Parameter("LastUpdateDate", model.LastUpdateDate)
            .Parameter("ProductSku", model.ProductSku)
            .Parameter("InStockTime", model.InStockTime)
            .Parameter("Remark", model.Remark)
            .Parameter("SysNo", model.SysNo).Execute();

            ///更新库存信息,修改商品档案的更新时间
            PdProductStock tempMod = Context.Sql(" select * from PdProductStock where SysNo='" + model.SysNo + "' ").QuerySingle <PdProductStock>();

            sql = " update PdProduct set LastUpdateDate='" + DateTime.Now.ToString() + "' where SysNo='" + tempMod.PdProductSysNo + "' ";
            Context.Sql(sql).Execute();
        }
Пример #7
0
        /// <summary>
        /// 推送供应链订单
        /// </summary>
        /// <param name="orderSysNo"></param>
        /// <returns></returns>
        /// <remarks>
        /// 2016-4-15 陈海裕 创建
        /// 2016-5-20 刘伟豪 修改
        /// </remarks>
        public override Result <string> SendOrder(int orderSysNo)
        {
            //防止并发操作
            lock (lockHelper)
            {
                // type: pushOrderDataInfo
                var result = new Result <string>()
                {
                    Status     = false,
                    StatusCode = 0,
                    Message    = "向" + this.Code + "供应链推送订单失败"
                };

                if (orderSysNo <= 0)
                {
                    return(result);
                }

                // json格式的post数据
                string jsonData = "";
                try
                {
                    SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);
                    if (order == null)
                    {
                        result.Message = "该订单不存在";
                        return(result);
                    }
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                    ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                    voucherFilter.SourceSysNo = order.SysNo;
                    CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                    recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);

                    DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                    HaiTunOrder newOrder = new HaiTunOrder();
                    newOrder.address                 = TConvert.ToString(order.ReceiveAddress.StreetAddress);
                    newOrder.city                    = TConvert.ToString(receiverCity.AreaName.Trim());
                    newOrder.consignee               = TConvert.ToString(order.ReceiveAddress.Name);
                    newOrder.consumerNote            = TConvert.ToString(order.Remarks);
                    newOrder.country                 = "中国";
                    newOrder.district                = TConvert.ToString(receiverDistrict.AreaName.Trim());
                    newOrder.idCardNumber            = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                    newOrder.isCheck                 = "no";
                    newOrder.mobile                  = TConvert.ToString(order.ReceiveAddress.MobilePhoneNumber);
                    newOrder.moneyPaid               = TConvert.ToString(order.OrderAmount);
                    newOrder.orderAmount             = TConvert.ToString(order.OrderAmount);
                    newOrder.orderSn                 = TConvert.ToString(order.SysNo);
                    newOrder.paymentAccount          = "*****@*****.**"; // 固定值
                    newOrder.paymentInfoIdCardNumber = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                    newOrder.paymentInfoMethod       = "支付宝";
                    newOrder.paymentInfoName         = TConvert.ToString(order.ReceiveAddress.Name);
                    newOrder.paymentInfoNumber       = TConvert.ToString(recVoucher.VoucherItems[0].VoucherNo);
                    newOrder.province                = TConvert.ToString(receiverProvince.AreaName);
                    newOrder.shippingFee             = TConvert.ToString(order.FreightAmount);
                    newOrder.siteName                = TConvert.ToString(dealer.ErpName);
                    newOrder.siteType                = "商城";
                    newOrder.tel     = TConvert.ToString(order.ReceiveAddress.PhoneNumber);
                    newOrder.zipcode = TConvert.ToString(order.ReceiveAddress.ZipCode);
                    newOrder.items   = new List <HaiTunOrderItem>();
                    HaiTunOrderItem haitunItem = new HaiTunOrderItem();
                    foreach (var item in order.OrderItemList)
                    {
#if DEBUG
                        haitunItem.goodsName  = "【广州保税 全国包邮】澳大利亚Swisse 奶蓟草护肝片肝脏排毒120粒 【2件起发】";
                        haitunItem.goodsPrice = "100";
                        haitunItem.goodsSn    = "AUSW003";
                        haitunItem.quantity   = "1";
                        newOrder.items.Add(haitunItem);
                        break;
#else
                        PdProductStock productStock  = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);
                        var            supplyProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(productStock.ProductSku, (int)this.Code);
                        if (supplyProduct != null)
                        {
                            haitunItem.goodsName  = TConvert.ToString(supplyProduct.ProductName);
                            haitunItem.goodsPrice = TConvert.ToString(item.SalesUnitPrice);
                            haitunItem.goodsSn    = TConvert.ToString(supplyProduct.SKU);
                            haitunItem.quantity   = TConvert.ToString(item.Quantity);
                            newOrder.items.Add(haitunItem);
                        }
                        else
                        {
                            result.Message = "商品" + item.ProductSysNo + "对应的供应链商品不存在";
                            return(result);
                        }
#endif
                    }

                    jsonData = Util.Serialization.JsonUtil.ToJson2(new List <HaiTunOrder>()
                    {
                        newOrder
                    });

                    var back = Post("pushOrderDataInfo", jsonData);
                    result = GetResult(JObject.Parse(back));
                    if (result.Status)
                    {
                    }
                }
                catch (Exception ex)
                {
                    result.Message = ex.Message;
                    BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, this.Code + "供应链订单推送:" + ex.Message, ex);
                }

                return(result);
            }
        }
Пример #8
0
        public override Result AddOrderTrade(int orderSysno)
        {
            Result result = new Result();

            try
            {
                SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                    return(result);
                }
                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                voucherFilter.SourceSysNo = order.SysNo;
                CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                EasycrossOrder newOrder = new EasycrossOrder();
                newOrder.OrderHead             = new OrderHead();
                newOrder.OrderList             = new List <OrderList>();
                newOrder.OrderPaymentLogistics = new OrderPaymentLogistics();

                newOrder.OrderHead.accessType         = "1";
                newOrder.OrderHead.agentCode          = "4404580006";
                newOrder.OrderHead.agentName          = "珠海易跨境电子商务服务有限公司";
                newOrder.OrderHead.appStatus          = "2";
                newOrder.OrderHead.appTime            = DateTime.Now.ToString("yyyyMMddHHmmss");
                newOrder.OrderHead.appUid             = "1105910159";
                newOrder.OrderHead.appUname           = "东方口岸";
                newOrder.OrderHead.batchNumbers       = "";
                newOrder.OrderHead.cbeCode            = "D00236";
                newOrder.OrderHead.cbeName            = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.charge             = order.OrderAmount.ToString();
                newOrder.OrderHead.consignee          = order.ReceiveAddress.Name;
                newOrder.OrderHead.consigneeAddress   = order.ReceiveAddress.StreetAddress;
                newOrder.OrderHead.consigneeCountry   = "";
                newOrder.OrderHead.consigneeTelephone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber)
                    ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.OrderHead.currency         = "142";
                newOrder.OrderHead.customer         = order.ReceiveAddress.Name;
                newOrder.OrderHead.customerId       = order.ReceiveAddress.IDCardNo;
                newOrder.OrderHead.ecpCode          = "W0098";
                newOrder.OrderHead.ecpName          = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.freight          = order.FreightAmount.ToString();
                newOrder.OrderHead.goodsValue       = order.ProductAmount.ToString();
                newOrder.OrderHead.idType           = "1";
                newOrder.OrderHead.ieType           = "I";
                newOrder.OrderHead.modifyMark       = "1";
                newOrder.OrderHead.note             = "";
                newOrder.OrderHead.orderNo          = order.SysNo.ToString();
                newOrder.OrderHead.other            = "";
                newOrder.OrderHead.shipper          = BLL.Stores.StoresBo.Instance.GetStoreById(0).ErpName;
                newOrder.OrderHead.shipperAddress   = "";
                newOrder.OrderHead.shipperCountry   = "142";
                newOrder.OrderHead.shipperTelephone = "";
                newOrder.OrderHead.tax = order.TaxFee.ToString();
                newOrder.OrderHead.totalLogisticsNo = "";
                newOrder.OrderHead.tradeCountry     = "";
                newOrder.OrderHead.wrapType         = "";
                foreach (SoOrderItem item in order.OrderItemList)
                {
                    PdProduct      product      = BLL.Product.PdProductBo.Instance.GetProduct(item.SysNo);
                    PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);

                    string  brandName = "无";
                    PdBrand brand     = BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo);
                    if (brand != null)
                    {
                        brandName = brand.Name;
                    }

                    OrderList orderList = new OrderList();
                    orderList.barCode        = "";
                    orderList.brand          = brandName;
                    orderList.codeTs         = "";
                    orderList.country        = "";
                    orderList.currency       = "142";
                    orderList.describe       = "";
                    orderList.discount       = "";
                    orderList.giftFlag       = "";
                    orderList.goodsModel     = "";
                    orderList.goodsName      = item.ProductName;
                    orderList.goodsNo        = productStock.ProductSku;
                    orderList.itemNo         = "";
                    orderList.note           = "";
                    orderList.packNum        = "";
                    orderList.price          = item.SalesUnitPrice.ToString();
                    orderList.priceTotal     = item.SalesAmount.ToString();
                    orderList.purposeCode    = "";
                    orderList.quantity       = item.Quantity.ToString();
                    orderList.shelfGoodsName = item.ProductName;
                    orderList.taxCode        = "";
                    orderList.unit           = "007";
                    orderList.wasteMaterials = "1";
                    orderList.wrapType       = "";
                    newOrder.OrderList.Add(orderList);
                }
                //newOrder.OrderPaymentLogistics.logisticsCode = "";
                newOrder.OrderPaymentLogistics.logisticsName = deliveryType.DeliveryTypeName;
                //newOrder.OrderPaymentLogistics.logisticsNo = "";
                //newOrder.OrderPaymentLogistics.paymentCode = "";
                //newOrder.OrderPaymentLogistics.paymentName = "";
                //newOrder.OrderPaymentLogistics.paymentNo = "";
                //newOrder.OrderPaymentLogistics.paymentType = "";
                //newOrder.OrderPaymentLogistics.trackNo = "";

                XmlSerializerNamespaces xmlNs = new XmlSerializerNamespaces();
                xmlNs.Add("nousexmlns", "http://www.chinaport.gov.cn/ecss");
                string xmlData = this.XmlSerialize <EasycrossOrder>(newOrder, xmlNs);
                xmlData = xmlData.Replace(":nousexmlns", "");
                xmlData = xmlData.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\"");

                // 上传文件
                FtpUtil ftp         = new FtpUtil(FTPUri, FTPName, FTPPassword);
                string  ftpResponse = "";
                ftp.UploadFile(FTPUri, "Testfilename.xml", Encoding.UTF8.GetBytes(xmlData), out ftpResponse);
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }
Пример #9
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderSysno"></param>
        /// <returns>2016-04-09 陈海裕 创建</returns>
        public override Result AddOrderTrade(int orderSysno)
        {
            // 订单id,用于日志记录
            _orderSysNo = orderSysno;

            Result result = new Result();

            result.Status     = false;
            result.StatusCode = 0;
            result.Message    = "接口调用失败";

            if (orderSysno <= 0)
            {
                return(result);
            }

            lock (lockHelper)
            {
                try
                {
                    SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                    if (order == null)
                    {
                        result.Message = "该订单不存在";
                        return(result);
                    }
                    if (order.CBLogisticsSendStatus == 1)
                    {
                        result.Message = "该订单已推送,不能重复操作";
                        return(result);
                    }
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                    ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                    voucherFilter.SourceSysNo = order.SysNo;
                    CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                    recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                    // 发货人 市
                    CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                    BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                    DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                    LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                    EDTOrder newOrder = new EDTOrder();
                    newOrder.Address1 = order.ReceiveAddress.StreetAddress;
                    //newOrder.Base_ChannelInfoID = "1";
                    newOrder.Base_ChannelInfoID = "HKKJ";
                    newOrder.City           = receiverCity.AreaName;
                    newOrder.ConsigneeName  = order.ReceiveAddress.Name;
                    newOrder.Contact        = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                    newOrder.Country        = "CN";
                    newOrder.CusRemark      = order.Remarks;
                    newOrder.GFF_CustomerID = CoustomerID;
                    newOrder.OrderStatus    = "3";
                    newOrder.State          = receiverProvince.AreaName;
                    newOrder.Style          = "1";
                    //newOrder.ShippingService = "GZBC";
                    List <EDTOrderProduct> productList = new List <EDTOrderProduct>();
                    EDTOrderProduct        product     = null;
                    foreach (var item in order.OrderItemList)
                    {
                        PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);
                        product               = new EDTOrderProduct();
                        product.CnName        = item.ProductName;
                        product.EnName        = "";
                        product.MaterialRefNo = TConvert.ToString(productStock.ProductSku);
                        product.Price         = item.SalesUnitPrice.ToString();
                        product.Quantity      = item.Quantity.ToString();
                        product.Weight        = "";
                        product.WarehouseID   = warehouse.LogisWarehouseCode;
                        productList.Add(product);
                    }

                    if (product == null)
                    {
                        result.Message = "订单明细不存在";
                        return(result);
                    }

                    StringBuilder strorderinfo = new StringBuilder();
                    strorderinfo.Append("Style:" + newOrder.Style + ";");
                    strorderinfo.Append("GFF_CustomerID:" + newOrder.GFF_CustomerID + ";");
                    strorderinfo.Append("GFF_ReceiveSendAddressID:;");
                    strorderinfo.Append("ConsigneeName:" + newOrder.ConsigneeName + ";");
                    strorderinfo.Append("Country:" + newOrder.Country + ";");
                    strorderinfo.Append("Base_ChannelInfoID:" + newOrder.Base_ChannelInfoID + ";");
                    strorderinfo.Append("State:" + newOrder.State + ";");
                    strorderinfo.Append("City:" + newOrder.City + ";");
                    strorderinfo.Append("OrderStatus:" + newOrder.OrderStatus + ";");
                    strorderinfo.Append("Address1:" + newOrder.Address1 + ";");
                    strorderinfo.Append("Address2:;");
                    strorderinfo.Append("CsRefNo:;");
                    strorderinfo.Append("Zipcode:;");
                    strorderinfo.Append("Contact:" + newOrder.Contact + ";");
                    strorderinfo.Append("CusRemark:" + newOrder.CusRemark + ";");
                    strorderinfo.Append("TrackingNo:;");
                    //strorderinfo.Append("ShippingService:" + newOrder.ShippingService + ";");
                    StringBuilder strorderproduct = new StringBuilder();
                    for (int i = 0; i < productList.Count; i++)
                    {
                        strorderproduct.Append("MaterialRefNo:" + productList[i].MaterialRefNo + ",");
                        //strorderproduct.Append("MaterialRefNo:123456,");
                        strorderproduct.Append("Quantity:" + productList[i].Quantity + ",");
                        strorderproduct.Append("Price:" + productList[i].Price + ",");
                        strorderproduct.Append("Weight:" + productList[i].Weight + ",");
                        strorderproduct.Append("EnName:" + productList[i].EnName + ",");
                        strorderproduct.Append("WarehouseID:" + productList[i].WarehouseID + ",");
                        strorderproduct.Append("ProducingArea:,");
                        productList[i].CnName = Regex.Replace(productList[i].CnName, @"[/\(\)(),]", "");
                        strorderproduct.Append("CnName:" + productList[i].CnName + ",;");
                    }

                    ServiceRefEightDT.APIWebServiceSoapClient newService = new ServiceRefEightDT.APIWebServiceSoapClient();

                    string strResult = newService.InsertUpdateOrder(strorderinfo.ToString(), strorderproduct.ToString(), "", Secretkey);
                    if (strResult.Contains("成功"))
                    {
                        try
                        {
                            CrossBorderLogisticsOrder cbOrder = BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.GetEntityByOrderSysNo(orderSysno);
                            if (cbOrder == null)
                            {
                                Model.CrossBorderLogisticsOrder logisticsOrder = new Model.CrossBorderLogisticsOrder();
                                logisticsOrder.SoOrderSysNo     = orderSysno;
                                logisticsOrder.LogisticsOrderId = Regex.Match(strResult, "[a-zA-Z0-9]+").ToString();
                                logisticsOrder.LogisticsCode    = (int)this.Code;
                                BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity(logisticsOrder);
                            }
                            // 更新订单状态
                            BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderSysno);
                        }
                        catch (Exception ex)
                        {
                            BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, "订单" + orderSysno + "保存跨境物流返回的单号失败。", ex);
                        }

                        result.Status = true;
                    }

                    result.Message = strResult;
                }
                catch (Exception ex)
                {
                    result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                    return(result);
                }
            }

            return(result);
        }
Пример #10
0
        public Resuldt <OtherOutOfStorageDetailed> OtherImportExcel(System.IO.Stream stream, int SysNo)
        {
            DataTable dt   = null;
            var       cols = OtherDicColsMapping.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }

            if (dt.Rows.Count == 0)
            {
                return(new Resuldt <OtherOutOfStorageDetailed>
                {
                    Message = "导入的数据为空!",
                    Status = false
                });
            }
            Resuldt <OtherOutOfStorageDetailed> run       = new Resuldt <OtherOutOfStorageDetailed>();
            List <OtherOutOfStorageDetailed>    listModel = new List <OtherOutOfStorageDetailed>();
            int    fail    = 0;  //失败记录数
            int    success = 0;  //成功记录数
            string failstr = ""; //失败条数记录

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                OtherOutOfStorageDetailed model = new OtherOutOfStorageDetailed();
                var product = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["商品代码"].ToString(), dt.Rows[i]["商品条形码"].ToString());
                var ware    = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModelErpCode(dt.Rows[i][7].ToString());
                if (product == null || ware == null)
                {
                    fail++;
                    failstr += (i + 2) + "、";
                    dt.Rows.Remove(dt.Rows[i]);
                }
                else
                {
                    #region 判断商品是否已入库,若未入库将商品插入至商品库存表
                    var Stock = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i][7].ToString().Trim());
                    if (Stock == null)
                    {
                        // WhInventoryBo
                        PdProductStock stockModel = new PdProductStock()
                        {
                            WarehouseSysNo    = ware.SysNo,
                            PdProductSysNo    = product.SysNo,
                            StockQuantity     = 0,
                            LockStockQuantity = 0,
                            CreatedDate       = DateTime.Now,
                            Barcode           = product.Barcode,
                            CostPrice         = 0,
                            CustomsNo         = "",
                            InStockTime       = "",
                            Remark            = "库存盘点自动入库"
                        };
                        PdProductStockBo.Instance.SaveProductStock(stockModel, 0);
                    }
                    #endregion

                    //重新获取商品库存信息
                    Stock = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i][7].ToString().Trim());
                    success++;
                    model.ProductCode           = product.ErpCode;
                    model.BarCode               = product.Barcode;
                    model.ProductName           = product.EasName;
                    model.Count                 = dt.Rows[i]["实收数量"] != DBNull.Value ? Convert.ToDecimal(dt.Rows[i]["实收数量"]) : Convert.ToDecimal(0.00);
                    model.UnitPrice             = dt.Rows[i]["单价"] != DBNull.Value ? Convert.ToDecimal(dt.Rows[i]["单价"]) : Convert.ToDecimal(0.00);
                    model.Price                 = (model.Count * model.UnitPrice);
                    model.Remarks               = dt.Rows[i]["备注"].ToString();
                    model.ProductSysNo          = product.SysNo;
                    model.CollectWarehouseName  = ware.BackWarehouseName;
                    model.CollectWarehouseCode  = ware.ErpCode;
                    model.CollectWarehouseSysNo = ware.SysNo;
                    listModel.Add(model);
                }
            }
            if (success > 0 && dt.Rows.Count > 0)
            {
                run.Data = dt;
            }
            if (success > 0 && listModel != null)
            {
                run.listModel = listModel;
            }
            run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;";
            if (fail > 0)
            {
                run.Message += "失败原因为:产品编码或仓库erp编码有误,不存在此件商品或仓库。失败条数为第" + failstr.Trim('、') + "条。";
            }
            run.Status = true;
            return(run);
        }
Пример #11
0
        public Resuldt <uditPdProductStock> ImportExcel(System.IO.Stream stream, int SysNo)
        {
            DataTable dt   = null;
            var       cols = DicColsMapping.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                return(new Resuldt <uditPdProductStock>
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Resuldt <uditPdProductStock>
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }

            if (dt.Rows.Count == 0)
            {
                return(new Resuldt <uditPdProductStock>
                {
                    Message = "导入的数据为空!",
                    Status = false
                });
            }

            Resuldt <uditPdProductStock> run       = new Resuldt <uditPdProductStock>();
            List <uditPdProductStock>    listModel = new List <uditPdProductStock>();
            int    fail    = 0;  //失败记录数
            int    success = 0;  //成功记录数
            string failstr = ""; //失败条数记录

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                uditPdProductStock model = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i]["仓库Erp编号"].ToString().Trim());
                if (model == null)
                {
                    model = new uditPdProductStock();
                    var product = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["商品代码"].ToString().Trim(), null);
                    var ware    = Hyt.BLL.Web.WhWarehouseBo.Instance.GetModelErpCode(dt.Rows[i]["仓库Erp编号"].ToString().Trim());
                    if (product == null || ware == null)
                    {
                        fail++;
                        failstr += (i + 2) + "、";
                        dt.Rows.Remove(dt.Rows[i]);
                    }
                    else
                    {
                        #region 将商品插入至商品库存表
                        // WhInventoryBo
                        PdProductStock stockModel = new PdProductStock()
                        {
                            WarehouseSysNo    = ware.SysNo,
                            PdProductSysNo    = product.SysNo,
                            StockQuantity     = 0,
                            LockStockQuantity = 0,
                            CreatedDate       = DateTime.Now,
                            Barcode           = product.Barcode,
                            CostPrice         = 0,
                            CustomsNo         = "",
                            InStockTime       = "",
                            Remark            = "库存盘点自动入库"
                        };
                        var r = PdProductStockBo.Instance.SaveProductStock(stockModel, 0);
                        #endregion
                        if (r > 0)
                        {
                            model = IWhInventoryDao.Instance.GetuditPdProductStockTo(dt.Rows[i]["商品代码"].ToString().Trim(), dt.Rows[i]["仓库Erp编号"].ToString().Trim());
                            success++;
                            model.BeiZhu      = dt.Rows[i]["备注"] == null ? "" : dt.Rows[i]["备注"].ToString().Trim();
                            model.ShiQuantity = dt.Rows[i]["实存数"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["实存数"].ToString().Trim());
                            model.WhCostPrice = dt.Rows[i]["单价"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["单价"].ToString().Trim());
                            listModel.Add(model);
                        }
                        else
                        {
                            fail++;
                            failstr += (i + 2) + "、";
                            dt.Rows.Remove(dt.Rows[i]);
                        }
                    }
                }
                else
                {
                    success++;
                    model.BeiZhu      = dt.Rows[i]["备注"] == null ? "" : dt.Rows[i]["备注"].ToString().Trim();
                    model.ShiQuantity = dt.Rows[i]["实存数"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["实存数"].ToString().Trim());
                    model.WhCostPrice = dt.Rows[i]["单价"] == null ? 0 : Convert.ToDecimal(dt.Rows[i]["单价"].ToString().Trim());
                    listModel.Add(model);
                }
            }
            if (success > 0 && dt.Rows.Count > 0)
            {
                run.Data = dt;
            }
            if (success > 0 && listModel != null)
            {
                run.listModel = listModel;
            }
            run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;";
            if (fail > 0)
            {
                run.Message += "失败原因为:产品编码或仓库erp编码有误,不存在此件商品。失败条数为第" + failstr.Trim('、') + "条。";
            }
            run.Status = true;
            return(run);
        }
Пример #12
0
 /// <summary>
 /// 插入数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>新增记录编号</returns>
 /// <remarks>2015-08-06 王耀发 创建</remarks>
 public abstract int Insert(PdProductStock entity);
Пример #13
0
 /// <summary>
 /// 更新商品库存信息
 /// </summary>
 /// <param name="models">商品信息列表</param>
 /// <returns>空</returns>
 /// <remarks>2015-09-10 王耀发 创建</remarks>
 public abstract void UpdateProductStockInfo(PdProductStock model);
Пример #14
0
        /// <summary>
        /// 借货还货EAS事务(其他出库单)
        /// </summary>
        /// <param name="model">入库实体</param>
        /// <remarks>2013-11-21 周唐炬 创建</remarks>
        private static void BorrowInfoTranslations(WhStockIn model)
        {
            List <BorrowInfo> borrowInfoList = null;

            if (model.ItemList != null && model.ItemList.Any())
            {
                borrowInfoList = new List <BorrowInfo>();
                //仓库
                var warehouse        = WhWarehouseBo.Instance.GetWarehouse(model.WarehouseSysNo);
                var warehouseErpCode = string.Empty;
                if (warehouse != null)
                {
                    warehouseErpCode = warehouse.ErpCode;
                }
                model.ItemList.ForEach(x =>
                {
                    #region 入库数写入仓库库存
                    var stock           = new PdProductStock();
                    stock.StockQuantity = x.RealStockInQuantity;
                    BLL.Warehouse.PdProductStockBo.Instance.SaveProductStock(stock, BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo);

                    ///添加调拨入库记录
                    WhWarehouseChangeLog log = new WhWarehouseChangeLog()
                    {
                        WareSysNo      = stock.WarehouseSysNo,
                        ProSysNo       = x.ProductSysNo,
                        ChageDate      = model.CreatedDate,
                        CreateDate     = DateTime.Now,
                        ChangeQuantity = Convert.ToInt32(x.RealStockInQuantity),
                        BusinessTypes  = "借货入库",
                        LogData        = "入库单号:" + model.TransactionSysNo
                    };
                    WhWarehouseChangeLogBo.Instance.CreateMod(log);
                    #endregion

                    var product = PdProductBo.Instance.GetProduct(x.ProductSysNo);
                    if (product == null)
                    {
                        return;
                    }
                    var price = decimal.Zero;

                    //借货单商品
                    var item = IProductLendDao.Instance.GetWhProductLendItemInfo(new ParaWhProductLendItemFilter()
                    {
                        ProductLendSysNo = model.SourceSysNO,
                        ProductSysNo     = x.ProductSysNo,
                        PriceSource      = (int)ProductStatus.产品价格来源.配送员进货价
                    });
                    if (item != null)
                    {
                        price = item.Price;
                    }

                    var borrowInfo = new BorrowInfo()
                    {
                        ErpCode         = product.ErpCode,
                        Quantity        = x.RealStockInQuantity,
                        WarehouseNumber = warehouseErpCode,
                        WarehouseSysNo  = model.WarehouseSysNo,
                        Amount          = price,
                        Remark          = model.Remarks
                    };
                    borrowInfoList.Add(borrowInfo);
                });
            }

            //获取摘要
            var userName    = string.Empty;
            var productLend = ProductLendBo.Instance.GetWhProductLend(model.SourceSysNO);
            if (productLend != null)
            {
                var syUser = SyUserBo.Instance.GetSyUser(productLend.DeliveryUserSysNo);
                if (syUser != null)
                {
                    userName = syUser.UserName;
                }
            }
            var description = string.Format("JC[{0}]-[{1}]-RK[{2}]", model.SourceSysNO, userName, model.SysNo);
            //借货调用借货入库,对应Eas其他出库单
            var client = EasProviderFactory.CreateProvider();
            client.Return(borrowInfoList, description, model.SourceSysNO.ToString());
        }
Пример #15
0
        /// <summary>
        /// 添加商品档案
        /// </summary>
        /// <param name="ProductSysNo">商品编码</param>
        /// <param name="StockSysNo">库存编码</param>
        /// <param name="StockSysName">仓库名称</param>
        /// <param name="actionType">操作编码 0-新增;1-修改;2-删除</param>
        /// <returns></returns>
        public Extra.Erp.Model.Result StockProductItemAdd(int ProductSysNo, int StockSysNo, string StockSysName, int actionType = 0)
        {
            Extra.Erp.Model.Result result = new Model.Result();

            try
            {
                string actionPath = "/base/itemAdd";
                if (actionType == 1)
                {
                    actionPath = "/base/itemModi";
                }
                else if (actionType > 1)
                {
                    result.Status  = false;
                    result.Message = "actionType 操作编码有误,请核实";
                    return(result);
                }
                string         postDataPath = Config.root + actionPath;
                CBPdProduct    product      = IPdProductDao.Instance.GetProduct(ProductSysNo);
                EasProduct     easProduct   = new EasProduct();
                PdProductStock productStock = IPdProductStockDao.Instance.GetEntityByWP(StockSysNo, ProductSysNo);
                if (productStock == null)
                {
                    productStock = new PdProductStock();
                }
                easProduct.APP_Key      = Config.APP_Key;
                easProduct.APP_scode    = Config.APP_scode;
                easProduct.FDefaultLoc  = StockSysName;
                easProduct.FNumber      = product.ErpCode;
                easProduct.FName        = "[" + StockSysNo + "]" + "[" + product.ErpCode + "]" + product.EasName;
                easProduct.FUnitName    = product.SalesMeasurementUnit;
                easProduct.FSecInv      = productStock.StockQuantity;
                easProduct.FSalePrice   = product.PdPrice.Value.First(p => p.PriceSource == 0 && p.SourceSysNo == 0).Price;
                easProduct.FOrderPrice  = product.CostPrice;
                easProduct.FGrossWeight = product.GrosWeight;
                easProduct.FNetWeight   = product.NetWeight;
                easProduct.FSize        = product.VolumeValue;
                easProduct.isParent     = 10;

                string strProduct = Hyt.Util.Serialization.JsonUtil.ToJson(easProduct);
                strProduct = strProduct.Replace("\"APP_Key\":\"\",\"APP_scode\":\"\",", "");
                string posData = Hyt.Util.MyHttp.PostJsonData(postDataPath,
                                                              strProduct
                                                              );

                EasResult easResult = Hyt.Util.Serialization.JsonUtil.ToObject <EasResult>(posData);
                if (easResult.success)
                {
                    result.Status  = true;
                    result.Message = easResult.message;
                    ERPStockProduct erpStockProduct = new ERPStockProduct()
                    {
                        ERPProductName = easProduct.FName,
                        FKFPeriod      = easProduct.FKFPeriod,
                        ProductCode    = easProduct.FNumber,
                        ProductSysNo   = ProductSysNo,
                        StockSysNo     = StockSysNo,
                        StockNum       = easProduct.FSecInv
                    };
                    ERPStockProduct erpProduct = IERPStockProductDao.Instance.GetMod(ProductSysNo, StockSysNo);
                    if (erpProduct == null)
                    {
                        IERPStockProductDao.Instance.InsertMod(erpStockProduct);
                    }
                    else
                    {
                        erpStockProduct.SysNo = erpProduct.SysNo;
                        IERPStockProductDao.Instance.UpdateMod(erpStockProduct);
                    }
                }
                else
                {
                    if (easResult.message.IndexOf("同名称的商品已经存在") != -1)
                    {
                        ERPStockProduct erpStockProduct = new ERPStockProduct()
                        {
                            ERPProductName = easProduct.FName,
                            FKFPeriod      = easProduct.FKFPeriod,
                            ProductCode    = easProduct.FNumber,
                            ProductSysNo   = ProductSysNo,
                            StockSysNo     = StockSysNo,
                            StockNum       = easProduct.FSecInv
                        };
                        ERPStockProduct erpProduct = IERPStockProductDao.Instance.GetMod(ProductSysNo, StockSysNo);
                        if (erpProduct == null)
                        {
                            IERPStockProductDao.Instance.InsertMod(erpStockProduct);
                        }
                        else
                        {
                            erpStockProduct.SysNo = erpProduct.SysNo;
                            IERPStockProductDao.Instance.UpdateMod(erpStockProduct);
                        }
                        result.Status  = true;
                        result.Message = easResult.message;
                    }
                    else
                    {
                        result.Status  = false;
                        result.Message = easResult.message;
                    }
                }
            }catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            result.StatusCode = ProductSysNo.ToString();
            return(result);
        }
Пример #16
0
        /// <summary>
        /// 同步商品到易扫购
        /// </summary>
        /// <param name="url">商品提交地址</param>
        /// <param name="merchantId">商户编号</param>
        /// <param name="customerId">商户角色编号</param>
        /// <param name="list">商品列表</param>
        /// <param name="key">商户密钥</param>
        /// <returns></returns>
        public Result AsynProduct(string merchantId, string customerId, string key, SyUser operatorUser, IList <ParaProductSearchFilter> list)
        {
            string apiUrl = "https://mall.ehking.com/api/publishGoods";
            Result result = new Result();

            result.Status = true;
            int success = 0;
            int fail    = 0;

            foreach (ParaProductSearchFilter item in list)
            {
                StringBuilder param = new StringBuilder();

                param.Append("{");
                param.AppendFormat(@"merchantId:""{0}"",", merchantId);                     //商户编号   非空     varchar(9)
                param.AppendFormat(@"customerId:""{0}"",", customerId);                     //客户编号   可为空   varchar(9) 该商品所对应的商户号,如为空则使用merchantId
                param.AppendFormat(@"goodsName:""{0}"",", item.ProductName);                //商品名     非空	 varchar(50)
                param.AppendFormat(@"goodsCode:""{0}"",", item.ErpCode);                    //商品编码	非空	 varchar(20)
                param.AppendFormat(@"goodsAmount:{0},", (item.Price * 100).ToString("F0")); //商品价格	非空	 Integer(20) 单位:分
                param.AppendFormat(@"goodsType:""{0}"",", goodsType["其他"]);                 //商品类别	非空	 varchar(2) 参考下面的商品类别说明

                PdProductStock productStock   = PdProductStockBo.Instance.GetProductStockListByProductSysNo(item.SysNo).FirstOrDefault();
                decimal        inventoryCount = 0;
                if (productStock != null)
                {
                    inventoryCount = productStock.StockQuantity;
                }

                param.AppendFormat(@"inventoryCount:{0},", inventoryCount.ToString("F0")); //库存数量	非空	Integer(10)
                param.AppendFormat(@"status:{0},", item.Status.ToString());                //商品状态	可为空	Integer(1) 1:上架0:下架,默认为1
                param.AppendFormat(@"goodsDescribe:""{0}"",", item.ProductSummary);        //商品描述	可为空	varchar(200)

                var imageList = PdProductImageBo.Instance.GetProductImg(item.SysNo).Take(12).ToList();

                StringBuilder imageJsonArray = new StringBuilder();

                imageJsonArray.Append("[");

                foreach (PdProductImage imageItem in imageList)
                {
                    string filePath = imageItem.ImageUrl.Replace('/', '\\');

                    filePath = string.Format(filePath, @"E:\StaticFiles\SG\Images\", "Base");

                    if (imageJsonArray.ToString() != "[")
                    {
                        imageJsonArray.Append(",");
                    }

                    imageJsonArray.Append(@"{""baseCode"":");
                    imageJsonArray.AppendFormat(@"""{0}"",", imageToBase64(filePath));
                    imageJsonArray.Append(@"""fileType"":");
                    imageJsonArray.AppendFormat(@"""{0}""", getExtensionName(filePath));
                    imageJsonArray.Append("}");
                }

                imageJsonArray.Append("]");

                param.AppendFormat(@"pictureList:{0},", imageJsonArray.ToString());  //图片列表	    可为空	数组 最多12张,显示顺序与上传顺序一致,格式为JSONArray

                string hmac = merchantId + customerId + item.ProductName + item.ErpCode + (item.Price * 100).ToString("F0") + goodsType["其他"] + inventoryCount.ToString("F0") + item.Status.ToString();
                param.AppendFormat(@"hmac:""{0}""", Security.HmacSign(hmac, key));   //参数签名	    非空
                param.Append("}");

                string jsonString = Send(apiUrl, param.ToString());

                if (jsonString.Contains(@"""status"":""ERROR"""))
                {
                    result.Status = false;
                    fail         += 1;

                    SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "商品编号:" + item.ErpCode + "     同步失败\n" + jsonString,
                                             LogStatus.系统日志目标类型.商品同步失败, operatorUser.SysNo, null, null, operatorUser.SysNo);
                }
                else
                {
                    success += 1;
                }
            }

            if (success != list.Count)
            {
                result.Message = "同步成功 (" + success.ToString() + ") 个,失败 (" + fail + ")个,具体信息请查看系统日志!";
            }

            return(result);
        }
Пример #17
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>修改记录编号</returns>
 /// <remarks>2015-08-21  王耀发 创建</remarks>
 public abstract int Update(PdProductStock entity);