public IActionResult ViewAll(int idFormat, [FromServices] IOrganigramaModelFactory organigramModelFactory, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] INotificationModelFactory notificationModelFactory, [FromServices] IHttpContextAccessor _httpContextAccessor) { FormatApproverPendingModel model = new FormatApproverPendingModel(); var formats = notificationModelFactory.NotificaticonsItems; var format = formatRepository.GetElement(idFormat); if (format != null) { var employee = organigramModelFactory.GetEmployeeData(format.EmployeeId); if (employee != null) { model.FormatEmployee.Area = employee.Area; model.FormatEmployee.JobCenter = employee.JobCenter; model.FormatEmployee.Departamento = employee.Departamento; model.FormatEmployee.Name = $"{employee.GeneralInfo.FirstName} {employee.GeneralInfo.LastName} {employee.GeneralInfo.LastName2}"; model.FormatEmployee.PicturePath = employee.GeneralInfo.Picture; } var formatDetail = formats.Where(u => u.Id.Equals(idFormat)); if (formatDetail.Any()) { model.FormatDetail = formatDetail.FirstOrDefault(); } } return(View(model)); }
public NotificationModelFactory(IRepository <EmployeeFormat> formatRepository, IRepository <FormatApprover> formatApproverRepository, IHttpContextAccessor httpContextAccessor, IOrganigramaModelFactory organigramaModelFactory, IRepository <PermissionType> permissionTypeRepository, SignInManager <IdentityUser> signInManager, UserManager <IdentityUser> userManager) { _notification = 0; this._formatApproverRepository = formatApproverRepository; this._formatRepository = formatRepository; this._httpContextAccessor = httpContextAccessor; this._organigramaModelFactory = organigramaModelFactory; this._permissionTypeRepository = permissionTypeRepository; AllNotificaticonsItems = new List <NotificacionModelItem>(); NotificaticonsItems = new List <NotificacionModelItem>(); LastVacationsNotificationItems = new List <NotificacionModelItem>(); LastPermissionsNotificationItems = new List <NotificacionModelItem>(); this._signInManager = signInManager; this._userManager = userManager; CountPendigFormat(); }
public JsonResult GetNotifiers(int id, [FromServices] IRepository <EmployeeNotify> employeeNotify, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { var organigrama = organigramaModelFactory.GetAllData().Employess; var row = employeeNotify.GetElement(id); var rows = employeeNotify.SearhItemsFor(u => u.Area.Equals(row.Area) && u.Centro.Equals(row.Centro) && u.Departamento.Equals(row.Departamento)); EmployeeNotificationModel model = new EmployeeNotificationModel(); if (rows.Any()) { var emps = (from apv in rows join org in organigrama on apv.RowGuid.ToString().ToLower() equals org.RowId.ToLower() select new EmployeeNotificationItem() { Id = apv.Id, Area = apv.Area, Centro = apv.Centro, Puesto = org.JobTitle, RowGuid = apv.RowGuid.ToString(), Notifier = $"{org.Name}", Email = org.UserName }).ToList(); model.Notifications = emps; } return(Json(new { area = row.Area, centro = row.Centro, depto = row.Departamento, collection = model.Notifications })); }
public JsonResult GetApprovers(int id, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { var organigrama = organigramaModelFactory.GetAllData().Employess; var row = formatApproversRepository.GetElement(id); var rows = formatApproversRepository.SearhItemsFor(u => u.Area.Equals(row.Area) && u.Centro.Equals(row.Centro) && u.Departamento.Equals(row.Departamento)); FormatApproverModel model = new FormatApproverModel(); if (rows.Any()) { var emps = (from apv in rows join org in organigrama on apv.RowGuid.ToString().ToLower() equals org.RowId.ToLower() select new FormatApproverItem() { Id = apv.Id, Area = apv.Area, Centro = apv.Centro, Puesto = org.JobTitle, RowGuid = apv.RowGuid.ToString(), Approver = $"{org.Name}", Order = apv.Orden }).ToList(); model.Approvers = emps; } return(Json(new { area = row.Area, centro = row.Centro, depto = row.Departamento, collection = model.Approvers })); }
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 EmployeeFormatModelFactory(IRepository <EmployeeFormat> formatRepository, IOrganigramaModelFactory organigrama, IRepository <PermissionType> permissionType) { this._formatRepository = formatRepository; this._organigrama = organigrama; this._permissionType = permissionType; }
// GET: /<controller>/ public IActionResult Index(string employee, [FromServices] IRepository <EmployeeHistory> empHistory, [FromServices] IOrganigramaModelFactory organigramaFactory) { var orgData = organigramaFactory.GetEmployeeData(employee); var history = empHistory.SearhItemsFor(e => e.EmployeeId.Equals(orgData.GeneralInfo.Id)); EmployeeHistoryModel model = new EmployeeHistoryModel() { EmployeeId = employee, Area = orgData.Area, JobCenter = orgData.JobCenter, FirstName = orgData.GeneralInfo.FirstName, LastName = orgData.GeneralInfo.LastName, EmployeeHistory = history.Select(y => new EmployeeHistoryItem() { DateChange = y.DateChange.ToShortDateString(), Descripcion = y.Descripcion, EmployeeId = y.EmployeeId, JobActual = y.JobActual, JobLast = y.JobLast, RegisterDate = y.RegisterDate.ToShortDateString(), UserId = y.UserId, Id = y.Id }).ToList() }; return(View(model)); }
public DashboardHistoryController(IDashboardModelFactory dashboardModelFactory, IOrganigramaModelFactory organigramaModelFactory, IEmployeeFormatModelFactory employeeFormatModelFactory) { this._dashboardModelFactory = dashboardModelFactory; this._organigramaModelFactory = organigramaModelFactory; this._employeeFormatModelFactory = employeeFormatModelFactory; }
public JsonResult GetFormatData(int id, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] IOrganigramaModelFactory _organigramaModelFactory, [FromServices] IRepository <PermissionType> _permissionTypeRepository) { StringBuilder sb = new StringBuilder(); var result = formatRepository.GetElement(id); string type = _permissionTypeRepository.GetElement(result.PermissionType).Description; string name = ""; if (result.EmployeeSubstitute != "0") { var employee = _organigramaModelFactory.GetEmployeeData(result.EmployeeSubstitute.TrimStart(new Char[] { '0' })); name = $"{employee.GeneralInfo.FirstName} {employee.GeneralInfo.LastName}"; } if (type.ToLower().Contains("permiso") || type.ToLower().Contains("pase")) { sb.Append($"Hora inicial : {result.StartTime}{Environment.NewLine}"); sb.Append($"Hora final : {result.EndTime}{Environment.NewLine}"); if (result.WithPay) { sb.Append($"Con goze de sueldo : Si{Environment.NewLine}"); } else { sb.Append($"Con goze de sueldo : No{Environment.NewLine}"); } } else if (type.ToLower().Contains("vacacion")) { if (!string.IsNullOrEmpty(result.NomipaqVacations)) { EmployeeVacation empvac = JsonConvert.DeserializeObject <EmployeeVacation>(result.NomipaqVacations); sb.Append($"Total de días : {empvac.TotalDias}{Environment.NewLine}"); sb.Append($"Total de días gozados : {empvac.DiasTomados}{Environment.NewLine}"); sb.Append($"Total de días disponibles : {empvac.DiasDisponibles}{Environment.NewLine}"); } } return(Json(new { type = type, comment = result.Comments, dateini = result.StartDate.ToShortDateString(), datefin = result.EndDate.ToShortDateString(), sustitute = name, config = sb.ToString() })); }
public NotificationHub(IRepository <EmployeeFormat> formatRepository, IHttpContextAccessor httpContextAccessor, SignInManager <IdentityUser> signInManager, IRepository <FormatApprover> formatApproverRepository, IOrganigramaModelFactory organigramaModelFactory, INotificationModelFactory notificationModelFactory) { this._formatRepository = formatRepository; this._httpContextAccessor = httpContextAccessor; this._signInManager = signInManager; this._formatApproverRepository = formatApproverRepository; this._organigramaModelFactory = organigramaModelFactory; this._notificationModelFactory = notificationModelFactory; }
public IActionResult MainRequestFormat(string pinEmployee, [FromServices] IRepository <PermissionType> _permissionTypeRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] INomipaqEmployeeVacationModelFactory nomipaqEmployeeVacations) { var data = System.Convert.FromBase64String(pinEmployee); string base64Decoded = System.Text.ASCIIEncoding.ASCII.GetString(data); var getEmployeeId = base64Decoded.Split('|'); ViewBag.permissionType = _permissionTypeRepository.GetAll().Select(k => new SelectListItem() { Text = k.Description, Value = k.Id.ToString() }); var employees = organigramaModelFactory.GetAllData().Employess; var info = organigramaModelFactory.GetEmployeeData(getEmployeeId[1].TrimStart(new Char[] { '0' })); FormatRequestModel model = new FormatRequestModel() { Employee = $"{info.GeneralInfo.Id}", FulName = $"{info.GeneralInfo.Id}-{info.GeneralInfo.FirstName} {info.GeneralInfo.LastName}", Picture = info.GeneralInfo.Picture, JobTitle = $"Puesto: {info.GeneralInfo.JobTitle}", Area = $"Area: {info.Area}", JobCenter = $"Centro de trabajo: {info.JobCenter}", EmployeeVacations = nomipaqEmployeeVacations.GetEmployeeVacations(getEmployeeId[1]) }; if (formatRepository.SearhItemsFor(y => y.EmployeeId.Equals(getEmployeeId[1].TrimStart(new Char[] { '0' }))).Any()) { model.EmployeeFormats.AddRange(formatRepository.SearhItemsFor(y => y.EmployeeId.Equals(getEmployeeId[1].TrimStart(new Char[] { '0' }))).Select(r => new EmployeeFormatItem() { Id = r.Id, EmployeeId = r.EmployeeId, ApprovalDate = r.ApprovalDate.HasValue ? r.ApprovalDate.Value.ToShortDateString() : "", Comments = r.Comments, CreateDate = r.CreateDate.ToShortDateString(), EndDate = r.EndDate.ToShortDateString(), PermissionType = _permissionTypeRepository.GetElement(r.PermissionType).Description, StartDate = $"({r.StartDate.ToShortDateString()})-({r.EndDate.ToShortDateString()})", EmployeeSubstitute = employees.Where(k => k.Id.Equals(r.EmployeeSubstitute.TrimStart('0'))).FirstOrDefault().Name })); //var permissions = formatRepository.SearhItemsFor(y => y.EmployeeId.Equals("17") && ) } return(View(model)); }
public JsonResult SetNewJobReactive(string jobGuid, string employeeId, [FromServices] IRepository <EmployeeOrganigrama> isosaemployeesOrganigramaRepository, [FromServices] IRepository <EmployeeAditionalInfo> employeAdditionalInfoRepository, [FromServices] IRepository <EmployeeHistory> employeeHistoryRepo, [FromServices] IHttpContextAccessor httpContextAccessor, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { isosaemployeesOrganigramaRepository.CreateTableBackup("Horarios"); var destiny = isosaemployeesOrganigramaRepository.SearhItemsFor(j => j.RowGuid.ToString().Equals(jobGuid)); var employee = employeAdditionalInfoRepository.SearhItemsFor(f => f.EMP_EmployeeID.Equals(int.Parse(employeeId).ToString("00000"))); var modellogin = httpContextAccessor.HttpContext.Session.GetString("loginmodel"); var loginInfo = !string.IsNullOrEmpty(modellogin) ? JsonConvert.DeserializeObject <LoginModel.InputModel>(modellogin) : null; string userName = loginInfo != null ? loginInfo.Email : null; var orgEmp = organigramaModelFactory.GetEmployeeData(employeeId); employeeHistoryRepo.Create(new EmployeeHistory() { EmployeeId = employee.FirstOrDefault().EMP_EmployeeID, RegisterDate = DateTime.Now, Descripcion = "El empleado fue asignado a nuevo puesto", JobActual = destiny.FirstOrDefault().Puesto, JobLast = orgEmp.GeneralInfo.JobTitle, RowGuidActual = destiny.FirstOrDefault().RowGuid, RowGuidLast = employee.FirstOrDefault().HrowGuid.Value, DateChange = DateTime.Now, UserId = userName }); bool success = true; try { if (employee.Any()) { var emp = employee.First(); emp.HrowGuid = Guid.Parse(jobGuid); employeAdditionalInfoRepository.Update(emp); } } catch { success = false; } return(Json(new { success = success, guidresponse = jobGuid })); }
public IActionResult MainRequestFormat(string idEmployee, [FromServices] IRepository <PermissionType> _permissionTypeRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] INomipaqEmployeeVacationModelFactory nomipaqEmployeeVacations) { ViewBag.permissionType = _permissionTypeRepository.GetAll().Select(k => new SelectListItem() { Text = k.Description, Value = k.Id.ToString() }); var employees = organigramaModelFactory.GetAllData().Employess; var info = organigramaModelFactory.GetEmployeeData(idEmployee); FormatRequestModel model = new FormatRequestModel() { Employee = $"{info.GeneralInfo.Id.TrimStart(new Char[] { '0' })}", FulName = $"{info.GeneralInfo.Id}-{info.GeneralInfo.FirstName} {info.GeneralInfo.LastName}", Picture = info.GeneralInfo.Picture, JobTitle = $"Puesto: {info.GeneralInfo.JobTitle}", Area = $"Area: {info.Area}", JobCenter = $"Centro de trabajo: {info.JobCenter}", EmployeeVacations = nomipaqEmployeeVacations.GetEmployeeVacations(int.Parse(idEmployee).ToString("00000")) }; var formats = formatRepository.SearhItemsFor(y => y.EmployeeId.Equals(idEmployee)); if (formats.Any()) { model.EmployeeFormats.AddRange(formatRepository.SearhItemsFor(y => y.EmployeeId.Equals(idEmployee)).Select(r => new EmployeeFormatItem() { Id = r.Id, EmployeeId = r.EmployeeId, ApprovalDate = r.ApprovalDate.HasValue ? r.ApprovalDate.Value.ToShortDateString() : "", Comments = r.Comments, CreateDate = r.CreateDate.ToShortDateString(), EndDate = r.EndDate.ToShortDateString(), PermissionType = _permissionTypeRepository.GetElement(r.PermissionType).Description, StartDate = $"({r.StartDate.ToShortDateString()})-({r.EndDate.ToShortDateString()})", EmployeeSubstitute = employees.Where(k => k.Id.Equals(r.EmployeeSubstitute.TrimStart('0'))).FirstOrDefault().Name })); } model.TotalPermissionsApproved = model.EmployeeFormats.Where(h => !string.IsNullOrEmpty(h.ApprovalDate)).Count(); return(View(model)); }
public JsonResult SaveApprover(string area, string centro, string depto, string approver, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { int order = 1; if (area.ToLower().Contains("seleccione")) { area = string.Empty; } if (centro.ToLower().Contains("seleccione")) { centro = string.Empty; } if (depto.ToLower().Contains("seleccione")) { depto = string.Empty; } var aprovOrder = formatApproversRepository.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 formatapprover = new FormatApprover() { Area = area, Centro = centro, Departamento = depto, Orden = order, Puesto = emp.GeneralInfo.JobTitle, RowGuid = Guid.Parse(emp.HierarchyGuid) }; formatApproversRepository.Create(formatapprover); return(Json("ok")); }
public JsonResult GetEmployeeNotifier(string employeeId, [FromServices] IRepository <EmployeeNotify> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { string name = string.Empty; int row = 0; if (!string.IsNullOrEmpty(employeeId)) { var employeeInfo = organigramaModelFactory.GetEmployeeData(employeeId); if (employeeInfo != null && employeeInfo.HierarchyGuid != null) { var empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower())); if (empApprover != null && empApprover.Any()) { name = "El empleado ya está asignado para notificaciones"; } else { if (!string.IsNullOrEmpty(employeeInfo.GeneralInfo.Email)) { name = $"{employeeInfo.GeneralInfo.FirstName} {employeeInfo.GeneralInfo.LastName} - {employeeInfo.GeneralInfo.Email}"; row = 1; } else { name = "El empleado seleccionado no tiene cuenta de correo eléctronico"; row = 0; } } } else { name = "No se encontrarón resultados"; } } else { name = "No se encontrarón resultados"; } return(Json(new { id = employeeId, value = name, rows = row })); }
public IActionResult ApproverIndex( [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { FormatApproverModel model = new FormatApproverModel(); var approvers = formatApproversRepository.GetAll(); var organigrama = organigramaModelFactory.GetAllData().Employess; var emps = (from apv in approvers join org in organigrama on apv.RowGuid.ToString().ToLower() equals org.RowId.ToLower() select new FormatApproverItem() { Id = apv.Id, Area = apv.Area, Centro = apv.Centro, Puesto = org.JobTitle, RowGuid = apv.RowGuid.ToString(), Approver = $"{org.Name}", Order = apv.Orden }).ToList(); model.Approvers = emps; List <SelectListItem> areas = new List <SelectListItem>() { new SelectListItem() { Text = "Seleccione una opción", Value = "0" } }; areas.AddRange(organigramaModelFactory.GetAreas().Select(o => new SelectListItem() { Text = o.Descripcion, Value = o.Id.ToString() }).ToList()); ViewBag.Areas = areas; return(View(model)); }
public JsonResult GetEmployeeForApprover(string employeeId, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { string name = string.Empty; int row = 0; if (!string.IsNullOrEmpty(employeeId)) { var employeeInfo = organigramaModelFactory.GetEmployeeData(employeeId); name = $"{employeeInfo.GeneralInfo.FirstName} {employeeInfo.GeneralInfo.LastName} {employeeInfo.GeneralInfo.LastName2}"; row = 1; } else { name = "No se encontrarón resultados"; } return(Json(new { id = employeeId, value = name, rows = row })); }
public JsonResult SearchBy(string inputtext, string typesearch, [FromServices] IOrganigramaModelFactory _organigramaModelFactory) { string value = string.Empty; string id = string.Empty; int row = 0; var employee = _organigramaModelFactory.GetEmployeeData(inputtext.TrimStart(new Char[] { '0' })); if (employee.Area != null) { if (employee.RowId != null) { id = $"{typesearch}|{employee.GeneralInfo.Id}"; value = $"{inputtext}-{ employee.GeneralInfo.FirstName} {employee.GeneralInfo.LastName}"; row = 1; } } return(Json(new { id = id, value = value, rows = row })); }
public IActionResult NotifyIndex([FromServices] IRepository <EmployeeNotify> employeeNotifyRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { EmployeeNotificationModel model = new EmployeeNotificationModel(); var notifiers = employeeNotifyRepository.GetAll(); var organigrama = organigramaModelFactory.GetAllData().Employess; var emps = (from apv in notifiers join org in organigrama on apv.RowGuid.ToString().ToLower() equals org.RowId.ToLower() select new EmployeeNotificationItem() { Id = apv.Id, Area = apv.Area, Centro = apv.Centro, Puesto = org.JobTitle, RowGuid = apv.RowGuid.ToString(), Notifier = $"{org.Name}", Email = org.UserName }).ToList(); model.Notifications = emps; List <SelectListItem> areas = new List <SelectListItem>() { new SelectListItem() { Text = "Seleccione una opción", Value = "0" } }; areas.AddRange(organigramaModelFactory.GetAreas().Select(o => new SelectListItem() { Text = o.Descripcion, Value = o.Id.ToString() }).ToList()); ViewBag.Areas = areas; return(View(model)); }
public DashboardModelFactory(IRepository <DashboardData> dashboardRepository, IRepository <EmployeeFormat> employeeFormatRepository, IRepository <EmployeeAditionalInfo> employeeAdditionalInfo, IRepository <NonWorkingDay> nonworkingDays, IRepository <NonWorkingDayException> nonworkingDaysExeption, IRepository <EmployeeScheduleAssigned> employeeScheduleAssigned, IRepository <Schedule> scheduleRepository, IRepository <PersonalDboardData> personalDashboardRepository, IRepository <EmployeeScheduleDate> employeeScheduleDate, IOrganigramaModelFactory organigramaModelFactory) { this._dashboardRepository = dashboardRepository; this._employeeFormatRepository = employeeFormatRepository; this._employeeAdditionalInfo = employeeAdditionalInfo; this._nonworkingDays = nonworkingDays; this._nonworkingDaysExeption = nonworkingDaysExeption; this._employeeScheduleAssigned = employeeScheduleAssigned; this._scheduleRepository = scheduleRepository; this._personalDashboardRepository = personalDashboardRepository; this._employeeScheduleDate = employeeScheduleDate; this._organigramaModelFactory = organigramaModelFactory; }
public JsonResult GetEmployeeApproverPP(string employeeId, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { string name = string.Empty; int row = 0; if (!string.IsNullOrEmpty(employeeId)) { var employeeInfo = organigramaModelFactory.GetEmployeeData(employeeId); if (employeeInfo != null && employeeInfo.HierarchyGuid != null) { List <FormatApprover> empApprover = new List <FormatApprover>(); empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower())).ToList(); if (empApprover != null && !empApprover.Any()) { name = $"{employeeInfo.GeneralInfo.FirstName} {employeeInfo.GeneralInfo.LastName} {employeeInfo.GeneralInfo.LastName2}"; row = 1; } else { name = "El empleado ya está asignado para aprobación"; } } else { name = "No se encontrarón resultados"; } } else { name = "No se encontrarón resultados"; } return(Json(new { id = employeeId, value = name, rows = row })); }
public IActionResult EmployeeProfile(string idEmployee, [FromServices] IRepository <EmployeeProfile> employeeProfileRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { EmployeeProfileModel model = new EmployeeProfileModel(); string employeeFormat = int.Parse(idEmployee).ToString("00000"); var row = employeeProfileRepository.SearhItemsFor(l => l.EmployeeId.TrimStart('0').Equals(employeeFormat.TrimStart('0'))); if (row.Any()) { var data = row.FirstOrDefault(); model = JsonConvert.DeserializeObject <EmployeeProfileModel>(data.ProfileSectionValues); var info = organigramaModelFactory.GetEmployeeData(idEmployee); model.Area = info.Area; model.JobCenter = info.JobCenter; model.Puesto = info.GeneralInfo.JobTitle; model.EmployeeId = info.GeneralInfo.Id; model.Categoria = info.GeneralInfo.JobCenter; model.FirstName = info.GeneralInfo.FirstName; model.LastName = info.GeneralInfo.LastName; model.DocumentPath = data.DocumentPath; } else { var info = organigramaModelFactory.GetEmployeeData(idEmployee); model.Area = info.Area; model.JobCenter = info.JobCenter; model.Puesto = info.GeneralInfo.JobTitle; model.EmployeeId = info.GeneralInfo.Id; model.Categoria = info.GeneralInfo.JobCenter; model.FirstName = info.GeneralInfo.FirstName; model.LastName = info.GeneralInfo.LastName; model.Edad = (DateTime.Now.Year - DateTime.Parse(info.GeneralInfo.FechaNacimiento).Year).ToString(); model.Sexo = info.GeneralInfo.Sexo; } return(View(model)); }
public JsonResult SaveApproverPPA(string approver, string[] employees, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { var emp = organigramaModelFactory.GetEmployeeData(approver); string values = JsonConvert.SerializeObject(employees.ToList()); var formatapprover = new FormatApprover() { Area = string.Empty, Centro = string.Empty, Departamento = string.Empty, Orden = 1, Puesto = emp.GeneralInfo.JobTitle, RowGuid = Guid.Parse(emp.HierarchyGuid), ApproverListEmployees = values }; formatApproversRepository.Create(formatapprover); return(Json("ok")); }
public JsonResult GetAreas([FromServices] IOrganigramaModelFactory organigramaModelFactory) { var response = organigramaModelFactory.GetAreas(); return(Json(new { collection = response })); }
public FileResult PrintCurrentFormat(int idFormat, [FromServices] IEmployeeFormatModelFactory employeeFormatModelFactory, [FromServices] SARH.Core.Configuration.IConfigurationManager configManager, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { IConfigPdf config = new ConfigPdf() { FontPathPdf = configManager.FontPathPdf, ImgPathPdf = configManager.ImgPathPdf, FontPathBarCode = configManager.FontPathBarCode }; PdfManager manager = new PdfManager(config); var format = employeeFormatModelFactory.GetformatInfo(idFormat); var formats = employeeFormatModelFactory.GetAllFormatsByEmployee(format.EmployeeId); string path = System.IO.Path.GetTempPath(); string empId = int.Parse(format.EmployeeId).ToString("00000"); var empInfo = organigramaModelFactory.GetEmployeeData(format.EmployeeId); var sustitute = organigramaModelFactory.GetEmployeeData(format.Suplente); string fileName = $"{path}FormatNumber{idFormat}.pdf"; if (System.IO.File.Exists(fileName)) { System.IO.File.Delete(fileName); } try { manager.CreatePermissionFormat(new Core.PdfCreator.FormatData.DocumentInfoPdfData() { TitleDocumento = "SOLICITUD DE PERMISOS", FormatId = $"Fecha de Solicitud: {format.FechaSolicitud}", Area = empInfo.Area, JobTitle = empInfo.GeneralInfo.JobTitle, EmployeeName = $"{empInfo.GeneralInfo.FirstName} {empInfo.GeneralInfo.LastName} {empInfo.GeneralInfo.LastName2}", EmployeInfo = new Core.PdfCreator.FormatData.EmployeeInfoData() { EmployeeId = empInfo.GeneralInfo.Id, EmployeeName = $"{empInfo.GeneralInfo.FirstName} {empInfo.GeneralInfo.LastName} {empInfo.GeneralInfo.LastName2}", Rfc = empInfo.GeneralInfo.RFC, Curp = empInfo.GeneralInfo.CURP, NSS = empInfo.GeneralInfo.NSS, BrithDate = empInfo.GeneralInfo.FechaNacimiento, HireDate = empInfo.GeneralInfo.HireDate, FireDate = "N/A", PhotoPath = empInfo.GeneralInfo.Picture, PersonalPhone = empInfo.PersonalInfo.Phone, CellNumber = empInfo.PersonalInfo.CellPhone, PersonalEmail = empInfo.PersonalInfo.Email, Address = empInfo.PersonalInfo.Address, City = empInfo.PersonalInfo.City, State = empInfo.PersonalInfo.State, Cp = empInfo.PersonalInfo.Zip, ContactName = empInfo.EmergencyData.Name, ContactRelation = empInfo.EmergencyData.Relacion, ContactPhone = empInfo.EmergencyData.Phone, JobTitle = empInfo.GeneralInfo.JobTitle }, EmployeeSustitute = new Core.PdfCreator.FormatData.FormatEmployeeSustitute() { Name = $"{sustitute.GeneralInfo.FirstName} {sustitute.GeneralInfo.LastName} {sustitute.GeneralInfo.LastName2}", JobTitle = sustitute.GeneralInfo.JobTitle }, FormatPermission = new Core.PdfCreator.FormatData.FormatPermissionData() { Cause = format.Comments, DateStart = format.StartDate, DateEnd = format.EndDate, TimeStart = format.StartTime, TimeEnd = format.EndTime, Comments = format.AdditionalInfo, TotalPermissions = formats.Count() } }, fileName); } catch (Exception ex) { byte[] FileBytesError = System.Text.Encoding.UTF8.GetBytes(ex.Message); return(File(FileBytesError, "text/plain")); } byte[] FileBytes = System.IO.File.ReadAllBytes(fileName); return(File(FileBytes, "application/pdf")); }
public JsonResult GetEmployeeApprover(string employeeId, string area, string centro, string depto, [FromServices] IRepository <FormatApprover> formatApproversRepository, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { string name = string.Empty; int row = 0; if (area.ToLower().Contains("seleccione")) { area = string.Empty; } if (centro.ToLower().Contains("seleccione")) { centro = string.Empty; } if (depto.ToLower().Contains("seleccione")) { depto = string.Empty; } if (!string.IsNullOrEmpty(employeeId)) { var employeeInfo = organigramaModelFactory.GetEmployeeData(employeeId); if (employeeInfo != null && employeeInfo.HierarchyGuid != null) { List <FormatApprover> empApprover = new List <FormatApprover>(); empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower()) && r.Area.Equals(area) && r.Centro.Equals(centro) && r.Departamento.Equals(depto)).ToList(); if (empApprover != null && !empApprover.Any()) { if (string.IsNullOrEmpty(area)) { empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower())).ToList(); } if (string.IsNullOrEmpty(centro) && !string.IsNullOrEmpty(area)) { empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower()) && r.Area.ToLower().Equals(area.ToLower())).ToList(); } if (string.IsNullOrEmpty(depto) && !string.IsNullOrEmpty(centro)) { empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower()) && r.Area.ToLower().Equals(area.ToLower()) && r.Centro.ToLower().Equals(centro.ToLower())).ToList(); } if (!string.IsNullOrEmpty(centro) && !string.IsNullOrEmpty(depto) && !string.IsNullOrEmpty(area)) { empApprover = formatApproversRepository.SearhItemsFor(r => r.RowGuid.ToString().ToLower().Equals(employeeInfo.HierarchyGuid.ToLower()) && r.Area.ToLower().Equals(area.ToLower()) && r.Centro.ToLower().Equals(centro.ToLower()) && r.Departamento.ToLower().Equals(depto.ToLower())).ToList(); } if (empApprover != null && empApprover.Any()) { name = "El empleado ya está asignado para aprobación"; } else { name = $"{employeeInfo.GeneralInfo.FirstName} {employeeInfo.GeneralInfo.LastName} {employeeInfo.GeneralInfo.LastName2}"; row = 1; } } else { name = "El empleado ya está asignado para aprobación"; } } else { name = "No se encontrarón resultados"; } } else { name = "No se encontrarón resultados"; } return(Json(new { id = employeeId, value = name, rows = row })); }
public IActionResult ViewDetail(int idFormat, [FromServices] IOrganigramaModelFactory organigramModelFactory, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] INotificationModelFactory notificationModelFactory, [FromServices] IRepository <FormatApprover> formatApprover, [FromServices] IHttpContextAccessor _httpContextAccessor) { FormatApproverPendingModel model = new FormatApproverPendingModel(); var formats = notificationModelFactory.NotificaticonsItems; var employees = organigramModelFactory.GetAllData(); var format = formatRepository.GetElement(idFormat); if (format != null) { var employee = organigramModelFactory.GetEmployeeData(format.EmployeeId); if (employee != null) { model.FormatEmployee.Area = employee.Area; model.FormatEmployee.JobCenter = employee.JobCenter; model.FormatEmployee.Departamento = employee.Departamento; model.FormatEmployee.JobTitle = employee.GeneralInfo.JobTitle; model.FormatEmployee.Name = $"{employee.GeneralInfo.FirstName} {employee.GeneralInfo.LastName} {employee.GeneralInfo.LastName2}"; model.FormatEmployee.PicturePath = employee.GeneralInfo.Picture; } var formatDetail = formats.Where(u => u.Id.Equals(idFormat)); if (formatDetail.Any()) { model.FormatDetail = formatDetail.FirstOrDefault(); var employeeSust = organigramModelFactory.GetEmployeeData(format.EmployeeSubstitute); model.FormatDetail.EmployeeSustitution = $"{employeeSust.GeneralInfo.FirstName} {employeeSust.GeneralInfo.LastName} {employeeSust.GeneralInfo.LastName2}"; List <FormatApprover> apprs = new List <FormatApprover>(); //Approbador Global formatApprover.SearhItemsFor(i => i.Area.Equals(string.Empty) && i.Centro.Equals(string.Empty) && i.Departamento.Equals(string.Empty)).ToList().ForEach(f => { if (string.IsNullOrEmpty(f.ApproverListEmployees)) { apprs.Add(f); } else { var listEmp = JsonConvert.DeserializeObject <List <string> >(f.ApproverListEmployees); if (listEmp != null && listEmp.Any()) { listEmp.ForEach(emp => { if (emp.Equals(format.EmployeeId)) { apprs.Add(f); } }); } } }); //Aprobador Area apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Centro apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area) && i.Centro.Equals(model.FormatEmployee.JobCenter)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Depto apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area) && i.Centro.Equals(model.FormatEmployee.JobCenter) && i.Departamento.Equals(model.FormatEmployee.Departamento)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); if (apprs.Any()) { apprs.ForEach((a) => { var approName = employees.Employess.Where(d => d.RowId.ToString().ToLower().Equals(a.RowGuid.ToString().ToLower())).FirstOrDefault(); if (approName != null) { model.Approvers.Add(new ForrmatApproverWorkflow() { Id = a.Id, RowId = a.RowGuid, Name = approName.Name }); } }); } } else { model.FormatDetail = notificationModelFactory.AllNotificaticonsItems.Where(d => d.Id.Equals(format.Id)).FirstOrDefault(); var employeeSust = organigramModelFactory.GetEmployeeData(format.EmployeeSubstitute); model.FormatDetail.EmployeeSustitution = $"{employeeSust.GeneralInfo.FirstName} {employeeSust.GeneralInfo.LastName} {employeeSust.GeneralInfo.LastName2}"; if (!string.IsNullOrEmpty(format.ApprovalWorkFlow)) { List <FormatApprover> apprs = new List <FormatApprover>(); //Approbador Global formatApprover.SearhItemsFor(i => i.Area.Equals(string.Empty) && i.Centro.Equals(string.Empty) && i.Departamento.Equals(string.Empty)).ToList().ForEach(f => { if (string.IsNullOrEmpty(f.ApproverListEmployees)) { apprs.Add(f); } else { var listEmp = JsonConvert.DeserializeObject <List <string> >(f.ApproverListEmployees); if (listEmp != null && listEmp.Any()) { listEmp.ForEach(emp => { if (emp.Equals(format.EmployeeId)) { apprs.Add(f); } }); } } }); //Aprobador Area apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Centro apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area) && i.Centro.Equals(model.FormatEmployee.JobCenter)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Depto apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(model.FormatEmployee.Area) && i.Centro.Equals(model.FormatEmployee.JobCenter) && i.Departamento.Equals(model.FormatEmployee.Departamento)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); var apps = JsonConvert.DeserializeObject <List <ForrmatApproverWorkflow> >(format.ApprovalWorkFlow); apprs.ForEach(h => { var t = apps.Where(k => k.RowId.Equals(h.RowGuid)); if (!t.Any()) { var approName = employees.Employess.Where(d => d.RowId.ToString().ToLower().Equals(h.RowGuid.ToString().ToLower())).FirstOrDefault(); if (approName != null) { model.Approvers.Add(new ForrmatApproverWorkflow() { Id = h.Id, RowId = h.RowGuid, Name = approName.Name }); } } }); model.Approvers.AddRange(apps); } } } return(View(model)); }
public JsonResult Declined(int idFormat, string comments, [FromServices] IOrganigramaModelFactory organigramModelFactory, [FromServices] IRepository <EmployeeFormat> formatRepository, [FromServices] INotificationModelFactory notificationModelFactory, [FromServices] IRepository <FormatApprover> formatApprover, [FromServices] IHttpContextAccessor _httpContextAccessor) { bool alreadyApprove = false; var employees = organigramModelFactory.GetAllData(); var format = formatRepository.GetElement(idFormat); List <ForrmatApproverWorkflow> approvers = new List <ForrmatApproverWorkflow>(); var modellogin = _httpContextAccessor.HttpContext.Session.GetString("loginmodel"); var loginInfo = !string.IsNullOrEmpty(modellogin) ? JsonConvert.DeserializeObject <LoginModel.InputModel>(modellogin) : null; string userName = loginInfo != null ? loginInfo.Email : null; var approver = employees.Employess.Where(t => t.UserName.Equals(userName)); var emp = employees.Employess.Where(j => j.Id.Equals(format.EmployeeId)).FirstOrDefault(); List <FormatApprover> apprs = new List <FormatApprover>(); //Approbador Global formatApprover.SearhItemsFor(i => i.Area.Equals(string.Empty) && i.Centro.Equals(string.Empty) && i.Departamento.Equals(string.Empty)).ToList().ForEach(f => { if (string.IsNullOrEmpty(f.ApproverListEmployees)) { apprs.Add(f); } else { var listEmp = JsonConvert.DeserializeObject <List <string> >(f.ApproverListEmployees); if (listEmp != null && listEmp.Any()) { listEmp.ForEach(e => { if (e.Equals(format.EmployeeId)) { apprs.Add(f); } }); } } }); //Aprobador Area apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(emp.Area)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Centro apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(emp.Area) && i.Centro.Equals(emp.JobCenter)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); //Aprobador Depto apprs.AddRange(formatApprover.SearhItemsFor(i => i.Area.Equals(emp.Area) && i.Centro.Equals(emp.JobCenter) && i.Departamento.Equals(emp.Category)).Where(p => (apprs).All(p2 => p2.RowGuid != p.RowGuid)).ToList()); int totApp = apprs.Count; if (format != null) { if (string.IsNullOrEmpty(format.ApprovalWorkFlow)) { if (approver.Any()) { ForrmatApproverWorkflow workflow = new ForrmatApproverWorkflow() { Id = idFormat, Approved = "No", ApproveDate = DateTime.Now.ToShortDateString(), Comments = comments, Name = approver.FirstOrDefault().Name, RowId = Guid.Parse(approver.FirstOrDefault().RowId) }; approvers.Add(workflow); } } else { approvers = JsonConvert.DeserializeObject <List <ForrmatApproverWorkflow> >(format.ApprovalWorkFlow); var app = approvers.Where(g => g.RowId.ToString().ToLower().Equals(approver.FirstOrDefault().RowId.ToLower())); if (!app.Any()) { ForrmatApproverWorkflow workflow = new ForrmatApproverWorkflow() { Id = idFormat, Approved = "No", ApproveDate = DateTime.Now.ToShortDateString(), Comments = comments, Name = approver.FirstOrDefault().Name, RowId = Guid.Parse(approver.FirstOrDefault().RowId) }; approvers.Add(workflow); } else { alreadyApprove = true; } } if (!alreadyApprove) { format.Declined = true; format.ApprovalWorkFlow = JsonConvert.SerializeObject(approvers); formatRepository.Update(format); } } return(Json(new { alreadyapprove = alreadyApprove })); }
public JsonResult GetDeptos(string area, string centros, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { var response = organigramaModelFactory.GetDeptos(area, centros); return(Json(new { collection = response })); }
public FileResult PrintVacationFormat(int idFormat, [FromServices] IEmployeeFormatModelFactory employeeFormatModelFactory, [FromServices] SARH.Core.Configuration.IConfigurationManager configManager, [FromServices] IOrganigramaModelFactory organigramaModelFactory, [FromServices] INomipaqEmployeeVacationModelFactory nomipaqVacationModelFactory) { IConfigPdf config = new ConfigPdf() { FontPathPdf = configManager.FontPathPdf, ImgPathPdf = configManager.ImgPathPdf, FontPathBarCode = configManager.FontPathBarCode }; PdfManager manager = new PdfManager(config); var format = employeeFormatModelFactory.GetformatInfo(idFormat); var formats = employeeFormatModelFactory.GetAllFormatsByEmployee(format.EmployeeId); string path = System.IO.Path.GetTempPath(); string empId = int.Parse(format.EmployeeId).ToString("00000"); var vacations = nomipaqVacationModelFactory.GetEmployeeVacations(int.Parse(format.EmployeeId).ToString("00000")); Core.PdfCreator.FormatData.FormatVacationData vacationInfo = new Core.PdfCreator.FormatData.FormatVacationData(); var empInfo = organigramaModelFactory.GetEmployeeData(format.EmployeeId); var sustitute = organigramaModelFactory.GetEmployeeData(format.Suplente); if (vacations != null) { var formatDays = (DateTime.Parse(format.EndDate) - DateTime.Parse(format.StartDate)).TotalDays + 1; vacationInfo = new Core.PdfCreator.FormatData.FormatVacationData() { AñosCumplidos = vacations.Antiguedad.ToString("00"), DiasGozado = vacations.DiasTomados.ToString(), DiasPendinteAñoAnteior = vacations.TotalDias.ToString(), DiasPorAño = vacations.DiasPorAño.ToString(), DiasPorGozar = vacations.DiasDisponibles.ToString(), FechaIngreso = empInfo.GeneralInfo.HireDate, PorGozar = Math.Round((vacations.DiasDisponibles - formatDays), 0).ToString(), DiasSolicitados = formatDays.ToString("00"), FechaInicial = format.StartDate, FechaFinal = format.EndDate }; } string fileName = $"{path}FormatNumber{idFormat}.pdf"; if (System.IO.File.Exists(fileName)) { System.IO.File.Delete(fileName); } try { manager.CreateVacationFormat(new Core.PdfCreator.FormatData.DocumentInfoPdfData() { TitleDocumento = "SOLICITUD DE VACACIONES", FormatId = $"Fecha de Solicitud: {format.FechaSolicitud}", Area = empInfo.Area, JobTitle = empInfo.GeneralInfo.JobTitle, EmployeeName = $"{empInfo.GeneralInfo.FirstName} {empInfo.GeneralInfo.LastName} {empInfo.GeneralInfo.LastName2}", EmployeInfo = new Core.PdfCreator.FormatData.EmployeeInfoData() { EmployeeId = empInfo.GeneralInfo.Id, EmployeeName = $"{empInfo.GeneralInfo.FirstName} {empInfo.GeneralInfo.LastName} {empInfo.GeneralInfo.LastName2}", Rfc = empInfo.GeneralInfo.RFC, Curp = empInfo.GeneralInfo.CURP, NSS = empInfo.GeneralInfo.NSS, BrithDate = empInfo.GeneralInfo.FechaNacimiento, HireDate = empInfo.GeneralInfo.HireDate, FireDate = "N/A", PhotoPath = empInfo.GeneralInfo.Picture, PersonalPhone = empInfo.PersonalInfo.Phone, CellNumber = empInfo.PersonalInfo.CellPhone, PersonalEmail = empInfo.PersonalInfo.Email, Address = empInfo.PersonalInfo.Address, City = empInfo.PersonalInfo.City, State = empInfo.PersonalInfo.State, Cp = empInfo.PersonalInfo.Zip, ContactName = empInfo.EmergencyData.Name, ContactRelation = empInfo.EmergencyData.Relacion, ContactPhone = empInfo.EmergencyData.Phone, JobTitle = empInfo.GeneralInfo.JobTitle }, EmployeeSustitute = new Core.PdfCreator.FormatData.FormatEmployeeSustitute() { Name = $"{sustitute.GeneralInfo.FirstName} {sustitute.GeneralInfo.LastName} {sustitute.GeneralInfo.LastName2}", JobTitle = sustitute.GeneralInfo.JobTitle }, FormatVacationData = vacationInfo }, fileName); } catch (Exception ex) { byte[] FileBytesError = System.Text.Encoding.UTF8.GetBytes(ex.Message); return(File(FileBytesError, "text/plain")); } byte[] FileBytes = System.IO.File.ReadAllBytes(fileName); return(File(FileBytes, "application/pdf")); }