Ejemplo n.º 1
0
        public MensajeRespuesta AlmacenarSolicitud(Solicitudes oSolicitud)
        {
            MensajeRespuesta oMensajeRespuesta = new MensajeRespuesta();
            RespuestaGuardarSolicitudModels oRespuestaGuardarSolicitudModels = new RespuestaGuardarSolicitudModels();

            try
            {
                string url = URIGuardarNovedad;
                oHttpWebRequest             = (HttpWebRequest)WebRequest.Create(url);
                oHttpWebRequest.ContentType = "application/json";
                oHttpWebRequest.Method      = "POST";
                oEncoding = Encoding.GetEncoding("utf-8");

                using (var streamWriter = new StreamWriter(oHttpWebRequest.GetRequestStream()))
                {
                    string json = JsonConvert.SerializeObject(oSolicitud, Formatting.Indented);

                    streamWriter.Write(json);
                }

                oHttpWebResponse = (HttpWebResponse)oHttpWebRequest.GetResponse();

                if (oHttpWebResponse.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader oStreamReader = new StreamReader(oHttpWebResponse.GetResponseStream());
                    oRespuestaGuardarSolicitudModels = JsonConvert.DeserializeObject <RespuestaGuardarSolicitudModels>(oStreamReader.ReadToEnd());

                    oMensajeRespuesta.Codigo    = oRespuestaGuardarSolicitudModels.Codigo.ToString();
                    oMensajeRespuesta.Resultado = Json(oRespuestaGuardarSolicitudModels, JsonRequestBehavior.AllowGet);

                    switch (oRespuestaGuardarSolicitudModels.Codigo)
                    {
                    case 1:
                        oMensajeRespuesta.Mensaje = "Solicitud enviada satisfactoriamente";
                        break;

                    case -1:

                        Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                     oSolicitud.nmro_idntfccn +
                                     ". Mensaje del servicio: " + oRespuestaGuardarSolicitudModels.Respuesta + ". ");


                        oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";


                        break;

                    case -2:

                        Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                     oSolicitud.nmro_idntfccn +
                                     ". Mensaje del servicio: " + oRespuestaGuardarSolicitudModels.Respuesta + ". ");

                        oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";

                        break;

                    case -3:

                        Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                     oSolicitud.nmro_idntfccn +
                                     ". Mensaje del servicio: " + oRespuestaGuardarSolicitudModels.Respuesta + ". ");

                        oMensajeRespuesta.Mensaje = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";

                        break;
                    }
                }
                else
                {
                    Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                                 oSolicitud.nmro_idntfccn +
                                 ". 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(oRespuestaGuardarSolicitudModels, JsonRequestBehavior.AllowGet);
                }

                return(oMensajeRespuesta);
            }
            catch (Exception Ex)
            {
                Logger.Error("Ocurrió un error almacenando la solicitud de vacaciones. Nro Documento Encabezado: " +
                             oSolicitud.nmro_idntfccn +
                             ". Exception: " + Ex);

                oRespuestaGuardarSolicitudModels.Codigo    = -3;
                oRespuestaGuardarSolicitudModels.Respuesta = "Ocurrió un error almacenando la solicitud de vacaciones. Contacte al administrador del sistema";

                oMensajeRespuesta.Codigo    = oRespuestaGuardarSolicitudModels.Codigo.ToString();
                oMensajeRespuesta.Mensaje   = oRespuestaGuardarSolicitudModels.Respuesta;
                oMensajeRespuesta.Resultado = Json(JsonConvert.SerializeObject(oRespuestaGuardarSolicitudModels, Formatting.Indented), JsonRequestBehavior.AllowGet);

                return(oMensajeRespuesta);
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }