Example #1
0
 public bool SaveHolidaySetting(HolidaySetting[] holidays, bool isInit)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         DatabaseAccess dba  = context.DatabaseAccess();
         DbCommand      cmd  = dba.CreateCommand("INSERT INTO HolidaySettings VALUES (@HolidayDate, @IsWeekend, @Festival, @SettingYear);");
         DbCommand      cmd1 = dba.CreateCommand("");
         if (!isInit)
         {
             cmd1.CommandText = "DELETE FROM HolidaySettings WHERE HolidayDate = @p1";
             cmd1.CommandType = CommandType.Text;
             dba.AddInParameter(cmd1, "p1", null);
         }
         var val  = 0;
         var val1 = 0;
         var len  = holidays.Length;
         using (var tran = dba.BeginTransaction())
         {
             if (!isInit)
             {
                 foreach (HolidaySetting hs in holidays)
                 {
                     cmd1.Parameters[0].Value = hs.HolidayDate;
                     val1 += dba.ExecuteNonQuery(cmd1);
                 }
             }
             val = dba.ExecuteNonQueryMultiple(cmd, holidays);
             tran.Complete();
         }
         return(val == len);
     }
 }
Example #2
0
 public List <ProjectModel> GetSubprojects(Guid projectId)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         DatabaseAccess dba = context.DatabaseAccess();
         DbCommand      cmd = dba.CreateCommand("SELECT p.*, ue.RealName AS PMName, di1.DictItemValue AS ProjectTypeName, di2.DictItemValue AS StatusName FROM Project p LEFT JOIN auth_UserExtend ue ON p.PM = ue.UserId INNER JOIN sys_DictionaryItem di1 ON p.ProjectType = di1.DictItemId LEFT JOIN sys_DictionaryItem di2 ON p.[Status] = di2.DictItemId WHERE p.ParentId = @ParentId ORDER BY p.BeginTime ASC");
         dba.AddInParameter(cmd, "ParentId", DbType.Guid, projectId);
         List <ProjectModel> data = dba.ExecuteReader <List <ProjectModel> >(
             cmd, (d, r) =>
         {
             d.Add(new ProjectModel
             {
                 ProjectId       = Guid.Parse(r["ProjectId"].ToString()),
                 ProjectName     = r.GetStringOrNull("ProjectName"),
                 ProjectType     = r.GetStringOrNull("ProjectType"),
                 BeginTime       = r.GetDateTimeOrDefault("BeginTime"),
                 EndTime         = r.GetDateTimeOrDefault("EndTime"),
                 Status          = r.GetStringOrNull("Status"),
                 PM              = r.GetGuidOrNull("PM"),
                 ParentId        = r.GetGuidOrNull("ParentId"),
                 Description     = r.GetStringOrNull("Description"),
                 ChildrenCount   = 0,
                 PMName          = r.GetStringOrNull("PMName"),
                 ProjectTypeName = r.GetStringOrNull("ProjectTypeName"),
                 StatusName      = r.GetStringOrNull("StatusName")
             });
         });
         return(data);
     }
 }
Example #3
0
 public object SaveOrganization(Organization org)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         Guid?id = null;
         if (org.OrganizationId == Guid.Empty)
         {
             org.OrganizationId = Guid.NewGuid();
             context.Organizations.Add(org);
             id = org.OrganizationId;
         }
         else
         {
             Organization oldOrg = context.Organizations.Where(n => n.OrganizationId == org.OrganizationId).Single();
             if (oldOrg == null)
             {
                 throw new Exception("不存在此机构!");
             }
             oldOrg.OrganizationType = org.OrganizationType;
             oldOrg.OrganizationName = org.OrganizationName;
             oldOrg.FullName         = org.FullName;
             oldOrg.ParentId         = org.ParentId;
             oldOrg.CEOId            = org.CEOId;
             oldOrg.CEO              = org.CEO;
             oldOrg.LinePhoneNumber  = org.LinePhoneNumber;
             oldOrg.LinePhoneNumber2 = org.LinePhoneNumber2;
             oldOrg.Address          = org.Address;
             id = oldOrg.OrganizationId;
         }
         int countChange = context.SaveChanges();
         return(new { Result = countChange > 0, ID = id });
     }
 }
