using CR.Atesa.VacacionesModel; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Odbc; using System.Data.OracleClient; using System.Linq; using System.Web; using System.Web.Services; using Ultimus.Interfaces; using Ultimus.Utilitarios; namespace CR.Atesa.Vacaciones.Webservice { /// /// Descripción breve de Vacaciones /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. // [System.Web.Script.Services.ScriptService] public class Vacaciones : System.Web.Services.WebService { UltimusLogs logs = new UltimusLogs("VacacionesWebservice"); [WebMethod] public SolicitudVacaciones ConsultaInfoFuncionario(string CodigoEmpresa, string UsuarioUltimus) { SolicitudVacaciones sResponse = new SolicitudVacaciones(); try { sResponse.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); OracleConnection cn = new OracleConnection(ConfigurationManager.AppSettings["ConnectionString"]); OracleCommand cmd = new OracleCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Consulta_Info_Funcionario"; cmd.Parameters.Add("pCodigoEmpresa", OracleType.VarChar, 200).Value = CodigoEmpresa; cmd.Parameters.Add("pUsuarioUltimus", OracleType.VarChar, 200).Value = UsuarioUltimus; cmd.Parameters.Add("pIdentificacion", OracleType.VarChar, 15).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pNombre", OracleType.VarChar, 100).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pNumeroEmpleado", OracleType.Number).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pEmail", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pMensajeError", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pDisponible", OracleType.Number).Direction = ParameterDirection.InputOutput; cn.Open(); cmd.ExecuteNonQuery(); sResponse.Identificacion = cmd.Parameters["pIdentificacion"].Value.ToString(); sResponse.Nombre = cmd.Parameters["pNombre"].Value.ToString(); if (!string.IsNullOrEmpty(cmd.Parameters["pNumeroEmpleado"].Value.ToString())) sResponse.NumeroEmpleado = Convert.ToInt32(cmd.Parameters["pNumeroEmpleado"].Value.ToString()); sResponse.Email = cmd.Parameters["pEmail"].Value.ToString(); sResponse.MensajeError = cmd.Parameters["pMensajeError"].Value.ToString(); if (!string.IsNullOrEmpty(cmd.Parameters["pDisponible"].Value.ToString())) sResponse.Disponible = Convert.ToInt32(cmd.Parameters["pDisponible"].Value.ToString()); if (!string.IsNullOrEmpty(sResponse.MensajeError)) { sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); logs.Error(sResponse.MensajeError); } cn.Close(); } catch (OdbcException ex2) { logs.Error(ex2.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } catch (Exception ex) { logs.Error(ex.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } return sResponse; } [WebMethod] public SolicitudVacaciones RegistrarSolicituddUltimus(string CodigoEmpresa, int NumeroEmpleado, DateTime FechaInicial, DateTime FechaFinal) { SolicitudVacaciones sResponse = new SolicitudVacaciones(); try { sResponse.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); OracleConnection cn = new OracleConnection(ConfigurationManager.AppSettings["ConnectionString"]); OracleCommand cmd = new OracleCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Registrar_Solicitudd_Ultimus"; cmd.Parameters.Add("pCodigoEmpresa", OracleType.VarChar, 200).Value = CodigoEmpresa; cmd.Parameters.Add("pNumeroEmpleado", OracleType.Number).Value = NumeroEmpleado; cmd.Parameters.Add("pFechaInicial", OracleType.DateTime).Value = Convert.ToDateTime(FechaInicial); cmd.Parameters.Add("pFechaFinal", OracleType.DateTime).Value = Convert.ToDateTime(FechaFinal); cmd.Parameters.Add("pTotalDias", OracleType.Number).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pPeriodo", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pNumSolicitud", OracleType.Number).Direction = ParameterDirection.InputOutput; cmd.Parameters.Add("pMensajeError", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cn.Open(); cmd.ExecuteNonQuery(); if (!string.IsNullOrEmpty(cmd.Parameters["pTotalDias"].Value.ToString())) sResponse.TotalDias = Convert.ToInt32(cmd.Parameters["pTotalDias"].Value.ToString()); sResponse.Periodo = cmd.Parameters["pPeriodo"].Value.ToString(); if (!string.IsNullOrEmpty(cmd.Parameters["pNumSolicitud"].Value.ToString())) sResponse.NumSolicitud = Convert.ToInt32(cmd.Parameters["pNumSolicitud"].Value.ToString()); sResponse.MensajeError = cmd.Parameters["pMensajeError"].Value.ToString(); if (!string.IsNullOrEmpty(sResponse.MensajeError)) { sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); logs.Error(sResponse.MensajeError); } cn.Close(); } catch (OdbcException ex2) { logs.Error(ex2.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } catch (Exception ex) { logs.Error(ex.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } return sResponse; } [WebMethod] public SolicitudVacaciones AprobacionRechazoSolicitud(string CodigoEmpresa, int NumeroSolicitud, string UsuarioUltimus, string Observaciones, string IndDecision) { SolicitudVacaciones sResponse = new SolicitudVacaciones(); try { sResponse.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); OracleConnection cn = new OracleConnection(ConfigurationManager.AppSettings["ConnectionString"]); OracleCommand cmd = new OracleCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "APROBACION_RECHAZO_SOLICITUD"; cmd.Parameters.Add("pCodEmpresa", OracleType.VarChar, 200).Value = CodigoEmpresa; cmd.Parameters.Add("pNumeroSolicitud", OracleType.Number).Value = NumeroSolicitud; cmd.Parameters.Add("pUsuarioUltimus", OracleType.VarChar, 200).Value = UsuarioUltimus; cmd.Parameters.Add("pObservaciones", OracleType.VarChar, 200).Value = Observaciones; cmd.Parameters.Add("pIndDecision", OracleType.VarChar, 200).Value = IndDecision; cmd.Parameters.Add("pMensajeError", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cn.Open(); cmd.ExecuteNonQuery(); sResponse.MensajeError = cmd.Parameters["pMensajeError"].Value.ToString(); if (!string.IsNullOrEmpty(sResponse.MensajeError)) { sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); logs.Error(sResponse.MensajeError); } cn.Close(); } catch (OdbcException ex2) { logs.Error(ex2.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } catch (Exception ex) { logs.Error(ex.Message); sResponse.MensajeError = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } return sResponse; } [WebMethod] public BaseJason EnviarCorreoAprobacion(string Recipient, string Subject, string Message) { BaseJason sResponse = new BaseJason(); try { sResponse.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString(); OracleConnection cn = new OracleConnection(ConfigurationManager.AppSettings["ConnectionString"]); OracleCommand cmd = new OracleCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "ENVIAR_CORREO_APROBACION"; cmd.Parameters.Add("pRecipient", OracleType.VarChar, 200).Value = Recipient; cmd.Parameters.Add("pSubject", OracleType.VarChar, 200).Value = Subject; cmd.Parameters.Add("pMessage", OracleType.VarChar, 200).Value = Subject; cmd.Parameters.Add("pMensajeError", OracleType.VarChar, 200).Direction = ParameterDirection.InputOutput; cn.Open(); cmd.ExecuteNonQuery(); sResponse.DescripcionRespuesta = cmd.Parameters["pMensajeError"].Value.ToString(); if (!string.IsNullOrEmpty(sResponse.DescripcionRespuesta)) { sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); logs.Error(sResponse.DescripcionRespuesta); } cn.Close(); } catch (OdbcException ex2) { logs.Error(ex2.Message); sResponse.DescripcionRespuesta = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } catch (Exception ex) { logs.Error(ex.Message); sResponse.DescripcionRespuesta = "Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde"; sResponse.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString(); } return sResponse; } } }