Ejemplo n.º 1
0
        public static PmsProject SelPmsObject(PmsProject _param)
        {
            if (_param.Type == null)
            {
                _param.Type = PmsConstant.TYPE_PROJECT;
            }
            PmsProject pmsProject = DaoFactory.GetData <PmsProject>("Pms.SelPmsProject", _param);

            pmsProject.BPolicy = BPolicyRepository.SelBPolicy(new BPolicy {
                Type = pmsProject.Type, OID = pmsProject.BPolicyOID
            }).First();
            pmsProject.Calendar = CalendarRepository.SelCalendar(new Calendar {
                Type = CommonConstant.TYPE_CALENDAR, OID = pmsProject.CalendarOID
            });
            PmsRelationship Member = PmsRelationshipRepository.SelPmsRelationship(new PmsRelationship {
                Type = PmsConstant.RELATIONSHIP_MEMBER, RootOID = pmsProject.OID, RoleOID = BDefineRepository.SelDefine(new BDefine {
                    Module = PmsConstant.MODULE_PMS, Type = CommonConstant.DEFINE_ROLE, Name = PmsConstant.ROLE_PM
                }).OID
            }).First();

            pmsProject.PMNm = PersonRepository.SelPerson(new Person {
                OID = Member.ToOID
            }).Name;
            return(pmsProject);
        }
Ejemplo n.º 2
0
        public static PmsRelationship GetObjWbsStructure(int _level, int _fromOID, PmsProject _proj)
        {
            List <DateTime> lHoliday = CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = _proj.OID, IsHoliday = 1
            }).Select(val => DateTime.Parse(val.Year + "-" + val.Month + "-" + val.Day)).ToList();
            string strHoliday = string.Join(",", CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = _proj.OID, IsHoliday = 1
            }).Select(value => value.FullDate.ToString().ToArray()));

            PmsRelationship getStructure = new PmsRelationship();

            getStructure.Level       = _level;
            getStructure.ToOID       = _fromOID;
            getStructure.ToData      = _proj;
            getStructure.ObjName     = _proj.Name;
            getStructure.Description = _proj.Description;
            getStructure.ObjType     = _proj.Type;
            getStructure.EstDuration = _proj.EstDuration;
            getStructure.EstStartDt  = _proj.EstStartDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.EstStartDt)) : _proj.EstStartDt;

            getStructure.EstEndDt = _proj.EstEndDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.EstEndDt)) : _proj.EstEndDt;

            getStructure.ActDuration = _proj.ActDuration;
            getStructure.ActStartDt  = _proj.ActStartDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.ActStartDt)) : _proj.ActStartDt;

            getStructure.ActEndDt = _proj.ActEndDt != null?Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", _proj.ActEndDt)) : _proj.ActEndDt;

            getStructure.ObjSt      = _proj.BPolicyOID;
            getStructure.ObjStNm    = _proj.BPolicy.StatusNm;
            getStructure.Complete   = _proj.Complete;
            getStructure.WorkingDay = _proj.WorkingDay;
            getStructure.Id         = null;
            getStructure.Dependency = null;
            if (_proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PREPARE || _proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PAUSED)
            {
                getStructure.diseditable = PmsConstant.DISEDITABLE;
            }
            else
            {
                getStructure.diseditable = PmsConstant.FLOWEDITABLE;
                if (_proj.ActEndDt != null)
                {
                    getStructure.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(_proj.EstEndDt), Convert.ToDateTime(_proj.ActEndDt), Convert.ToInt32(_proj.WorkingDay), lHoliday);
                }
                else
                {
                    getStructure.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(_proj.EstEndDt), DateTime.Now, Convert.ToInt32(_proj.WorkingDay), lHoliday);
                }
            }
            GetWbsStructure(getStructure, _fromOID, Convert.ToInt32(_proj.WorkingDay), strHoliday, _proj, lHoliday);
            return(getStructure);
        }
