コード例 #1
0
        public ActionResult UserPermissionEdit(CasUserEntity entity, string id)
        {
            string strError = "";

            if (!IsPost)
            {
                entity = SystemService.UserService.GetById <CasUserEntity>(id); // SystemService.UserService.CreateUserDomain("MDM").CasUserEntity;
                if (!string.IsNullOrEmpty(id))
                {
                    ViewBag.EditType = "0";
                }
                else
                {
                    ViewBag.EditType = "1";
                }
            }
            else
            {
                if (SystemService.UserService.SaveUserPermissionAdd(entity.UserId, entity.OwnDepValue.Trim(), ref strError))
                {
                    return(Json(AjaxResult.Success()));
                }
                else
                {
                    return(Json(AjaxResult.Error("Update failed")));
                }
            }
            ViewBag.strError = strError;
            return(View(entity));
        }
コード例 #2
0
        public virtual CasUserEntity GetMstUserEntityByUserAccount(string strUserAccount)
        {
            CasUserEntity entity = new CasUserEntity();

            entity.UserAccount = strUserAccount;
            return(DataAccess.SelectSingle <CasUserEntity>(entity));
        }
コード例 #3
0
        public bool POReject(string contractFilingId, string remark, ref string strError)
        {
            CasContractFilingEntity casContractFilingEntity = GetById <CasContractFilingEntity>(contractFilingId);
            CasUserEntity           userEntity     = GetById <CasUserEntity>(casContractFilingEntity.CreatedBy);
            CasContractEntity       contractEntity = GetById <CasContractEntity>(casContractFilingEntity.ContractId);

            if (casContractFilingEntity == null || string.IsNullOrEmpty(contractFilingId))
            {
                strError = "PR不存在";
                return(false);
            }
            casContractFilingEntity.Remark           = remark;
            casContractFilingEntity.Status           = ContractFilingEnum.Reject.GetHashCode();
            casContractFilingEntity.LastModifiedTime = DateTime.Now;
            casContractFilingEntity.LastModifiedBy   = WebCaching.UserId;

            #region PO审批驳回时候发邮件通知
            //var contractEntity = GetById<CasContractEntity>(casContractFilingEntity.ContractId);
            var title    = $@"e-Approval – Contract PR Rejected";
            var content  = $@"Dear:{userEntity.EnglishName},</br>尊敬的:{userEntity.ChineseName}</br></br> The following PR is rejected:</br>以下PR被拒绝:</br></br>  Contract Name 合同名称:{contractEntity.ContractName}    {contractEntity.TemplateName}</br>Ferrero Entity  费列罗方:{contractEntity.FerreroEntity}</br> Counter Party  相对方:{contractEntity.CounterpartyEn}  {contractEntity.CounterpartyCn}</br> PR No.  PR号码:{casContractFilingEntity.PrNo} </br>Reject Reason 拒绝理由:{remark}</br></br>Please review your PR and resubmit the request.</br>请检查PR相关内容并重新提交。</br></br>Ferrero China Contract Approval System</br> 费列罗中国合同审批系统";
            var cc       = "*****@*****.**";
            var reciever = GetUserEmail(casContractFilingEntity.CreatedBy);
            SendEmail.Send(reciever, cc, title, content);
            #endregion
            return(Update(casContractFilingEntity));
        }
コード例 #4
0
        /// <summary>
        /// 创建领域对象
        /// </summary>
        /// <returns></returns>
        public virtual UserDomain CreateUserDomain(string systemName)
        {
            CasUserEntity userEty = new CasUserEntity();

            //userEty.UserId = Guid.NewGuid().ToString();
            return(new UserDomain(systemName, userEty));
        }
コード例 #5
0
        public override void Run(Hashtable parameters)
        {
            ContractManagementBLL contractManagementBLL = new ContractManagementBLL();
            DepUserCommonBLL      userBll = new DepUserCommonBLL();
            //45天后过期的合同
            List <CasContractEntity> listExpireIn45DaysContracts = contractManagementBLL.GetExpireIn45DaysContracts();
            //90天后过期的合同
            List <CasContractEntity> listExpireIn90DaysContracts = contractManagementBLL.GetExpireIn90DaysContracts();

            foreach (CasContractEntity contract in listExpireIn45DaysContracts)
            {
                CasUserEntity user    = userBll.GetById <CasUserEntity>(contract.CreatedBy);
                string        title   = $@"e-Approval – Notification of Contract Expiration";
                string        content = $@"Dear {user.EnglishName},<br/>尊敬的:{user.ChineseName} <br/><br/>The following contract will expire in 45 days: <br/>以下合同将在45天后过期:<br/><br/>
                  Contract Name 合同名称:{contract.ContractName}{contract.TemplateName}<br/>Ferrero Entity  费列罗方:{contract.FerreroEntity}</br>Counter Party  相对方:{contract.CounterpartyEn}{contract.CounterpartyCn}</br>Contract Number 合同编号:{contract.ContractNo}{contract.TemplateNo}</br></br>Please check and consider if you need to renew the contract</br>请确认并考虑是否需要续签此合同。</br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                var           cc      = "*****@*****.**";

                string reciever = user.Email;

                SendEmail.Send(reciever, cc, title, content);
            }

            foreach (CasContractEntity contract in listExpireIn90DaysContracts)
            {
                CasUserEntity user    = userBll.GetById <CasUserEntity>(contract.CreatedBy);
                string        title   = $@"e-Approval – Notification of Contract Expiration";
                string        content = $@"Dear {user.EnglishName},<br/>尊敬的:{user.ChineseName} <br/><br/>The following contract will expire in 90 days: <br/>以下合同将在90天后过期:<br/><br/>
                  Contract Name 合同名称:{contract.ContractName}{contract.TemplateName}<br/>Ferrero Entity  费列罗方:{contract.FerreroEntity}</br>Counter Party  相对方:{contract.CounterpartyEn}{contract.CounterpartyCn}</br>Contract Number 合同编号:{contract.ContractNo}{contract.TemplateNo}</br></br>Please check and consider if you need to renew the contract</br>请确认并考虑是否需要续签此合同。</br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                var           cc      = "*****@*****.**";

                string reciever = user.Email;

                SendEmail.Send(reciever, cc, title, content);
            }
        }
コード例 #6
0
        public string GetRegionName(CasUserEntity userEntity)
        {
            DataAccessBroker broker = DataAccessFactory.Instance();
            string           sql    = "SELECT CAS_REGION.REGION_NAME FROM CAS_CITY INNER JOIN CAS_REGION ON CAS_CITY.REGION_ID =  CAS_REGION.REGION_ID WHERE CAS_CITY.CITY_CODE = '" + userEntity.CityCode + "'";
            object           result = broker.ExecuteSQLScalar(sql);

            return(result == null ? "" : result.ToString());
        }
コード例 #7
0
        public string GetCityName(CasUserEntity userEntity)
        {
            DataAccessBroker broker = DataAccessFactory.Instance();
            string           sql    = "SELECT CITY_NAME FROM CAS_CITY WHERE CITY_CODE = '" + userEntity.CityCode + "'";
            object           result = broker.ExecuteSQLScalar(sql);

            return(result == null ? "" : result.ToString());
        }
コード例 #8
0
        /// <summary>
        /// 从数据库中直接获取用户Domain
        /// </summary>
        /// <param name="delUserId"></param>
        /// <returns></returns>
        public virtual UserDomain GetUserDomainFromDB(string systemName, string userId)
        {
            CasUserEntity user = this.GetById <CasUserEntity>(userId);

            if (null != user)
            {
                return(new UserDomain(systemName, user));
            }
            return(null);
        }
コード例 #9
0
        public virtual UserDomain GetDomainByUserAccount(string systemName, string userAccount)
        {
            CasUserEntity user = GetMstUserEntityByUserAccount(userAccount);

            if (user != null)
            {
                return(new UserDomain(systemName, user));
            }
            return(null);
        }
コード例 #10
0
        public ActionResult ManagerViewList(JqGrid grid, FormCollection data, string id)
        {
            CasUserEntity user = SystemService.UserService.GetUserEntity(id);

            ViewBag.UserId   = id;
            ViewBag.UserCode = user.UserAccount;
            ViewBag.UserName = user.EnglishName;
            grid.ConvertParams(data);
            if (IsPost)
            {
                return(Json(AjaxResult.Success(SystemService.UserService.GetAllLineManagers(id, grid))));
            }
            return(View());
        }
