Exemple #1
0
        public static Receive_Post CreateFactoty(int iVoucherType)
        {
            Receive_Post recPost = null;

            switch (iVoucherType)
            {
            case 10:    //送货单
                recPost = new DeliveryReceive_Func();
                break;

            case 20:    //生产
                break;

            case 30:    //生产退料
                recPost = new ProductionReturn_Func();
                break;

            case 40:    //生产订单
                recPost = new Production_Func();
                break;

            default:
                break;
            }
            return(recPost);
        }
Exemple #2
0
        /// <summary>
        /// 收货过账,送货单,生产退料
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="strErrMsg"></param>
        /// <returns></returns>
        public string PostReceiveGoodsInfo(string strReceiveJson, string strUserJson)
        {
            bool   bSucc          = false;
            string strErrMsg      = string.Empty;
            string strPostAndTask = string.Empty;
            DeliveryReceive_Model DeliveryInfo = new DeliveryReceive_Model();
            DeliveryReceive_DB    DRD          = new DeliveryReceive_DB();

            try
            {
                if (string.IsNullOrEmpty(strReceiveJson))
                {
                    return(GetReturnJson(false, DeliveryInfo, "没有过账数据!"));
                }

                DeliveryInfo = JSONUtil.JSONHelper.JsonToObject <DeliveryReceive_Model>(strReceiveJson);
                //TODO:测试代码
                //DeliveryInfo.lstDeliveryDetail.ForEach(t => t.ReceiveQty = 20);

                if (DeliveryInfo == null || DeliveryInfo.lstDeliveryDetail == null || DeliveryInfo.lstDeliveryDetail.Count <= 0)
                {
                    return(GetReturnJson(false, DeliveryInfo, "解析客户端数据出错!"));
                }

                if (DeliveryInfo.lstDeliveryDetail.Where(t => t.ReceiveQty > 0).Count() == 0)
                {
                    return(GetReturnJson(false, DeliveryInfo, "收货数量都为零,请确认!"));
                }

                UserInfo userModel = JSONUtil.JSONHelper.JsonToObject <UserInfo>(strUserJson);

                if (userModel == null || string.IsNullOrEmpty(userModel.UserNo))
                {
                    return(GetReturnJson(false, DeliveryInfo, "没有获取用户信息!"));
                }


                //送货单或退料单,只能收货一次
                if (DeliveryInfo.VoucherType == 10 || DeliveryInfo.VoucherType == 30)
                {
                    if (DRD.CheckDeliveryNoIsExist(DeliveryInfo.DeliveryNo) >= 1)
                    {
                        return(GetReturnJson(false, DeliveryInfo, "该单据已收货,单据号:" + DeliveryInfo.DeliveryNo));
                    }
                }
                TOOL.WriteLogMethod.WriteLog("方法:PostReceiveGoodsInfo---操作人:" + userModel.UserName + strReceiveJson);
                Receive_Post RPT = Receive_Factory.CreateFactoty(DeliveryInfo.VoucherType);
                bSucc = RPT.ReceiveInfoPostToSAP(ref DeliveryInfo, userModel, ref strErrMsg);

                if (bSucc == false)
                {
                    return(GetReturnJson(false, DeliveryInfo, strErrMsg));
                }

                //创建上架任务
                bSucc = RPT.CreateReceiveAndShelveTask(ref DeliveryInfo, userModel, ref strErrMsg);

                return(GetReturnJson(bSucc, DeliveryInfo, RPT.CreateMessage(DeliveryInfo, bSucc, strErrMsg)));
            }
            catch (Exception ex)
            {
                return(GetReturnJson(false, DeliveryInfo, "Web异常:" + ex.Message + ex.StackTrace));
            }
        }