Ejemplo n.º 3
0
        public static List <PmsProject> SelPmsObjects(PmsProject _param)
        {
            if (_param.Type == null)
            {
                _param.Type = PmsConstant.TYPE_PROJECT;
            }
            List <PmsProject> lPmsProject = DaoFactory.GetList <PmsProject>("Pms.SelPmsProject", _param);

            lPmsProject.ForEach(dObj =>
            {
                dObj.BPolicy = BPolicyRepository.SelBPolicy(new BPolicy {
                    Type = dObj.Type, OID = dObj.BPolicyOID
                }).First();
            });
            return(lPmsProject);
        }
Ejemplo n.º 4
0
        public static List <Dictionary <string, object> > GetLDGanttWbs(string OID)
        {
            int        Level = 0;
            PmsProject proj  = PmsProjectRepository.SelPmsObject(new PmsProject {
                OID = Convert.ToInt32(OID)
            });
            List <DateTime> lHoliday = CalendarDetailRepository.SelCalendarDetails(new CalendarDetail {
                CalendarOID = proj.CalendarOID, IsHoliday = 1
            }).Select(val => DateTime.Parse(val.Year + "-" + val.Month + "-" + val.Day)).ToList();
            List <Dictionary <string, object> > ldPmsWbs = new List <Dictionary <string, object> >();

            Dictionary <string, object> dProj = new Dictionary <string, object>();

            dProj.Add("oid", proj.OID);
            dProj.Add("id", 0);
            dProj.Add("name", proj.Name);
            dProj.Add("progress", 0);
            dProj.Add("progressByWorklog", false);
            dProj.Add("relevance", 0);
            dProj.Add("type", "");
            dProj.Add("typeId", "");
            dProj.Add("description", proj.Description);
            dProj.Add("code", Level);
            dProj.Add("level", Level);
            if (proj.BPolicy.Name != PmsConstant.POLICY_PROJECT_PREPARE)
            {
                if (proj.ActEndDt != null)
                {
                    dProj.Add("status", "STATUS_DONE");
                }
                else
                {
                    int delay = PmsUtils.CalculateDelay(Convert.ToDateTime(proj.EstEndDt), DateTime.Now, Convert.ToInt32(proj.WorkingDay), lHoliday);
                    if (delay > 1 && delay <= PmsConstant.DELAY)
                    {
                        dProj.Add("status", "STATUS_WAITING");
                    }
                    else if (delay > PmsConstant.DELAY)
                    {
                        dProj.Add("status", "STATUS_FAILED");
                    }
                    else
                    {
                        dProj.Add("status", "STATUS_ACTIVE");
                    }
                }
            }
            else
            {
                dProj.Add("status", "STATUS_SUSPENDED");
            }
            dProj.Add("depends", "");
            dProj.Add("canWrite", true);
            dProj.Add("start", proj.EstStartDt);
            dProj.Add("duration", proj.EstDuration);
            dProj.Add("end", proj.EstEndDt);
            dProj.Add("ActStart", proj.ActStartDt != null ? string.Format("{0:yyyy-MM-dd}", proj.ActStartDt) : "");
            dProj.Add("ActDuration", proj.ActDuration);
            dProj.Add("ActEnd", proj.ActEndDt != null ? string.Format("{0:yyyy-MM-dd}", proj.ActEndDt) : "");
            dProj.Add("startIsMilestone", false);
            dProj.Add("endIsMilestone", false);
            dProj.Add("collapsed", false);
            dProj.Add("assigs", new List <object>());
            ldPmsWbs.Add(dProj);
            GetGanttSturcture(dProj, ldPmsWbs, Convert.ToInt32(proj.WorkingDay), lHoliday);
            return(ldPmsWbs);
        }