コード例 #11
0
        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="strError"></param>
        /// <returns></returns>
        public bool ChangePassword(string userId, ref string strError)
        {
            if (string.IsNullOrEmpty(userId))
            {
                strError = "用户名为空,无法修改密码!";
                return(false);
            }
            CasUserEntity entity = SystemService.UserService.GetUserEntity(userId);

            if (entity != null)
            {
                entity.Password = Encryption.Encrypt(eContract.Common.ConfigHelper.GetSetString("DefaultPassword"));
                SystemService.UserService.Update(entity);
            }
            return(true);
        }
コード例 #12
0
        public override void Run(Hashtable parameters)
        {
            UploadSignatureStampContractRemind SignStapRe  = new UploadSignatureStampContractRemind();
            ContractManagementBLL    contractManagementBLL = new ContractManagementBLL();
            List <CasContractEntity> contracts             = SignStapRe.GetNeedRemindContracts();

            foreach (CasContractEntity contract in contracts)
            {
                CasUserEntity userEntity = contractManagementBLL.GetById <CasUserEntity>(contract.CreatedBy);
                var           title      = $@"e-Approval – Notification of Upload Signature Stamp Contract";
                var           content    = $@"Dear {userEntity.EnglishName},<br/>尊敬的:{userEntity.ChineseName} <br/><br/>The following has been completed and approved before 10 working days, please upload the contract signed and sealed: <br/>以下合同10个工作日之前审批完成,请上传签字盖章合同:<br/><br/>
                  Contract Name 合同名称:{contract.ContractName}{contract.TemplateName}<br/>Ferrero Entity  费列罗方:{contract.FerreroEntity}</br>Counter Party  相对方:{contract.CounterpartyEn}{contract.CounterpartyCn}</br>Contract Number 合同编号:{contract.ContractNo}{contract.TemplateNo}</br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                var           cc         = "*****@*****.**";
                var           reciever   = userEntity.Email;
                SendEmail.Send(reciever, cc, title, content);
            }
        }
コード例 #13
0
        /// <summary>
        /// 根据用户账号获取用户
        /// </summary>
        /// <param name="userAccount"></param>
        /// <returns></returns>
        public virtual UserDomain GetUserDomainByUserAccount(string systemName, string userAccount)
        {
            //foreach (CasUserEntity user in GetAllUser().Values)
            //{
            //    if (user.UserAccount == userAccount)
            //    {
            //        return new UserDomain(systemName,user);
            //    }
            //}
            //return null;
            CasUserEntity user = GetMstUserEntityByUserAccount(userAccount);

            if (user != null && !string.IsNullOrEmpty(user.Password))//
            {
                return(new UserDomain(systemName, user));
            }
            return(null);
        }
コード例 #14
0
        /// <summary>
        /// 跟新用户的登录密码
        /// </summary>
        /// <param name="userEntity"></param>
        public void UpdateUser(LubrUserEntity userEntity)
        {
            //首先我得获取用户的id
            var phone   = userEntity.phonenumber.ToString().Trim();
            var account = userEntity.username.ToString().Trim();
            var userID  = GetUserIdByPhoneAndAccount(phone, account);

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                broker.BeginTransaction();
                CasUserEntity user = SystemService.UserService.GetById <CasUserEntity>(userID);
                user.Password         = Encryption.Encrypt(userEntity.password);
                user.LastModifiedBy   = "忘记密码";
                user.LastModifiedTime = DateTime.Now;
                DataAccess.Update(user, broker);
                broker.Commit();
            }
        }
コード例 #15
0
        public ActionResult Edit(CasUserEntity entity, string id)
        {
            string strError = "";

            if (!IsPost)
            {
                entity = SystemService.UserService.CreateUserDomain("MDM").CasUserEntity;
                if (!string.IsNullOrEmpty(id))
                {
                    entity             = SystemService.UserService.GetById <CasUserEntity>(id);
                    ViewBag.CityName   = SystemService.UserService.GetCityName(entity);
                    ViewBag.RegionName = SystemService.UserService.GetRegionName(entity);
                    ViewBag.EditType   = "0";
                }
                else
                {
                    ViewBag.EditType = "1";
                }
            }
            else
            {
                var           domain    = SystemService.UserService.CreateUserDomain("MDM");
                CasUserEntity oldEntity = SystemService.UserService.GetById <CasUserEntity>(id);
                domain.CasUserEntity = entity;
                if (SystemService.UserService.Save(domain, ref strError))
                {
                    WebCaching.IsAdmin     = domain.CasUserEntity.IsAdmin.ToString();
                    WebCaching.UserCaching = null;
                    return(Json(AjaxResult.Success()));
                }
                else
                {
                    return(Json(AjaxResult.Error("Update failed")));
                }
            }
            ViewBag.strError = strError;
            return(View(entity));
        }
