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));
            }
        }
Esempio n. 2
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));
            }
        }