Example #1
0
        /// <summary>
        /// 向Dict[709]中插入一行
        /// </summary>
        /// <param name="pEid">主单据Id</param>
        /// <param name="pMapClassId">接口类型</param>
        /// <param name="pEsId">子单据Id</param>
        /// <param name="pUpdateOk">是否同步成功</param>
        /// <param name="pDel">是否删除</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>返回操作成功的行数,若失败则返回TErrr.WCF_RunError</returns>
        static public int AddRow_Order(TDict709_Value pMapClassId, string pEid, string pEsId, TDict285_Values pUpdateOk, TDict285_Values pDel, out string pMsg)
        {
            try
            {
                #region Product_WMS_Interface entity = new Product_WMS_Interface();
                Product_WMS_Interface entity = new Product_WMS_Interface();
                entity.MapCalssID = pMapClassId.Int();
                entity.MapId1     = pEid.Int();
                entity.MapId2     = pEsId.Int();
                entity.IsUpdateOK = pUpdateOk.Int();
                entity.IsDel      = pDel.Int();
                entity.AddTime    = entity.LastTime = DateTime.Now;
                entity.AddUserid  = entity.UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid;
                entity.DisOrder   = Product_WMS_Interface_Properties.cIntDisorderDefault;
                #endregion
                return(AddRow_Order(entity, out pMsg));
            }
            catch (Exception ex)
            {
                pMsg = ex.Message;

                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(TError.WCF_RunError.Int());
            }
        }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="pMapClassId"></param>
 /// <param name="pMapId1"></param>
 /// <param name="pMapId2"></param>
 /// <param name="pIsUpdateOk"></param>
 /// <param name="pIsDel"></param>
 /// <param name="wcfError"></param>
 /// <param name="pMsg"></param>
 /// <returns></returns>
 static public Product_WMS_Interface NewPwiEntity(TDict709_Value pMapClassId, string pMapId1, string pMapId2, TDict285_Values pIsUpdateOk, TDict285_Values pIsDel)
 {
     try
     {
         return(new Product_WMS_Interface()
         {
             MapCalssID = pMapClassId.Int(),
             MapId1 = pMapClassId.Int(),
             MapId2 = pMapClassId.Int(),
             IsUpdateOK = pIsUpdateOk.Int(),
             IsDel = pIsDel.Int(),
             WMS_InterfaceId = 0,
             AddTime = DateTime.Now,
             AddUserid = 0,
             LastTime = DateTime.Now,
             UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid,
             DisOrder = Product_WMS_Interface_Properties.cIntDisorderDefault
         });
     }
     catch (Exception ex)
     {
         C_WMS.Data.Utility.MyLog.Instance.Warning(ex, "{0}.{1}(pMapClassId={2}, pMapId1={3}, pMapId2={4}, pIsUpdateOk={5}, pIsDel={6})发生异常", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, pMapClassId, pMapId1, pMapId2, pIsUpdateOk, pIsDel);
         return(null);
     }
 }
Example #3
0
        /// <summary>
        /// 更新Dict[709]中MapId1对应的行
        /// </summary>
        /// <param name="pMapClassId">接口类型</param>
        /// <param name="pEid">主单据Id</param>
        /// <param name="pEsId">子单据Id</param>
        /// <param name="pUpdateOk">是否同步成功</param>
        /// <param name="pDel">是否删除</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>若成功则返回成功操作的行数;否则返回TError.Wcf_RunError</returns>
        static public int UpdateRow_Order(TDict709_Value pMapClassId, string pEid, string pEsId, TDict285_Values pUpdateOk, TDict285_Values pDel, out string pMsg)
        {
            Product_WMS_Interface entity = new Product_WMS_Interface();

            entity.MapCalssID   = pMapClassId.Int();
            entity.MapId1       = pEid.Int();
            entity.MapId2       = pEsId.Int();
            entity.IsUpdateOK   = pUpdateOk.Int();
            entity.IsDel        = pDel.Int();
            entity.LastTime     = DateTime.Now;
            entity.UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid;
            entity.DisOrder     = Product_WMS_Interface_Properties.cIntDisorderDefault;

            int ret = UpdateRow_Order(entity, out pMsg);

            return(ret);
        }
Example #4
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());
            }
        }
Example #5
0
        /// <summary>
        /// 根据单据类实体创建并返回Product_WMS_Interface实体
        /// </summary>
        /// <param name="pMapClassId">Dict[709].pMapClassId</param>
        /// <param name="pCate">单据类型</param>
        /// <param name="pOrder">单据实体</param>
        /// <param name="pUpdateOk">是否同步成功</param>
        /// <param name="pDel">是否删除</param>
        /// <returns>若成功则返回Product_WMS_Interface实体;否则返回null</returns>
        static protected List <Product_WMS_Interface> GetVPwiEntities(TDict709_Value pMapClassId, TCWmsOrderCategory pCate, CWmsOrderBase pOrder, TDict285_Values pUpdateOk, TDict285_Values pDel)
        {
            List <Product_WMS_Interface> eList = null;

            if (null == pOrder)
            {
                return(eList);
            }

            try
            {
                eList = new List <Product_WMS_Interface>(1);
                #region 遍历子单据,创建并添加Product_WMS_Interface实体
                foreach (var so in pOrder.SubOrders)
                {
                    Product_WMS_Interface entity = new Product_WMS_Interface();
                    entity.MapCalssID   = pMapClassId.Int();
                    entity.IsUpdateOK   = pUpdateOk.Int();
                    entity.IsDel        = pDel.Int();
                    entity.LastTime     = DateTime.Now;
                    entity.UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid;
                    entity.DisOrder     = Product_WMS_Interface_Properties.cIntDisorderDefault;
                    switch (pCate)
                    {
                    case TCWmsOrderCategory.EEntryOrder:
                    {
                        entity.MapId1    = (pOrder.MangoOrder as MangoEntryOrder).ProductInputMainId;
                        entity.MapId2    = (so.Value.MangoOrder as MangoSubEntryOrder).ProductInputId;
                        entity.AddTime   = (so.Value.MangoOrder as MangoSubEntryOrder).AddTime;
                        entity.AddUserid = (so.Value.MangoOrder as MangoSubEntryOrder).AddUserid;
                        eList.Add(entity);
                        break;
                    }

                    case TCWmsOrderCategory.EExwarehouseOrder:
                    {
                        entity.MapId1    = (pOrder.MangoOrder as MangoStockouOrder).ProductOutputMainId;
                        entity.MapId2    = (so.Value.MangoOrder as MangoSubStockoutOrder).ProductOutputId;
                        entity.AddTime   = (so.Value.MangoOrder as MangoSubStockoutOrder).AddTime;
                        entity.AddUserid = (so.Value.MangoOrder as MangoSubStockoutOrder).AddUserid;
                        eList.Add(entity);
                        break;
                    }

                    case TCWmsOrderCategory.EReturnOrder:
                    {
                        entity.MapId1    = (pOrder.MangoOrder as MangoReturnOrder).TuiHuoMainID;
                        entity.MapId2    = (so.Value.MangoOrder as MangoSubReturnOrder).ZiTuihuoID;
                        entity.AddTime   = (so.Value.MangoOrder as MangoSubReturnOrder).AddTime;
                        entity.AddUserid = (so.Value.MangoOrder as MangoSubReturnOrder).AddUserid;
                        eList.Add(entity);
                        break;
                    }

                    default: { break; }
                    }
                }
                #endregion

                return(eList);
            }
            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(null);
            }
        }