Ejemplo n.º 5
0
 public static void GetWbsStructure(PmsRelationship _relObj, int _projOID, int _workingDay, string _holiday, PmsProject _proj, List <DateTime> _lHoliday)
 {
     _relObj.RootOID  = _projOID;
     _relObj.Children = PmsRelationshipRepository.SelPmsRelationship(new PmsRelationship {
         Type = PmsConstant.RELATIONSHIP_WBS, FromOID = _relObj.ToOID
     });
     _relObj.Children.ForEach(item =>
     {
         item.Level = _relObj.Level + 1;
         //item.FromData = PmsProcessRepository.SelPmsProcess(new PmsProcess { OID = item.FromOID });
         //item.ToData = PmsProcessRepository.SelPmsProcess(new PmsProcess { OID = item.ToOID });
         PmsProcess tmpFromData = PmsProcessRepository.SelPmsProcess(new PmsProcess {
             OID = item.FromOID
         });
         PmsProcess tmpToData = PmsProcessRepository.SelPmsProcess(new PmsProcess {
             OID = item.ToOID
         });
         item.ObjName     = tmpToData.Name;
         item.Description = tmpToData.Description;
         item.ObjType     = tmpToData.Type;
         item.EstDuration = tmpToData.EstDuration;
         item.EstStartDt  = tmpToData.EstStartDt != null ? Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", tmpToData.EstStartDt)) : tmpToData.EstStartDt;
         item.EstEndDt    = tmpToData.EstEndDt != null ? Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", tmpToData.EstEndDt)) : tmpToData.EstEndDt;
         item.ActDuration = tmpToData.ActDuration;
         item.ActStartDt  = tmpToData.ActStartDt != null ? Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", tmpToData.ActStartDt)) : tmpToData.ActStartDt;
         item.ActEndDt    = tmpToData.ActEndDt != null ? Convert.ToDateTime(string.Format("{0:yyyy-MM-dd}", tmpToData.ActEndDt)) : tmpToData.ActEndDt;
         item.ObjSt       = tmpToData.BPolicyOID;
         item.ObjStNm     = tmpToData.BPolicy.StatusNm;
         item.Id          = tmpToData.Id;
         item.Dependency  = tmpToData.Dependency;
         item.Complete    = tmpToData.Complete;
         item.WorkingDay  = _workingDay;
         item.Members     = new List <PmsRelationship>();
         PmsRelationshipRepository.SelPmsRelationship(new PmsRelationship {
             FromOID = item.ToOID, Type = PmsConstant.RELATIONSHIP_MEMBER
         }).ForEach(member =>
         {
             Person person = PersonRepository.SelPerson(new Person {
                 OID = member.ToOID
             });
             item.Members.Add(new PmsRelationship {
                 FromOID = item.ToOID, ToOID = person.OID, PersonNm = person.Name, Thumbnail = person.Thumbnail
             });
             person = null;
         });
         if (_proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PREPARE || _proj.BPolicy.Name == PmsConstant.POLICY_PROJECT_PAUSED)
         {
         }
         else
         {
             item.diseditable = PmsConstant.DISEDITABLE;
         }
         if (tmpToData.BPolicy.Name == PmsConstant.POLICY_PROCESS_PAUSED)
         {
             if (tmpToData.ActEndDt != null)
             {
                 item.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(tmpToData.EstEndDt), Convert.ToDateTime(tmpToData.ActEndDt), Convert.ToInt32(_proj.WorkingDay), _lHoliday);
             }
             else
             {
                 item.Delay = PmsUtils.CalculateDelay(Convert.ToDateTime(tmpToData.EstEndDt), DateTime.Now, Convert.ToInt32(_proj.WorkingDay), _lHoliday);
             }
         }
         GetWbsStructure(item, _projOID, _workingDay, _holiday, _proj, _lHoliday);
     });
 }
Ejemplo n.º 6
0
 public static int UdtPmsProject(PmsProject _param)
 {
     return(DaoFactory.SetUpdate("Pms.UdtPmsProject", _param));
 }
Ejemplo n.º 7
0
 public static int InsPmsProject(PmsProject _param)
 {
     return(DaoFactory.SetInsert("Pms.InsPmsProject", _param));
 }