示例#1
0
        private void FillBillPropertys(Kingdee.BOS.Context ctx, IBillView billView, DynamicObject obj)
        {
            IDynamicFormViewService dynamicFormView = billView as IDynamicFormViewService;

            dynamicFormView.UpdateValue("FId", 0, dataType);
            dynamicFormView.UpdateValue("F_PAEZ_Number", 0, Convert.ToString(obj["Id"]));//用于关联辅助资料表记录
            dynamicFormView.UpdateValue("FNumber", 0, Convert.ToString(obj["Number"]));
            dynamicFormView.UpdateValue("FDataValue", 0, Convert.ToString(obj["Name"]));
        }
示例#2
0
        //创建目标数据对象
        private IBillView CreateBillView(Kingdee.BOS.Context ctx)
        {
            FormMetadata      meta      = MetaDataServiceHelper.Load(ctx, "BOS_ASSISTANTDATA_DETAIL") as FormMetadata;
            Form              form      = meta.BusinessInfo.GetForm();
            Type              type      = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web");
            var               billView  = (IDynamicFormViewService)Activator.CreateInstance(type);
            BillOpenParameter openParam = CreateOpenParameter(ctx, meta);
            var               provider  = form.GetFormServiceProvider();

            billView.Initialize(openParam, provider);
            return(billView as IBillView);
        }