コード例 #16
0
        public ActionResult Index()
        {
            string        strError = "";
            CasUserEntity entity   = SystemService.UserService.GetById <CasUserEntity>(WebCaching.UserId);

            if (!IsPost)
            {
                ViewBag.OriPassword = Encryption.Decrypt(entity.Password);
            }
            else
            {
                var domian = SystemService.UserService.CreateUserDomain("MDM");
                domian.CasUserEntity = entity;

                string newPassword = Request.Form["newPassword"].ToString();

                domian.CasUserEntity.Password = Encryption.Encrypt(newPassword);

                if (SystemService.UserService.Save(domian, ref strError))
                {
                    ViewBag.OriPassword = newPassword;

                    ViewBag.SaveResult = "T";
                    ViewBag.PromptInfo = "保存成功。";

                    WebCaching.UserCaching = null;
                }
                else
                {
                    strError            = "保存失败, " + strError;
                    ViewBag.OriPassword = Encryption.Decrypt(entity.Password);
                    ViewBag.SaveResult  = "F";
                    ViewBag.PromptInfo  = strError;
                }
            }
            return(View());
        }
コード例 #17
0
 /// <summary>
 /// 注册新的用户
 /// </summary>
 /// <param name="userEntity"></param>
 public void RegisterNewUser(LubrUserEntity userEntity)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         broker.BeginTransaction();
         CasUserEntity user = new CasUserEntity();
         user.UserId      = Guid.NewGuid().ToString();
         user.UserAccount = userEntity.username;
         user.UserCode    = userEntity.username;
         user.ChineseName = userEntity.username;
         user.EnglishName = userEntity.username;
         var password = Encryption.Encrypt(userEntity.password);
         user.Password         = password;
         user.Status           = 0;
         user.IsDeleted        = false;
         user.CreatedBy        = "self";
         user.CreateTime       = DateTime.Now;
         user.LastModifiedBy   = "self";
         user.LastModifiedTime = DateTime.Now;
         user.PhoneNumber      = userEntity.phonenumber;
         DataAccess.Insert(user, broker);
         broker.Commit();
     }
 }
