/// <summary>
        /// 通过CWmsExWarehouseSubOrder实例拷贝HttpReqXml_StockoutOrderCreate_DeliveryOrder实例
        /// </summary>
        /// <param name="srcObj">源实例</param>
        /// <returns>若成功则返回string.Empty; 否则返回错误描述</returns>
        public string CopyFrom(CWmsStockOrder srcObj)
        {
            if (null == srcObj)
            {
                return("HttpReqXml_StockoutOrderCreate_DeliveryOrder.CopyFrom异常,非法入参srcObj");
            }

            var logistics = srcObj.Handler.GetLogistics(srcObj);

            totalOrderLines   = srcObj.SubOrders.Count.ToString();
            deliveryOrderCode = (srcObj.MangoOrder as MangoStockouOrder).ProductOutputMainId.ToString();
            orderType         = srcObj.WmsStockoutType.ToString(); //  ret.Append("wms出库单类型:{0}", srcObj.WmsStockoutType);
            warehouseCode     = srcObj.Handler.GetWarehouse(srcObj).WmsCode;
            createTime        = srcObj.MangoOrder.AddTime.ToString();
            scheduleDate      = srcObj.ScheculeDeliverDate; // ret.Append("要求配送时间:{0}", srcObj.ScheculeDeliverDate);
            remark            = srcObj.MangoOrder.Remark;
            partialShipment   = "N";                        // CWmsConsts.cStrStockoutPartialShipmentDefault;
            logisticsCode     = logistics?.logisticsName;   // 承运商Code
            logisticsName     = logistics?.logisticsName;   // 承运商名称

            receiverInfo.CopyFrom(new CWmsAgentBase(TCwmsAgentType.ESHR, (srcObj.MangoOrder as MangoStockouOrder).JieShouRen.ToString()));
            senderInfo.CopyFrom(new CWmsAgentBase(TCwmsAgentType.EFHR, (srcObj.MangoOrder as MangoStockouOrder).ChuKuRen.ToString()));

            return(string.Empty);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 更新子出库订单的记录, 若没找到记录则新增一条
        /// </summary>
        /// <param name="pOrderId">主出库单Id</param>
        /// <param name="pUpdateOk">记录的更新状态,遵照Dict[285]</param>
        /// <param name="pDel">Dict[285]</param>
        /// <param name="pCount">返回成功更新的行数</param>
        /// <param name="pMsg">返回错误描述信息</param>
        /// <returns>若更新成功则返回操作的行数;其他错误返回TError.WCF_RunError</returns>
        static public int UpdateRow_StockoutCreate(string pOrderId, TDict285_Values pUpdateOk, TDict285_Values pDel, out int pCount, out string pMsg)
        {
            pCount = 0; pMsg = string.Empty;
            CWmsStockOrder        order     = null;
            Product_WMS_Interface tmpEntity = null;

            try
            {
                // get order instance
                if (null == (order = CWms.CWmsDataFactory.GetCWmsStockoutOrder(pOrderId)))
                {
                    return(TError.WCF_RunError.Int());
                }

                #region prepare updated rows
                foreach (var subOrder in order.SubOrders)
                {
                    // 根据主单据Id和子单据Id找到行
                    var filter = new List <CommonFilterModel>()
                    {
                    };                                              // query filter
                    filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId1, "=", order.GetId()));
                    filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId2, "=", subOrder.Value.GetId()));
                    var wcfPWI = WCF <Product_WMS_Interface> .QueryAll(filter); // query,只取第一页第一条(同一个子单据不应该有2条数据)

                    if (null == wcfPWI || null == wcfPWI.Data)
                    {
                        pCount = TError.WCF_RunError.Int(); pMsg = "WCF返回null异常";
                        break;
                    } // TODO: 系统异常
                    else if (0 >= wcfPWI.RetInt)
                    {
                        tmpEntity = new Product_WMS_Interface();
                    }                                                                         // 没有找到
                    else
                    {
                        tmpEntity = wcfPWI.Data[0];
                    }                                    // 找到了一条

                    #region 实例赋值并更新
                    tmpEntity.MapCalssID   = TDict709_Value.EExwarehouseOrder.Int();
                    tmpEntity.MapId1       = (order.MangoOrder as MangoStockouOrder).ProductOutputMainId;
                    tmpEntity.MapId2       = (subOrder.Value.MangoOrder as MangoSubStockoutOrder).ProductOutputId;
                    tmpEntity.IsUpdateOK   = pUpdateOk.Int();
                    tmpEntity.IsDel        = pDel.Int();
                    tmpEntity.LastTime     = DateTime.Now;
                    tmpEntity.UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid;
                    var updateRslt = (0 >= wcfPWI.RetInt) ? WCF <Product_WMS_Interface> .Add(tmpEntity) : WCF <Product_WMS_Interface> .Update(tmpEntity);

                    if (null == updateRslt)
                    {
                        pCount = TError.WCF_RunError.Int(); pMsg = "WCF返回null异常"; break;
                    }                                                                                            // TODO: 系统异常
                    else
                    {
                        pCount++; pMsg = updateRslt.RETData;
                    }
                    #endregion
                }
                #endregion

                return(pCount);
            }
            catch (Exception ex)
            {
                var ret = new ThirdResult <List <object> >("");
                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.End();
                return(pCount = TError.WCF_RunError.Int());
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 新增主出库订单的记录
        /// </summary>
        /// <param name="pOrderId">主出库订单Id</param>
        /// <param name="pCount">返回成功新增的行数</param>
        /// <param name="pMsg">返回错误描述信息</param>
        /// <returns>返回成功操作的记录行数,若失败则返回0</returns>
        static public int AddRow_StockoutCreate(string pOrderId, out int pCount, out string pMsg)
        {
            int rslt = TError.Ser_ErrorPost.Int();

            pCount = 0; pMsg = string.Empty;
            CWmsStockOrder order = null; // 主出库订单实例

            // validate parameters
            if (string.IsNullOrEmpty(pOrderId))
            {
                return(rslt = TError.Post_ParamError.Int());
            }

            try
            {
                // get order instance
                if (null == (order = CWms.CWmsDataFactory.GetCWmsStockoutOrder(pOrderId)))
                {
                    pMsg = "获取子出库订单列表失败";
                    return(0);
                }
// prepare updated rows
                //rowList = new List<Product_WMS_Interface>(1);
                foreach (var subOrder in order.SubOrders)
                {
                    Product_WMS_Interface r = new Product_WMS_Interface();
// 实例赋值
                    r.MapCalssID   = (int)TDict709_Value.EExwarehouseOrder;
                    r.MapId1       = (order.MangoOrder as MangoStockouOrder).ProductOutputMainId;
                    r.MapId2       = (subOrder.Value.MangoOrder as MangoSubStockoutOrder).ProductOutputId;
                    r.IsUpdateOK   = (int)TDict285_Values.EDeleted;
                    r.IsDel        = (int)TDict285_Values.ENormal;
                    r.AddTime      = DateTime.Now;
                    r.AddUserid    = MangoMis.Frame.Frame.CommonFrame.userid;
                    r.LastTime     = r.AddTime;
                    r.UpdateUserID = r.AddUserid;
                    r.DisOrder     = Product_WMS_Interface_Properties.cIntDisorderDefault;
                    if (0 == (rslt = AddRow_StockoutCreate(r, out pMsg)))
                    {
                        rslt = 0;
                        break;
                    }
                    else
                    {
                        pCount += rslt;
                    }
                }
                return(rslt);
            }
            catch (Exception ex)
            {
                var ret = new ThirdResult <List <object> >("");
                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.End();
                return(rslt = TError.WCF_RunError.Int());
            }
        }
 public HttpReqXml_StockoutOrderCreate(CWmsStockOrder cWmsExWarehouseOrder)
 {
     throw new NotImplementedException();
 }