Esempio n. 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());
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 向Dict[709]中插入一行
        /// </summary>
        /// <param name="pEntity">带插入的实体</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>返回操作成功的行数,若失败则返回DefaultResult[int].RetInt</returns>
        static public int AddRow_Order(Product_WMS_Interface pEntity, out string pMsg)
        {
            #region  validate parameters
            if (null == pEntity)
            {
                pMsg = "AddRow结束,非法入参";
                return(TError.Post_ParamError.Int());
            }
            #endregion
            // WCF操作
            var retRslt = WCF <Product_WMS_Interface> .Add(pEntity);

            #region Handle result
            if (null == retRslt)
            {
                pMsg = "WCF插入记录行失败,返回null对象";
                return(TError.WCF_RunError.Int());
            }
            else
            {
                pMsg = string.Format("WCF插入记录行结束, retRslt.RetInt={0}, retRslt.RETData={1}, retRslt.Data={2}", retRslt.RetInt, retRslt.RETData, retRslt.Data);
                return(retRslt.RetInt);
            }
            #endregion
        }
Esempio n. 3
0
        /// <summary>
        /// 更新Dict[709]中pEntity对应的行。
        /// </summary>
        /// <param name="pEntity">被插入的实体</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>若成功则返回成功操作的行数;否则返回TError.WCF_RunError</returns>
        static public int UpdateRow_Order(Product_WMS_Interface pEntity, out string pMsg)
        {
            #region  validate parameters
            pMsg = string.Empty;
            DefaultResult <List <Product_WMS_Interface> > queryRslt = null;
            DefaultResult <int> rslt = null;
            if (null == pEntity)
            {
                return(TError.Post_ParamError.Int());
            }
            #endregion
            #region 在Dict[709]中找pEntity, var wcfPWI
            var filter = new List <CommonFilterModel>()
            {
            };                                              // query filter
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId1, "=", pEntity.MapId1.ToString()));
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId2, "=", pEntity.MapId2.ToString()));
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_IsDel, "!=", TDict285_Values.EDeleted.Int().ToString()));
            queryRslt = WCF <Product_WMS_Interface> .Query(1, 1, filter, new List <CommonOrderModel>() { }); // query,只取第一页第一条(同一个子单据不应该有2条数据)

            if (null == queryRslt)
            {
                pMsg = "尝试获取符合条件的实体,WCF操作失败,返回null对象";
                return(TError.WCF_RunError.Int());
            }
            else if (null == queryRslt.Data)
            {
                pMsg = queryRslt.RETData;
                return(queryRslt.RetInt);
            }
            #endregion
            #region WCF操作,更新
            if (0 == queryRslt.Data.Count)
            {
                pMsg = string.Format("Dict[709]中没有符合条件的行, MapId1={0}, MapId2={1}", pEntity.MapId1.ToString(), pEntity.MapId2.ToString());
                return(TError.WCF_RunError.Int());
            } // Dict[709]中没有符合条件的行
            else
            {
                pEntity.WMS_InterfaceId = queryRslt.Data[0].WMS_InterfaceId;

                rslt = WCF <Product_WMS_Interface> .Update(pEntity);

                #region Handle result
                if (null == rslt)
                {
                    pMsg = "更新或插入,WCF操作记录行失败,返回null对象";
                    return(TError.WCF_RunError.Int());
                }
                else
                {
                    pMsg = string.Format("UpdateRowA(Product_WMS_Interface pEntity)结束, rslt.RetInt={0}, rslt.RetData={1}, rslt.Data={2}", rslt.RetInt, rslt.RETData, rslt.Data);
                    return(1);
                }
                #endregion
            } // Dict[709]中有符合条件的行,更新
            #endregion
        }
Esempio n. 4
0
        /// <summary>
        /// </summary>
        /// <param name="row">The row.</param>
        /// <returns></returns>
        /// <remarks>
        /// ------+++++++++-------
        /// --姓名:dongtianyi时间:2018/5/29 16:49
        /// --操作简单描述:
        /// --本次操作需求来源URL:
        ///  --当前设备:DONGTIANYI
        /// ------+++++++++-------
        /// </remarks>
        static public int UpdateRow_Product(Product_WMS_Interface row)
        {
            var ret = new ThirdResult <List <object> >("向表Product_WMS_Interface更新一行商品");

            var wcfPWI = WCF <Product_WMS_Interface> .Update(row);

            InnerDebug(ret, wcfPWI, "更新商品");
            ret.End();
            return(wcfPWI.RetInt);
        }