Example #4
0
        public bool UpdateRequestLeaveBill(RequestLeaveBill bill, IUserData user, bool amStart, bool amEnd)
        {
            Guard.ArgumentNotNull(bill, "bill");

            using (TeamDBContext context = new TeamDBContext())
            {
                bill.WorkDayCount = CalculatetWorkdayCount(context, bill, amStart, amEnd);
                if (bill.WorkDayCount == 0)
                {
                    throw new ModuleLogicException("请假的工作日为0天,请检查请假的开始结束时间是否填写正确");
                }

                RequestLeaveBill old = context.RequestLeaveBills
                                       .Where(p => p.Id == bill.Id)
                                       .Single();

                old.LeaveStart   = bill.LeaveStart;
                old.LeaveEnd     = bill.LeaveEnd;
                old.LeaveType    = bill.LeaveType;
                old.WorkDayCount = bill.WorkDayCount;
                old.LeaveReason  = bill.LeaveReason;
                old.PMSign       = bill.PMSign;
                old.PMSignDate   = bill.PMSignDate;
                old.DLSign       = bill.DLSign;
                old.DLSignDate   = bill.DLSignDate;
                old.CEOSign      = bill.CEOSign;
                old.CEOSignDate  = bill.CEOSignDate;

                return(context.SaveChanges() > 0);
            }
        }
Example #5
0
 public List <StageTemplete> GetTempletes(string projectType)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         DatabaseAccess dba        = context.DatabaseAccess();
         DbCommand      cmd        = dba.CreateCommand();
         StringBuilder  sqlBuilder = new StringBuilder("SELECT * FROM StageTemplete");
         sqlBuilder.Append(" WHERE ProjectType = @ProjectType")
         .Append(" ORDER BY SortValue");
         dba.AddInParameter(cmd, "ProjectType", DbType.String, projectType);
         cmd.CommandText = sqlBuilder.ToString();
         List <StageTemplete> data = dba.ExecuteReader <List <StageTemplete> >(
             cmd, (d, r) =>
         {
             d.Add(new StageTemplete
             {
                 StageTempleteId = (Guid)r["StageTempleteId"],
                 ProjectType     = r.GetStringOrNull("ProjectType"),
                 StageName       = r.GetStringOrNull("StageName"),
                 Description     = r.GetStringOrNull("Description"),
                 SortValue       = r.GetIntOrDefault("SortValue")
             });
         });
         return(data);
     }
 }
Example #6
0
        public List <AttendanceInfoModel> QueryAttendance(Guid userId, DateTime begin, DateTime end)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT a.* FROM AttendanceUsers u INNER JOIN AttendanceInfo a ON u.OutsideUserId = a.OutsideUserId WHERE u.UserId = @UserId AND a.Clock >= @BeginTime AND a.Clock <= @EndTime ORDER BY a.Clock ASC");

                dba.AddInParameter(cmd, "UserId", DbType.Guid, userId);
                dba.AddInParameter(cmd, "BeginTime", DbType.DateTime, QueryParameterUtility.DateTimeStart(begin));
                dba.AddInParameter(cmd, "EndTime", DbType.DateTime, QueryParameterUtility.DateTimeEnd(end));

                List <AttendanceInfoModel> data = dba.ExecuteReader <List <AttendanceInfoModel> >(
                    cmd, (d, r) =>
                {
                    d.Add(new AttendanceInfoModel
                    {
                        AttendanceInfoId = (Guid)r["AttendanceInfoId"],
                        DeviceId         = r.GetStringOrNull("DeviceId"),
                        OutsideUserId    = r.GetStringOrNull("OutsideUserId"),
                        Clock            = r.GetDateTimeOrDefault("Clock").Value,
                        Remark           = r.GetStringOrNull("Remark"),
                        UpdateTime       = r.GetDateTimeOrDefault("UpdateTime").Value
                    });
                });
                return(data);
            }
        }
Example #7
0
        public List <EmployeeSelectItem> GetTeamByProjectId(Guid projectId)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT ue.* FROM [ProjectTeam] p INNER JOIN [auth_UserExtend] ue ON p.EmployeeId = ue.UserId WHERE ProjectId = @ProjectId AND ue.Status = '1-01'");
                dba.AddInParameter(cmd, "ProjectId", DbType.Guid, projectId);

                List <EmployeeSelectItem> data = dba.ExecuteReader <List <EmployeeSelectItem> >(
                    cmd, (d, r) =>
                {
                    d.Add(new EmployeeSelectItem
                    {
                        EmployeeId       = (Guid)r["UserId"],
                        RealName         = r.GetStringOrNull("RealName"),
                        Organization     = r.GetStringOrNull("Organization"),
                        OrganizationName = r.GetStringOrNull("OrganizationName"),
                        Department       = r.GetStringOrNull("Department"),
                        DepartmentName   = r.GetStringOrNull("DepartmentName"),
                        Position         = r.GetStringOrNull("Position"),
                        PositionName     = r.GetStringOrNull("PositionName")
                    });
                });
                return(data);
            }
        }
