Exemple #1
0
        public JsonResult SaveNotifier(string area, string centro, string depto, string approver,
                                       [FromServices] IRepository <EmployeeNotify> employeeNotify,
                                       [FromServices] IOrganigramaModelFactory organigramaModelFactory)
        {
            int order      = 1;
            var aprovOrder = employeeNotify.SearhItemsFor(f => f.Area.Equals(area) && f.Centro.Equals(centro) && f.Departamento.Equals(depto));

            if (aprovOrder.Any())
            {
                order = aprovOrder.Count() + 1;
            }

            var emp = organigramaModelFactory.GetEmployeeData(approver);

            var empNotify = new EmployeeNotify()
            {
                Area         = area,
                Centro       = centro,
                Departamento = depto,
                Orden        = order,
                Puesto       = emp.GeneralInfo.JobTitle,
                RowGuid      = Guid.Parse(emp.HierarchyGuid)
            };

            employeeNotify.Create(empNotify);



            return(Json("ok"));
        }
        public async Task <EmployeeNotify> GetEmployeeDetails([FromUri] string employeeNumber, [FromUri] int?timeCategoryId)
        {
            EmployeeNotify employeeNotif;

            if (employeeNumber == null || timeCategoryId == null)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "EmployeeNumber or TimeCategoryId is not set"
                };
                employeeNotif = new EmployeeNotify
                {
                    Error = error
                };
                return(employeeNotif);
            }

            int?employeeId = await _dailyTimeRepo.SelectByEmployeeNumber(employeeNumber);



            if (employeeId == null)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "Employee Number do not exist"
                };
                employeeNotif = new EmployeeNotify
                {
                    Error = error
                };
                return(employeeNotif);
            }


            var notify = await _dailyTimeRepo.GetEmplopyeeNotification(employeeId, timeCategoryId);

            employeeNotif = new EmployeeNotify
            {
                IsSuspended     = notify.IsSuspended,
                IsResign        = notify.IsResign,
                IsTimeCheck     = notify.IsTimeCheck,
                Employee        = await _employeeRepo.SelectById(employeeId),
                DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId)
            };


            if (employeeNotif.IsSuspended || employeeNotif.IsTimeCheck || employeeNotif.IsResign)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "Employee is Suspended/Resign/Have already record"
                };
                employeeNotif.Error = error;

                return(employeeNotif);
            }

            var model = new DailyTimeRecord
            {
                DateCreated    = DateTime.Now,
                EmployeeId     = employeeId,
                TimeCategoryId = timeCategoryId,
                Time           = DateTime.Now
            };

            await _dailyTimeRepo.Insert(model);

            employeeNotif.DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId);

            return(employeeNotif);
        }