コード例 #18
0
        public override void Run(Hashtable parameters)
        {
            ContractApprovalBLL   bll = new ContractApprovalBLL();
            ContractManagementBLL contractManagementBLL = new ContractManagementBLL();

            List <CasUserEntity> listApprovers = bll.GetAllPendingApprovalAndOvertimeContractsApprovers();

            foreach (CasUserEntity approver in listApprovers)
            {
                //待审批和超时合同
                List <CasContractApproverEntity> listPendingApprovalAndOverTimeContractApprovers = bll.GetPendingApprovalAndOvertimeContractApprovers(approver.UserId);

                //待审批合同
                List <CasContractApproverEntity> listPendingApprovalContractApprovers = listPendingApprovalAndOverTimeContractApprovers.Where(p => p.Status == ContractApproverStatusEnum.WaitApproval.GetHashCode()).ToList();

                //超时合同
                List <CasContractApproverEntity> listOverTimeContractApprovers = listPendingApprovalAndOverTimeContractApprovers.Where(p => p.Status == ContractApproverStatusEnum.OverTime.GetHashCode()).ToList();


                //邮件标题
                string mailTitle = $@"e-Approval - Contract Approval List";
                //邮件正文
                string mailContent = $@"Dear {approver.EnglishName},<br/>尊敬的:{approver.ChineseName}";
                if (listPendingApprovalContractApprovers.Count > 0)
                {
                    mailContent += $@"<br/>The following contracts have been submitted for your approval(please kindly confirm your approval or rejection within 3 working days):<br/>以下合同申请需要您的审核(请在3个工作日内批准或拒绝申请):<br/>
                            </br><table style='font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse:collapse;'><thead>
                            <tr><th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Initiator 申请人</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Owner 合同经办部门</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Name 合同名称</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Ferrero Entity 费列罗方</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Counter Party 相对方</th>
                            </tr></thead><tbody>";
                    foreach (var pendingApproval in listPendingApprovalContractApprovers)
                    {
                        CasContractEntity contract   = contractManagementBLL.GetById <CasContractEntity>(pendingApproval.ContractId);
                        CasUserEntity     userEntity = contractManagementBLL.GetById <CasUserEntity>(contract.CreatedBy);
                        mailContent += $@"<tr>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{userEntity.ChineseName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.ContractOwner}{contract.TemplateOwner}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.ContractName}{contract.TemplateName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.FerreroEntity}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.CounterpartyEn}{contract.CounterpartyCn}</td>
                            </tr>";
                    }
                    mailContent += $@"</tbody></table></br>";
                }

                if (listOverTimeContractApprovers.Count > 0)
                {
                    mailContent += $@"<br/>Note below contracts are overdue, please review the contracts at your earliest convenient.<br/>请注意以下合同已超期,请尽快进行审批。<br/>
                            </br><table style='font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse:collapse;'><thead>
                            <tr><th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Initiator 申请人</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Owner 合同经办部门</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Name 合同名称</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Ferrero Entity 费列罗方</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Counter Party 相对方</th>
                            </tr></thead><tbody>";
                    foreach (var listOverTime in listOverTimeContractApprovers)
                    {
                        CasContractEntity contract   = contractManagementBLL.GetById <CasContractEntity>(listOverTime.ContractId);
                        CasUserEntity     userEntity = contractManagementBLL.GetById <CasUserEntity>(contract.CreatedBy);
                        mailContent += $@"<tr>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{userEntity.ChineseName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.ContractOwner}{contract.TemplateOwner}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.ContractName}{contract.TemplateName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.FerreroEntity}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.CounterpartyEn}{contract.CounterpartyCn}</td>
                            </tr>";
                    }
                    mailContent += $@"</tbody></table></br>";
                }


                //foreach (CasContractApproverEntity casContractApproverEntity in listPendingApprovalAndOverTimeContractApprovers)
                //{
                //    CasContractEntity contract = contractManagementBLL.GetById<CasContractEntity>(casContractApproverEntity.ContractId);

                //    string statusName = "";
                //    switch (casContractApproverEntity.Status)
                //    {
                //        case (2): statusName = "待审批"; break;
                //        case (4): statusName = "超时"; break;
                //        default: statusName = "待审批"; break;
                //    }
                //    string approveTypeName = "";
                //    switch (casContractApproverEntity.ApproverType)
                //    {
                //        case (1): approveTypeName = "领导"; break;
                //        case (2): approveTypeName = "大区总监"; break;
                //        case (3): approveTypeName = "部门总监"; break;
                //        case (4): approveTypeName = "审批部门"; break;
                //        default: approveTypeName = "审批部门"; break;
                //    }
                //    mailContent += $@"<tr><td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{contract.ContractName}</td><td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{approveTypeName}</td><td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{statusName}</td></tr>";
                //}
                mailContent += "</br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                var cc = "*****@*****.**";

#if DEBUG
                string reciever = "*****@*****.**";
#else
                string reciever = approver.Email;
#endif
                SendEmail.Send(reciever, mailTitle, mailContent);
            }
        }
