Ejemplo n.º 1
0
        /// <summary>
        /// 快件保存
        /// </summary>
        /// <param name="model"></param>
        /// <param name="carrier"></param>
        /// <returns></returns>
        public Result <WishExpressModel> AddExpress(WishExpressModel model, int carrier)
        {
            var result = new Result <WishExpressModel> {
                HasError = false, Data = model
            };
            var carrierModel = EpcDal.Instance.GetCarrier(carrier.ToString(), model.Express.TrueWeight);

            if (carrierModel != null)
            {
                //替换产品号
                model.Express.ProductCode  = carrierModel.YanWenProductCode;
                model.Express.ServiceCode  = carrierModel.ServiceCode;
                model.Express.SupplierCode = carrierModel.SupplierCode;
            }
            //保存验证
            var varifyResult = VerifySave(new Result <WishExpressModel> {
                HasError = false, Data = model
            });

            if (varifyResult.HasError)
            {
                result.HasError = varifyResult.HasError;
                result.ErrorMsg = varifyResult.ErrorMsg;
                return(result);
            }
            varifyResult.Data.Express.SupplierWeight = varifyResult.Data.Express.TrueWeight;
            //note:调取打印分拣码
            var sortingCode = ExpressOperate.Instance.GetPrintSortingCode(model.Express);

            if (sortingCode.HasError)
            {
                result.HasError = true;
                result.ErrorMsg = sortingCode.ErrorMsg;
                return(result);
            }
            #region 验证中外运等产品是否计泡

            if (model.ProductVerify.IsGlobalWeight)
            {
                var resultGlobal = ExpressOperate.Instance.JudgeGlobal(model.ServiceVerify, model.Express);
                if (resultGlobal.HasError)
                {
                    result.HasError = true;
                    result.ErrorMsg = resultGlobal.ErrorMsg;
                    return(result);
                }
                model.ProductVerify.IsGlobalWeight = resultGlobal.Data;
            }

            #endregion

            #region 附加重量类

            //var resultConvertAdditionalWeight = ExpressOperate.Instance.ConvertAdditionalWeight(model.Express, model.ServiceVerify, model.ProductVerify);
            //if (resultConvertAdditionalWeight.HasError)
            //{
            //    result.HasError = true;
            //    result.ErrorMsg = resultConvertAdditionalWeight.ErrorMsg;
            //    return result;
            //}
            //model.ExpressAdditionalWeight = resultConvertAdditionalWeight.Data;
            #endregion

            varifyResult.Data.Express.PrintSortingCode = sortingCode.Data;
            varifyResult.Data.Express.AreaCode         = WarehouseCache.GetWarehouse(varifyResult.Data.Express.CompanyCode).AreaCode;
            result.Data = varifyResult.Data;
            //保存TMS临时表
            SaveTamExpressDal.Instance.InsertExpressReceiverCustom(varifyResult);
            result.DetailMsg = varifyResult.Data.Express.PrintSortingCode;
            return(result);
        }