Example #8
0
        public bool UpdateProjectStages(Guid projectId, List <Stage> stages)
        {
            Guard.ArgumentNotNull(stages, "stages");
            if (stages.Count == 0)
            {
                return(false);
            }
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                using (var conn = dba.GetOpenConnection())
                {
                    DbCommand cmd = dba.CreateCommand("DELETE FROM [Stage] WHERE ProjectId = @ProjectId");
                    dba.AddInParameter(cmd, "ProjectId", DbType.Guid, projectId);
                    dba.ExecuteNonQuery(cmd);

                    Project project = context.Projects
                                      .Where(p => p.ProjectId == projectId)
                                      .Single();
                    LinkStages(stages);
                    foreach (Stage s in stages)
                    {
                        s.Project = project;
                        context.Stages.Add(s);
                    }
                    int affectRows = context.SaveChanges();
                    return(affectRows > 0);
                }
            }
        }
Example #9
0
        /// <summary>
        /// 获取用户所属的项目以及该项目当前激活的阶段
        /// </summary>
        /// <param name="employeeId"></param>
        /// <returns></returns>
        public List <ProjectStageSelectItem> GetProjectStage(Guid?employeeId = null)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba        = context.DatabaseAccess();
                DbCommand      cmd        = dba.CreateCommand();
                StringBuilder  sqlBuilder = new StringBuilder("SELECT p.ProjectId, p.ProjectName, s.StageId, s.StageName FROM Project p INNER JOIN Stage s ON p.ProjectId = s.ProjectId AND s.[Status] = '103-01' INNER JOIN ProjectTeam pt ON p.ProjectId = pt.ProjectId");
                if (employeeId != null)
                {
                    sqlBuilder.Append(" WHERE pt.EmployeeId = @EmployeeId");
                    dba.AddInParameter(cmd, "EmployeeId", DbType.Guid, employeeId);
                }
                sqlBuilder.Append(" ORDER BY p.BeginTime DESC");
                cmd.CommandText = sqlBuilder.ToString();

                List <ProjectStageSelectItem> items = dba.ExecuteReader <List <ProjectStageSelectItem> >(
                    cmd, (d, r) =>
                {
                    d.Add(new ProjectStageSelectItem
                    {
                        ProjectId   = (Guid)r["ProjectId"],
                        ProjectName = r["ProjectName"].ToString(),
                        StageId     = (Guid)r["StageId"],
                        StageName   = r["StageName"].ToString()
                    });
                });
                return(items);
            }
        }
Example #10
0
        public List <StageModel> FindStageByProjectId(Guid projectId)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT s.*, di.DictItemValue AS StatusName, ue.RealName AS ManagerName FROM [Stage] s INNER JOIN sys_DictionaryItem di ON s.[Status] = di.DictItemId LEFT JOIN auth_UserExtend ue ON s.Manager = ue.UserId WHERE s.ProjectId = @ProjectId ORDER BY SortValue");
                dba.AddInParameter(cmd, "ProjectId", DbType.Guid, projectId);

                List <StageModel> data = dba.ExecuteReader <List <StageModel> >(
                    cmd, (d, r) =>
                {
                    d.Add(new StageModel
                    {
                        StageId     = (Guid)r["StageId"],
                        StageName   = r.GetStringOrNull("StageName"),
                        PrevStage   = r.GetGuidOrNull("PrevStage"),
                        NextStage   = r.GetGuidOrNull("NextStage"),
                        Manager     = r.GetGuidOrNull("Manager"),
                        ManagerName = r.GetStringOrNull("ManagerName"),
                        BeginTime   = r.GetDateTimeOrDefault("BeginTime"),
                        EndTime     = r.GetDateTimeOrDefault("EndTime"),
                        Status      = r.GetStringOrNull("Status"),
                        StatusName  = r.GetStringOrNull("StatusName"),
                        Description = r.GetStringOrNull("Description")
                    });
                });
                return(data);
            }
        }
