예제 #1
0
        // 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);
            }
        }
예제 #2
0
        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));
            }
        }