public JsonResult ConsultaMotorDeReglas(string RespuestaSAP) { MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); ConsumoAPIMotorDeReglas oConsumoAPIMotorDeReglas = new ConsumoAPIMotorDeReglas(); RespuestaSAPModels oRespuestaSap = new RespuestaSAPModels(); RespuestaMotorModels oRespuestaMotor = new RespuestaMotorModels { Escenario = new List <EscenarioModels>(), Reglas = new List <ReglaModels>(), Error = new ErrorModels() }; try { oRespuestaSap = JsonConvert.DeserializeObject <RespuestaSAPModels>(RespuestaSAP); oMensajeRespuesta = oConsumoAPIMotorDeReglas.ConsultarEscenarioYReglas(oRespuestaSap.Details[0].Clasificacion, oRespuestaSap.Details[0].IdGestor, oRespuestaSap.Details[0].DesCargo); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { Logger.Error("Ocurrió un error interno en el consumo del API del motor de reglas. " + "Exception: " + Ex); oMensajeRespuesta.Codigo = "-3"; oMensajeRespuesta.Mensaje = "Ocurrió un error inesperado en la consulta de la información. Contacte al administrador del sistema"; oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oMensajeRespuesta, Formatting.Indented), JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }
public JsonResult ConsultarUserSAP(string UserDA) { ConsumoAPISAP oConsumoAPISAP = new ConsumoAPISAP(); MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); RespuestaSAPModels oRespuestaSAP = new RespuestaSAPModels { Details = new List <DetailsModels>(), Exception = new List <ExceptionModels>() }; try { oMensajeRespuesta = oConsumoAPISAP.ConsultarUserSAP(JsonConvert.DeserializeObject <PersonaModels>(UserDA).Identificacion); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { Logger.Error("Ocurrió un error interno en el consumo del API de SAP con el " + "Nro. Documento: " + JsonConvert.DeserializeObject <PersonaModels>(UserDA).Identificacion + "Exception: " + Ex); oMensajeRespuesta.Codigo = "3"; oMensajeRespuesta.Mensaje = "Ocurrió un error inesperado en la consulta de la información. Contacte al administrador del sistema"; oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oMensajeRespuesta, Formatting.Indented), JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }
// GET: EjecutivosYPlanta public ActionResult Index(string oDatosFormulario, string oDatosSAP) { try { RespuestaMotorModels oRespuestaMotor = new RespuestaMotorModels(); RespuestaSAPModels oRespuestaSAPModels = new RespuestaSAPModels(); UtilitiesGenerales oDiasContingente = new UtilitiesGenerales(); oRespuestaMotor = JsonConvert.DeserializeObject <RespuestaMotorModels>(oDatosFormulario); ViewBag.oRespuestaMotor = JsonConvert.SerializeObject(oRespuestaMotor); oRespuestaSAPModels = JsonConvert.DeserializeObject <RespuestaSAPModels>(oDatosSAP); ViewBag.oRespuestaSAPModels = JsonConvert.SerializeObject(oRespuestaSAPModels); ViewBag.NroIdentificacion = oRespuestaSAPModels.Details[0].NroDocumento; //Asignacion dle nombre del Empleado ViewBag.NombresEmpleado = oRespuestaSAPModels.Details[0].PrimerNombre + " " + oRespuestaSAPModels.Details[0].SegundoNombre + " "; ViewBag.ApellidosEmpleado = oRespuestaSAPModels.Details[0].PrimerApellido + " " + oRespuestaSAPModels.Details[0].SegundoApellido; foreach (var oReglas in oRespuestaMotor.Reglas) { switch (oReglas.Prmtro) { case "NroDias": ViewBag.NumeroDias = oDiasContingente.CalcularDiasContingente(oRespuestaSAPModels.Details[0].Contingentes.Contigente, oReglas).ToString().Replace('.', ','); // Pendiente por realizar //////////////////////// break; case "NroMinDias": ViewBag.MinimoDias = Convert.ToDouble(oReglas.Vlr_Slda); break; case "DiasMinCalendario": ViewBag.InicioFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; case "DiasMaxCalendario": ViewBag.FinFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; case "NroMinDiasCorreoCompensacion": ViewBag.NroMinDiasCorreoCompensacion = int.Parse(oReglas.Vlr_Slda); break; case "CorreoCompensacion": ViewBag.CorreoCompensacion = oReglas.Vlr_Slda; break; } } ViewBag.SabadoHabil = oRespuestaSAPModels.Details[0].SabadoHabil; // Se obtienen las fechas de los festivos, sabados y domingos (Si se envía true incluira los sábados, si se envía false no incluirá los sábados, según criterio) string DiasFestivosSabadosDomingos = FestivosColombia.DiasFestivoSabadosDomingosConcatenado(DateTime.Now.Year, oRespuestaSAPModels.Details[0].SabadoHabil == "NO" ? true : false); ViewBag.DiasFestivosSabadosDomingos = DiasFestivosSabadosDomingos; return(View()); } catch (Exception Ex) { Logger.Error("Ocurrió un error construyendo el View de Ejecutivos y Planta." + "Exception: " + Ex); return(null); } }
public JsonResult GuardarSolicitud(string NroIdentificacion, string NombresEmpleado, string ApellidosEmpleado, string oRespuestaSAP, string oRespuestaMotor, string NumeroDias, string SabadoHabil, string FechaInicio, string FechaFin, string NroMinDiasCorreoCompensacion, string CorreoCompensacion) { MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); ConsumoAPIGuardarSolicitud oConsumoAPIGuardarSolicitud = new ConsumoAPIGuardarSolicitud(); RespuestaSAPModels oRespuestaSAPModels = new RespuestaSAPModels(); RespuestaMotorModels oRespuestaMotorModels = new RespuestaMotorModels(); List <SolicitudDetalle> oLstSolicitudDetalle = new List <SolicitudDetalle>(); Solicitudes oSolicitudes = new Solicitudes(); ConsumoAPIFlow oConsumoApiFlow = new ConsumoAPIFlow(); RespuestaGuardarSolicitudModels oRespuestaGuardarSolicitudModels = new RespuestaGuardarSolicitudModels(); UtilitiesGenerales oUtilitiesGenerales = new UtilitiesGenerales(); try { string NombreUser = System.Web.HttpContext.Current.User.Identity.Name; int backSlash = NombreUser.IndexOf("\\"); string UserName = backSlash > 0 ? NombreUser.Substring(backSlash + 1) : NombreUser; oRespuestaSAPModels = JsonConvert.DeserializeObject <RespuestaSAPModels>(oRespuestaSAP); oRespuestaMotorModels = JsonConvert.DeserializeObject <RespuestaMotorModels>(oRespuestaMotor); oLstSolicitudDetalle.Add(new SolicitudDetalle { nmbrs_slctnte = HttpUtility.HtmlDecode(NombresEmpleado), apllds_slctnte = HttpUtility.HtmlDecode(ApellidosEmpleado), fcha_inco_vccns = Convert.ToDateTime(FechaInicio), fcha_fn_vcc = Convert.ToDateTime(FechaFin), nmro_ds = int.Parse(NumeroDias), sbdo_hbl = oRespuestaSAPModels.Details[0].SabadoHabil == "NO" ? false : true, fcha_hra_aprvc = DateTime.Now, fcha_hra_rgstro_nvdd = DateTime.Now, crreo_slctnte = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorp) ? oRespuestaSAPModels.Details[0].CorreoCorp : oRespuestaSAPModels.Details[0].CorreoPersonal, crreo_jfe_slctnte = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorpJefe) ? oRespuestaSAPModels.Details[0].CorreoCorpJefe : oRespuestaSAPModels.Details[0].CorreoPersonalJefe, codEmpldo = oRespuestaSAPModels.Details[0].NroPersonal, idEstdoSlctd = 1, scdd = oRespuestaSAPModels.Details[0].Sociedad, idntfccn_slctnte = NroIdentificacion, NroMinDiasCorreoCompensacion = int.Parse(NroMinDiasCorreoCompensacion), CorreoCompensacion = CorreoCompensacion }); oSolicitudes.fcha_hra_slctd = DateTime.Now; oSolicitudes.nmbrs_slctnte = HttpUtility.HtmlDecode(NombresEmpleado); oSolicitudes.apllds_slctnte = HttpUtility.HtmlDecode(ApellidosEmpleado); oSolicitudes.nmro_idntfccn = NroIdentificacion; oSolicitudes.cdgo_escenario = oRespuestaMotorModels.Escenario[0].Cdgo; oSolicitudes.detalle = oLstSolicitudDetalle; oSolicitudes.crro_antdr = ""; oSolicitudes.ip = oUtilitiesGenerales.ObtenerIp(); oSolicitudes.nmbre_usrio = UserName; oSolicitudes.nmbre_eqpo = oUtilitiesGenerales.ObtenerNombreMaquina(); oMensajeRespuesta = oConsumoAPIGuardarSolicitud.AlmacenarSolicitud(oSolicitudes); if (oMensajeRespuesta.Codigo == "1") { string oRespuestaGuardarSolicitud = JsonConvert.SerializeObject(oMensajeRespuesta.Resultado.Data, Formatting.Indented); oRespuestaGuardarSolicitudModels = JsonConvert.DeserializeObject <RespuestaGuardarSolicitudModels>(oRespuestaGuardarSolicitud); string URIAprobacionyRechazo = Request.Url.Scheme + //Https "://" + Request.Url.Authority + //WWW. Request.ApplicationPath.TrimEnd('/') + "/" + //Base del sitio URIAprobacion + // AprobacionYRechazo/Index IdSolicitud + HttpUtility.UrlEncode(StringCipher.Encrypt(oRespuestaGuardarSolicitudModels.Resultado.ToString())) + "&" + CorreoJefe + HttpUtility.UrlEncode(StringCipher.Encrypt(oLstSolicitudDetalle[0].crreo_jfe_slctnte)); FlowModels oFlow = new FlowModels { correoSolicitante = oLstSolicitudDetalle[0].crreo_slctnte, nombreSolicitante = HttpUtility.HtmlDecode(oLstSolicitudDetalle[0].nmbrs_slctnte) + " " + HttpUtility.HtmlDecode(oLstSolicitudDetalle[0].apllds_slctnte), fecha_fin = oLstSolicitudDetalle[0].fcha_fn_vcc.ToShortDateString(), fecha_inicio = oLstSolicitudDetalle[0].fcha_inco_vccns.ToShortDateString(), CorreoJefe = oLstSolicitudDetalle[0].crreo_jfe_slctnte, url = "<a href=" + URIAprobacionyRechazo + ">Haga clic aqui </a>", opt = 1 }; oConsumoApiFlow.EnviarNotificacionFlow(oFlow); if (oLstSolicitudDetalle[0].nmro_ds <= int.Parse(NroMinDiasCorreoCompensacion)) { FlowModels oFlowMesaCompensacion = new FlowModels { CorreoCompensacion = CorreoCompensacion, nombreSolicitante = HttpUtility.HtmlDecode(oLstSolicitudDetalle[0].nmbrs_slctnte) + " " + HttpUtility.HtmlDecode(oLstSolicitudDetalle[0].apllds_slctnte), fecha_inicio = oLstSolicitudDetalle[0].fcha_inco_vccns.ToShortDateString(), fecha_fin = oLstSolicitudDetalle[0].fcha_fn_vcc.ToShortDateString(), opt = 5 }; oConsumoApiFlow.EnviarNotificacionFlow(oFlowMesaCompensacion); } } return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " + oSolicitudes.nmro_idntfccn + ". Exception: " + Ex); oMensajeRespuesta.Codigo = "-3"; oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema"; oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oMensajeRespuesta, Formatting.Indented), JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }
public MensajeRespuesta ConsultarUserSAP(int Identificacion) { MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); RespuestaSAPModels oRespuestaSAP = new RespuestaSAPModels { Details = new List <DetailsModels>(), Exception = new List <ExceptionModels>() }; RespuestaSAPModels oRespuestaSAPCliente = new RespuestaSAPModels { Details = new List <DetailsModels>(), Exception = new List <ExceptionModels>() }; try { string url = URISAP + VariableAPISAP + Identificacion; oHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); oHttpWebRequest.ContentType = "application/json"; oHttpWebRequest.Method = "GET"; oEncoding = Encoding.GetEncoding("utf-8"); oHttpWebResponse = (HttpWebResponse)oHttpWebRequest.GetResponse(); if (oHttpWebResponse.StatusCode == HttpStatusCode.OK) { StreamReader oStreamReader = new StreamReader(oHttpWebResponse.GetResponseStream()); oRespuestaSAP = JsonConvert.DeserializeObject <RespuestaSAPModels>(oStreamReader.ReadToEnd()); if (oRespuestaSAP.Exception != null && oRespuestaSAP.Exception.Count > 0) { if (oRespuestaSAP.Exception.Count > 1) { foreach (var oException in oRespuestaSAP.Exception) { if (oException.ID == "0") { if (oRespuestaSAP.Details[Contador].Sociedad == SociedadVacaciones) { POS = Contador; break; } } Contador++; } } oRespuestaSAPCliente.Details.Add(oRespuestaSAP.Details[POS]); oRespuestaSAPCliente.Exception.Add(oRespuestaSAP.Exception[POS]); switch (oRespuestaSAPCliente.Exception[0].ID) { //Procesado correctamente case "4": if (string.IsNullOrEmpty(oRespuestaSAPCliente.Details[0].CorreoCorpJefe)) { oRespuestaSAPCliente.Exception[0].ID = "6"; oRespuestaSAPCliente.Exception[POS].MESSAGE = "No se ha identificado la información de su jefe inmediato. Comuníquese con Gestión Humana"; } if (oRespuestaSAPCliente.Details[0].Contingentes.Contigente != null && oRespuestaSAPCliente.Details[0].Contingentes.Contigente.Count > 0 && oRespuestaSAPCliente.Details[0].IdGestor == "NO") { foreach (var item in oRespuestaSAPCliente.Details[0].Contingentes.Contigente) { if (string.IsNullOrEmpty(item.NroDias)) { oRespuestaSAPCliente.Exception[0].ID = "5"; oRespuestaSAPCliente.Exception[POS].MESSAGE = "Usted no cuenta con días disponibles para disfrute de vacaciones"; } } } break; //Error: Favor Enviar Nro.(s) de Identificación case "3": Logger.Error("El número de identificación enviado al servicio de SAP estaba vacío. " + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "No se logro identificar un documento de identidad valido para realizar la consulta pertinente. Por favor contacte al administrador del sistema"; break; //Error: En fecha del contingente, por favor comunicarse con el área de nómina case "2": Logger.Error("Error en fecha del contingente consultando el documento de identidad Nro. " + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "Se presento un error consultando la fecha del contingente. Por favor contacte al administrador del sistema"; break; //Error: No se encontraron datos con la(s) Identificación(es) enviada(s) case "1": Logger.Error("No se encontraron datos con el documento de identidad enviado. Nro. Documento" + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "No se encontraron datos con el número del documento enviado"; break; case "-1": Logger.Error("El Nro de identificacion no puede ser vacio. Nro. Documento" + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "El Nro. de documento no puede ser vacío"; break; case "-2": Logger.Error("Ocurrió un error consultando la información a la API de solicitud de vacaciones. Nro. Documento" + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "Ocurrió un error consultando la información a la API de solicitud de vacaciones"; break; case "-3": Logger.Error("Ocurrió un error interno en el API de solicitud de vacaciones. Contacte al administrador del sistema . Nro. Documento" + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "Ocurrió un error interno en el API de solicitud de vacaciones. Contacte al administrador del sistema"; break; case "-4": Logger.Error("El empleado ya cuenta con una solicitud de vacaciones pendiente de aprobación. Nro. Documento" + Identificacion + ". Mensaje del servicio: " + oRespuestaSAPCliente.Exception[0].MESSAGE); oRespuestaSAPCliente.Exception[POS].MESSAGE = "El empleado ya cuenta con una solicitud de vacaciones pendiente de aprobación"; break; } oMensajeRespuesta.Codigo = oRespuestaSAPCliente.Exception[POS].ID; oMensajeRespuesta.Mensaje = oRespuestaSAPCliente.Exception[POS].MESSAGE; oMensajeRespuesta.Resultado = Json(oRespuestaSAPCliente, JsonRequestBehavior.AllowGet); } else { Logger.Error("Ocurrió un error des serializando la respuesta del API de SAP en un Objeto de tipo RespuestaSAPModels. " + "Nro. Documento: " + Identificacion); oMensajeRespuesta.Codigo = "3"; oMensajeRespuesta.Mensaje = "Ocurrió un error en el API del servicio de SAP"; oMensajeRespuesta.Resultado = Json("", JsonRequestBehavior.AllowGet); } } else { //Se deja registro en el Log del error Logger.Error("Se presento un error en la API que implementa el consumo de SAP. Error consultando el Nro. De Identificacion: " + Identificacion.ToString() + ". StatusCodeResponse: " + oHttpWebResponse.StatusCode.ToString() + ". StatusDescription: " + oHttpWebResponse.StatusDescription.ToString()); oMensajeRespuesta.Codigo = "3"; oMensajeRespuesta.Mensaje = "Ocurrió un error en el API del servicio de SAP"; oMensajeRespuesta.Resultado = Json(oRespuestaSAPCliente, JsonRequestBehavior.AllowGet); } return(oMensajeRespuesta); } catch (Exception Ex) { Logger.Error("Ocurrió un error interno en el consumo del API de SAP con el " + "Nro. Documento: " + Identificacion + "Exception: " + Ex); oMensajeRespuesta.Codigo = "3"; oMensajeRespuesta.Mensaje = "Ocurrió un error en el API del servicio de SAP"; oMensajeRespuesta.Resultado = Json(oRespuestaSAPCliente, JsonRequestBehavior.AllowGet); return(oMensajeRespuesta); } }
public JsonResult EnviarNotificacionFlow(string oDataActual, string oIdSolicitud, string oRespuestaSAP) { List <SolicitudDetalle> oLstSolicitudDetalle = new List <SolicitudDetalle>(); List <string> oLstCorreos = new List <string>(); MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); RespuestaSAPModels oRespuestaSAPModels = new RespuestaSAPModels(); ConsumoAPIFlow oConsumoApiFlow = new ConsumoAPIFlow(); FlowModels oFlow = new FlowModels(); FlowModels oFlowCompensacion = new FlowModels(); string oTableAnotador = string.Empty; string oTableJefes = string.Empty; string oCorreoAnotador = string.Empty; try { string URIAprobacionyRechazo = Request.Url.Scheme + //Https "://" + Request.Url.Authority + //WWW. Request.ApplicationPath.TrimEnd('/') + "/" + //Base del sitio URIAprobacion + // AprobacionYRechazo/Index IdSolicitud + HttpUtility.UrlEncode(StringCipher.Encrypt(oIdSolicitud)) + "&" + CorreoJefe; oRespuestaSAPModels = JsonConvert.DeserializeObject <RespuestaSAPModels>(oRespuestaSAP); oCorreoAnotador = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorp) ? oRespuestaSAPModels.Details[0].CorreoCorp : oRespuestaSAPModels.Details[0].CorreoPersonal; //Se declara inicio de la tabla para el correo de los anotadores oTableAnotador = "<Table cellpadding=0 cellspacing=0 border=1>"; oLstSolicitudDetalle = GenerarObjetoSolicitudDetalle(oDataActual); if (oLstSolicitudDetalle != null && oLstSolicitudDetalle.Count > 0) { //Se crean los encabezados para la tabla del anotador oTableAnotador += "<tr>" + "<th> Nro. de identificación </th>" + "<th> Nombres y apellidos </th>" + "<th> Inicio de vacaciones </th>" + "<th> Fin de vacaciones </th>" + "<th> Nro. de días a disfrutar </th> " + "</tr>"; foreach (SolicitudDetalle oSolicitudDetalle in oLstSolicitudDetalle) { if (oLstCorreos == null && oLstCorreos.Count == 0) { oLstCorreos.Add(oSolicitudDetalle.crreo_jfe_slctnte); } else { int Count = oLstCorreos.Count(element => element == oSolicitudDetalle.crreo_jfe_slctnte); if (Count == 0) { oLstCorreos.Add(oSolicitudDetalle.crreo_jfe_slctnte); } } //Se adiciona cada uno de los empleados a la tabla del anotador oTableAnotador += "<tr>" + "<td>" + oSolicitudDetalle.idntfccn_slctnte + "</td>" + "<td>" + oSolicitudDetalle.nmbrs_slctnte + oSolicitudDetalle.apllds_slctnte + "</td>" + "<td>" + oSolicitudDetalle.fcha_inco_vccns.ToShortDateString() + "</td>" + "<td>" + oSolicitudDetalle.fcha_fn_vcc.ToShortDateString() + "</td>" + "<td>" + oSolicitudDetalle.nmro_ds + "</td>" + "</tr>"; } } //Se cierra la tabla del anotador oTableAnotador += "</Table>"; oFlow = new FlowModels { correoAnotador = oCorreoAnotador, lista = oTableAnotador, opt = 6 }; oTableAnotador = string.Empty; oMensajeRespuesta = new MensajeRespuesta(); //Aqui se debe enviar notificacion individual oMensajeRespuesta = oConsumoApiFlow.EnviarNotificacionFlow(oFlow); if (oMensajeRespuesta.Codigo != "1") { Logger.Error("Ocurrió un error enviando las notificaciones por correo electrónico para el anotador con correo: " + oCorreoAnotador + ". Id de la solicitud: " + IdSolicitud); } foreach (var oCorreo in oLstCorreos) { oTableJefes = "<Table cellpadding=0 cellspacing=0 border=1>"; oTableJefes += "<tr>" + "<th> Nro. de identificación </th>" + "<th> Nombres y apellidos </th>" + "<th> Inicio de vacaciones </th>" + "<th> Fin de vacaciones </th>" + "<th> Nro. de días a disfrutar </th> " + "</tr>"; foreach (var oDetalle in oLstSolicitudDetalle) { if (oDetalle.crreo_jfe_slctnte == oCorreo) { oTableJefes += "<tr>" + "<td>" + oDetalle.idntfccn_slctnte + "</td>" + "<td>" + oDetalle.nmbrs_slctnte + oDetalle.apllds_slctnte + "</td>" + "<td>" + oDetalle.fcha_inco_vccns.ToShortDateString() + "</td>" + "<td>" + oDetalle.fcha_fn_vcc.ToShortDateString() + "</td>" + "<td>" + oDetalle.nmro_ds + "</td>" + "</tr>"; oFlow.correoSolicitante = oDetalle.crreo_slctnte; oFlow.nombreSolicitante = HttpUtility.HtmlDecode(oDetalle.nmbrs_slctnte) + " " + HttpUtility.HtmlDecode(oDetalle.apllds_slctnte); oFlow.fecha_inicio = oDetalle.fcha_inco_vccns.ToShortDateString(); oFlow.fecha_fin = oDetalle.fcha_fn_vcc.ToShortDateString(); oFlow.opt = 4; oMensajeRespuesta = new MensajeRespuesta(); //Aqui se debe enviar notificacion individual oMensajeRespuesta = oConsumoApiFlow.EnviarNotificacionFlow(oFlow); if (oMensajeRespuesta.Codigo != "1") { Logger.Error("Ocurrió un error enviando las notificaciones por correo electrónico para el empleado con código SAP: " + oDetalle.codEmpldo + ". Nombre Completo: " + oDetalle.nmbrs_slctnte + oDetalle.apllds_slctnte + ". Id solcicitud: " + IdSolicitud); oMensajeRespuesta = new MensajeRespuesta(); } if (oDetalle.nmro_ds <= oDetalle.NroMinDiasCorreoCompensacion) { oFlowCompensacion = new FlowModels(); oFlowCompensacion.CorreoCompensacion = oDetalle.CorreoCompensacion; oFlowCompensacion.nombreSolicitante = HttpUtility.HtmlDecode(oDetalle.nmbrs_slctnte) + " " + HttpUtility.HtmlDecode(oDetalle.apllds_slctnte); oFlowCompensacion.fecha_inicio = oDetalle.fcha_inco_vccns.ToShortDateString(); oFlowCompensacion.fecha_fin = oDetalle.fcha_fn_vcc.ToShortDateString(); oFlowCompensacion.opt = 5; oMensajeRespuesta = new MensajeRespuesta(); //Aqui se debe enviar notificacion individual oMensajeRespuesta = oConsumoApiFlow.EnviarNotificacionFlow(oFlowCompensacion); if (oMensajeRespuesta.Codigo != "1") { Logger.Error("Ocurrió un error enviando las notificaciones por correo electrónico para el empleado con código SAP: " + oDetalle.codEmpldo + ". Nombre Completo: " + oDetalle.nmbrs_slctnte + oDetalle.apllds_slctnte + ". Id solcicitud: " + IdSolicitud); oMensajeRespuesta = new MensajeRespuesta(); } } } } oTableJefes += "</Table>"; oFlow = new FlowModels { CorreoJefe = oCorreo, lista = oTableJefes, url = "<a href=" + URIAprobacionyRechazo + HttpUtility.UrlEncode(StringCipher.Encrypt(oCorreo)) + ">Haga clic aqui </a>", opt = 3 }; oTableJefes = string.Empty; oMensajeRespuesta = new MensajeRespuesta(); //Aqui se debe enviar notificacion individual oMensajeRespuesta = oConsumoApiFlow.EnviarNotificacionFlow(oFlow); if (oMensajeRespuesta.Codigo != "1") { Logger.Error("Ocurrió un error enviando las notificaciones por correo electrónico para el jefe con correo: " + oCorreo + ". Id de la solicitud: " + IdSolicitud); } } oMensajeRespuesta = new MensajeRespuesta(); oMensajeRespuesta.Codigo = "1"; oMensajeRespuesta.Mensaje = "Se genero la lista de correos satisfactoriamente"; oMensajeRespuesta.Resultado = Json(oLstCorreos, JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { Logger.Error("Ocurrió un error enviando las notificaciones por correo electrónico." + ". Exception: " + Ex); oMensajeRespuesta.Codigo = "-1"; oMensajeRespuesta.Mensaje = "Ocurrió un error enviando las notificaciones por correo electrónico. Contacte al administrador del sistema"; return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }
public JsonResult ArmarObjetoPantallaModal(string RespuestaMotor, string RespuestaSAP) { MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta(); RespuestaSAPModels oRespuestaSap = new RespuestaSAPModels(); RespuestaMotorModels oRespuestaMotor = new RespuestaMotorModels { Escenario = new List <EscenarioModels>(), Reglas = new List <ReglaModels>(), Error = new ErrorModels() }; UtilitiesGenerales oDiasContingente = new UtilitiesGenerales(); ModalAnotadoresModels oModalAnotadoresModels = new ModalAnotadoresModels(); try { oRespuestaMotor = JsonConvert.DeserializeObject <RespuestaMotorModels>(RespuestaMotor); oRespuestaSap = JsonConvert.DeserializeObject <RespuestaSAPModels>(RespuestaSAP); oModalAnotadoresModels.NombreEmpleado = HttpUtility.HtmlDecode(oRespuestaSap.Details[0].PrimerNombre) + " " + HttpUtility.HtmlDecode(oRespuestaSap.Details[0].SegundoNombre) + " "; oModalAnotadoresModels.ApellidoEmpleado = HttpUtility.HtmlDecode(oRespuestaSap.Details[0].PrimerApellido) + " " + HttpUtility.HtmlDecode(oRespuestaSap.Details[0].SegundoApellido); foreach (var oReglas in oRespuestaMotor.Reglas) { switch (oReglas.Prmtro) { case "NroDias": oModalAnotadoresModels.NroDias = oDiasContingente.CalcularDiasContingente(oRespuestaSap.Details[0].Contingentes.Contigente, oReglas).ToString().Replace('.', ','); // Pendiente por realizar //////////////////////// break; case "NroMinDias": oModalAnotadoresModels.MinimoDias = Convert.ToDouble(oReglas.Vlr_Slda); break; case "DiasMinCalendario": oModalAnotadoresModels.InicioFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; case "DiasMaxCalendario": oModalAnotadoresModels.FinFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; case "NroMinDiasCorreoCompensacion": oModalAnotadoresModels.NroMinDiasCorreoCompensacion = int.Parse(oReglas.Vlr_Slda); break; case "CorreoCompensacion": oModalAnotadoresModels.CorreoCompensacion = oReglas.Vlr_Slda; break; } } oModalAnotadoresModels.SabadoHabil = oRespuestaSap.Details[0].SabadoHabil; // Se obtienen las fechas de los festivos, sabados y domingos (Si se envía true incluira los sábados, si se envía false no incluirá los sábados, según criterio) string DiasFestivosSabadosDomingos = FestivosColombia.DiasFestivoSabadosDomingosConcatenado(DateTime.Now.Year, oModalAnotadoresModels.SabadoHabil == "NO" ? true : false); oModalAnotadoresModels.DiasFestivosSabadosDomingos = DiasFestivosSabadosDomingos; oModalAnotadoresModels.CorreoSolicitante = !string.IsNullOrEmpty(oRespuestaSap.Details[0].CorreoCorp) ? oRespuestaSap.Details[0].CorreoCorp : oRespuestaSap.Details[0].CorreoPersonal; oModalAnotadoresModels.CorreoJefeSolicitante = !string.IsNullOrEmpty(oRespuestaSap.Details[0].CorreoCorpJefe) ? oRespuestaSap.Details[0].CorreoCorpJefe : oRespuestaSap.Details[0].CorreoPersonalJefe; oModalAnotadoresModels.CodigoEmpleado = oRespuestaSap.Details[0].NroPersonal; oModalAnotadoresModels.Sociedad = oRespuestaSap.Details[0].Sociedad; oMensajeRespuesta.Codigo = "1"; oMensajeRespuesta.Resultado = Json(oModalAnotadoresModels, JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { Logger.Error("Ocurrió un error interno en el consumo del API del motor de reglas. " + "Exception: " + Ex); oMensajeRespuesta.Codigo = "-3"; oMensajeRespuesta.Mensaje = "Ocurrió un error inesperado en la consulta de la información. Contacte al administrador del sistema"; oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oMensajeRespuesta, Formatting.Indented), JsonRequestBehavior.AllowGet); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }
public JsonResult AgregarOEditarEmpleado(string NroIdentificacion, string NombresEmpleado, string ApellidosEmpleado, string NumeroDias, string NumeroDiasDisponibles, bool EsEdit, bool EsModal, string FechaInicio, string FechaFin, string DataActual, string oRespuestaSAP, string SabadoHabil, string CorreoSolicitante, string CorreoJefeSolicitante, string CodigoEmpleado, string Sociedad, string MinimoDias, string InicioFecha, string FinFecha, string DiasFestivosSabadosDomingos, string oRespuestaMotor, string oMinimoDiasCorreoCompensacion, string oCorreoCompensacion) { RespuestaSAPModels oRespuestaSAPModels = new RespuestaSAPModels(); RespuestaMotorModels oRespuestaMotorModels = new RespuestaMotorModels(); List <SolicitudDetalle> oLstSolicitudDetalle = new List <SolicitudDetalle>(); try { oLstSolicitudDetalle = JsonConvert.DeserializeObject <List <SolicitudDetalle> >(DataActual); if (!EsEdit) { //Se valida si ya la cedula ha sido agregada int Existe = oLstSolicitudDetalle .Where(w => w.nmroDcmnto == NroIdentificacion).Count(); if (Existe == 0) { if (!EsModal) { oRespuestaSAPModels = JsonConvert.DeserializeObject <RespuestaSAPModels>(oRespuestaSAP); oRespuestaMotorModels = JsonConvert.DeserializeObject <RespuestaMotorModels>(oRespuestaMotor); double oMinimoDias = 0; DateTime oInicioFecha = new DateTime(); DateTime oFinFecha = new DateTime(); foreach (var oReglas in oRespuestaMotorModels.Reglas) { switch (oReglas.Prmtro) { case "NroMinDias": oMinimoDias = Convert.ToDouble(oReglas.Vlr_Slda); break; case "DiasMinCalendario": oInicioFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; case "DiasMaxCalendario": oFinFecha = DateTime.Now.AddDays(Convert.ToDouble(oReglas.Vlr_Slda)); break; } } //Aqui se agregan los items desde la pantalla principal if (oRespuestaSAPModels != null && oRespuestaSAPModels.Details.Count > 0) { oLstSolicitudDetalle.Add(new SolicitudDetalle { nmroDcmnto = NroIdentificacion, nmbrs_slctnte = HttpUtility.HtmlDecode(NombresEmpleado), apllds_slctnte = HttpUtility.HtmlDecode(ApellidosEmpleado), nmbre_cmplto = HttpUtility.HtmlDecode(NombresEmpleado) + " " + HttpUtility.HtmlDecode(ApellidosEmpleado), fcha_inco_vccns = Convert.ToDateTime(FechaInicio), fcha_fn_vcc = Convert.ToDateTime(FechaFin), nmro_ds = int.Parse(NumeroDias), sbdo_hbl = oRespuestaSAPModels.Details[0].SabadoHabil == "NO" ? false : true, fcha_hra_aprvc = DateTime.Now, fcha_hra_rgstro_nvdd = DateTime.Now, crreo_slctnte = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorp) ? oRespuestaSAPModels.Details[0].CorreoCorp : oRespuestaSAPModels.Details[0].CorreoPersonal, crreo_jfe_slctnte = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorpJefe) ? oRespuestaSAPModels.Details[0].CorreoCorpJefe : oRespuestaSAPModels.Details[0].CorreoPersonalJefe, codEmpldo = oRespuestaSAPModels.Details[0].NroPersonal, idEstdoSlctd = 1, scdd = oRespuestaSAPModels.Details[0].Sociedad, nmro_ds_dspnbls = double.Parse(NumeroDiasDisponibles), MinimoDias = oMinimoDias, InicioFecha = oInicioFecha, FinFecha = oFinFecha, DiasFestivosSabadosDomingos = DiasFestivosSabadosDomingos, NroMinDiasCorreoCompensacion = int.Parse(oMinimoDiasCorreoCompensacion), CorreoCompensacion = oCorreoCompensacion }); oMensajeRespuesta = new MensajeRespuesta { Codigo = "1", Mensaje = "Empleado agregado correctamente a la lista", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; } else { oMensajeRespuesta = new MensajeRespuesta { Codigo = "2", Mensaje = "No fue posible adicionar el empleado a la lista. Contacte al administrador del sistema", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; Logger.Error("No fue posible deserializar el Objeto de la respuesta de SAP " + "Nro. Documento: " + NroIdentificacion + "Era Modal Anotadores: " + EsModal); } } else { //Aqui se agrega desde la pantalla modal oLstSolicitudDetalle.Add(new SolicitudDetalle { nmroDcmnto = NroIdentificacion, nmbrs_slctnte = HttpUtility.HtmlDecode(NombresEmpleado), apllds_slctnte = HttpUtility.HtmlDecode(ApellidosEmpleado), nmbre_cmplto = HttpUtility.HtmlDecode(NombresEmpleado) + " " + HttpUtility.HtmlDecode(ApellidosEmpleado), fcha_inco_vccns = Convert.ToDateTime(FechaInicio), fcha_fn_vcc = Convert.ToDateTime(FechaFin), nmro_ds = int.Parse(NumeroDias), sbdo_hbl = SabadoHabil == "NO" ? false : true, fcha_hra_aprvc = DateTime.Now, fcha_hra_rgstro_nvdd = DateTime.Now, crreo_slctnte = CorreoSolicitante, crreo_jfe_slctnte = CorreoJefeSolicitante, codEmpldo = CodigoEmpleado, idEstdoSlctd = 1, scdd = Sociedad, nmro_ds_dspnbls = double.Parse(NumeroDiasDisponibles), MinimoDias = double.Parse(MinimoDias), InicioFecha = Convert.ToDateTime(InicioFecha), FinFecha = Convert.ToDateTime(FinFecha), DiasFestivosSabadosDomingos = DiasFestivosSabadosDomingos, NroMinDiasCorreoCompensacion = int.Parse(oMinimoDiasCorreoCompensacion), CorreoCompensacion = oCorreoCompensacion }); oMensajeRespuesta = new MensajeRespuesta { Codigo = "1", Mensaje = "Empleado agregado correctamente a la lista", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; } } else { oMensajeRespuesta = new MensajeRespuesta { Codigo = "3", Mensaje = "El empleado ya se encuentra agregado en la lista. Verifique la información e inténtelo de nuevo", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; } } else { //Aqui se hacen las ediciones SolicitudDetalle oSolicitudDetalle = new SolicitudDetalle(); if (oLstSolicitudDetalle != null && oLstSolicitudDetalle.Count > 0) { foreach (var item in oLstSolicitudDetalle) { if (item.nmroDcmnto == NroIdentificacion) { item.nmro_ds = int.Parse(NumeroDias); item.fcha_inco_vccns = Convert.ToDateTime(FechaInicio); item.fcha_fn_vcc = Convert.ToDateTime(FechaFin); break; } } } oMensajeRespuesta = new MensajeRespuesta { Codigo = "1", Mensaje = "Empleado actualizado correctamente", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; } return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } catch (Exception Ex) { oMensajeRespuesta = new MensajeRespuesta { Codigo = "-1", Mensaje = "Ocurrió un error. Por favor contacte al administrador del sistema", Resultado = Json(oLstSolicitudDetalle, JsonRequestBehavior.AllowGet) }; Logger.Error("Ocurrió un error interno agregando o editando el empleado en la pantalla de anotador. " + "Nro. Documento: " + NroIdentificacion + "Exception: " + Ex); return(Json(oMensajeRespuesta, JsonRequestBehavior.AllowGet)); } }