Example #11
0
 public object SavePosition(PositionModel pModel)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         Department dept = (from d in context.Departments
                            where d.DepartmentId == pModel.DepartmentId
                            select d).Single();
         Guid?id = null;
         if (pModel.PositionId == Guid.Empty)
         {
             Position position = new Position();
             position.PositionId    = Guid.NewGuid();
             position.PositionName  = pModel.PositionName;
             position.PositionLevel = pModel.PositionLevel;
             position.Department    = dept;
             context.Positions.Add(position);
             id = position.PositionId;
         }
         else
         {
             Position oldPosition = context.Positions.Where(n => n.PositionId == pModel.PositionId).Single();
             if (oldPosition == null)
             {
                 throw new Exception("不存在此职位!");
             }
             oldPosition.PositionName  = pModel.PositionName;
             oldPosition.PositionLevel = pModel.PositionLevel;
             oldPosition.Department    = dept;
             id = oldPosition.PositionId;
         }
         int countChange = context.SaveChanges();
         return(new { Result = countChange > 0, ID = id });
     }
 }
Example #12
0
        public Boolean DeleteLaborCost(Guid?[] laborCostIds)
        {
            bool flag = false;

            if (laborCostIds != null && laborCostIds.Length > 0)
            {
                using (TeamDBContext context = new TeamDBContext())
                {
                    DatabaseAccess dba    = context.DatabaseAccess();
                    DbCommand      cmd    = dba.CreateCommand("DELETE FROM LaborCost WHERE LaborCostId=@LaborCostId");
                    int            length = laborCostIds.Length;
                    List <object>  param  = new List <object>(length);
                    for (int i = 0; i < length; i++)
                    {
                        param.Add(new { LaborCostId = laborCostIds[i] });
                    }
                    int EffectRow = dba.ExecuteNonQueryMultiple(cmd, param);
                    if (EffectRow > 0)
                    {
                        flag = true;
                    }
                }
            }
            else
            {
                flag = true;
            }
            return(flag);
        }
Example #13
0
        public List <WorkTimeModel> GetWorkTimeByMonth(Guid employeeId, int year, int month)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT w.WorkTimeId, w.BeginTime, w.EndTime, w.ProjectId, p.ProjectName, w.AttendanceType, di.DictItemValue AS AttendanceTypeName, w.FaultFlag FROM WorkTime w LEFT JOIN Project p ON w.ProjectId = p.ProjectId INNER JOIN sys_DictionaryItem di ON w.AttendanceType = di.DictItemId WHERE YEAR(w.BeginTime) = @Year AND MONTH(w.BeginTime) = @Month AND w.EmployeeId = @EmployeeId ORDER BY w.BeginTime");
                dba.AddInParameter(cmd, "Year", DbType.Int32, (object)year);
                dba.AddInParameter(cmd, "Month", DbType.Int32, (object)month);
                dba.AddInParameter(cmd, "EmployeeId", DbType.Guid, employeeId);

                List <WorkTimeModel> workTimes = dba.ExecuteReader <List <WorkTimeModel> >(
                    cmd, (d, r) =>
                {
                    d.Add(new WorkTimeModel
                    {
                        WorkTimeId         = (Guid)r["WorkTimeId"],
                        BeginTime          = Convert.ToDateTime(r["BeginTime"]),
                        EndTime            = Convert.ToDateTime(r["EndTime"]),
                        ProjectId          = r.GetGuidOrNull("ProjectId"),
                        ProjectName        = r.GetStringOrNull("ProjectName"),
                        AttendanceType     = r.GetStringOrNull("AttendanceType"),
                        AttendanceTypeName = r.GetStringOrNull("AttendanceTypeName"),
                        FaultFlag          = r.GetBooleanOrDefault("FaultFlag")
                    });
                });
                return(workTimes);
            }
        }
