Example #1
0
        /// <summary>
        /// 删除PR单对象
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="ItemId"></param>
        /// <param name="identityId"></param>
        /// <param name="names"></param>
        public static void DeletePrManage(Innovator inn, string ItemId, List <string> names)
        {
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, "innovator.B_PRMANAGE");

            if (!activitys.isError())
            {
                string source_id           = activitys.getItemByIndex(0).getProperty("id");
                Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                string ids = "";
                if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                {
                    for (int index = 0; index < activityAssignments.getItemCount(); index++)
                    {
                        var    activityAssignment = activityAssignments.getItemByIndex(index);
                        string id = activityAssignment.getProperty("id");

                        if (index != activityAssignments.getItemCount() - 1)
                        {
                            ids += id + ",";
                        }
                        else
                        {
                            ids += id;
                        }
                    }
                }

                if (!string.IsNullOrEmpty(ids))
                {
                    ActivityAssignmentDA.deleteActivityAssignment(inn, ids);
                }
            }
        }
Example #2
0
        /// <summary>
        /// 添加管理权限
        /// </summary>
        /// <param name="ItemId"></param>
        /// <param name="identityId"></param>
        public static string AddPrManageAuthById(Innovator inn, string ItemId, string identityId, List <string> names)
        {
            string strError = "";
            //根据任务名称获取任务
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, "innovator.B_PRMANAGE");

            //获取当前任务已经存在的处理人
            if (!activitys.isError())
            {
                //获取任务Id
                string strAml = "<AML>";
                for (var i = 0; i < activitys.getItemCount(); i++)
                {
                    var    item                = activitys.getItemByIndex(i);
                    string source_id           = item.getProperty("id");
                    Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                    string ids = "";
                    if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                    {
                        for (int index = 0; index < activityAssignments.getItemCount(); index++)
                        {
                            var    activityAssignment = activityAssignments.getItemByIndex(index);
                            string id = activityAssignment.getProperty("id");

                            if (index != activityAssignments.getItemCount() - 1)
                            {
                                ids += id + ",";
                            }
                            else
                            {
                                ids += id;
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(ids))
                    {
                        ActivityAssignmentDA.deleteActivityAssignment(inn, ids);
                    }

                    strAml += "<Item type = 'ACTIVITY ASSIGNMENT' action = 'add'>";
                    strAml += "<source_id>" + source_id + "</source_id><related_id>";
                    strAml += "<Item type='IDENTITY' action='get' id='" + identityId + "'>";
                    strAml += "</Item></related_id></Item>";
                }
                strAml += "</AML>";
                var result = inn.applyAML(strAml);
                if (result.isError())
                {
                    strError = result.getErrorString();
                }
            }
            else
            {
                strError = activitys.getErrorString();
                return(strError);
            }
            return(strError);
        }
        /// <summary>
        /// 根据活动名称选择附件
        /// </summary>
        /// <param name="activityName"></param>
        /// <param name="b_TotalExpense"></param>
        /// <param name="b_IsBudgetary"></param>
        /// <param name="b_Type"></param>
        /// <returns></returns>
        public static string GetLineNameByActivityName(Innovator inn, string activityId, string activityName, decimal b_TotalExpense, bool b_IsBudgetary, string DeptLeader)
        {
            string lineName = "agree";


            //部门总监审批
            if (activityName == "Dept.Director" || activityName == "Project Director")
            {
                //获取当前活动的的审核操作
                int  auditPersonCount = 0;
                Item activityItem     = ActivityAssignmentDA.GetActivityAssignment(inn, activityId);
                if (!activityItem.isError() && activityItem.getItemCount() > 0)
                {
                    auditPersonCount = activityItem.getItemCount();
                }

                //总金额大于5千 或者 在预算外
                if (b_TotalExpense > 5000 || b_IsBudgetary == false || auditPersonCount == 0)
                {
                    lineName = "lineA";
                }
                //预算内  并且 总金额小于等于5千
                else if (b_IsBudgetary && b_TotalExpense <= 5000)
                {
                    lineName = "lineB";
                }
            }

            //部门VP审批
            if (activityName == "Division VP" || activityName == "Project VP")
            {
                //预算外  或者 总金额大于1万
                if (b_IsBudgetary == false || b_TotalExpense > 10000)
                {
                    lineName = "lineA";
                }
                //预算内 并且 总金额小于1万
                else if (b_IsBudgetary && b_TotalExpense <= 10000)
                {
                    lineName = "lineB";
                }
            }
            return(lineName);
        }
Example #4
0
        /// <summary>
        /// 删除Activity的审核权限不包含admin
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="ItemId"></param>
        public static void DeleteActivityAuthById(Innovator inn, string ItemId, string tableName, List <string> names)
        {
            //根据任务名称获取任务
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, tableName);

            //获取当前任务已经存在的处理人
            if (!activitys.isError())
            {
                for (var i = 0; i < activitys.getItemCount(); i++)
                {
                    var    item                = activitys.getItemByIndex(i);
                    string source_id           = item.getProperty("id");
                    Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                    string ids = "";
                    if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                    {
                        for (int index = 0; index < activityAssignments.getItemCount(); index++)
                        {
                            var    activityAssignment = activityAssignments.getItemByIndex(index);
                            string id = activityAssignment.getProperty("id");

                            if (index != activityAssignments.getItemCount() - 1)
                            {
                                ids += id + ",";
                            }
                            else
                            {
                                ids += id;
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(ids))
                    {
                        ActivityAssignmentDA.deleteActivityAssignment(inn, ids);
                    }
                }
            }
        }
Example #5
0
        /// <summary>
        /// 添加活动审核
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="ItemId">数据ID</param>
        /// <param name="identityId">权限ID</param>
        /// <param name="names">节点名称列表</param>
        /// <param name="tableName">主表名称</param>
        /// <param name="voting_weight">权重</param>
        public static void AddActivityAuth(Innovator inn, string ItemId, string identityId, List <string> names, string tableName, int voting_weight = 100, string activityStatus = "Pending")
        {
            //根据任务名称获取任务
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, tableName, activityStatus);

            if (!activitys.isError())
            {
                string strAml = "<AML>";
                for (var i = 0; i < activitys.getItemCount(); i++)
                {
                    var    item                = activitys.getItemByIndex(i);
                    string source_id           = item.getProperty("id");
                    Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                    strAml += "<Item type = 'ACTIVITY ASSIGNMENT' action = 'add'>";
                    strAml += "<voting_weight>" + voting_weight + "</voting_weight>";
                    strAml += "<source_id>" + source_id + "</source_id><related_id>";
                    strAml += "<Item type='IDENTITY' action='get' id='" + identityId + "'>";
                    strAml += "</Item></related_id></Item>";
                }
                strAml += "</AML>";
                var result = inn.applyAML(strAml);
            }
        }
        /// <summary>
        /// 保存加签
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult SaveWorkflowActivitySign(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                List <string> authIds    = new List <string>();
                List <string> oldAuthIds = new List <string>();
                List <string> addAuthIds = new List <string>();

                List <string> listEmail = new List <string>();

                //验证输入的加签用户是否存在!并且获取IdentityId;
                List <string> listName = model.PersonList.Split(';').Where(x => x != "" && x != null).Select(x => x.Trim()).Distinct().ToList();
                if (listName != null && listName.Count() > 0)
                {
                    for (int i = 0; i < listName.Count; i++)
                    {
                        string textValue = listName[i];
                        USER   user      = UserDA.GetUserByFirstName(textValue);
                        if (user == null)
                        {
                            retModel.AddError("errorMessage", "输入的人员在系统中不存在!");
                            return(Json(retModel, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            listEmail.Add(user.EMAIL);

                            Item identity = IdentityDA.GetIdentityByKeyedName(inn, textValue);
                            if (!identity.isError() && identity.getItemCount() > 0)
                            {
                                string identityId = identity.getProperty("id");
                                authIds.Add(identityId);
                            }
                        }
                    }
                }
                //获取当前活动的名称
                Item          activity      = ActivityDA.GetActivityById(inn, model.activityId);
                string        keyedName     = activity.getProperty("keyed_name").Trim();
                List <string> activityNames = new List <string> {
                    keyedName
                };


                //获取现有的审核权限
                Item activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, model.activityId);
                if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                {
                    for (int i = 0; i < activityAssignments.getItemCount(); i++)
                    {
                        Item   activityAssignmentItem = activityAssignments.getItemByIndex(i);
                        string id         = activityAssignmentItem.getProperty("id");
                        string related_id = activityAssignmentItem.getProperty("related_id");
                        oldAuthIds.Add(related_id);
                        //删除现有审核权限
                        ActivityAssignmentDA.deleteActivityAssignment(inn, id);
                    }
                }

                //添加该活动的审核权限
                addAuthIds.AddRange(authIds);
                addAuthIds.AddRange(oldAuthIds);
                addAuthIds = addAuthIds.Distinct().ToList();
                if (addAuthIds.Count > 0)
                {
                    int voting_weight = Common.CalculationWeight(addAuthIds.Count);
                    foreach (var id in addAuthIds)
                    {
                        ActivityBll.AddActivityAuth(inn, model.itemId, id, activityNames, model.operateTable, voting_weight, "Active");
                    }
                }

                //加签成功发送邮件
                string nameStr = "";
                listEmail = listEmail.Distinct().ToList();
                if (listName != null && listName.Count > 0)
                {
                    for (int i = 0; i < listName.Count; i++)
                    {
                        if (i != listName.Count - 1)
                        {
                            nameStr += listName[i] + "、";
                        }
                        else
                        {
                            nameStr += listName[i];
                        }
                    }
                }
                WorkFlowBll.WorkflowActivitySignSendEmail(Userinfo.UserName, nameStr, model.recordNo, model.linkStr, listEmail);
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// 完成任务
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult CompleteActivity(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                WORKFLOW_PROCESS_PATH path = new WORKFLOW_PROCESS_PATH();
                Item itemPrManage          = inn.newItem("B_PRMANAGE", "get");
                itemPrManage.setAttribute("id", model.itemId);
                itemPrManage = itemPrManage.apply();
                string prRecordNo           = itemPrManage.getProperty("b_prrecordno");
                string b_BusinessDepartment = itemPrManage.getProperty("b_businessdepartment");
                string b_Applicant          = itemPrManage.getProperty("b_applicant");

                if (string.IsNullOrEmpty(model.comments))
                {
                    retModel.AddError("errorMessage", @OABordrinCommon.Common.GetLanguageValueByParam("退回必须填写备注!", "ERCommon", "ERItemType", ViewBag.language));
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                //获取当前退回人员权重
                var ActivityAssignmentItem = ActivityAssignmentDA.GetActivityAssignmentById(inn, model.activityAssignmentId);
                if (!ActivityAssignmentItem.isError() && ActivityAssignmentItem.getItemCount() > 0)
                {
                    int voting_weight = int.Parse(ActivityAssignmentItem.getItemByIndex(0).getProperty("voting_weight"));
                    //修改权重
                    if (voting_weight < 100)
                    {
                        //获取Admin的Aras 连接
                        var adminInn = WorkFlowBll.GetAdminInnovator();
                        if (adminInn != null)
                        {
                            //获取Admin 对当前任务权限数据
                            Item activityItem = ActivityDA.GetActivityByItemId(adminInn, model.itemId, "Administrators", "B_PrManage");
                            if (!activityItem.isError())
                            {
                                string activityId           = activityItem.getProperty("activityid");
                                string activityAssignmentId = activityItem.getProperty("activityassignmentid");
                                ActivityDA.CompleteActivity(adminInn, activityId, activityAssignmentId, model.pathId, "", "", Userinfo.UserName + "对单据进行了退回操作! 备注:" + model.comments);
                            }
                        }
                    }
                    else
                    {
                        string result = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, model.pathId, "", "", model.comments);
                        if (!string.IsNullOrEmpty(result))
                        {
                            retModel.AddError("errorMessage", result);
                            return(Json(retModel, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                path = WorkflowProcessPathDA.GetWorkflowProcessPathById(model.pathId);
                PrManageBll.SendEmailByOperation(inn, prRecordNo, b_Applicant, "", path, model.itemId);

                string b_remark = PrManageBll.AddRemark(inn, model.comments, model.itemId, Userinfo.UserName);
                var    itemRoot = inn.newItem("B_PRMANAGE", "edit");
                itemRoot.setAttribute("id", model.itemId);
                itemRoot.setProperty("b_remark", b_remark);
                itemRoot = itemRoot.apply();
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }