Ejemplo n.º 1
0
        public IActionResult GetDefualtConfigData()
        {
            try
            {
                var conf = this.DBContext.TimeSheetConfig.FirstOrDefault();
                if (conf == null)
                {
                    conf = new TimeSheetConfig()
                    {
                        DefualtOpenTimeSheetWeeks = 1,
                        TimeSheetLockDate         = DateTime.Today
                    };
                    this.DBContext.TimeSheetConfig.Add(conf);
                }

                return(Ok(new vmTimeSheetConfig()
                {
                    defualtOpenTimeSheetWeeks = conf.DefualtOpenTimeSheetWeeks,
                    timeSheetLockDate = DateUtility.GetPersianDate(conf.TimeSheetLockDate)
                }));
            }
            catch (Exception ex)
            {
                return(this.ReturnError(ex, "خطا در دریافت اطلاعات پیش فرض سیستم"));
            }
        }
        public static HoliDayJson ToJson(Holiday holiday)
        {
            var json = new HoliDayJson();

            json.CalendarID = holiday.CalendarID;
            json.ID         = holiday.ID;
            json.Date       = DateUtility.GetPersianDate(holiday.Date);
            return(json);
        }
Ejemplo n.º 3
0
        public WorkHourHistoryJson ToJson(WorkHourHistory entity)
        {
            WorkHourHistoryJson json = new WorkHourHistoryJson();

            json.Action = entity.Action;
            json.Description = entity.Description;
            json.ID = entity.ID;
            json.ManagerName = entity.Manager.UserTitle;
            json.PersianDate = DateUtility.GetPersianDate(entity.Date);
            json.Time = DateUtility.ConvertDateTimeToTime(entity.Date);
            json.StageTitle = entity.Stage.Title;

            return json;
        }
Ejemplo n.º 4
0
        public WorkHourJson ToJson(WorkHour entity)
        {
            var result = new WorkHourJson();

            result.ID                 = entity.ID;
            result.Action             = entity.Action;
            result.PersianDate        = DateUtility.GetPersianDate(entity.Date);
            result.Description        = entity.Description;
            result.UserName           = entity.Employee.UserName;
            result.Hours              = entity.Hours;
            result.ProjectTitle       = entity.Project.Title;
            result.TaskTitle          = entity.Task.Title;
            result.WorkFlowStageTitle = entity.WorkflowStage.Title;
            return(result);
        }
Ejemplo n.º 5
0
        public HourlyMissionJson ToJson(HourlyMission hourlyMission)
        {
            HourlyMissionJson result = new HourlyMissionJson();

            result.ID              = hourlyMission.ID;
            result.RegisterDate    = DateUtility.GetPersianDate(hourlyMission.RegisterDate);
            result.MissionDate     = DateUtility.GetPersianDate(hourlyMission.Date);
            result.From            = DateUtility.ConvertDateTimeToTime(hourlyMission.From);
            result.TO              = DateUtility.ConvertDateTimeToTime(hourlyMission.To);
            result.Organisation    = hourlyMission.OrganisationId != null ? hourlyMission.Organisation.Title : "فاقد واحد سازمانی";
            result.PersonnelNumber = hourlyMission.User.Code != null ? hourlyMission.User.Code : "فاقد کد پرسنلی";
            result.ProjectTitle    = hourlyMission.Project != null ? hourlyMission.Project.Title : "فاقد پروژه";
            result.UserTitle       = hourlyMission.User.UserTitle;
            return(result);
        }