コード例 #19
0
        /// <summary>
        /// 审批人审批
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="contractApproverId"></param>
        /// <returns></returns>
        public JsonResult Submit(int approvalType, string contractApproverId, string comment)
        {
            bool   flag = false;
            string msg  = "";
            //获取审批人信息
            CasContractApproverEntity casContractApproverEntity = new CasContractApproverEntity {
                ContractApproverId = contractApproverId
            };

            casContractApproverEntity = BusinessDataService.CommonHelperService.GetApprover(casContractApproverEntity);
            if (casContractApproverEntity != null)
            {
                CasContractEntity casContractEntity = BusinessDataService.CommonHelperService.GetById <CasContractEntity>(casContractApproverEntity.ContractId);
                CasUserEntity     userEntity        = BusinessDataService.CommonHelperService.GetById <CasUserEntity>(casContractEntity.CreatedBy);
                if (casContractEntity.Status != ContractStatusEnum.WaitApproval.GetHashCode() && casContractEntity.Status != ContractStatusEnum.Resubmit.GetHashCode())
                {
                    flag = false;
                    msg  = "Approve failed: the contract is not in review process.";
                    return(Json(AjaxResult.Error(msg)));
                }

                if (casContractApproverEntity.Status == ContractApproverStatusEnum.WaitApproval.GetHashCode() || casContractApproverEntity.Status == ContractApproverStatusEnum.OverTime.GetHashCode())
                {
                    CasContractApprovalResultEntity casContractApprovalResultEntity = new CasContractApprovalResultEntity
                    {
                        ContractApprovalResultId = Guid.NewGuid().ToString(),
                        ApprovalResult           = approvalType,                           //审批结果
                        ApproverType             = casContractApproverEntity.ApproverType, //审批用户类型
                        ApprovalOpinions         = comment,
                        ApproverId             = CurrentUser.CasUserEntity.UserId,
                        ContractApprovalStepId = casContractApproverEntity.ContractApprovalStepId,
                        ContractId             = casContractApproverEntity.ContractId,
                        CreatedBy        = CurrentUser.CasUserEntity.UserId,
                        CreateTime       = DateTime.Now,
                        ApprovalTime     = DateTime.Now,
                        LastModifiedBy   = CurrentUser.CasUserEntity.UserId,
                        LastModifiedTime = DateTime.Now
                    };
                    flag = BusinessDataService.ContractApprovalService.Approval(casContractApprovalResultEntity, casContractApproverEntity);
                    if (flag && approvalType == 4)
                    {
                        var title    = $@"e-Approval – Contract Reject";
                        var content  = $@"Dear:{userEntity.EnglishName},</br>尊敬的:{userEntity.ChineseName}</br></br>The following contract is rejected:</br>以下合同被拒绝:</br></br>Contract Name 合同名称:{casContractEntity.ContractName}  {casContractEntity.TemplateName}</br>Ferrero Entity  费列罗方 :{casContractEntity.FerreroEntity}</br>Counter Party  相对方:{casContractEntity.CounterpartyEn}  {casContractEntity.CounterpartyCn}</br>Rejected by 拒绝审批人:{ CurrentUser.CasUserEntity.EnglishName}{ CurrentUser.CasUserEntity.ChineseName}</br>Reject Reason 拒绝理由:{comment}</br></br>Please review your contract and resubmit or close the request.</br>请检查合同相关内容,重新提交或关闭合同。</br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                        var cc       = "*****@*****.**";
                        var reciever = userEntity.Email;
                        SendEmail.Send(reciever, cc, title, content);
                    }
                }
                else
                {
                    flag = false;
                    msg  = "Approve failed: the contract is already approved.";
                }
            }
            else
            {
                flag = false;
                msg  = "Operation failed: cannot find the approver's info.";
            }
            return(Json(flag ? AjaxResult.Success() : AjaxResult.Error(msg)));
        }
コード例 #20
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="CasUserEntity">用户实体</param>
 public UserDomain(string systemName, CasUserEntity CasUserEntity)
     : base(CasUserEntity)
 {
     SystemName = systemName;
 }
