Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        public MensajeRespuesta ConsultarEscenarioYReglas(string clasificacion, string gestor, string DesCargo)
        {
            MensajeRespuesta     oMensajeRespuesta = new MensajeRespuesta();
            RespuestaMotorModels oRespuestaMotor   = new RespuestaMotorModels
            {
                Escenario = new List <EscenarioModels>(),
                Reglas    = new List <ReglaModels>(),
                Error     = new ErrorModels()
            };

            try
            {
                string url = URIMotorReglas + Variable1MotorReglas + clasificacion + "&" + Variable2MotorReglas + gestor + "&" + Variable3MotorReglas + DesCargo;
                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());
                    oRespuestaMotor = JsonConvert.DeserializeObject <RespuestaMotorModels>(oStreamReader.ReadToEnd());

                    oMensajeRespuesta.Codigo    = oRespuestaMotor.Error.ID.ToString();
                    oMensajeRespuesta.Resultado = Json(oRespuestaMotor, JsonRequestBehavior.AllowGet);

                    switch (oRespuestaMotor.Error.ID)
                    {
                    case 1:
                        oMensajeRespuesta.Mensaje = "";
                        break;

                    case -1:

                        Logger.Error("Ocurrió un error consultando la información del motor de reglas. Clasificacion: " +
                                     clasificacion + ". Gestor: " + gestor +
                                     ". Mensaje del servicio: " + oRespuestaMotor.Error.MESSAGE + ". ");


                        oMensajeRespuesta.Mensaje = "No se encontraron datos dentro del motor de reglas con los parámetros enviados. Contacte al administrador del sistema";


                        break;

                    case -2:

                        Logger.Error("No fue posible validar el escenario con los parámetros enviados. Contacte al administrador del sistema. Clasificacion: " +
                                     clasificacion + ". Gestor: " + gestor +
                                     ". Mensaje del servicio: " + oRespuestaMotor.Error.MESSAGE + ". ");

                        oMensajeRespuesta.Mensaje = "No fue posible validar el escenario con los parámetros enviados. Contacte al administrador del sistema";

                        break;

                    case -3:

                        Logger.Error("Ocurrió un error consultando la información del motor de reglas. Clasificacion: " +
                                     clasificacion + ". Gestor: " + gestor +
                                     ". Mensaje del servicio: " + oRespuestaMotor.Error.MESSAGE + ". ");

                        oMensajeRespuesta.Mensaje = "Ocurrió un error consultando la información del motor de reglas. Contacte al administrador del sistema";

                        break;
                    }
                }
                else
                {
                    Logger.Error("Ocurrió un error consultando la información del motor de reglas. Clasificacion: " +
                                 clasificacion + ". Gestor: " + gestor +
                                 ". StatusCodeResponse: " + oHttpWebResponse.StatusCode.ToString() +
                                 ". StatusDescription: " + oHttpWebResponse.StatusDescription.ToString());

                    oMensajeRespuesta.Codigo    = "-3";
                    oMensajeRespuesta.Mensaje   = "Se presento un error en la disponibilidad del motor de reglas. Contacte al administrador del sistema";
                    oMensajeRespuesta.Resultado = Json(oRespuestaMotor, JsonRequestBehavior.AllowGet);
                }

                return(oMensajeRespuesta);
            }
            catch (Exception Ex)
            {
                Logger.Error("Ocurrió un error consultando la información del motor de reglas. Clasificacion: " +
                             clasificacion + ". Gestor: " + gestor +
                             ". Exception: " + Ex);

                oMensajeRespuesta.Codigo    = "-3";
                oMensajeRespuesta.Mensaje   = "Ocurrió un error consultando la información del motor de reglas. Contacte al administrador del sistema";
                oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oRespuestaMotor, Formatting.Indented), JsonRequestBehavior.AllowGet);

                return(oMensajeRespuesta);
            }
        }
        // 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));
            }
        }
Beispiel #5
0
        public JsonResult GuardarSolicitud(string NroIdentificacionAnotador, string NombresEmpleadoAnotador, string ApellidosEmpleadoAnotador,
                                           string oRespuestaMotor, string oDataActual, string oCorreoAnotador)
        {
            MensajeRespuesta           oMensajeRespuesta           = new MensajeRespuesta();
            ConsumoAPIGuardarSolicitud oConsumoAPIGuardarSolicitud = new ConsumoAPIGuardarSolicitud();
            RespuestaMotorModels       oRespuestaMotorModels       = new RespuestaMotorModels();
            Solicitudes        oSolicitudes        = new Solicitudes();
            UtilitiesGenerales oUtilitiesGenerales = new UtilitiesGenerales();

            string NombreUser = System.Web.HttpContext.Current.User.Identity.Name;
            int    backSlash  = NombreUser.IndexOf("\\");
            string UserName   = backSlash > 0 ? NombreUser.Substring(backSlash + 1) : NombreUser;

            try
            {
                if (!string.IsNullOrEmpty(oRespuestaMotor))
                {
                    oRespuestaMotorModels = JsonConvert.DeserializeObject <RespuestaMotorModels>(oRespuestaMotor);

                    //oCorreoAnotador = !string.IsNullOrEmpty(oRespuestaSAPModels.Details[0].CorreoCorp) ? oRespuestaSAPModels.Details[0].CorreoCorp : oRespuestaSAPModels.Details[0].CorreoPersonal;

                    oSolicitudes.fcha_hra_slctd = DateTime.Now;
                    oSolicitudes.nmbrs_slctnte  = HttpUtility.HtmlDecode(NombresEmpleadoAnotador);
                    oSolicitudes.apllds_slctnte = HttpUtility.HtmlDecode(ApellidosEmpleadoAnotador);
                    oSolicitudes.nmro_idntfccn  = NroIdentificacionAnotador;
                    oSolicitudes.cdgo_escenario = oRespuestaMotorModels.Escenario[0].Cdgo;
                    oSolicitudes.detalle        = GenerarObjetoSolicitudDetalle(oDataActual);
                    oSolicitudes.crro_antdr     = oCorreoAnotador;
                    oSolicitudes.ip             = Request.UserHostAddress;
                    oSolicitudes.nmbre_usrio    = oCorreoAnotador;
                    oSolicitudes.nmbre_eqpo     = oCorreoAnotador;
                    oSolicitudes.ip             = oUtilitiesGenerales.ObtenerIp();
                    oSolicitudes.nmbre_usrio    = UserName;
                    oSolicitudes.nmbre_eqpo     = oUtilitiesGenerales.ObtenerNombreMaquina();

                    if (oSolicitudes.detalle != null && oSolicitudes.detalle.Count > 0)
                    {
                        oMensajeRespuesta = oConsumoAPIGuardarSolicitud.AlmacenarSolicitud(oSolicitudes);
                    }
                    else
                    {
                        Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                     oSolicitudes.nmro_idntfccn +
                                     ". Especificacion: Ocurrió un error generando el Objeto solicitud detalle en la clase AnotadorController método GenerarObjetoSolicitudDetalle" + ". ");

                        oMensajeRespuesta.Codigo  = "-1";
                        oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";
                    }
                }
                else
                {
                    oMensajeRespuesta.Codigo  = "-1";
                    oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";

                    Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                 NroIdentificacionAnotador + ". ");
                }

                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));
            }
        }
Beispiel #6
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));
            }
        }
Beispiel #7
0
        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));
            }
        }