Example #14
0
 public List <LaborCostSelectItem> GetAllLaborCosts(int?targetType, int pageIndex, int pageSize, out int rowCount)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         DatabaseAccess dba        = context.DatabaseAccess();
         DbCommand      cmd        = dba.CreateCommand();
         StringBuilder  sqlBuilder = new StringBuilder("SELECT lab.*, ISNULL(u.RealName, p.PositionName) TargetName From LaborCost lab");
         sqlBuilder.Append(" LEFT JOIN auth_UserExtend u ON u.UserId = lab.TargetId")
         .Append(" LEFT JOIN Position p ON p.PositionId = lab.TargetId")
         .Append(" WHERE 1 = 1");
         if (targetType != null)
         {
             sqlBuilder.Append(" AND lab.TargetType = @TargetType");
             dba.AddInParameter(cmd, "TargetType", DbType.Int16, targetType);
         }
         sqlBuilder.Append(" ORDER BY lab.targetType");
         cmd.CommandText = sqlBuilder.ToString();
         List <LaborCostSelectItem> data = dba.ExecuteReaderPaging <List <LaborCostSelectItem> >(
             cmd, (d, r) =>
         {
             d.Add(new LaborCostSelectItem
             {
                 LaborCostId = (Guid)r["LaborCostId"],
                 TargetType  = (int)r.GetIntOrDefault("TargetType"),
                 TargetId    = (Guid)r.GetGuidOrNull("TargetId"),
                 TargetName  = r.GetStringOrNull("TargetName"),
                 UnitPrice   = r.GetDecimalOrDefault("UnitPrice"),
                 UnitValue   = r.GetDecimalOrDefault("UnitValue")
             });
         }, pageIndex, pageSize, out rowCount);
         return(data);
     }
 }
Example #15
0
        public void LoadEmployeeCost(EmployeeModel employee)
        {
            EmployeeQueryModel queryModel = employee as EmployeeQueryModel;

            if (queryModel == null)
            {
                return;
            }

            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT lc.UnitPrice AS PositionUnitPrice, lc.UnitValue AS PositionUnitValue, lc2.UnitPrice AS UserUnitPrice, lc2.UnitValue AS UserUnitValue FROM auth_User u INNER JOIN auth_UserExtend ue ON u.UserId = ue.UserId LEFT JOIN LaborCost lc ON ue.Position = lc.TargetId AND lc.TargetType = 1 LEFT JOIN LaborCost lc2 ON u.UserId = lc2.TargetId AND lc2.TargetType = 2 WHERE ue.UserId = @UserId");
                dba.AddInParameter(cmd, "UserId", DbType.Guid, queryModel.UserId);
                using (DbDataReader reader = dba.ExecuteReader(cmd))
                {
                    if (reader.Read())
                    {
                        queryModel.PositionUnitPrice = reader.GetDecimalOrDefault("PositionUnitPrice");
                        queryModel.PositionUnitValue = reader.GetDecimalOrDefault("PositionUnitValue");
                        queryModel.UserUnitPrice     = reader.GetDecimalOrDefault("UserUnitPrice");
                        queryModel.UserUnitValue     = reader.GetDecimalOrDefault("UserUnitValue");
                    }
                }
            }
        }
Example #16
0
        public List <LeaveBillModel> QueryLeaveBills(string employeeID, DateTime?beginTime, DateTime?endTime, int pageIndex, int pageSize, out int rowCount)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba        = context.DatabaseAccess();
                DbCommand      cmd        = dba.CreateCommand();
                StringBuilder  sqlBuilder = new StringBuilder("SELECT b.*, di.DictItemValue AS LeaveTypeName, ue.RealName AS EmployeeName, ue.DepartmentName FROM RequestLeaveBill b INNER JOIN sys_DictionaryItem di ON b.LeaveType = di.DictItemId INNER JOIN auth_UserExtend ue ON b.EmployeeId = ue.UserId WHERE 1 = 1");
                if (!String.IsNullOrEmpty(employeeID))
                {
                    sqlBuilder.Append(" AND b.EmployeeId = @EmployeeId");
                    dba.AddInParameter(cmd, "EmployeeId", DbType.String, employeeID);
                }
                if (beginTime != null)
                {
                    sqlBuilder.Append(" AND b.LeaveStart >= @BeginTime");
                    dba.AddInParameter(cmd, "BeginTime", DbType.DateTime, QueryParameterUtility.DateTimeStart(beginTime.Value));
                }
                if (endTime != null)
                {
                    sqlBuilder.Append(" AND b.LeaveStart <= @EndTime");
                    dba.AddInParameter(cmd, "EndTime", DbType.DateTime, QueryParameterUtility.DateTimeStart(endTime.Value));
                }
                sqlBuilder.Append(" ORDER BY b.CreateTime DESC");

                cmd.CommandText = sqlBuilder.ToString();

                List <LeaveBillModel> bills = dba.ExecuteReaderPaging <List <LeaveBillModel> >(cmd, (d, r) =>
                {
                    d.Add(ReadLeaveBill(r));
                }, pageIndex, pageSize, out rowCount);

                return(bills);
            }
        }
 public void Update(Team entity)
 {
     using (TeamDBContext db = new TeamDBContext()) {
         entity.UpdatedAt = DateTime.Now;
         db.SaveChanges();
     }
 }