コード例 #21
0
        // **************************************
        // URL: /Account/LogOn
        // **************************************
        public ActionResult Login(CasUserEntity userEntity, string UserAccount, string password, string currentLanguage, string returnUrl, string paras, string viewName = "LoginV3")
        {
            string strError = "";
            string ssologin = ComixSDK.EDI.Utils.ConfigHelper.GetConfigString("SSOLogin");

            string SSOUserId  = "";
            string AUTHUserId = "";
            string SSOToken   = "";
            object bindModel  = null;

            if (!string.IsNullOrEmpty(paras))
            {
                //SortedDictionary<string, string> parasDic = new SortedDictionary<string, string>();
                //parasDic.Add("SSOUserId", "");
                //parasDic.Add("AUTHUserId", Guid.NewGuid().ToString().Replace("-", "").ToLower());
                //parasDic.Add("SSOToken", "");
                //string newparas = JSONHelper.ToJson(parasDic);
                //newparas = ComixSDK.EDI.Utils.EncryptionService.EncryptDES(newparas, eContract.Common.ConfigHelper.GetSetString("EncryptionKey"));
                //paras = newparas;

                paras = ComixSDK.EDI.Utils.EncryptionService.DecryptDES(paras, eContract.Common.ConfigHelper.GetSetString("EncryptionKey"));
                SortedDictionary <string, object> sd = ComixSDK.EDI.Utils.JSONHelper.FromJson <SortedDictionary <string, object> >(paras);
                SSOUserId = sd["SSOUserId"] == null ? "" : sd["SSOUserId"].ToString();
                bindModel = sd["BindModel"];
                SSOToken  = sd["SSOToken"] == null ? "" : sd["SSOToken"].ToString();
            }

            ViewBag.Paras     = paras;
            ViewBag.ReturnUrl = returnUrl;
            if (IsPost)
            {
                //参数解密
                //SSOUserId = ComixSDK.EDI.Utils.EncryptionService.DecryptDES(SSOUserId, eContract.Common.ConfigHelper.GetSetString("EncryptionKey"));
                //AUTHUserId = ComixSDK.EDI.Utils.EncryptionService.DecryptDES(AUTHUserId, eContract.Common.ConfigHelper.GetSetString("EncryptionKey"));
                if (IsPost || !string.IsNullOrEmpty(SSOUserId))
                {
                    WebCaching.UserCaching = null;
                    UserDomain userDomain = null;
                    if (!string.IsNullOrEmpty(SSOUserId)) //获取第三方登录用户
                    {
                        userEntity = SystemService.UserService.GetUserEntity(SSOUserId);
                        if (userEntity == null)
                        {
                            return(View(viewName, userEntity));
                        }
                        userDomain = SystemService.UserService.GetUserDomainByUserAccount("MDM", userEntity.UserAccount);
                    }
                    else
                    {
                        userDomain = SystemService.UserService.GetUserDomainByUserAccount("MDM", userEntity.UserAccount);
                    }

                    if (userDomain == null || Encryption.Decrypt(userDomain.CasUserEntity.Password) != password)
                    {
                        ViewBag.strError = "您输入的账号或密码错误,请重新输入";
                        //strError = "您输入的账号或密码错误,请重新输入";
                        //return Json(AjaxResult.Error(strError));
                        return(View(viewName, userEntity));
                    }
                    //if (userDomain.CasUserEntity.IsDelete == 1)
                    //{
                    //    strError = "该用户已被删除";
                    //    return Json(AjaxResult.Error(strError));
                    //}

                    string CacheKey = "User_" + UserId;
                    CacheHelper.Instance.Remove(CacheKey);
                    WebCaching.UserId        = userDomain.CasUserEntity.UserId;
                    WebCaching.UserAccount   = userDomain.CasUserEntity.UserAccount;
                    WebCaching.IsAdmin       = userDomain.CasUserEntity.IsAdmin.ToString();
                    WebCaching.SystemName    = "MDM";
                    userDomain.MenuDataItems = SystemService.FunctionRoleService.GetMenuDataItemByUserId("MDM", WebCaching.UserId);
                    this.CurrentUser         = userDomain;
                    ComixSDK.EDI.Utils.CookieHelper.AddCookie(LANG_COOKIE_ID, currentLanguage, DateTime.Now.AddYears(1));
                    WebCaching.CurrentLanguage = currentLanguage;
                    FormsAuthentication.SetAuthCookie(userDomain.CasUserEntity.UserAccount, false);
                    userEntity = userDomain.CasUserEntity;
                    BusinessRoleBLL          userroleBll   = new BusinessRoleBLL();
                    List <SecUserRoleEntity> listUserRoles = userroleBll.GetBusinessRoleUserDomainByUserid(userDomain.CasUserEntity.UserId);
                    //普通员工添加默认权限
                    if (listUserRoles == null || listUserRoles.Count <= 0)
                    {
                        listUserRoles = userroleBll.GetBusinessRoleUserDomainByRoleId("cd3c9135-4446-45c5-b768-550abac4368d");
                        //strError = "您输入的账号没有权限,请重新输入";
                        //if (!IsAjax)
                        //{
                        //    return View(viewName, userEntity);
                        //}
                    }
                    if (!IsAjax)
                    {
                        return(Redirect("~/home"));
                    }

                    //strError = GetResource(strError);
                    ViewBag.strError    = strError;
                    userEntity.Password = password;

                    if (IsAjax)
                    {
                        if (string.IsNullOrEmpty(strError))
                        {
                            return(Json(AjaxResult.Success()));
                        }
                        return(Json(AjaxResult.Error(strError)));
                    }
                }
            }
            return(View(viewName, userEntity));
        }
