/// <summary> /// 从CWmsSubReturnOrder对象实体拷贝数据 /// </summary> /// <param name="srcObj">源对象实体</param> /// <returns>若拷贝成功则返回string.Empty; 否则返回错误描述</returns> public string CopyFrom(CWmsSubReturnOrder srcObj) { throw new NotImplementedException(); #if C_WMS_V1 if (null == srcObj) { return("源实例srcObj为null"); } orderLineNo = (srcObj.MangoOrder as Mango.Data.MangoSubReturnOrder).ZiTuihuoID.ToString(); sourceOrderCode = string.Empty; // TODO: 获取主订单Id subSourceOrderCode = (srcObj.MangoOrder as Mango.Data.MangoSubReturnOrder).ZiDingDanID.ToString(); ownerCode = srcObj.WmsOrder.Owner.WmsID;; // TODO: 获取货主 itemCode = (srcObj.MangoOrder as Mango.Data.MangoSubReturnOrder).ProductId.ToString(); inventoryType = srcObj.WmsOrderDetail.InventoryType.ToString(); planQty = Interface.Utility.CWmsUtility.Decimal2Int((srcObj.MangoOrder as Mango.Data.MangoSubReturnOrder).ProductCount.Decimal()).ToString(); return(string.Empty); #endif }
/// <summary> /// 根据主退货订单ID获取主退货订单及其所有子订单的实例 /// </summary> /// <param name="pOrderId">芒果商城主退货订单ID</param> /// <returns>CWmsReturnOrder实体,若失败则返回null</returns> static public CWmsReturnOrder GetCWmsReturnOrder(string pOrderId) { var ret = new ThirdResult <List <object> >(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例, 开始", pOrderId)); string errMsg = string.Empty; CWmsReturnOrder retObj = null; MangoReturnOrder mangoOrder = null; List <MangoSubReturnOrder> tmpList = new List <MangoSubReturnOrder>(1);; // 缓存子退货订单实体列表 #region validate parameters if (string.IsNullOrEmpty(pOrderId)) { ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 非法入参", pOrderId)); ret.End(); return(retObj); } #endregion try { #region Handle MangoOrder #region 获取主退货订单 MangoReturnOrder if (null == (mangoOrder = MangoFactory.GetMangoOrder(TCWmsOrderCategory.EReturnOrder, pOrderId) as MangoReturnOrder)) { ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取主退货订单失败", pOrderId)); ret.End(); return(retObj); } #endregion #region 获取子退货订单列表 List<MangoSubReturnOrder> errMsg = MangoFactory.GetVSubReturnOrders(pOrderId, out tmpList); ret.Append(string.Format("tmplist.count={0}", tmpList.Count)); ret.Append(string.Format("errMsg={0}", errMsg)); if (!string.IsNullOrEmpty(errMsg) || null == tmpList || 0 >= tmpList.Count) { ret.Append(string.Format("1根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取子退货订单失败, message={1}", pOrderId, errMsg)); ret.End(); return(retObj); } #endregion #endregion // Handle MangoOrder #region 创建CWmsReturnOrder实例及其子出库订单实例列表 retObj = new CWmsReturnOrder(); (retObj.MangoOrder as MangoReturnOrder).CopyFrom(mangoOrder); foreach (var t in tmpList) { CWmsSubReturnOrder tmpSo = new CWmsSubReturnOrder(); tmpSo.CopyFrom(t, null); // TODO: 根据子退货订单Id找原子订单Id, 移到Mis的Factory里面!! var wcfSo = WCF <Product_Warehouse_ProductOutput> .Query((tmpSo.MangoOrder as MangoSubReturnOrder).ProductIOputId.Int()).Data; // 根据原子订单Id取仓库Id, 根据仓库Id取货主 tmpSo.WmsOrderDetail.Owner.CopyFrom(MangoFactory.GetOwner(wcfSo.WarehouseId.ToString())); // 设置商品Id tmpSo.Product.ItemCode = (string.IsNullOrEmpty(t.ProductGuiGeID.ToString()) || "0".Equals(t.ProductGuiGeID.ToString())) ? t.ProductId.ToString() : string.Format("{0}-{1}", t.ProductId, t.ProductGuiGeID); retObj.SubOrders.Add(t.ZiTuihuoID.ToString(), tmpSo);// new CWmsSubReturnOrder(t, null)); } #region Handle WMS order switch ((T芒果商城退货物流)(retObj.MangoOrder as MangoReturnOrder).THwuLiu) { case T芒果商城退货物流.自行返还: { (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(false, true, false); break; } case T芒果商城退货物流.蓝江上门: { (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(true, false, false); break; } default: { (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(false, false, false); break; } } #region TuiHuoType switch ((retObj.MangoOrder as MangoReturnOrder).TuiHuoType) { case 2: (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int(); break; case 3: (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int(); break; case 6: (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int(); break; default: { (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int(); break; } } #endregion #endregion // Handle WMS order #endregion // 创建CWmsReturnOrder实例及其子出库订单实例列表 } catch (Exception ex) { if (null != ex.InnerException) { ret.Append(string.Format("InnerException: {0}", ex.InnerException.Message)); } ret.Append(string.Format("发生异常: {0}\r\n调用堆栈:{1}", ex.Message, ex.StackTrace)); } ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取子退货订单失败, message={1}", pOrderId, errMsg)); ret.End(); return(retObj); }