Ejemplo n.º 6
0
        public IActionResult GetDefaultPoliciesList(string ver)
        {
            try
            {
                if (!this.MainChecks(ver, out string error))
                {
                    throw new Exception(error);
                }

                var now    = DateTime.Now.Date;
                var answer = this.DBContext.TimesheetPolicies
                             .Where(p => p.IsDefault && p.Validity.Date >= now && p.UserId.HasValue)
                             .OrderBy(p => p.User.UserTitle)
                             .Select(p => new
                {
                    p.Id,
                    p.isDeactivated,
                    p.IsOpen,
                    p.Start,
                    p.Finish,
                    p.User.UserTitle,
                    p.UserId,
                    p.Validity,
                    p.UserMustHasHozoor,
                    p.CreateDate
                }).ToList().Select(p => new vmTimesheetPolicy
                {
                    id                = p.Id,
                    finish            = DateUtility.GetPersianDate(p.Finish),
                    isDeactivated     = p.isDeactivated,
                    createDate        = DateUtility.GetPersianDate(p.CreateDate),
                    isOpen            = p.IsOpen,
                    start             = DateUtility.GetPersianDate(p.Start),
                    userId            = p.UserId,
                    userTitle         = p.UserTitle,
                    userMustHasHozoor = p.UserMustHasHozoor,
                    validity          = DateUtility.GetPersianDate(p.Validity)
                });


                return(Ok(answer));
            }
            catch (Exception ex)
            {
                return(this.ReturnError(ex, "خطا در دریافت اطلاعات قانون های اصلی سیستم"));
            }
        }