Example #18
0
 public decimal GetWorkHours()
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         var result = context.WorkTimeSettings.Where(w => w.Enabled == true).Single();
         return(result.WorkHour.Value);
     }
 }
 public Team Insert(Team entity)
 {
     using (TeamDBContext db = new TeamDBContext()) {
         db.Teams.Add(entity);
         db.SaveChanges();
         return(entity);
     }
 }
 public void Delete(Team entity)
 {
     using (TeamDBContext db = new TeamDBContext()) {
         var record = db.Teams.Find(entity.Id);
         db.Teams.Remove(record);
         db.SaveChanges();
     }
 }
Example #21
0
 /// <summary>
 /// 根据员工ID获取员工的信息
 /// </summary>
 /// <param name="employeeId">员工ID</param>
 /// <returns></returns>
 public Employee GetEmployeeById(Guid employeeId)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         Employee emp = context.Employees.Where(e => e.EmployeeId == employeeId).Single();
         return(emp);
     }
 }
Example #22
0
        public List <EmployeeModel> QueryEmployeeInfo(string name, string status, int pageIndex, int pageSize, out int rowCount)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba        = context.DatabaseAccess();
                DbCommand      cmd        = dba.CreateCommand();
                StringBuilder  sqlBuilder = new StringBuilder("SELECT u.UserName, u.[Enabled], ue.*, e.*, lc.UnitPrice AS PositionUnitPrice, lc.UnitValue AS PositionUnitValue, lc2.UnitPrice AS UserUnitPrice, lc2.UnitValue AS UserUnitValue FROM auth_User u INNER JOIN auth_UserExtend ue ON u.UserId = ue.UserId LEFT JOIN Employee e ON ue.UserId = e.EmployeeId LEFT JOIN LaborCost lc ON ue.Position = lc.TargetId AND lc.TargetType = 1 LEFT JOIN LaborCost lc2 ON u.UserId = lc2.TargetId AND lc2.TargetType = 2 WHERE 1 = 1");
                if (!String.IsNullOrEmpty(name))
                {
                    sqlBuilder.Append(" AND ue.RealName LIKE @RealName");
                    dba.AddInParameter(cmd, "RealName", DbType.String, String.Concat("%", name, "%"));
                }
                sqlBuilder.Append(" AND ue.Status = @Status");
                if (String.IsNullOrEmpty(status))
                {
                    dba.AddInParameter(cmd, "Status", DbType.String, "1-01");
                }
                else
                {
                    dba.AddInParameter(cmd, "Status", DbType.String, String.Concat("1-0", status));
                }
                sqlBuilder.Append(" ORDER BY ue.RealName, u.UserName");
                cmd.CommandText = sqlBuilder.ToString();

                List <EmployeeModel> data = null;
                using (DbDataReader reader = dba.ExecuteReaderPaging(cmd, PrepareQueryEmployeeInfoCommand, pageIndex, pageSize, out rowCount))
                {
                    if (reader.HasRows)
                    {
                        data = new List <EmployeeModel>(50);
                        Guid          lastUserId = Guid.Empty;
                        Guid          currentUserId;
                        EmployeeModel employee = null;
                        while (reader.Read())
                        {
                            currentUserId = reader.GetGuidOrNull("UserId").Value;
                            if (currentUserId != lastUserId)
                            {
                                employee = ReadEmployeeInfo <EmployeeQueryModel>(reader);
                                if (employee.Roles == null)
                                {
                                    employee.Roles = new List <IRoleInfo>(5);
                                }
                                data.Add(employee);
                                lastUserId = currentUserId;
                            }

                            IRoleInfo role = ReadRoleInfo(reader);
                            if (role != null)
                            {
                                employee.Roles.Add(role);
                            }
                        }
                    }
                }
                return(data);
            }
        }
