/// <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()); }
/// <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); }
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)); }
/// <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); } }
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"); } }
/// <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(); }
/// <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); } }
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); }
/// <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); }
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); }
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); }
/// <summary> /// 插入数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2015-08-06 王耀发 创建</remarks> public abstract int Insert(PdProductStock entity);
/// <summary> /// 更新商品库存信息 /// </summary> /// <param name="models">商品信息列表</param> /// <returns>空</returns> /// <remarks>2015-09-10 王耀发 创建</remarks> public abstract void UpdateProductStockInfo(PdProductStock model);
/// <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()); }
/// <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); }
/// <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); }
/// <summary> /// 更新数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>修改记录编号</returns> /// <remarks>2015-08-21 王耀发 创建</remarks> public abstract int Update(PdProductStock entity);