コード例 #22
0
        public override void Run(Hashtable parameters)
        {
            ContractManagementBLL contractBll = new ContractManagementBLL();
            UserBLL       userBll             = new UserBLL();
            DepartmentBLL departmentBll       = new DepartmentBLL();

            //所有合同管理员
            List <CasUserEntity> listContractManagers = userBll.GetAllContractManagers();

#if DEBUG
            //TODO:离职员工列表,同步员工数据时判断并获得
            List <CasUserEntity> listTurnoverUsers = new List <CasUserEntity>();
            //TODO:测试数据,汪敏
            listTurnoverUsers.Add(new CasUserEntity()
            {
                UserId = "WANGMIN1", ChineseName = "汪敏"
            });
#else
#endif
            foreach (CasUserEntity user in listTurnoverUsers)
            {
                //部门总监
                CasUserEntity manager = departmentBll.GetDepartmentManagerByUserId(user.UserId);

                List <CasContractEntity> listApplyContracts     = contractBll.GetAllApplyContractsByUserId(user.UserId);
                List <CasContractEntity> listApproveContracts   = contractBll.GetAllApproveContractsByUserId(user.UserId);
                List <CasContractEntity> listPOApproveContracts = contractBll.GetAllPOApproveContractsByUserId(user.UserId);

                //邮件标题
                string mailTitle = $@"e-Approval – User Leaving";

                //邮件正文
                string mailContent = $@"Dear All,<br/>尊敬的用户<br/><br/><{user.ChineseName}>left Ferrero on <{user.LastWorkDate}>. Following contracts were initiated by <{user.ChineseName}>. Please submit your request in IT Service Order System to transfer the contracts to other employee.<br/><{user.ChineseName}>于<{user.LastWorkDate}>离职,以下为该员工发起的所有合同。请在IT Service Order系统中申请将合同转移至其他员工名下。</br>";
                if (listApplyContracts.Count == 0 && listApproveContracts.Count == 0 && listPOApproveContracts.Count == 0)
                {
                    mailContent += "<b>他没有申请合同,也没有审批合同,也没有PO审批合同,请知悉。</b></br>Best Regards";
                }
                else
                {
                    if (listApplyContracts.Count > 0)
                    {
                        mailContent += $@"</br><table style='font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse:collapse;'><thead>
                            <tr><th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Initiator 申请人</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Owner 合同经办部门</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Name 合同名称</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Ferrero Entity 费列罗方</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Counter Party 相对方</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Number 合同编号</th>
                            <th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>Contract Status 合同状态</th>
                            </tr></thead><tbody>";

                        foreach (CasContractEntity applyContract in listApplyContracts)
                        {
                            mailContent += $@"<tr>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{user.ChineseName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.ContractOwner}{applyContract.TemplateOwner}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.ContractName}{applyContract.TemplateName}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.FerreroEntity}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.CounterpartyEn}{applyContract.CounterpartyCn}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.ContractNo}{applyContract.TemplateNo}</td>
                            <td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{applyContract.Status}</td>
                            </tr>";
                        }
                        mailContent += "</tbody></table></br>";
                    }

                    //if (listApproveContracts.Count > 0)
                    //{
                    //    mailContent += "他审批的合同清单如下:<br/><table style='font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse:collapse;'><thead><tr><th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>合同名称</th></tr></thead><tbody>";

                    //    foreach (CasContractEntity approveContract in listApproveContracts)
                    //    {
                    //        mailContent += $@"<tr><td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{approveContract.ContractName}</td></tr>";
                    //    }
                    //    mailContent += "</tbody></table></br>";
                    //}


                    //if (listPOApproveContracts.Count > 0)
                    //{
                    //    mailContent += "他PO审批的合同清单如下:<br/><table style='font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse:collapse;'><thead><tr><th style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;'>合同名称</th></tr></thead><tbody>";

                    //    foreach (CasContractEntity poApproveContract in listPOApproveContracts)
                    //    {
                    //        mailContent += $@"<tr><td style='border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;'>{poApproveContract.ContractName}</td></tr>";
                    //    }
                    //    mailContent += "</tbody></table></br>";
                    //}
                    mailContent += "</br><b>Note: The contracts will be transferred to department head after 10 days if we don’t receive any notification from user department.</b></br><b>备注:如在10天之内未收到用户部门任何申请,所有该离职用户的合同将转移至部门总监名下。</b></br></br>Ferrero China Contract Approval System</br>费列罗中国合同审批系统";
                }

                var cc = "*****@*****.**";

                List <string> listRecievers = new List <string>();
                if (manager != null)
                {
                    listRecievers.Add(manager.Email);
                }
                foreach (CasUserEntity contractManager in listContractManagers)
                {
                    listRecievers.Add(contractManager.Email);
                }
                List <string> ccs = new List <string>();
                ccs.Add(cc);
                SendEmail.Send(listRecievers, ccs, mailTitle, mailContent);


                //SendEmail.Send(reciever, cc,mailTitle, mailContent);
            }
        }