/// <summary> /// 分页查询 /// </summary> /// <param name="filter">查询参数</param> /// <returns>分页</returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> /// <remarks>2013-07-24 黄志勇 修改</remarks> public override Pager <CBPaymentVoucher> GetAll(ParaVoucherFilter filter) { const string sql = @"(select a.* from FnPaymentVoucher a where (@0 is null or a.Source=@0) and --单据来源 (@1 is null or a.Status=@1) and --状态 (@2 is null or a.CreatedDate>=@2) and --创建日期(起) (@3 is null or a.CreatedDate<@3) and --创建日期(止) (@4 is null or a.SourceSysNo=@4) --单据来源编号 ) tb"; //查询日期上限+1 filter.EndDate = filter.EndDate == null ? (DateTime?)null : filter.EndDate.Value.AddDays(1); var paras = new object[] { filter.Source, // filter.Source, filter.Status, // filter.Status, filter.BeginDate, // filter.BeginDate, filter.EndDate, // filter.EndDate, filter.SourceSysNo //, filter.SourceSysNo }; var dataList = Context.Select <CBPaymentVoucher>("tb.*").From(sql); var dataCount = Context.Select <int>("count(0)").From(sql); dataList.Parameters(paras); dataCount.Parameters(paras); var pager = new Pager <CBPaymentVoucher> { PageSize = filter.PageSize, CurrentPage = filter.Id }; pager.TotalRows = dataCount.QuerySingle(); pager.Rows = dataList.OrderBy("tb.SysNo desc").Paging(pager.CurrentPage, filter.PageSize).QueryMany(); return(pager); }
/// <summary> /// 付款单查询 /// </summary> /// <param name="filter">查询条件</param> /// <returns>分页查询</returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> public Pager <CBPaymentVoucher> GetPaymentVouchers(ParaVoucherFilter filter) { var pager = IFnPaymentVoucherDao.Instance.GetAll(filter); return(pager); }
/// <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); } }
/// <summary> /// 收款单查询 /// </summary> /// <param name="filter">查询条件</param> /// <returns>分页查询</returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> public Pager <CBFnReceiptVoucher> GetReceiptVouchers(ParaVoucherFilter filter) { var pager = IFnReceiptVoucherDao.Instance.GetAll(filter); return(pager); }
/// <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 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="filter">查询参数</param> /// <returns></returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> public abstract Pager <CBFnReceiptVoucher> GetAll(ParaVoucherFilter filter);
/// <summary> /// 分页查询 /// </summary> /// <param name="filter">查询参数</param> /// <returns>查询收款单列表</returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> /// <remarks>2013-07-24 黄志勇 修改</remarks> public override Pager <CBFnReceiptVoucher> GetAll(ParaVoucherFilter filter) { string where = " 1=1 "; var paras = new ArrayList(); int i = 0; if (filter.IncomeType.HasValue)//--收入类型 { where += " and a.IncomeType=@p0p" + i.ToString(); paras.Add(filter.IncomeType.Value); i++; } if (filter.Status.HasValue)//--状态 { where += " and a.Status=@p0p" + i.ToString(); paras.Add(filter.Status.Value); i++; } if (filter.BeginDate.HasValue)//--创建日期(起) { where += " and a.CreatedDate>=@p0p" + i.ToString(); paras.Add(filter.BeginDate.Value); i++; } if (filter.EndDate.HasValue)//--创建日期(止) { where += " and a.CreatedDate<@p0p" + i.ToString(); paras.Add(filter.EndDate.Value.AddDays(1)); i++; } if (filter.SourceSysNo.HasValue)//--单据来源编号 { where += " and a.SourceSysNo=@p0p" + i.ToString(); paras.Add(filter.SourceSysNo.Value); i++; } if (filter.PaymentType.HasValue)//支付类型 { where += " and exists (select 1 from FnReceiptVoucherItem tmp where tmp.ReceiptVoucherSysNo=a.sysno and tmp.PaymentTypeSysNo=@p0p" + i.ToString() + ")"; paras.Add(filter.PaymentType.Value); i++; } var pager = new Pager <CBFnReceiptVoucher> { PageSize = filter.PageSize, CurrentPage = filter.Id }; string queryfrom = "fnreceiptvoucher a left join SyUser b on a.confirmedby=b.sysno"; //查询Table pager.TotalRows = Context.Select <int>("count(0)") //查询数量 .From(queryfrom) .Where(where) .Parameters(paras) .QuerySingle(); pager.Rows = Context .Select <CBFnReceiptVoucher>("a.*,b.username as confirmer")//返回数据列 .From(queryfrom) .Where(where) .Parameters(paras) .OrderBy("a.SysNo desc") .Paging(pager.CurrentPage, filter.PageSize).QueryMany(); return(pager); #region 截断方式 // const string sql = // @"(select a.*,b.username as confirmer // from fnreceiptvoucher a // left join SyUser b on a.confirmedby=b.sysno // where // (:IncomeType is null or a.IncomeType=:IncomeType) and --收入类型 // (:Status is null or a.Status=:Status) and --状态 // (:BeginDate is null or a.CreatedDate>=:BeginDate) and --创建日期(起) // (:EndDate is null or a.CreatedDate<:EndDate) and --创建日期(止) // (:SourceSysNo is null or a.SourceSysNo=:SourceSysNo) and --单据来源编号 // (:PaymentType is null or exists (select 1 from FnReceiptVoucherItem tmp where tmp.ReceiptVoucherSysNo=a.sysno and tmp.PaymentTypeSysNo=:PaymentType)) // ) tb"; // //查询日期上限+1 // filter.EndDate = filter.EndDate == null ? (DateTime?)null : filter.EndDate.Value.AddDays(1); // var paras = new object[] // { // filter.IncomeType, filter.IncomeType, // filter.Status, filter.Status, // filter.BeginDate, filter.BeginDate, // filter.EndDate, filter.EndDate, // filter.SourceSysNo, filter.SourceSysNo, // filter.PaymentType, filter.PaymentType // }; // var dataList = Context.Select<CBFnReceiptVoucher>("tb.*").From(sql); // var dataCount = Context.Select<int>("count(0)").From(sql); // dataList.Parameters(paras); // dataCount.Parameters(paras); // var pager = new Pager<CBFnReceiptVoucher> // { // PageSize = filter.PageSize, // CurrentPage = filter.Id // }; // pager.TotalRows = dataCount.QuerySingle(); // pager.Rows = dataList.OrderBy("tb.SysNo desc").Paging(pager.CurrentPage, filter.PageSize).QueryMany(); // return pager; #endregion }
/// <summary> /// 分页查询 /// </summary> /// <param name="filter">查询参数</param> /// <returns></returns> /// <remarks>2013-07-19 朱家宏 创建</remarks> public abstract Pager <CBPaymentVoucher> GetAll(ParaVoucherFilter filter);
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderSysno"></param> /// <returns> /// 2016-04-09 陈海裕 创建 /// 2016-08-20 杨浩 重构 /// </returns> public override Result AddOrderTrade(int orderSysno) { LogisticsLogin(); var result = new Result <string>(); result.Status = false; result.StatusCode = 0; result.Message = "接口调用失败"; string url = RequestUrl + "Express/uploadOrders"; if (orderSysno <= 0) { return(result); } try { var 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); var voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; var 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 shipperDistrict = BLL.Basic.BasicAreaBo.Instance.GetAreaList(warehouse.CitySysNo).FirstOrDefault(); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); BsArea shipperProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.ProvinceSysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); ParaOnlinePaymentFilter filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderSysno; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); Regex regex = new Regex("\t|\n|\r"); OrderList newOrderList = new OrderList(); newOrderList.PrintType = "@1,@2"; newOrderList.list = new List <LGOrder>(); LGOrder newOrder = new LGOrder(); newOrder.Addr = "中国," + receiverProvince.AreaName + "," + receiverCity.AreaName + "," + receiverDistrict.AreaName + "," + order.ReceiveAddress.StreetAddress; newOrder.Addr = regex.Replace(newOrder.Addr, ""); newOrder.CardNo = order.ReceiveAddress.IDCardNo; newOrder.Create_Addr = "中国," + shipperProvince.AreaName + "," + shipperCity.AreaName + "," + shipperDistrict.AreaName + ","; newOrder.Create_Addr = regex.Replace(newOrder.Create_Addr, ""); newOrder.Create_CardNo = ""; newOrder.Create_Name = "澳门爱勤"; newOrder.Create_Phone = !string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.MobilePhoneNumber : dealer.PhoneNumber; newOrder.id = order.SysNo.ToString(); newOrder.Name = order.ReceiveAddress.Name; newOrder.OrderType = "A"; newOrder.PayCardNo = order.ReceiveAddress.IDCardNo; newOrder.PayCurrency = "CNY"; newOrder.PayName = order.ReceiveAddress.Name; newOrder.PayNo = recVoucher.VoucherItems[0].VoucherNo; newOrder.PayPhone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.PayRemark = ""; newOrder.PayTime = order.CreateDate.ToString(); newOrder.PayType = GetPayType(order.PayTypeSysNo);// "alipay"; newOrder.PayUser = order.CustomerSysNo.ToString(); newOrder.Phone = newOrder.PayPhone; newOrder.Price = order.OrderAmount; newOrder.Remark = order.DeliveryRemarks; newOrder.TaxFee = order.TaxFee; newOrder.TranFee = order.FreightAmount; newOrder.Content = ""; foreach (var item in order.OrderItemList) { var productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo); newOrder.Content += productStock.Barcode + "," + item.Quantity + "," + item.SalesUnitPrice + "|"; } if (!string.IsNullOrWhiteSpace(newOrder.Content)) { newOrder.Content = newOrder.Content.Substring(0, newOrder.Content.Length - 1); } newOrderList.list.Add(newOrder); Dictionary <string, string> paramsData = new Dictionary <string, string>(); paramsData.Add("token", IdentifyPass); paramsData.Add("postdata", Util.Serialization.JsonUtil.ToJson(newOrderList)); string postData = InitParams(paramsData); string responseStr = GetResponse(url, postData); var jObject = JObject.Parse(responseStr); var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderSysno; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = postData; soOrderSyncLogisticsLog.ReceiptContent = responseStr; string status = jObject["status"].ToString(); if (status == "-1") { result.Status = false; result.Message = "未登录,请重试!"; IdentifyPass = string.Empty;//清空身份凭证 } else if (status == "1") { for (int i = 0; i < jObject["data"].Count(); i++) { if (jObject["data"][i]["status"].ToString() == "1") { soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = jObject["data"][i]["id"].ToString(); soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno); result.Status = true; result.Message = "推单成功"; } else { soOrderSyncLogisticsLog.CreateDate = DateTime.Now; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); result.Status = false; result.Message = jObject["data"][i]["message"].ToString(); } } } else { try { SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); } catch { } result.Status = false; result.Message = jObject["message"].ToString(); } } 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; var result = new Result <string>(); result.Status = false; result.StatusCode = 0; result.Message = "接口调用失败"; string url = RequestUrl + "order/create"; if (orderSysno <= 0) { return(result); } try { var 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); var voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; var recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); // 收货人 区 市 省 var receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); var receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); var receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 var warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); var shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); if (string.IsNullOrEmpty(warehouse.LogisWarehouseCode)) { Result <string> whResult = GetWarehouseId(); if (!whResult.Status) { return(whResult); } else { warehouse.LogisWarehouseCode = whResult.Data.Split(':')[0].Replace("{", "").Replace("}", "").Replace("\"", "").Trim(); BLL.Warehouse.WhWarehouseBo.Instance.Update(warehouse); } } if (string.IsNullOrEmpty(receiverDistrict.AreaCode) || string.IsNullOrEmpty(receiverCity.AreaCode) || string.IsNullOrEmpty(receiverProvince.AreaCode) || string.IsNullOrEmpty(shipperCity.AreaCode)) { Result <List <YSArea> > areaResult = new Result <List <YSArea> >(); areaResult.Data = new List <YSArea>(); for (int i = 0; i < 8; i++) { areaResult.Data.AddRange(GetYSAreaData(i + 1).Data); } if (string.IsNullOrEmpty(receiverProvince.AreaCode)) { YSArea ysArea = areaResult.Data.Find((p => p.area_name == receiverProvince.AreaName.Trim() || p.old_name == receiverProvince.AreaName.Trim())); if (ysArea != null) { receiverProvince.AreaCode = ysArea.id.ToString(); BLL.Basic.BasicAreaBo.Instance.Update(receiverProvince); } } if (string.IsNullOrEmpty(receiverCity.AreaCode)) { YSArea ysArea = areaResult.Data.Find(p => (p.area_name == receiverCity.AreaName.Trim() || p.old_name == receiverCity.AreaName.Trim()) && p.pid.ToString() == receiverProvince.AreaCode); if (ysArea != null) { receiverCity.AreaCode = ysArea.id.ToString(); BLL.Basic.BasicAreaBo.Instance.Update(receiverCity); } } if (string.IsNullOrEmpty(receiverDistrict.AreaCode)) { YSArea ysArea = areaResult.Data.Find(p => (p.area_name == receiverDistrict.AreaName.Trim() || p.old_name == receiverDistrict.AreaName.Trim()) && p.pid.ToString() == receiverCity.AreaCode); if (ysArea != null) { receiverDistrict.AreaCode = ysArea.id.ToString(); BLL.Basic.BasicAreaBo.Instance.Update(receiverDistrict); } } if (string.IsNullOrEmpty(shipperCity.AreaCode)) { if (string.IsNullOrEmpty(shipperCity.AreaCode)) { shipperCity.AreaCode = shipperCity.SysNo.ToString(); } //YSArea ysArea = areaResult.Data.Find(p => p.area_name == receiverProvince.AreaName.Trim() || p.old_name == receiverDistrict.AreaName.Trim()); //if (ysArea != null) //{ // shipperCity.AreaCode = ysArea.id.ToString(); // BLL.Basic.BasicAreaBo.Instance.Update(shipperCity); //} } } var dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); var deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); var filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderSysno; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); if (onlinePayment == null) { result.Message = "订单不存在在线支付记录"; return(result); } string _deliveryType = ""; if (deliveryType.DeliveryTypeName.Contains("顺丰")) { _deliveryType = "SF"; //CustomerCode = SFCustomerCode; //Key = SFKey; Token = SFToken; } else if (deliveryType.DeliveryTypeName.Contains("中通")) { _deliveryType = "ZTO"; } if (_deliveryType == "") { result.Message = "友信达物流目前只有支持顺丰和中通两种快递方式"; return(result); } // 易宝支付有限公司 PTE51001409230000001 var paramsData = new Dictionary <string, string>(); decimal grossWeight = 0m; decimal netWeight = 0m; var error = ""; string productSku = ""; string supplierCode = ""; string productName = ""; string qty = ""; string price = ""; for (int i = 0; i < order.OrderItemList.Count; i++) { var product = BLL.Product.PdProductBo.Instance.GetProduct(order.OrderItemList[i].ProductSysNo); grossWeight += (product.GrosWeight) * order.OrderItemList[i].Quantity; netWeight += (product.NetWeight) * order.OrderItemList[i].Quantity; var productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, order.OrderItemList[i].ProductSysNo); if (productStock == null) { error += order.OrderItemList[i].ProductSysNo + ","; continue; } #region 条形码商品 var RefProductName = order.OrderItemList[i].ProductName; var RefProductSysNo = order.OrderItemList[i].ProductSysNo; var RefProductQuantity = order.OrderItemList[i].Quantity; BLL.Product.PdProductBo.Instance.RefProductQuantity(ref RefProductSysNo, ref RefProductQuantity, ref RefProductName, order.SysNo); #endregion //// 订单商品 //paramsData.Add("products[" + i + "][product_sku]", product.ErpCode); //paramsData.Add("products[" + i + "][supplier_code]", ""); ////paramsData.Add("products[" + i + "][product_name]", order.OrderItemList[i].ProductName); ////paramsData.Add("products[" + i + "][qty]", order.OrderItemList[i].Quantity.ToString()); //paramsData.Add("products[" + i + "][product_name]", RefProductName); //paramsData.Add("products[" + i + "][qty]", RefProductQuantity.ToString()); ////paramsData.Add("products[" + i + "][price]",(order.OrderItemList[i].SalesUnitPrice + order.OrderItemList[i].ChangeAmount).ToString()); productSku += "&products[" + i + "][product_sku]=" + product.ErpCode; productSku += "&products[" + i + "][supplier_code]="; productSku += "&products[" + i + "][product_name]=" + order.OrderItemList[i].ProductName; productSku += "&products[" + i + "][qty]=" + RefProductQuantity; decimal amount = Math.Round(((order.OrderItemList[i].SalesAmount + order.OrderItemList[i].ChangeAmount) / order.OrderItemList[i].Quantity), 4); productSku += "&products[" + i + "][price]=" + amount; //paramsData.Add("products[" + i + "][price]", amount.ToString()); //order.OrderItemList[i].SalesAmount+order.OrderItemList[i].ChangeAmount=(order.OrderItemList[i].SalesUnitPrice*order.OrderItemList[i].Quantity) => //order.OrderItemList[i].SalesUnitPrice=(order.OrderItemList[i].SalesAmount + order.OrderItemList[i].ChangeAmount) / order.OrderItemList[i].Quantity } //2016-10-28 18:39 临时处理报错问题 if (!string.IsNullOrWhiteSpace(error)) { result.Message = this.Code + ":商品编号(" + error.TrimEnd(',') + ")在库存中找不到,无法获取SKU,请入库。"; return(result); } paramsData.Add("address_remark", ""); paramsData.Add("products", "products"); paramsData.Add("card_no", order.ReceiveAddress.IDCardNo); paramsData.Add("card_type", "01"); paramsData.Add("currency_code", "RMB"); paramsData.Add("customize_category", ""); paramsData.Add("express_method", "1"); paramsData.Add("tracking_number", ""); paramsData.Add("inter_tracking_number", ""); paramsData.Add("note", ""); paramsData.Add("freight", order.FreightAmount.ToString()); paramsData.Add("gross_weight", grossWeight.ToString()); paramsData.Add("net_weight", netWeight.ToString()); paramsData.Add("is_valuation", "0"); paramsData.Add("valuation_fee", order.TaxFee.ToString("0.00")); paramsData.Add("valuation_value", order.OrderAmount.ToString("0.00")); paramsData.Add("order_time", CreateTimeStamp(order.CreateDate).ToString()); paramsData.Add("pay_company", "易宝支付有限公司"); paramsData.Add("pay_company_no", config.CIECode);// 信营商检企业备案号 paramsData.Add("pay_no", recVoucher.VoucherItems.FirstOrDefault().VoucherNo); paramsData.Add("receiver_city_id", receiverCity.AreaCode); paramsData.Add("receiver_district_id", receiverDistrict.AreaCode); paramsData.Add("receiver_name", order.ReceiveAddress.Name); //paramsData.Add("receiver_postcode", order.ReceiveAddress.ZipCode); paramsData.Add("receiver_postcode", "000000");// 无邮政编码,默认六个零 paramsData.Add("receiver_province_id", receiverProvince.AreaCode); paramsData.Add("receiver_fax", receiverProvince.AreaCode); paramsData.Add("receiver_tel", order.ReceiveAddress.MobilePhoneNumber); paramsData.Add("receiver_tel2", order.ReceiveAddress.PhoneNumber); paramsData.Add("reference_no", onlinePayment.BusinessOrderSysNo); paramsData.Add("receiver_address", order.ReceiveAddress.StreetAddress); paramsData.Add("shipper_city", shipperCity.AreaName); paramsData.Add("shipper_country", "CN"); //paramsData.Add("shipper_country", "HK"); paramsData.Add("shipper_name", !string.IsNullOrWhiteSpace(warehouse.BackWarehouseName) ? warehouse.BackWarehouseName : dealer.ErpName); paramsData.Add("sm_code", _deliveryType); paramsData.Add("tax_amount", order.TaxFee.ToString()); paramsData.Add("total_amount", order.OrderAmount.ToString()); paramsData.Add("total_product_amount", (order.ProductAmount + order.ProductChangeAmount).ToString()); //paramsData.Add("wrap_type", "2C1"); paramsData.Add("wrap_type", "4M"); paramsData.Add("warehouse_id", warehouse.LogisWarehouseCode);//广州白云 paramsData.Add("shipper_tel", string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.PhoneNumber : dealer.MobilePhoneNumber); paramsData.Add("shipper_address", warehouse.StreetAddress); string postData = InitParams(paramsData); string timerstamp = CreateTimeStamp(); //postData += Key + timerstamp; postData = postData.Replace("&products=products", productSku + supplierCode + productName + qty + price); string responseStr = GetResponse(url, postData, timerstamp, Key); result = GetResult(JObject.Parse(responseStr), result); var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderSysno; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = postData; soOrderSyncLogisticsLog.ReceiptContent = responseStr; if (result.Status == true) { soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = JObject.Parse(responseStr)["data"]["order_sn"].ToString(); soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno); } } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } return(result); }