Ejemplo n.º 7
0
        public DailyLeaveJson ToJson(DailyLeave dailyLeave)
        {
            DailyLeaveJson result = new DailyLeaveJson();

            result.ID              = dailyLeave.ID;
            result.RejisterDate    = DateUtility.GetPersianDate(dailyLeave.RegisterDate);
            result.From            = DateUtility.GetPersianDate(dailyLeave.From);
            result.TO              = DateUtility.GetPersianDate(dailyLeave.To);
            result.Organisation    = dailyLeave.OrganisationId != null? dailyLeave.Organisation.Title : "فاقد واحد سازمانی";
            result.PersonnelNumber = dailyLeave.User.Code != null ?  dailyLeave.User.Code : "فاقد کد پرسنلی";
            result.ProjectTitle    = dailyLeave.Project != null? dailyLeave.Project.Title:"فاقد پروژه";
            result.Type            = Enum.IsDefined(dailyLeave.Type) ? dailyLeave.Type.GetDisplayName() :"فاقد نوع";
            result.Successor       = dailyLeave.Successor != null?dailyLeave.Successor.UserTitle.ToString() : "فاقد جانشین";

            result.UserTitle = dailyLeave.User.UserTitle;
            return(result);
        }
        public FinalReport AssembleDailyOnProjects(ReportParametersFromToJson parametres)
        {
            var result = new FinalReport();

            UnitOfWork       uow              = new UnitOfWork();
            var              currentUser      = new UserHelper().GetCurrent();
            TimeSheetManager TimeSheetManager = new TimeSheetManager(uow);
            var              from             = DateUtility.GetMiladiDate(parametres.FromDate);
            var              to          = DateUtility.GetMiladiDate(parametres.ToDate);
            var              currentDate = from;

            var workHours = TimeSheetManager.GetWorkHoursByUser(currentUser, from, to);



            //سطر ها


            while (currentDate.Date <= to)
            {
                var row = new ReportRow();
                row.ID    = Guid.NewGuid();
                row.Title = DateUtility.GetPersianDate(currentDate);
                result.Rowes.Add(row);
                currentDate = currentDate.AddDays(1).Date;
            }

            var SumTotal = new ReportRow();

            SumTotal.ID    = Guid.NewGuid();
            SumTotal.Title = "جمع کل";
            result.Rowes.Add(SumTotal);


            //ستون ها

            foreach (var wh in workHours.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList())
            {
                var field = new Field();
                field.ID    = wh.ProjectId;
                field.Title = wh.Project.Title;
                result.Fields.Add(field);

                foreach (var row in result.Rowes)
                {
                    if (row.Title == "جمع کل")
                    {
                        var sumWorkHour           = workHours.Where(x => x.ProjectId == wh.ProjectId).Sum(x => x.Hours);
                        var fieldValuesumWorkHour = new FieldValue();
                        fieldValuesumWorkHour.CalculativeValue = sumWorkHour;
                        fieldValuesumWorkHour.FieldId          = field.ID;
                        fieldValuesumWorkHour.RowId            = row.ID;
                        fieldValuesumWorkHour.Value            = DateUtility.ConvertToTimeSpan(sumWorkHour);
                        row.Values.Add(fieldValuesumWorkHour);
                    }
                    else
                    {
                        var sumWorkHour           = workHours.Where(x => x.Date == DateUtility.GetMiladiDate(row.Title) && x.ProjectId == wh.ProjectId).Sum(x => x.Hours);
                        var fieldValuesumWorkHour = new FieldValue();
                        fieldValuesumWorkHour.CalculativeValue = sumWorkHour;
                        fieldValuesumWorkHour.FieldId          = field.ID;
                        fieldValuesumWorkHour.RowId            = row.ID;
                        fieldValuesumWorkHour.Value            = DateUtility.ConvertToTimeSpan(sumWorkHour);
                        row.Values.Add(fieldValuesumWorkHour);
                    }
                }
            }

            var Aggregation = new Field();

            Aggregation.Title = "جمع کارکرد";
            Aggregation.ID    = Guid.NewGuid();
            result.Fields.Add(Aggregation);

            var PresenceTotal = new Field();

            PresenceTotal.Title = "جمع حضور";
            PresenceTotal.ID    = Guid.NewGuid();
            result.Fields.Add(PresenceTotal);

            var DifferenceTotal = new Field();

            DifferenceTotal.Title = "جمع اختلاف";
            DifferenceTotal.ID    = Guid.NewGuid();
            result.Fields.Add(DifferenceTotal);

            foreach (var row in result.Rowes)
            {
                if (row.Title == "جمع کل")
                {
                    var sumworkHourTotal = workHours.Sum(X => X.Hours);
                    var fildvalueWork    = new FieldValue();
                    fildvalueWork.FieldId = Guid.NewGuid();
                    fildvalueWork.RowId   = row.ID;
                    fildvalueWork.Value   = DateUtility.ConvertToTimeSpan(sumworkHourTotal);
                    row.Values.Add(fildvalueWork);

                    double sumPresenceHourTotal = 0;
                    sumPresenceHourTotal = TimeSheetManager.GetPresHoursByUser(currentUser, from, to).Sum(x => x.Hours);
                    var fildvaluePresenceTotal = new FieldValue();
                    fildvaluePresenceTotal.FieldId = Guid.NewGuid();
                    fildvaluePresenceTotal.RowId   = row.ID;
                    fildvaluePresenceTotal.Value   = DateUtility.ConvertToTimeSpan(sumPresenceHourTotal);
                    row.Values.Add(fildvaluePresenceTotal);


                    var fildvalueDifferencTotal = new FieldValue();
                    fildvalueDifferencTotal.FieldId = Guid.NewGuid();
                    fildvalueDifferencTotal.RowId   = row.ID;
                    fildvalueDifferencTotal.Value   = DateUtility.ConvertToTimeSpan(sumPresenceHourTotal - sumworkHourTotal);
                    row.Values.Add(fildvalueDifferencTotal);
                }
                else
                {
                    var sumworkHour   = row.Values.Sum(y => y.CalculativeValue);
                    var fildvalueWork = new FieldValue();
                    fildvalueWork.FieldId = Guid.NewGuid();
                    fildvalueWork.RowId   = row.ID;
                    fildvalueWork.Value   = DateUtility.ConvertToTimeSpan(sumworkHour);
                    row.Values.Add(fildvalueWork);
                    double sumPresenceHour = 0;

                    sumPresenceHour = TimeSheetManager.GetPresenceHourByUserIdAndDate(currentUser.ID, DateUtility.GetMiladiDate(row.Title)) != null
                    ? TimeSheetManager.GetPresenceHourByUserIdAndDate(currentUser.ID, DateUtility.GetMiladiDate(row.Title)).Hours : 0;

                    var fildvaluePresence = new FieldValue();
                    fildvaluePresence.FieldId = Guid.NewGuid();
                    fildvaluePresence.RowId   = row.ID;
                    fildvaluePresence.Value   = DateUtility.ConvertToTimeSpan(sumPresenceHour);
                    row.Values.Add(fildvaluePresence);

                    var fildvalueDifferenc = new FieldValue();
                    fildvalueDifferenc.FieldId = Guid.NewGuid();
                    fildvalueDifferenc.RowId   = row.ID;
                    fildvalueDifferenc.Value   = DateUtility.ConvertToTimeSpan(sumPresenceHour - sumworkHour);
                    row.Values.Add(fildvalueDifferenc);
                }
            }



            result.HeaderTitle      = "گزارش روزانه پروژه ها";
            result.FirstColumnTitle = "تاریخ";



            return(result);
        }