Example #23
0
 public List <WorkTimeSetting> GetWorkTimeSetting()
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         var result = from w in context.WorkTimeSettings
                      select w;
         return(result.ToList <WorkTimeSetting>());
     }
 }
Example #24
0
        public object SaveTemplete(StageTemplete st, Guid?[] stageTempleteIds)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                Guid?          id            = null;
                int            sortEffectRow = 0;
                int            countChange   = 0;
                DatabaseAccess dba           = context.DatabaseAccess();

                if (st.StageTempleteId == Guid.Empty)
                {
                    int totalCount   = context.StageTempletes.Count();
                    var maxSortValue = context.StageTempletes.Max(n => n.SortValue);
                    var results      = (from n in context.StageTempletes
                                        where n.StageName == st.StageName
                                        where n.ProjectType == st.ProjectType
                                        select n);
                    if (results.Count() > 0)
                    {
                        return(new { Result = false, ErrorMessage = String.Format("[{0}] 已存在,不可重复添加", st.StageName) });
                    }
                    st.StageTempleteId = Guid.NewGuid();
                    st.SortValue       = maxSortValue + 1;
                    context.StageTempletes.Add(st);
                    id = st.StageTempleteId;
                }
                else
                {
                    StageTemplete oldst = context.StageTempletes.Where(n => n.StageTempleteId == st.StageTempleteId).Single();
                    if (oldst == null)
                    {
                        throw new Exception("不存在此阶段信息!");
                    }
                    oldst.StageName   = st.StageName;
                    oldst.Description = st.Description;
                    id = st.StageTempleteId;
                }
                countChange = context.SaveChanges();

                using (var conn = dba.GetOpenConnection())
                {
                    if (stageTempleteIds != null && stageTempleteIds.Length > 0)
                    {
                        int           length = stageTempleteIds.Length;
                        List <object> param  = new List <object>(length);
                        for (int i = 0; i < length; i++)
                        {
                            param.Add(new { SortValue = i, StageTempleteId = stageTempleteIds[i] });
                        }
                        sortEffectRow = dba.ExecuteNonQueryMultiple("UPDATE StageTemplete SET SortValue = @SortValue WHERE StageTempleteId = @StageTempleteId", param);
                    }
                }

                return(new { Result = (countChange > 0 || sortEffectRow > 0), ID = id });
            }
        }
Example #25
0
 public List <HolidaySetting> GetHolidaySetting(int year)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         var result = from h in context.HolidaySettings
                      where h.SettingYear == year
                      select h;
         return(result.ToList <HolidaySetting>());
     }
 }
Example #26
0
 public List <HolidaySetting> GetHolidaySetting(DateTime begin, DateTime end)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         var result = from h in context.HolidaySettings
                      where h.HolidayDate >= begin && h.HolidayDate <= end
                      select h;
         return(result.ToList());
     }
 }
Example #27
0
 public WorkTimeSetting GetEnabledWorkTimeSetting()
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         WorkTimeSetting wts = context.WorkTimeSettings
                               .Where(s => s.Enabled == true)
                               .Single();
         return(wts);
     }
 }