Esempio n. 5
0
        /// <summary>
        /// 添加商品
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// ------+++++++++-------
        /// --姓名:dongtianyi时间:2018/5/29 16:25
        /// --操作简单描述:
        /// --本次操作需求来源URL:
        ///  --当前设备:DONGTIANYI
        /// ------+++++++++-------
        /// </remarks>
        static public int AddRow_Product(Product_WMS_Interface row)
        {
            var ret = new ThirdResult <List <object> >("向表Product_WMS_Interface插入一行商品");

            row.IsDel     = 1;
            row.AddTime   = DateTime.Now;
            row.AddUserid = MangoMis.Frame.Frame.CommonFrame.userid;
            var wcfPWI = WCF <Product_WMS_Interface> .Add(row);

            InnerDebug(ret, wcfPWI, "添加商品");
            ret.End();
            return(wcfPWI.RetInt);
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
        /// <summary>
        /// 新增一条创建出库订单的记录
        /// </summary>
        /// <param name="pData">待插入的记录</param>
        /// <param name="pMsg">返回错误描述信息</param>
        /// <returns>返回成功操作的记录行数,若失败则返回0</returns>
        static protected int AddRow_StockoutCreate(Product_WMS_Interface pData, out string pMsg)
        {
            if (null == pData)
            {
                pMsg = "非法入参, pMsg=null";
                return(0);
            }

            int rslt    = 0;
            var retRslt = WCF <Product_WMS_Interface> .Add(pData);

            if (null == retRslt)
            {
                pMsg = "WCF插入记录行失败,返回null对象";
                return(0);
            }
            else
            {
                rslt = retRslt.RetInt;
                pMsg = retRslt.RETData;
                return(rslt);
            }
        }
Esempio n. 8
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());
            }
        }
Esempio n. 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pEntity"></param>
        /// <param name="pWcfError"></param>
        /// <param name="pMsg"></param>
        /// <returns></returns>
        static public int UpdateRowA(Product_WMS_Interface pEntity, out int pWcfError, out string pMsg)
        {
            if (null == pEntity)
            {
                pMsg = string.Format("{0}.{1}, 非法空入参", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
                C_WMS.Data.Utility.MyLog.Instance.Warning(pMsg);
                return(pWcfError = TError.Post_ParamError.Int());
            }
            else
            {
                try
                {
                    DefaultResult <int> retRslt = null;
                    var wcfRslt = MangoWCF <Product_WMS_Interface> .GetEntity(pEntity.WMS_InterfaceId.Int());

// update/add row in Dict709
                    if (null == wcfRslt)
                    {
                        pMsg = string.Format("{0}.{1}, WCF查找({2}, {3}, {4})返回null", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, pEntity.WMS_InterfaceId, pEntity.MapId1, pEntity.MapId2);
                        C_WMS.Data.Utility.MyLog.Instance.Warning(pMsg);
                        return(pWcfError = TError.Pro_HaveNoData.Int());
                    } // if (null == wcfRslt), return error
                    else if (null == wcfRslt.Data)
                    {
                        pEntity.AddUserid = MangoMis.Frame.Frame.CommonFrame.userid;
                        pEntity.AddTime   = DateTime.Now;
                        retRslt           = MangoWCF <Product_WMS_Interface> .Add(pEntity);
                    } // else if (null == wcfRslt.Data), insert new row when notfound
                    else
                    {
                        pEntity.AddUserid = wcfRslt.Data.AddUserid;
                        pEntity.AddTime   = wcfRslt.Data.AddTime;
                        retRslt           = MangoWCF <Product_WMS_Interface> .Update(pEntity);
                    } // else, update the existing row

                    // handle updating/adding WCF result.
                    if (null == retRslt)
                    {
                        pMsg = string.Format("{0}.{1}, WCF(wcfRslt.Data={2})返回null [WCF({3}, {4}, {5})查找结果: {6}, {7}]", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, wcfRslt.Data, pEntity.WMS_InterfaceId, pEntity.MapId1, pEntity.MapId2, wcfRslt.RetInt, wcfRslt.Debug);
                        C_WMS.Data.Utility.MyLog.Instance.Warning(pMsg);
                        return(pWcfError = TError.WCF_RunError.Int());
                    } // if (null == retRslt), WCF ERROR
                    else if (0 >= retRslt.Data)
                    {
                        pMsg = string.Format("{0}.{1}, WCF(wcfRslt.Data={2})返回结果: {3}, {4}", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, wcfRslt.Data, wcfRslt.RetInt, wcfRslt.Debug);
                        C_WMS.Data.Utility.MyLog.Instance.Warning(pMsg);
                        return(pWcfError = retRslt.RetInt);
                    } // else if (0 >= retRslt.Data), failed in updating/adding
                    else
                    {
                        pMsg      = string.Empty;
                        pWcfError = retRslt.Data;
                        return(retRslt.RetInt);
                    } // else succeed in updating/adding
                }
                catch (Exception ex)
                {
                    pMsg = ex.Message;
                    C_WMS.Data.Utility.MyLog.Instance.Warning(ex, "{0}.{1}({2})发生异常", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, pEntity);
                    return(pWcfError = TError.Post_NoChange.Int());
                }
            }
        }
Esempio n. 10
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());
            }
        }
Esempio n. 11
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);
            }
        }