示例#3
0
        private BillOpenParameter CreateOpenParameter(Kingdee.BOS.Context ctx, FormMetadata meta)
        {
            Form form = meta.BusinessInfo.GetForm();
            BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);

            openParam.Context               = ctx;
            openParam.ServiceName           = form.FormServiceName;
            openParam.PageId                = Guid.NewGuid().ToString();
            openParam.FormMetaData          = meta;
            openParam.Status                = OperationStatus.ADDNEW;
            openParam.PkValue               = null;
            openParam.CreateFrom            = CreateFrom.Default;
            openParam.GroupId               = "";
            openParam.ParentId              = 0;
            openParam.DefaultBillTypeId     = "";
            openParam.DefaultBusinessFlowId = "";
            openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
            List <AbstractDynamicFormPlugIn> plugs = form.CreateFormPlugIns();

            openParam.SetCustomParameter(FormConst.PlugIns, plugs);
            PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam);

            return(openParam);
        }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID = dataEntity["Id"].ToString();

                    if (!ValidateDailyWeightSum(dataEntity))
                    {
                        ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                            string.Empty,
                            FID,
                            dataEntity.DataEntityIndex,
                            dataEntity.RowIndex,
                            FID,
                            "汇报人日常工作的权重和必须等于100!",
                            string.Empty);
                        validateContext.AddError(null, ValidationErrorInfo);
                    }

                    /*
                     * if (!ValidateRespWeightSum(dataEntity))
                     * {
                     *  ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                     *          string.Empty,
                     *          FID,
                     *          dataEntity.DataEntityIndex,
                     *          dataEntity.RowIndex,
                     *          FID,
                     *          "汇报人负责工作的权重和必须等于100!",
                     *          string.Empty);
                     *  validateContext.AddError(null, ValidationErrorInfo);
                     * }
                     */
                    //获取当前流程节点

                    //string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    //List<ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);
                    //var WFNode = routeCollection[routeCollection.Count - 1];

                    //if (WFNode.ActivityId == Director_NodeID)
                    //{

                    //}

                    var entityL = dataEntity["FEntityL"] as DynamicObjectCollection;
                    if (entityL.Count > 0)
                    {
                        // 上月计划表体存在时,发现有一行评分不为0时,则允许审核通过
                        var target = entityL
                                     .Where(item => item["FLSrcID"].ToString() != "0" && item["FLDirectorGrade"].ToString() != "0")
                                     .ToArray();
                        if (target.Length <= 0)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请对汇报人上月工作进行评分!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }

                    if (!ValidatePreSum(dataEntity))
                    {
                        ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                            string.Empty,
                            FID,
                            dataEntity.DataEntityIndex,
                            dataEntity.RowIndex,
                            FID,
                            "汇报人上月工作总评分不能超过105!",
                            string.Empty);
                        validateContext.AddError(null, ValidationErrorInfo);
                    }
                }
            }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);

                    var WFNode = routeCollection[routeCollection.Count - 1];

                    if (WFNode.ActivityId == AllocProcessor_NodeID)
                    {
                        var FExecutor = dataEntity["FExecutor"] as DynamicObjectCollection;
                        if (FExecutor.Count <= 0)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请先分配执行人!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                        else
                        {
                        }
                    }
                    else if (WFNode.ActivityId == ProcessorInputResult_NodeID)
                    {
                        if (dataEntity["FResult"].ToString().IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写执行结果!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
示例#6
0
        /// <summary>
        /// 校验逻辑实现
        /// </summary>
        /// <param name="dataEntities"></param>
        /// <param name="validateContext"></param>
        /// <param name="ctx"></param>
        public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
        {
            if (dataEntities == null)
            {
                return;
            }
            string billFormKey = dataEntities[0].DataEntity["FFormId"].ToString();
            string billClass   = "";

            switch (billFormKey)
            {
            case "IV_PURCHASEOC":
                billClass = "AP";    //采购普通发票
                break;

            case "IV_PURCHASEIC":
                billClass = "AP";    //采购增值税专用发票
                break;

            case "IV_SALESOC":
                billClass = "AR";    //销售普通发票
                break;

            case "IV_SALESIC":
                billClass = "AR";    //销售增值税专用发票
                break;

            default:
                break;
            }
            foreach (var dataEntity in dataEntities)
            {
                int      orgId    = Convert.ToInt32(dataEntity["SETTLEORGID_Id"]);           //结算组织
                DateTime billDate = Convert.ToDateTime(dataEntity["Date"]);                  //业务日期
                string   sql      = string.Format(@"SELECT FORGID, FSTARTDATE, FENDDATE 
                            FROM T_AP_CLOSEPROFILE T1 
                            WHERE ((NOT EXISTS (SELECT 1 FROM T_AP_CLOSEPROFILE T2 
                            WHERE (((T2.FID > T1.FID) AND T1.FORGID = T2.FORGID) 
                            AND T1.FCATEGORY = T2.FCATEGORY)) AND FCATEGORY = '{0}') 
                            AND FOrgID ={1} )", billClass, orgId);
                DynamicObjectCollection returnData = DBUtils.ExecuteDynamicObject(ctx, sql); //结帐时间查询
                if (returnData == null || returnData.Count == 0)
                {
                    continue;
                }
                DateTime closeDate = Convert.ToDateTime(returnData[0]["FENDDATE"]);//结帐日期
                if (billDate <= closeDate)
                {
                    validateContext.AddError(dataEntity.DataEntity,
                                             new ValidationErrorInfo("FBillNo",
                                                                     Convert.ToString(dataEntity.DataEntity["Id"]),
                                                                     dataEntity.DataEntityIndex,
                                                                     dataEntity.RowIndex,
                                                                     "JN- CloserPofile-002",
                                                                     string.Format("反审核失败:当前单据已结帐,不能进行反审核操作!"),
                                                                     ""));
                    continue;
                }
            }
        }
 /// <summary>
 /// 校验逻辑实现
 /// </summary>
 /// <param name="dataEntities"></param>
 /// <param name="validateContext"></param>
 /// <param name="ctx"></param>
 public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
 {
     if (dataEntities == null)
     {
         return;
     }
     if (dataEntities != null && dataEntities.Length > 0)
     {
         DynamicObjectCollection dataEntry = dataEntities[0].DataEntity["ReqEntry"] as DynamicObjectCollection;
         foreach (DynamicObject item in dataEntry)
         {
             DynamicObject materil = item["MaterialId"] as DynamicObject;
             if (materil == null)
             {
                 continue;
             }
             if (Convert.ToBoolean(materil["FIsMeasure"]) && Convert.ToDecimal(item["FJNREQTY"]) == 0)
             {
                 validateContext.AddError(DataEntities[0].DataEntity,
                                          new ValidationErrorInfo
                                          (
                                              "", DataEntities[0].DataEntity["Id"].ToString(), dataEntities[0].DataEntityIndex, 0,
                                              "001",
                                              string.Format("第{0}行为双计量物料时,需求酶活为必录字段", dataEntry.IndexOf(item) + 1),
                                              "保存提示"
                                          ));
             }
             //辅助属性“具体描述名称”是否为空判断
             DynamicObjectCollection auxMaterial = materil["MaterialAuxPty"] as DynamicObjectCollection;//物料辅助信息
             foreach (DynamicObject item1 in auxMaterial)
             {
                 string key = item1["AuxPropertyId_Id"].ToString();
                 if (key == "100002")
                 {
                     bool isUse = Convert.ToBoolean(item1["IsEnable1"]);
                     if (isUse)
                     {
                         key = "F" + key;
                         DynamicObject auxData = item["AuxpropId"] as DynamicObject;//辅助信息
                         if (auxData != null)
                         {
                             if (auxData[key] == null || string.IsNullOrWhiteSpace(auxData[key].ToString()))
                             {
                                 validateContext.AddError(DataEntities[0].DataEntity,
                                                          new ValidationErrorInfo
                                                          (
                                                              "", DataEntities[0].DataEntity["Id"].ToString(), dataEntities[0].DataEntityIndex, 0,
                                                              "001",
                                                              string.Format("第{0}行为物料,启用了辅助属性'具体描述名称',该字段必填!", dataEntry.IndexOf(item) + 1),
                                                              "保存提示"
                                                          ));
                             }
                         }
                     }
                 }
             }
         }
     }
 }
示例#8
0
 /// <summary>
 /// 初始化校验器
 /// </summary>
 /// <param name="dataEntities"></param>
 /// <param name="validateContext"></param>
 /// <param name="ctx"></param>
 public override void Initialize(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
 {
     base.Initialize(dataEntities, validateContext, ctx);
 }
示例#9
0
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);

                    var WFNode = routeCollection[routeCollection.Count - 1];

                    if (WFNode.ActivityId == Seal_NodeID)
                    {
                        string realOffTime  = dataEntity["FRealOffTime"] == null ? "" : dataEntity["FRealOffTime"].ToString();
                        string realBackTime = dataEntity["FRealBackTime"] == null ? "" : dataEntity["FRealBackTime"].ToString();
                        if (realOffTime.IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写印章实际带离时间!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                        else if (realBackTime.IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写印章实际归还时间!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
示例#10
0
        /// <summary>
        /// 校验逻辑实现
        /// </summary>
        /// <param name="dataEntities"></param>
        /// <param name="validateContext"></param>
        /// <param name="ctx"></param>
        public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
        {
            if (dataEntities == null)
            {
                return;
            }

            var enProp = validateContext.BusinessInfo.GetField(matFldKey).Entity.EntryName;

            foreach (var dataEntity in dataEntities)
            {
                DynamicObjectCollection rows = dataEntity[enProp] as DynamicObjectCollection;
                DateTime rkDate = Convert.ToDateTime(dataEntity["Date"]);//入库日期
                bool     isSave = true;
                string   billNo = "";
                foreach (DynamicObject item in rows)
                {
                    DynamicObjectCollection linkData = item[linkKey] as DynamicObjectCollection;
                    if (linkData == null || linkData.Count == 0)
                    {
                        continue;
                    }
                    if (linkData[0]["sTableName"].ToString() != "T_PUR_ReceiveEntry")
                    {
                        continue;                                                              //跳过非收料单下推
                    }
                    billNo = dateValitor(rkDate, linkData);
                    if (billNo.Length > 0)
                    {
                        isSave = false;
                        break;
                    }
                }
                if (!isSave)
                {
                    validateContext.AddError(dataEntity.DataEntity,
                                             new ValidationErrorInfo("FBillNo",
                                                                     Convert.ToString(((DynamicObject)(dataEntity.DataEntity))["Id"]),
                                                                     dataEntity.DataEntityIndex,
                                                                     dataEntity.RowIndex,
                                                                     "JN-InStockCheck-002",
                                                                     string.Format("保存失败:单据由编号为:\"{0}\"采购入库单关联生存,入库日期必须大于或等于收料日期!", billNo),
                                                                     "金蝶提示"));
                    continue;
                }
            }
        }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);

                    var WFNode = routeCollection[routeCollection.Count - 1];
                    if (WFNode.ActivityId == OfferBaseprice_NodeID)
                    {
                        var           entityBPR = dataEntity["ora_CRM_SaleOfferBPR"] as DynamicObjectCollection;
                        var           entity    = dataEntity["FEntity"] as DynamicObjectCollection;
                        List <string> guids     = new List <string>();
                        foreach (var row in entity)
                        {
                            if (row["FIS2W"].ToString() == "0" || row["FIS2W"].ToString() == "")
                            {
                                guids.Add(row["FGUID"].ToString());
                            }
                        }
                        string FBGUID = "";
                        foreach (var row in entityBPR)
                        {
                            FBGUID = row["FBGUID"].ToString();
                            if (guids.Contains(FBGUID))
                            {
                                guids.Remove(FBGUID);
                            }
                        }
                        if (guids.Count > 0)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "您还存在未完成的报价,请报价完成后再尝试提交!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                    else if (WFNode.ActivityId == SalemanOffer_NodeID)
                    {
                        bool IsNull = false;
                        var  entity = dataEntity["ora_CRM_SaleOfferBPR"] as DynamicObjectCollection;
                        //string FBMtlGroup = "";
                        string FBMtlItem  = "0";
                        double FBRptPrice = -1;

                        foreach (var row in entity)
                        {
                            FBMtlItem = row["FBMtlItem"] == null ? "0" : (row["FBMtlItem"] as DynamicObject)["Name"].ToString();
                            if (FBMtlItem == "本体")
                            {
                                FBRptPrice = Double.Parse(row["FBRptPrice"].ToString());
                                if (FBRptPrice <= 0)
                                {
                                    IsNull = true;
                                }
                            }
                        }

                        if (IsNull)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请对产品本体进行报价!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                    else if (WFNode.ActivityId == BidAlloc_NodeID)
                    {
                        string FBidMaker = dataEntity["FBidMaker"] == null ? "0" : (dataEntity["FBidMaker"] as DynamicObject)["Id"].ToString();
                        if (FBidMaker == "0")
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请分配标书制作员!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
 public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
 {
     foreach (var dataEntity in dataEntities)
     {
         string FID        = dataEntity["Id"].ToString();
         string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
         List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);
         var WFNode = routeCollection[routeCollection.Count - 1];
         if (WFNode.ActivityId == GM_NodeID) //选择执行人
         {
             var FExecutor = dataEntity["FExecutor"] as DynamicObjectCollection;
             if (FExecutor.Count <= 0)
             {
                 ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                     string.Empty,
                     FID,
                     dataEntity.DataEntityIndex,
                     dataEntity.RowIndex,
                     FID,
                     "请分配执行人!",
                     string.Empty);
                 validateContext.AddError(null, ValidationErrorInfo);
             }
         }
         else if (WFNode.ActivityId == AP_NodeID)//申请人评价
         {
             string FNotSatisfied = dataEntity["FNotSatisfied"].ToString();
             string FSatisfied    = dataEntity["FSatisfied"].ToString();
             if ((FNotSatisfied == "False" && FSatisfied == "False") || (FNotSatisfied == "True" && FSatisfied == "True"))
             {
                 ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                     string.Empty,
                     FID,
                     dataEntity.DataEntityIndex,
                     dataEntity.RowIndex,
                     FID,
                     "请对服务进行评价!",
                     string.Empty);
                 validateContext.AddError(null, ValidationErrorInfo);
             }
         }
     }
 }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);

                    var WFNode = routeCollection[routeCollection.Count - 1];

                    if (WFNode.ActivityId == AllocRoom_NodeID)
                    {
                        var room = dataEntity["FBALCONYNUM2"];
                        if (room == null)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请分配包厢号!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                    else if (WFNode.ActivityId == RealAmount_NodeID)
                    {
                        float FRealAmount = float.Parse(dataEntity["FRealAmount"].ToString());
                        if (FRealAmount <= 0)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请确认实际金额!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
示例#14
0
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);

                    var WFNode = routeCollection[routeCollection.Count - 1];

                    if (WFNode.ActivityId == AllocProcessor_NodeID)
                    {
                        string FExecutor = dataEntity["FQstDoer"] == null ? "0" : (dataEntity["FQstDoer"] as DynamicObject).ToString();
                        if (FExecutor == "0")
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请先分配执行人!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                    else if (WFNode.ActivityId == ProcessorInputResult_NodeID)
                    {
                        //if (dataEntity["FPlanEndDt"].ToString().IsNullOrEmptyOrWhiteSpace())
                        //{
                        //    ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                        //       string.Empty,
                        //       FID,
                        //       dataEntity.DataEntityIndex,
                        //       dataEntity.RowIndex,
                        //       FID,
                        //       "请填写计划完成日期!",
                        //       string.Empty);
                        //    validateContext.AddError(null, ValidationErrorInfo);
                        //}
                        if (dataEntity["FServeContent"].ToString().IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写服务内容!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                        if (dataEntity["FQstAnz"].ToString().IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写问题原因分析!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                        if (dataEntity["FQstPlan"].ToString().IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请填写问题处理方案!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                    else if (WFNode.ActivityId == AP_NodeID)//申请人评价
                    {
                        //if (dataEntity["FFinEndDt"].ToString().IsNullOrEmptyOrWhiteSpace())
                        //{
                        //    ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                        //       string.Empty,
                        //       FID,
                        //       dataEntity.DataEntityIndex,
                        //       dataEntity.RowIndex,
                        //       FID,
                        //       "请填写实际完成日期!",
                        //       string.Empty);
                        //    validateContext.AddError(null, ValidationErrorInfo);
                        //}
                        string FNotSatisfied = dataEntity["FNotSatisfied"].ToString();
                        string FSatisfied    = dataEntity["FSatisfied"].ToString();
                        if ((FNotSatisfied == "False" && FSatisfied == "False") || (FNotSatisfied == "True" && FSatisfied == "True"))
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请对服务进行评价!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
示例#15
0
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                DataTable _dt;
                string    _sql     = "exec proc_cztyCrm_Contract @FCrmSOID='#FID#'";
                string    _backM   = "";
                string    _backMsg = "";

                foreach (var dataEntity in dataEntities)
                {
                    string _FID    = dataEntity["Id"].ToString();
                    string _vadSql = _sql.Replace("#FID#", _FID);
                    try
                    {
                        _dt = DBUtils.ExecuteDataSet(this.Context, _vadSql).Tables[0];
                        if (_dt.Rows.Count > 0)
                        {
                            _backM   = _dt.Rows[0]["FBackM"].ToString();
                            _backMsg = _dt.Rows[0]["FBackMsg"].ToString();
                        }
                    }
                    catch (Exception _ex)
                    {
                        _backM   = "ERR";
                        _backMsg = _ex.Message;
                    }

                    //判断到数据有错误
                    if (_backM == "ERR")
                    {
                        ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                            string.Empty,
                            dataEntity["Id"].ToString(),
                            dataEntity.DataEntityIndex,
                            dataEntity.RowIndex,
                            dataEntity["Id"].ToString(),
                            _backMsg,
                            string.Empty);
                        validateContext.AddError(null, ValidationErrorInfo);
                        continue;
                    }
                }
            }
示例#16
0
        /// <summary>
        /// 校验逻辑实现
        /// </summary>
        /// <param name="dataEntities"></param>
        /// <param name="validateContext"></param>
        /// <param name="ctx"></param>
        public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
        {
            if (dataEntities == null)
            {
                return;
            }

            var enProp = validateContext.BusinessInfo.GetField(matFldKey).Entity.EntryName;

            this.EntityKey = enProp;

            var   orgFldKey = validateContext.BusinessInfo.MainOrgField.Key;
            Field lotFld    = validateContext.BusinessInfo.GetField(this.LotNoFldKey);
            Field matFld    = validateContext.BusinessInfo.GetField(this.MatFldKey);
            Field auxFld    = validateContext.BusinessInfo.GetField(this.AuxPropFldKey);

            foreach (var dataEntity in dataEntities)
            {
                DynamicObjectCollection rows = dataEntity[enProp] as DynamicObjectCollection;
                if (rows == null || rows.Count <= 0)
                {
                    continue;
                }

                //取酶活量大于零的
                var checkRows = rows.Where(f => Convert.ToDecimal(f["FJNUnitEnzymes"]) > 0).ToList();
                if (checkRows == null || checkRows.Count() <= 0)
                {
                    continue;
                }

                //先查本单的数据
                var grp1 = (from p in checkRows
                            select new
                {
                    OrgID = long.Parse(dataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"].ToString()),
                    MatId = long.Parse(p[matFld.PropertyName + "_Id"].ToString()),
                    AuxId = long.Parse(p[auxFld.PropertyName + "_Id"].ToString()),
                    LotNumber = Convert.ToString(p[lotFld.PropertyName + "_Text"]),
                    UnitEnzymes = Convert.ToDecimal(p["FJNUnitEnzymes"])
                }).Distinct().ToList();

                var grp2 = (from p in checkRows
                            select new
                {
                    OrgID = long.Parse(dataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"].ToString()),
                    MatId = long.Parse(p[matFld.PropertyName + "_Id"].ToString()),
                    AuxId = long.Parse(p[auxFld.PropertyName + "_Id"].ToString()),
                    LotNumber = Convert.ToString(p[lotFld.PropertyName + "_Text"])
                }).Distinct().ToList();

                if (grp1.Count != grp2.Count)
                {
                    validateContext.AddError(dataEntity.DataEntity,
                                             new ValidationErrorInfo("FBillNo",
                                                                     Convert.ToString(((DynamicObject)(dataEntity.DataEntity))["Id"]),
                                                                     dataEntity.DataEntityIndex,
                                                                     dataEntity.RowIndex,
                                                                     "JN-InStockCheck-002",
                                                                     string.Format("保存失败:启用双计量单位的物料,公司+物料+辅助属性+批号所对应的单位酶活量有多个!", dataEntity.BillNo),
                                                                     "金蝶提示"));
                    continue;
                }

                //查数据库后台的数据
                foreach (var item in checkRows)
                {
                    var matVal = matFld.GetFieldValue(item) as DynamicObject;
                    if (matVal == null)
                    {
                        continue;
                    }

                    CheckPara para = new CheckPara();
                    para.currEnFldName = validateContext.BusinessInfo.GetField(matFldKey).Entity.EntryPkFieldName;
                    para.orgId         = Convert.ToInt64(dataEntity.DataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"]);
                    para.matId         = Convert.ToInt64(matVal["Id"]);
                    var lotVal = lotFld.GetFieldValue(item);
                    if (lotVal != null && !lotVal.IsNullOrEmptyOrWhiteSpace())
                    {
                        para.lotNumber = lotVal.ToString();
                    }
                    else
                    {
                        para.lotNumber = "";
                    }
                    var aux = auxFld.GetFieldValue(item) as DynamicObject;
                    if (aux != null)
                    {
                        para.auxPropId = Convert.ToInt64(aux["Id"]);
                    }

                    para.unitEnzymes    = Convert.ToDecimal(item["FJNUnitEnzymes"]);
                    para.currentEntryId = Convert.ToInt64(item["Id"]);
                    para.currFormKey    = validateContext.BusinessInfo.GetForm().Id;
                    para.ctx            = ctx;

                    string errInfor = "";
                    if (CheckExists(para, out errInfor))
                    {
                        validateContext.AddError(dataEntity.DataEntity,
                                                 new ValidationErrorInfo("FBillNo",
                                                                         Convert.ToString(dataEntity.DataEntity["Id"]),
                                                                         dataEntity.DataEntityIndex,
                                                                         dataEntity.RowIndex,
                                                                         "JN-InStockCheck-002",
                                                                         string.Format("保存失败:第{1}行物料,启用双计量单位,公司+物料+辅助属性+批号所对应的单位酶活量有多个({0})!", errInfor, rows.IndexOf(item) + 1),
                                                                         "金蝶提示"));
                        continue;
                    }
                }
            }
        }
示例#17
0
 /// <summary>
 /// 校验逻辑实现
 /// </summary>
 /// <param name="dataEntities"></param>
 /// <param name="validateContext"></param>
 /// <param name="ctx"></param>
 public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
 {
     if (dataEntities == null)
     {
         return;
     }
     foreach (var dataEntity in dataEntities)
     {
         string billNo   = dataEntity["BillNo"].ToString();             //单据编号
         string pickMtrl = string.Format(@"select t1.FBILLNO,FDOCUMENTSTATUS from  T_PRD_PICKMTRL t1
                         inner join T_PRD_PICKMTRLDATA t2 on t1.FID=t2.FID 
                         where FMOBILLNO='{0}'  
                         group by t1.FBILLNO,FDOCUMENTSTATUS", billNo); //生产领料单
         DynamicObjectCollection pickMtrlData = DBUtils.ExecuteDynamicObject(this.Context, pickMtrl);
         List <string>           pickMtrlList = pickMtrlData.Where(o => o["FDOCUMENTSTATUS"].ToString() != "C").Select(o => o["FBILLNO"].ToString()).ToList();
         if (pickMtrlList.Count() > 0)
         {
             string pickMtrlNo = string.Join(",", pickMtrlList);
             validateContext.AddError(dataEntity.DataEntity,
                                      new ValidationErrorInfo("FBillNo",
                                                              Convert.ToString(((DynamicObject)(dataEntity.DataEntity))["Id"]),
                                                              dataEntity.DataEntityIndex,
                                                              dataEntity.RowIndex,
                                                              "JN-YDL-MOClose",
                                                              string.Format("执行至结案失败:下游单据生产领料单:{0}还未审核!", pickMtrlNo.Substring(0, pickMtrlNo.Length - 1)),
                                                              "金蝶提示"));
             continue;
         }
         string inStock = string.Format(@"select t1.FBILLNO,t1.FDOCUMENTSTATUS from T_PRD_INSTOCK t1 
                         inner join T_PRD_INSTOCKENTRY t2 on t1.FID=t2.FID 
                         where t2.FMOBILLNO='{0}'
                         group by t1.FBILLNO,t1.FDOCUMENTSTATUS", billNo);//生产入库单
         DynamicObjectCollection inStockData = DBUtils.ExecuteDynamicObject(this.Context, inStock);
         List <string>           inStockList = inStockData.Where(o => o["FDOCUMENTSTATUS"].ToString() != "C").Select(o => o["FBILLNO"].ToString()).ToList();
         if (inStockList.Count() > 0)
         {
             string inStockNo = string.Join(",", inStockList);
             validateContext.AddError(dataEntity.DataEntity,
                                      new ValidationErrorInfo("FBillNo",
                                                              Convert.ToString(((DynamicObject)(dataEntity.DataEntity))["Id"]),
                                                              dataEntity.DataEntityIndex,
                                                              dataEntity.RowIndex,
                                                              "JN-YDL-MOClose",
                                                              string.Format("执行至结案失败:下游单据生产入库单:{0}还未审核!", inStockNo.Substring(0, inStockNo.Length - 1)),
                                                              "金蝶提示"));
             continue;
         }
     }
 }
示例#18
0
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID = dataEntity["Id"].ToString();
                    //string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    //List<ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);
                    //var WFNode = routeCollection[routeCollection.Count - 1];

                    var FEntity = dataEntity["FEntity"] as DynamicObjectCollection;

                    foreach (var row in FEntity)
                    {
                        var FRoomNum = row["F_ora_RoomNum"] == null ? "" : row["F_ora_RoomNum"].ToString();
                        if (FRoomNum.IsNullOrEmptyOrWhiteSpace())
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请返回审批页面点击右侧“更多”按钮后选择“修改单据”,在单据的明细信息中填写“房间号”并保存,最后再返回至审批页面点击“分配完成”进行提交!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }
                }
            }
示例#19
0
 /// <summary>
 /// 校验逻辑实现
 /// </summary>
 /// <param name="dataEntities"></param>
 /// <param name="validateContext"></param>
 /// <param name="ctx"></param>
 public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
 {
     if (dataEntities == null)
     {
         return;
     }
     if (dataEntities != null && dataEntities.Length > 0)
     {
         DynamicObjectCollection dataEntry = dataEntities[0].DataEntity["POOrderEntry"] as DynamicObjectCollection;
         foreach (DynamicObject item in dataEntry)
         {
             DynamicObject materil = item["MaterialId"] as DynamicObject;
             if (materil == null)
             {
                 continue;
             }
             if (Convert.ToBoolean(materil["FIsMeasure"]) && Convert.ToDecimal(item["FJNReqty"]) == 0)
             {
                 validateContext.AddError(DataEntities[0].DataEntity,
                                          new ValidationErrorInfo
                                          (
                                              "", DataEntities[0].DataEntity["Id"].ToString(), dataEntities[0].DataEntityIndex, 0,
                                              "001",
                                              string.Format("第{0}行为双计量物料时,需求酶活为必录字段", dataEntry.IndexOf(item) + 1),
                                              "保存提示"
                                          ));
             }
         }
     }
 }
        /// <summary>
        /// 校验逻辑实现
        /// </summary>
        /// <param name="dataEntities"></param>
        /// <param name="validateContext"></param>
        /// <param name="ctx"></param>
        public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
        {
            if (dataEntities == null)
            {
                return;
            }

            var enProp = validateContext.BusinessInfo.GetField(matFldKey).Entity.EntryName;

            this.EntityKey = enProp;
            var orgFldKey = validateContext.BusinessInfo.MainOrgField.Key;

            foreach (var dataEntity in dataEntities)
            {
                string billType = dataEntity["FBillTypeID_Id"].ToString();
                if (!(billType == "005056c00008baa211e3097d9bc0332e" || billType == "005056945db184ed11e3af2dcda7ee49"))
                {
                    continue;                                                                                                     //产品检验单\自制工序检验单
                }
                DynamicObjectCollection rows = dataEntity[enProp] as DynamicObjectCollection;
                if (rows == null || rows.Count <= 0)
                {
                    continue;
                }

                //取酶活量大于零的
                var checkRows = rows.Where(f => Convert.ToDecimal(f["FJNUnitEnzymes"]) > 0).ToList();
                if (checkRows == null || checkRows.Count() <= 0)
                {
                    continue;
                }

                //先查本单的数据
                var grp1 = (from p in checkRows
                            select new
                {
                    OrgID = long.Parse(dataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"].ToString()),
                    MatId = long.Parse(p["MaterialId_Id"].ToString()),
                    AuxId = long.Parse(p["AuxPropId_Id"].ToString()),
                    LotNumber = Convert.ToString(p["Lot_Text"]),
                    UnitEnzymes = Convert.ToDecimal(p["FJNUnitEnzymes"])
                }).Distinct().ToList();

                var grp2 = (from p in checkRows
                            select new
                {
                    OrgID = long.Parse(dataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"].ToString()),
                    MatId = long.Parse(p["MaterialId_Id"].ToString()),
                    AuxId = long.Parse(p["AuxPropId_Id"].ToString()),
                    LotNumber = Convert.ToString(p["Lot_Text"])
                }).Distinct().ToList();

                if (grp1.Count != grp2.Count)
                {
                    validateContext.AddError(dataEntity.DataEntity,
                                             new ValidationErrorInfo("FBillNo",
                                                                     Convert.ToString(((DynamicObject)(dataEntity.DataEntity))["Id"]),
                                                                     dataEntity.DataEntityIndex,
                                                                     dataEntity.RowIndex,
                                                                     "JN-InStockCheck-002",
                                                                     string.Format("保存失败:启用双计量单位的物料,公司+物料+辅助属性+批号所对应的单位酶活量有多个!", dataEntity.BillNo),
                                                                     "金蝶提示", ErrorLevel.Warning));
                    continue;
                }

                //查数据库后台的数据
                foreach (var item in checkRows)
                {
                    var matVal = item["MaterialId"] as DynamicObject;
                    if (matVal == null)
                    {
                        continue;
                    }
                    CheckPara para = new CheckPara();
                    para.lotNumber = item["Lot_Text"].ToString();
                    if (para.lotNumber.Length == 0)
                    {
                        continue;
                    }
                    DynamicObjectCollection linkData = item["FEntity_Link"] as DynamicObjectCollection;
                    para.tableName     = linkData[0]["sTableName"].ToString();
                    para.linkId        = string.Join(",", linkData.Select(s => Convert.ToInt32(s["SBillId"])));
                    para.currEnFldName = validateContext.BusinessInfo.GetField(matFldKey).Entity.EntryPkFieldName;
                    para.orgId         = Convert.ToInt64(dataEntity.DataEntity[validateContext.BusinessInfo.MainOrgField.PropertyName + "_Id"]);
                    para.matId         = Convert.ToInt64(matVal["Id"]);
                    var aux = item["AuxPropId"] as DynamicObject;
                    if (aux != null)
                    {
                        para.auxPropId = Convert.ToInt64(aux["Id"]);
                    }

                    para.unitEnzymes    = Convert.ToDecimal(item["FJNUnitEnzymes"]);
                    para.currentEntryId = Convert.ToInt64(item["Id"]);
                    para.currFormKey    = validateContext.BusinessInfo.GetForm().Id;
                    para.ctx            = ctx;

                    string errInfor = "";
                    if (CheckExists(para, out errInfor))
                    {
                        validateContext.AddError(dataEntity.DataEntity,
                                                 new ValidationErrorInfo("FBillNo",
                                                                         Convert.ToString(dataEntity.DataEntity["Id"]),
                                                                         dataEntity.DataEntityIndex,
                                                                         dataEntity.RowIndex,
                                                                         "JN-InStockCheck-002",
                                                                         string.Format("保存失败:第{1}行物料,启用双计量单位,公司+物料+辅助属性+批号所对应的单位酶活量有多个({0})!", errInfor, rows.IndexOf(item) + 1),
                                                                         "金蝶提示", ErrorLevel.Warning));
                        continue;
                    }
                }
            }
        }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID        = dataEntity["Id"].ToString();
                    string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    List <ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);
                    var WFNode = routeCollection[routeCollection.Count - 1];

                    var  entity = dataEntity["FEntry"] as DynamicObjectCollection;
                    bool IsNull = false;
                    if (WFNode.ActivityId == AdminAlloc_1_NodeID) //司机 车牌号 出发地点 出发时间
                    {
                        foreach (var row in entity)
                        {
                            string F_ora_rcvDiver = row["F_ora_rcvDiver"] == null ? "" : row["F_ora_rcvDiver"].ToString();
                            string F_ora_CarNum   = row["F_ora_CarNum"] == null ? "" : row["F_ora_CarNum"].ToString();
                            string F_ora_StAddr   = row["F_ora_StAddr"] == null ? "" : row["F_ora_StAddr"].ToString();
                            string F_ora_StTime   = row["F_ora_StTime"] == null ? "" : row["F_ora_StTime"].ToString();
                            if (F_ora_rcvDiver == "" || F_ora_CarNum == "" || F_ora_StAddr == "" || F_ora_StTime == "")
                            {
                                IsNull = true;
                            }
                        }

                        if (IsNull)
                        {
                            ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                                string.Empty,
                                FID,
                                dataEntity.DataEntityIndex,
                                dataEntity.RowIndex,
                                FID,
                                "请分配司机并填写车牌号、出发地点及出发时间!",
                                string.Empty);
                            validateContext.AddError(null, ValidationErrorInfo);
                        }
                    }

                    /*
                     * else if (WFNode.ActivityId == AdminAlloc_2_NodeID)//实际公里数 实际费用(自动计算) 补贴
                     * {
                     *  foreach (var row in entity)
                     *  {
                     *      float F_ora_Mileage = float.Parse(row["F_ora_Mileage"].ToString());
                     *      float F_ora_Subsidy = float.Parse(row["F_ora_Subsidy"].ToString());
                     *      if (F_ora_Mileage <= 0 || F_ora_Subsidy <= 0)
                     *      {
                     *          IsNull = true;
                     *      }
                     *  }
                     *
                     *  if (IsNull)
                     *  {
                     *      ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                     *          string.Empty,
                     *          FID,
                     *          dataEntity.DataEntityIndex,
                     *          dataEntity.RowIndex,
                     *          FID,
                     *          "请确认实际行车公里数及补贴!",
                     *          string.Empty);
                     *      validateContext.AddError(null, ValidationErrorInfo);
                     *  }
                     * }
                     */
                }
            }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                //foreach (var dataEntity in dataEntities)
                //{
                //判断到数据有错误
                //    if()
                //    {
                //        ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                //            string.Empty,
                //            dataEntity["Id"].ToString(),
                //            dataEntity.DataEntityIndex,
                //            dataEntity.RowIndex,
                //            dataEntity["Id"].ToString(),
                //            "errMessage",
                //             string.Empty);
                //        validateContext.AddError(null, ValidationErrorInfo);
                //        continue;
                //    }

                //}
            }
示例#23
0
        /// <summary>
        /// 校验逻辑实现
        /// </summary>
        /// <param name="dataEntities"></param>
        /// <param name="validateContext"></param>
        /// <param name="ctx"></param>
        public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
        {
            if (dataEntities == null)
            {
                return;
            }

            foreach (var dataEntity in dataEntities)
            {
                var billTypeId = this.GetBillTypeId(validateContext.BusinessInfo, dataEntity.DataEntity);
                if (billTypeId.IsNullOrEmptyOrWhiteSpace())
                {
                    continue;
                }
                var billTypeParaObj = AppServiceContext.GetService <ISysProfileService>().LoadBillTypeParameter(ctx, validateContext.BusinessInfo.GetForm().Id, billTypeId);
                if (billTypeParaObj == null)
                {
                    continue;
                }

                bool   bSupportNoMtrlQuote    = Convert.ToBoolean(billTypeParaObj["F_JN_NoMtrlIdQuotation"]);
                string strCreateMaterialPoint = Convert.ToString(billTypeParaObj["F_JN_MtrlCreateTimePoint"]);
                bool   bAutoSyncToPriceLis    = Convert.ToBoolean(billTypeParaObj["F_JN_AutoSyncToPriceList"]);
                //销售报价单不检验BOM版本
                //if (billTypeId == "565802889cb9fb")
                //{
                //    if (bAutoSyncToPriceLis && (long)dataEntity["BomId_Id"] == 0)
                //    {
                //        validateContext.AddError(dataEntity.DataEntity, new ValidationErrorInfo("FBomId",
                //                Convert.ToString(((DynamicObject)(dataEntity.DataEntity.Parent))["Id"]),
                //                dataEntity.DataEntityIndex,
                //                dataEntity.RowIndex,
                //                "JN-001",
                //                string.Format("审核失败:第{0}行BOM版本不能为空!", dataEntity.RowIndex + 1),
                //                "金蝶提示"));
                //        continue;
                //    }
                //}
                //如果参数是支持无物编,且物料为非审核时生成的情况下,则要求物料编码字段必须有值
                if (bSupportNoMtrlQuote &&
                    !strCreateMaterialPoint.EqualsIgnoreCase("2"))
                {
                    if (dataEntity["MaterialId_Id"].IsEmptyPrimaryKey())
                    {
                        validateContext.AddError(dataEntity.DataEntity, new ValidationErrorInfo("FMaterialId",
                                                                                                Convert.ToString(((DynamicObject)(dataEntity.DataEntity.Parent))["Id"]),
                                                                                                dataEntity.DataEntityIndex,
                                                                                                dataEntity.RowIndex,
                                                                                                "JN-002",
                                                                                                string.Format("审核失败:第{0}行物料编码不能为空!", dataEntity.RowIndex + 1),
                                                                                                "金蝶提示"));
                        continue;
                    }
                }
                if (bSupportNoMtrlQuote &&
                    strCreateMaterialPoint.EqualsIgnoreCase("2"))
                {
                    //销售报价单不检验产品名称
                    if (dataEntity["F_JN_ProductName"].IsEmptyPrimaryKey() && billTypeId == "565802889cb9fb")
                    {
                        validateContext.AddError(dataEntity.DataEntity, new ValidationErrorInfo("F_JN_ProductName",
                                                                                                Convert.ToString(((DynamicObject)(dataEntity.DataEntity.Parent))["Id"]),
                                                                                                dataEntity.DataEntityIndex,
                                                                                                dataEntity.RowIndex,
                                                                                                "JN-003",
                                                                                                string.Format("审核失败:第{0}行产品名称不能为空!", dataEntity.RowIndex + 1),
                                                                                                "金蝶提示"));
                        continue;
                    }
                    //产品组别没有配置对应物料模板
                    var billTypeParaTplMtrlRows = billTypeParaObj["QuoteMtrlTplEntity"] as DynamicObjectCollection;
                    var matchTplMtrlRowObj      = billTypeParaTplMtrlRows.FirstOrDefault(o => (long)o["F_JN_MtrlGroupId_Id"] == (long)dataEntity["F_JN_MtrlGroupId_Id"]);
                    if (matchTplMtrlRowObj == null && billTypeId == "565802889cb9fb")
                    {
                        validateContext.AddError(dataEntity.DataEntity, new ValidationErrorInfo("F_JN_ProductName",
                                                                                                Convert.ToString(((DynamicObject)(dataEntity.DataEntity.Parent))["Id"]),
                                                                                                dataEntity.DataEntityIndex,
                                                                                                dataEntity.RowIndex,
                                                                                                "JN-004",
                                                                                                string.Format("审核失败:第{0}行产品组别未配置对应的模板物料,导致自动生成物料失败!", dataEntity.RowIndex + 1),
                                                                                                "金蝶提示"));
                        continue;
                    }
                }
            }
        }
            public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
            {
                foreach (var dataEntity in dataEntities)
                {
                    string FID = dataEntity["Id"].ToString();
                    //string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(ctx, this.formId, FID);
                    //List<ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(ctx, procInstId);
                    //var WFNode = routeCollection[routeCollection.Count - 1];

                    string FMeetName = dataEntity["FMeetName"] == null ? "" : (dataEntity["FMeetName"] as DynamicObject)["Id"].ToString();
                    if (FMeetName.IsNullOrEmptyOrWhiteSpace())
                    {
                        ValidationErrorInfo ValidationErrorInfo = new ValidationErrorInfo(
                            string.Empty,
                            FID,
                            dataEntity.DataEntityIndex,
                            dataEntity.RowIndex,
                            FID,
                            "请分配空闲的会议室!",
                            string.Empty);
                        validateContext.AddError(null, ValidationErrorInfo);
                    }
                }
            }