Example #28
0
        public bool updateProjectMeeting(ProjectMeetingSummary meetingSum, Guid ProjectId, List <Guid> empGuids, List <string> empNames, List <string> acces)
        {
            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba         = context.DatabaseAccess();
                DbCommand      meetingCmd  = dba.CreateCommand("UPDATE ProjectMeetingSummarys SET StartTime =@StartTime, Content=@Content, Result=@Result,CreateUser=@CreateUser,CreateTime=@CreateTime WHERE MeetingId = @MeetingId");
                DbCommand      empDelCmd   = dba.CreateCommand("DELETE FROM ProjectMeetingEmployees WHERE MeetingId =@MeetingId");
                DbCommand      empCmd      = dba.CreateCommand("INSERT INTO ProjectMeetingEmployees VALUES (@MettingEmployeeId, @EmployeeName, @MeetingId, @EmployeeId)");
                DbCommand      accesCmd    = dba.CreateCommand("INSERT INTO MeetingAccessory VALUES (@AccessoryId, @Url, @MeetingId)");
                DbCommand      accesDelCmd = dba.CreateCommand("DELETE FROM MeetingAccessory WHERE MeetingId =@MeetingId ");

                int num = 0;
                int i   = 0;
                using (var tran = dba.BeginTransaction())
                {
                    ProjectMeetingEmployee pEmp         = null;
                    MeetingAccessory       meetingAcces = null;

                    UpdateMeetingParameters(dba, meetingCmd, meetingSum);
                    num += dba.ExecuteNonQuery(meetingCmd);

                    dba.AddInParameter(empDelCmd, "MeetingId", meetingSum.MeetingId);
                    dba.ExecuteNonQuery(empDelCmd);

                    if (empGuids != null && empGuids.Count() > 0)
                    {
                        AddEmployeeParameters(dba, empCmd);
                        for (; i < empGuids.Count(); i++)
                        {
                            pEmp = new ProjectMeetingEmployee();
                            pEmp.MettingEmployeeId = Guid.NewGuid();
                            pEmp.EmployeeName      = empNames[i];
                            updateEmployeeParameters(empCmd, pEmp, empGuids[i], meetingSum.MeetingId);
                            num += dba.ExecuteNonQuery(empCmd);
                        }
                    }
                    dba.AddInParameter(accesDelCmd, "MeetingId", meetingSum.MeetingId);
                    dba.ExecuteNonQuery(accesDelCmd);
                    if (acces != null && acces.Count() > 0)
                    {
                        AddAccessoryParameters(dba, accesCmd);
                        for (i = 0; i < acces.Count(); i++)
                        {
                            meetingAcces             = new MeetingAccessory();
                            meetingAcces.AccessoryId = Guid.NewGuid();
                            meetingAcces.Url         = acces[i];
                            updateAccessoryParameters(accesCmd, meetingAcces, meetingSum.MeetingId);
                            num += dba.ExecuteNonQuery(accesCmd);
                        }
                    }
                    tran.Complete();
                }
                return(num > 0);
            }
        }
Example #29
0
 public bool DeleteWorkTimes(Guid[] workTimeIdArray)
 {
     using (TeamDBContext context = new TeamDBContext())
     {
         DatabaseAccess   dba        = context.DatabaseAccess();
         DbCommand        cmd        = dba.CreateCommand("DELETE FROM [WorkTime] WHERE WorkTimeId = @p0");
         IList <object[]> parameters = QueryParameterUtility.TransferMultipleParameters <Guid>(workTimeIdArray);
         int affectRows = dba.ExecuteNonQueryMultiple(cmd, parameters);
         return(affectRows > 0);
     }
 }
Example #30
0
        public bool UpdateProject(Project project, Guid[] teamEmployees = null, Budget[] budgets = null)
        {
            Guard.ArgumentNotNull(project, "project");

            int affectRows = 0;

            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                using (var conn = dba.GetOpenConnection())
                {
                    Project old = context.Projects
                                  .Where(p => p.ProjectId == project.ProjectId)
                                  .SingleOrDefault();
                    if (old == null)
                    {
                        throw new ModuleLogicException("正在更新的项目信息不存在,或已被删除。");
                    }
                    old.ProjectName = project.ProjectName;
                    old.ProjectType = project.ProjectType;
                    old.BeginTime   = project.BeginTime;
                    old.EndTime     = project.EndTime;
                    old.Status      = project.Status;
                    old.PM          = project.PM;
                    old.ParentId    = project.ParentId;

                    if (teamEmployees != null && teamEmployees.Length > 0)
                    {
                        DbCommand cmd = dba.CreateCommand("DELETE FROM [ProjectTeam] WHERE ProjectId = @ProjectId");
                        dba.AddInParameter(cmd, "ProjectId", DbType.Guid, project.ProjectId);
                        affectRows += dba.ExecuteNonQuery(cmd);

                        affectRows += InsertProjectTeam(dba, project.ProjectId, teamEmployees);
                    }

                    if (budgets != null)
                    {
                        DbCommand cmd = dba.CreateCommand("DELETE FROM [Budget] WHERE ProjectId = @ProjectId");
                        dba.AddInParameter(cmd, "ProjectId", DbType.Guid, old.ProjectId);
                        affectRows += dba.ExecuteNonQuery(cmd);

                        foreach (var b in budgets)
                        {
                            b.BudgetId = Guid.NewGuid();
                            b.Project  = old;
                            context.Budgets.Add(b);
                        }
                    }

                    affectRows += context.SaveChanges();
                    return(affectRows > 0);
                }
            }
        }