예제 #1
0
        /// <summary>
        /// Retorna una lista de id y descripcion de un catálogo del sistema
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public List <EntCatalogo> BReadCat(DataSet ds, int index)
        {
            List <EntCatalogo> values = new List <EntCatalogo>();

            try
            {
                DataTable dt = ds.Tables[index];
                foreach (DataRow item in dt.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(item);

                    //Leer datos
                    EntCatalogo entCatalogo = new EntCatalogo
                    {
                        fiId          = dr.ConvertTo <int>("fiId"),
                        fsDescripcion = dr.ConvertTo <string>("fsDescripcion")
                    };
                    values.Add(entCatalogo);
                }
            }
            catch (Exception)
            {
                //Mantener lista vacía
            }
            return(values);
        }
예제 #2
0
        /// <summary>
        /// Reenviar el correo de una orden de compra
        /// </summary>
        /// <param name="psOrderId"></param>
        /// <returns></returns>
        public IMDResponse <bool> BReenviarCorreo(string psOrderId)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BReenviarCorreo);

            logger.Info(IMDSerialize.Serialize(67823458628737, $"Inicia {metodo}(string psOrderId)", psOrderId));

            try
            {
                if (string.IsNullOrWhiteSpace(psOrderId))
                {
                    response.Code    = -345673;
                    response.Message = "No se especificó la orden para guardar el correo.";
                    return(response);
                }

                IMDResponse <DataTable> resGetData = datCorreo.DGetCorreo(psOrderId);
                if (resGetData.Code != 0)
                {
                    return(resGetData.GetResponse <bool>());
                }

                if (resGetData.Result.Rows.Count != 1)
                {
                    response.Code    = -345673;
                    response.Message = "La orden no existe en el registro de correos del sistema.";
                    return(response);
                }

                IMDDataRow dr = new IMDDataRow(resGetData.Result.Rows[0]);

                EntOrderEmail entOrderEmail = new EntOrderEmail
                {
                    sBody    = dr.ConvertTo <string>("sBody"),
                    sOrderId = dr.ConvertTo <string>("sOrderId"),
                    sSubject = dr.ConvertTo <string>("sSubject"),
                    sTo      = dr.ConvertTo <string>("sTo"),
                };

                IMDResponse <bool> resEnviar = this.BEnviarEmail("", "", "", entOrderEmail.sSubject + " (Reenviado)", entOrderEmail.sBody, entOrderEmail.sTo, "", "");
                if (resEnviar.Code != 0)
                {
                    return(resEnviar);
                }

                response.Code    = 0;
                response.Message = $"Se ha reenviado el detalle de la orden a {entOrderEmail.sTo}.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458629514;
                response.Message = "Ocurrió un error inesperado al reenviar el correo de la orden al cliente";

                logger.Error(IMDSerialize.Serialize(67823458629514, $"Error en {metodo}(string psOrderId): {ex.Message}", psOrderId, ex, response));
            }
            return(response);
        }
예제 #3
0
        /// <summary>
        /// Obtener el status actual del colaborador
        /// </summary>
        /// <param name="piIdColaborador"></param>
        /// <returns></returns>
        public IMDResponse <EntColaboradorStatus> BGetColaboradorStatus(int piIdColaborador)
        {
            IMDResponse <EntColaboradorStatus> response = new IMDResponse <EntColaboradorStatus>();

            string metodo = nameof(this.BGetColaboradorStatus);

            logger.Info(IMDSerialize.Serialize(67823458648939, $"Inicia {metodo}(int piIdColaborador)", piIdColaborador));

            try
            {
                if (piIdColaborador < 1)
                {
                    response.Code    = -345687324773;
                    response.Message = "No se especificó el colaborador.";
                    return(response);
                }

                IMDResponse <DataTable> resGetStatus = datColaborador.DGetColaboradorStatus(piIdColaborador);
                if (resGetStatus.Code != 0)
                {
                    return(resGetStatus.GetResponse <EntColaboradorStatus>());
                }

                if (resGetStatus.Result.Rows.Count != 1)
                {
                    response.Code    = -345687324773;
                    response.Message = "No se encontró el colaborador especificado.";
                    return(response);
                }

                IMDDataRow dr = new IMDDataRow(resGetStatus.Result.Rows[0]);

                EntColaboradorStatus entColaboradorStatus = new EntColaboradorStatus
                {
                    bOcupado = Convert.ToBoolean(dr.ConvertTo <int>("bOcupado")),
                    bOnline  = Convert.ToBoolean(dr.ConvertTo <int>("bOnline")),
                };

                response.Code    = 0;
                response.Message = "Se ha consultado el estatus del colaborador.";
                response.Result  = entColaboradorStatus;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458649716;
                response.Message = "Ocurrió un error inesperado al consultar el status del colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458649716, $"Error en {metodo}(int piIdColaborador): {ex.Message}", piIdColaborador, ex, response));
            }
            return(response);
        }
예제 #4
0
        /// <summary>
        /// Consulta si existe una sala de colaborador disponible
        /// </summary>
        /// <param name="bAgendada"></param>
        /// <param name="iIdUsuario"></param>
        /// <param name="dtFechaConsulta"></param>
        /// <returns></returns>
        public IMDResponse <EntColaborador> BObtenerSala(bool?bAgendada = null, int?iIdUsuario = null, DateTime?dtFechaConsulta = null)
        {
            IMDResponse <EntColaborador> response = new IMDResponse <EntColaborador>();
            EntColaborador oColaborador           = new EntColaborador();

            string metodo = nameof(this.BObtenerSala);

            logger.Info(IMDSerialize.Serialize(67823458591441, $"Inicia {metodo}(int? iIdTipoProducto = null, int? iIdUsuario = null, DateTime? dtFechaConsulta = null)"));

            try
            {
                IMDResponse <DataTable> dtColaborador = datColaborador.DObtenerSala(bAgendada, iIdUsuario, dtFechaConsulta);
                if (dtColaborador.Code != 0)
                {
                    return(dtColaborador.GetResponse <EntColaborador>());
                }


                foreach (DataRow item in dtColaborador.Result.Rows)
                {
                    IMDDataRow rows = new IMDDataRow(item);

                    oColaborador = new EntColaborador
                    {
                        iIdColaborador = rows.ConvertTo <int>("iIdColaborador"),
                        iNumSala       = rows.ConvertTo <int?>("iNumSala")
                    };
                }

                //Verificar si se ha encontrado una sala disponible
                string medicosOcupados = "Todos los médicos se encuentran ocupados en este momento.";
                if (oColaborador.iNumSala == null)
                {
                    response.Code    = -7262876723423;
                    response.Message = medicosOcupados;
                    return(response);
                }

                response.Code    = 0;
                response.Message = dtColaborador.Result.Rows.Count > 0 ? "Se ha encontrado un sala disponible." : medicosOcupados;
                response.Result  = oColaborador;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458592218;
                response.Message = "Ocurrió un error inesperado al obtener la sala del colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458592218, $"Error en {metodo}(int? iIdTipoProducto = null, int? iIdUsuario = null, DateTime? dtFechaConsulta = null): {ex.Message}", ex, response));
            }
            return(response);
        }
예제 #5
0
        //Obtener los perfiles del sistema
        public IMDResponse <List <EntPerfil> > BObtenerPerfil(int?iIdPerfil, bool bActivo, bool bBaja)
        {
            IMDResponse <List <EntPerfil> > response = new IMDResponse <List <EntPerfil> >();

            string metodo = nameof(this.BObtenerPerfil);

            logger.Info(IMDSerialize.Serialize(67823458357564, $"Inicia {metodo}(int? iIdPerfil, bool bActivo, bool bBaja)", iIdPerfil, bActivo, bBaja));

            try
            {
                IMDResponse <DataTable> dtPerfil = datPerfil.DObtenerPerfil(iIdPerfil, bActivo, bBaja);
                if (dtPerfil.Code != 0)
                {
                    return(dtPerfil.GetResponse <List <EntPerfil> >());
                }

                List <EntPerfil> lstPerfiles = new List <EntPerfil>();

                if (dtPerfil.Code != 0)
                {
                    response.Code    = -71470986457102;
                    response.Message = "El sistema no cuenta con perfiles activos.";
                    return(response);
                }


                foreach (DataRow item in dtPerfil.Result.Rows)
                {
                    IMDDataRow dr        = new IMDDataRow(item);
                    EntPerfil  entPerfil = new EntPerfil();

                    entPerfil.iIdPerfil = dr.ConvertTo <int>("iIdPerfil");
                    entPerfil.sNombre   = dr.ConvertTo <string>("sNombre");
                    entPerfil.bActivo   = dr.ConvertTo <bool>("bActivo");
                    entPerfil.bBaja     = dr.ConvertTo <bool>("bBaja");

                    lstPerfiles.Add(entPerfil);
                }

                response.Result  = lstPerfiles;
                response.Message = "Los perfiles del sistema han sido obtenidos.";
            }
            catch (Exception ex)
            {
                response.Code    = 67823458358341;
                response.Message = "Ocurrió un error inesperado al consultar los perfiles del sistema.";

                logger.Error(IMDSerialize.Serialize(67823458358341, $"Error en {metodo}(int? iIdPerfil, bool bActivo, bool bBaja): {ex.Message}", iIdPerfil, bActivo, bBaja, ex, response));
            }
            return(response);
        }
예제 #6
0
        /// <summary>
        /// Obtener la lista de las especialidades
        /// </summary>
        /// <param name="piIdEspecialidad"></param>
        /// <returns></returns>
        public IMDResponse <List <EntEspecialidad> > BGetEspecialidad(int?piIdEspecialidad = null)
        {
            IMDResponse <List <EntEspecialidad> > response = new IMDResponse <List <EntEspecialidad> >();

            string metodo = nameof(this.BGetEspecialidad);

            logger.Info(IMDSerialize.Serialize(67823458451581, $"Inicia {metodo}(int? piIdEspecialidad = null)", piIdEspecialidad));

            try
            {
                //Consultar especialidades
                IMDResponse <DataTable> respuestaGetEspecialidades = datEspecialidad.DGetEspecialidad(piIdEspecialidad);
                if (respuestaGetEspecialidades.Code != 0)
                {
                    return(respuestaGetEspecialidades.GetResponse <List <EntEspecialidad> >());
                }

                List <EntEspecialidad> lstEspecialidades = new List <EntEspecialidad>();
                foreach (DataRow drEspecialidad in respuestaGetEspecialidades.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drEspecialidad);

                    EntEspecialidad especialidad = new EntEspecialidad
                    {
                        bActivo         = dr.ConvertTo <bool>("bActivo"),
                        bBaja           = dr.ConvertTo <bool>("bBaja"),
                        dtFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion"),
                        iIdEspecialidad = dr.ConvertTo <int>("iIdEspecialidad"),
                        sNombre         = dr.ConvertTo <string>("sNombre")
                    };

                    especialidad.sFechaCreacion = especialidad.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm");

                    lstEspecialidades.Add(especialidad);
                }

                response.Code    = 0;
                response.Message = "Las especialidades han sido obtenidas.";
                response.Result  = lstEspecialidades;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458452358;
                response.Message = "Ocurrió un error inesperado al consultar las especialidades.";

                logger.Error(IMDSerialize.Serialize(67823458452358, $"Error en {metodo}(int? piIdEspecialidad = null): {ex.Message}", piIdEspecialidad, ex, response));
            }
            return(response);
        }
예제 #7
0
        /// <summary>
        /// Obtiene los detalles de la consulta del paciente que debe estar programada en el momento de la solicitud
        /// </summary>
        /// <param name="piIdPaciente"></param>
        /// <param name="piIdColaborador"></param>
        /// <returns></returns>
        public IMDResponse <List <EntDetalleConsulta> > BGetConsultaMomento(int piIdPaciente, int piIdColaborador)
        {
            IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >();

            string metodo = nameof(this.BGetConsultaMomento);

            logger.Info(IMDSerialize.Serialize(67823458588333, $"Inicia {metodo}(int piIdPaciente, int piIdColaborador)", piIdPaciente, piIdColaborador));

            try
            {
                int iMinutosToleranciaAntes   = Convert.ToInt32(ConfigurationManager.AppSettings["iMinToleraciaConsultaInicio"]);
                int iMinutosToleranciaDespues = Convert.ToInt32(ConfigurationManager.AppSettings["iMinToleraciaConsultaFin"]);

                IMDResponse <DataTable> resGetConsulta = datConsulta.DGetConsultaProgramada(piIdPaciente, piIdColaborador, iMinutosToleranciaAntes, iMinutosToleranciaDespues);
                if (resGetConsulta.Code != 0)
                {
                    return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >());
                }

                List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>();

                foreach (DataRow drConsulta in resGetConsulta.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drConsulta);

                    EntDetalleConsulta consulta = new EntDetalleConsulta
                    {
                        dtFechaConsultaFin      = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"),
                        dtFechaConsultaInicio   = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"),
                        dtFechaCreacion         = dr.ConvertTo <DateTime?>("dtFechaCreacion"),
                        dtFechaProgramadaFin    = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"),
                        dtFechaProgramadaInicio = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"),
                        iIdColaborador          = dr.ConvertTo <int?>("iIdColaborador"),
                        iIdConsulta             = dr.ConvertTo <int?>("iIdConsulta"),
                        iIdEstatusConsulta      = dr.ConvertTo <int?>("iIdEstatusConsulta"),
                        iIdPaciente             = dr.ConvertTo <int?>("iIdPaciente"),
                    };

                    lstConsultas.Add(consulta);
                }

                response.Code    = 0;
                response.Message = "Se han obtenido las consultas programadas en el horario programado actual.";
                response.Result  = lstConsultas;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458589110;
                response.Message = "Ocurrió un error inesperado al verificar el horario de consulta del paciente.";

                logger.Error(IMDSerialize.Serialize(67823458589110, $"Error en {metodo}(int piIdPaciente, int piIdColaborador): {ex.Message}", piIdPaciente, piIdColaborador, ex, response));
            }
            return(response);
        }
예제 #8
0
        /// <summary>
        /// Guarda los datos de una empresa
        /// </summary>
        /// <param name="entEmpresa"></param>
        /// <returns></returns>
        public IMDResponse <EntEmpresa> BSaveEmpresa(EntEmpresa entEmpresa)
        {
            IMDResponse <bool>       responseValidation = new IMDResponse <bool>();
            IMDResponse <EntEmpresa> response           = new IMDResponse <EntEmpresa>();

            string metodo = nameof(this.BSaveEmpresa);

            logger.Info(IMDSerialize.Serialize(67823458383982, $"Inicia {metodo}(EntEmpresa entEmpresa)", entEmpresa));

            try
            {
                responseValidation = BValidaDatos(entEmpresa);
                if (responseValidation.Code != 0)
                {
                    return(response = responseValidation.GetResponse <EntEmpresa>());
                }

                IMDResponse <DataTable> dtEmpresa = datEmpresa.DSaveEmpresa(entEmpresa);
                if (dtEmpresa.Code != 0)
                {
                    return(dtEmpresa.GetResponse <EntEmpresa>());
                }
                if (dtEmpresa.Result.Rows.Count < 1)
                {
                    response.Code    = -76768273456;
                    response.Message = "No ha sido posible generar la empresa/cliente.";
                    return(response);
                }

                EntEmpresa oEmpresa = new EntEmpresa();
                foreach (DataRow item in dtEmpresa.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(item);

                    oEmpresa.iIdEmpresa     = dr.ConvertTo <int>("iIdEmpresa");
                    oEmpresa.sNombre        = dr.ConvertTo <string>("sNombre");
                    oEmpresa.sFolioEmpresa  = dr.ConvertTo <string>("sFolioEmpresa");
                    oEmpresa.sCorreo        = dr.ConvertTo <string>("sCorreo");
                    oEmpresa.sFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion").ToString("dd/MM/yyyy");
                    oEmpresa.bActivo        = Convert.ToBoolean(dr.ConvertTo <int>("bActivo"));
                    oEmpresa.bBaja          = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"));
                }

                response.Code    = 0;
                response.Message = entEmpresa.iIdEmpresa == 0 ? "La empresa ha sido guardada correctamente." : "La empresa ha sido actualizada correctamente.";
                response.Result  = oEmpresa;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458384759;
                response.Message = "Ocurrió un error inesperado al intentar guardar los datos de la empresa.";

                logger.Error(IMDSerialize.Serialize(67823458384759, $"Error en {metodo}(EntEmpresa entEmpresa): {ex.Message}", entEmpresa, ex, response));
            }
            return(response);
        }
예제 #9
0
        /// <summary>
        /// Obtiene la lista de las empresas solicitadas
        /// </summary>
        /// <param name="iIdEmpresa"></param>
        /// <param name="psCorreo"></param>
        /// <returns></returns>
        public IMDResponse <List <EntEmpresa> > BGetEmpresas(int?iIdEmpresa = null, string psCorreo = null, string psFolioEmpresa = null)
        {
            IMDResponse <List <EntEmpresa> > response = new IMDResponse <List <EntEmpresa> >();

            string metodo = nameof(this.BGetEmpresas);

            logger.Info(IMDSerialize.Serialize(67823458393306, $"Inicia {metodo}(int? iIdEmpresa, string psCorreo = null)", iIdEmpresa, psCorreo));

            try
            {
                IMDResponse <DataTable> dtEmpresa  = datEmpresa.DGetEmpresas(iIdEmpresa, psCorreo, psFolioEmpresa);
                List <EntEmpresa>       lstEmpresa = new List <EntEmpresa>();
                EntEmpresa entEmpresa;

                if (dtEmpresa.Result.Rows.Count < 1)
                {
                    response = dtEmpresa.GetResponse <List <EntEmpresa> >();
                }

                foreach (DataRow item in dtEmpresa.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(item);
                    entEmpresa = new EntEmpresa();

                    entEmpresa.iIdEmpresa     = dr.ConvertTo <int>("iIdEmpresa");
                    entEmpresa.sNombre        = dr.ConvertTo <string>("sNombre");
                    entEmpresa.sFolioEmpresa  = dr.ConvertTo <string>("sFolioEmpresa");
                    entEmpresa.sCorreo        = dr.ConvertTo <string>("sCorreo");
                    entEmpresa.sFechaCreacion = dr.ConvertTo <DateTime>("dtFechaCreacion").ToShortDateString();
                    entEmpresa.bActivo        = Convert.ToBoolean(dr.ConvertTo <int>("bActivo"));
                    entEmpresa.bBaja          = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"));

                    lstEmpresa.Add(entEmpresa);
                }

                response.Code    = 0;
                response.Message = "La lista de empresas ha sido obtenida.";
                response.Result  = lstEmpresa;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458394083;
                response.Message = "Ocurrió un error inesperado al obtener los datos de la empresa.";

                logger.Error(IMDSerialize.Serialize(67823458394083, $"Error en {metodo}(int? iIdEmpresa, string psCorreo = null): {ex.Message}", iIdEmpresa, psCorreo, ex, response));
            }
            return(response);
        }
예제 #10
0
        /// <summary>
        /// Función: Genera un ID de cupón
        /// Creado: Cristopher Noh 28/07/2020
        /// Modificado:
        /// </summary>
        /// <returns></returns>
        public IMDResponse <int> BNuevoIdCupon()
        {
            IMDResponse <int> response = new IMDResponse <int>();

            string metodo = nameof(this.BNuevoIdCupon);

            logger.Info(IMDSerialize.Serialize(67823458211488, $"Inicia {metodo}()"));

            try
            {
                IMDResponse <DataTable> respuestaObtenerId = datPromociones.DGetNewCouponID();
                if (respuestaObtenerId.Code != 0)
                {
                    return(respuestaObtenerId.GetResponse <int>());
                }

                IMDDataRow dr = new IMDDataRow(respuestaObtenerId.Result.Rows[0]);

                int nuevoCuponID = dr.ConvertTo <int>("iIdCupon");

                if (nuevoCuponID == 0)
                {
                    response.Code    = 67823458233244;
                    response.Message = "No se pudo generar el nuevo cupón.";
                    return(response);
                }

                response.Code   = 0;
                response.Result = nuevoCuponID;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458212265;
                response.Message = "Ocurrió un error inesperado al generar el nuevo ID del cupón.";

                logger.Error(IMDSerialize.Serialize(67823458212265, $"Error en {metodo}(): {ex.Message}", ex, response));
            }
            return(response);
        }
예제 #11
0
        /// <summary>
        /// Obtener los permisos del sistema o de un perfil proporcionado
        /// </summary>
        /// <param name="iIdPerfil"></param>
        /// <returns></returns>
        //NO SE USA
        public IMDResponse <List <EntPermisoSistema> > BObtenerPermisoxPerfil(int?iIdPerfil)
        {
            IMDResponse <List <EntPermisoSistema> > response = new IMDResponse <List <EntPermisoSistema> >();

            string metodo = nameof(this.BObtenerPermisoxPerfil);

            logger.Info(IMDSerialize.Serialize(67823458354456, $"Inicia {metodo}(int? iIdPermiso)", iIdPerfil));

            try
            {
                IMDResponse <DataSet> dtPermisos = datPermiso.DObtenerPermisosPorPerfil(iIdPerfil);
                if (dtPermisos.Code != 0)
                {
                    return(dtPermisos.GetResponse <List <EntPermisoSistema> >());
                }

                DataRowCollection drBotones    = dtPermisos.Result.Tables[2].Rows;
                DataRowCollection drSubmodulos = dtPermisos.Result.Tables[1].Rows;
                DataRowCollection drModulos    = dtPermisos.Result.Tables[0].Rows;

                List <EntPermisoSistema>   lstPermisoSistema   = new List <EntPermisoSistema>();
                List <EntSubModuloPermiso> lstPermisoSubModulo = new List <EntSubModuloPermiso>();
                List <EntBotonPermiso>     lstPermisoBotones   = new List <EntBotonPermiso>();

                //Leer los módulos, submódulos y botones que se tienen permitidos al perfil
                foreach (DataRow item in drBotones)
                {
                    IMDDataRow      dr       = new IMDDataRow(item);
                    EntBotonPermiso entBoton = new EntBotonPermiso();

                    entBoton.iIdBoton     = dr.ConvertTo <int>("iIdBoton");
                    entBoton.iIdModulo    = dr.ConvertTo <int>("iIdModulo");
                    entBoton.iIdSubModulo = dr.ConvertTo <int>("iIdSubModulo");
                    entBoton.sNombre      = dr.ConvertTo <string>("sNombre");

                    lstPermisoBotones.Add(entBoton);
                }

                foreach (DataRow item in drSubmodulos)
                {
                    IMDDataRow          dr           = new IMDDataRow(item);
                    EntSubModuloPermiso entSubModulo = new EntSubModuloPermiso();

                    entSubModulo.iIdModulo    = dr.ConvertTo <int>("iIdModulo");
                    entSubModulo.iIdSubModulo = dr.ConvertTo <int>("iIdSubModulo");
                    entSubModulo.sNombre      = dr.ConvertTo <string>("sNombre");

                    lstPermisoSubModulo.Add(entSubModulo);
                }

                foreach (DataRow item in drModulos)
                {
                    IMDDataRow        dr      = new IMDDataRow(item);
                    EntPermisoSistema permiso = new EntPermisoSistema();

                    permiso.iIdModulo = dr.ConvertTo <int>("iIdModulo");
                    permiso.sNombre   = dr.ConvertTo <string>("sNombre");

                    lstPermisoSistema.Add(permiso);
                }

                //Armar obtejo lista de los permisos
                lstPermisoBotones = lstPermisoBotones.GroupBy(x => new
                {
                    x.iIdModulo,
                    x.iIdSubModulo,
                    x.iIdBoton
                }).Select(x => new EntBotonPermiso
                {
                    iIdModulo    = x.Key.iIdModulo,
                    iIdSubModulo = x.Key.iIdSubModulo,
                    iIdBoton     = x.Key.iIdBoton,
                    sNombre      = x.Select(y => y.sNombre).First()
                }).ToList();

                lstPermisoSubModulo = lstPermisoSubModulo.GroupBy(x => new
                {
                    x.iIdModulo,
                    x.iIdSubModulo
                }).Select(x => new EntSubModuloPermiso
                {
                    iIdModulo    = x.Key.iIdModulo,
                    iIdSubModulo = x.Key.iIdSubModulo,
                    sNombre      = x.Select(y => y.sNombre).First(),
                    lstBotones   = lstPermisoBotones.Where(y => y.iIdModulo == x.Key.iIdModulo && y.iIdSubModulo == x.Key.iIdSubModulo).ToList()
                }).ToList();

                lstPermisoSistema = lstPermisoSistema.GroupBy(x => x.iIdModulo).Select(x => new EntPermisoSistema
                {
                    iIdModulo    = x.Key,
                    sNombre      = x.Select(y => y.sNombre).First(),
                    lstSubModulo = lstPermisoSubModulo.Where(y => y.iIdModulo == x.Key).ToList()
                }).ToList();

                response.Code    = 0;
                response.Message = "Lista de permisos";
                response.Result  = lstPermisoSistema;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458355233;
                response.Message = "Ocurrió un error inesperado al consultar los permisos.";

                logger.Error(IMDSerialize.Serialize(67823458355233, $"Error en {metodo}(int? iIdPermiso): {ex.Message}", iIdPerfil, ex, response));
            }
            return(response);
        }
예제 #12
0
        public IMDResponse <List <EntPaciente> > BGetPacientes(int?piIdPaciente = null, int?piIdFolio = null)
        {
            IMDResponse <List <EntPaciente> > response = new IMDResponse <List <EntPaciente> >();

            string metodo = nameof(this.BGetPacientes);

            logger.Info(IMDSerialize.Serialize(67823458516849, $"Inicia {metodo}(int? piIdPaciente = null, int? piIdFolio = null)", piIdPaciente, piIdFolio));

            try
            {
                IMDResponse <DataTable> resGetPacientes = datPaciente.DGetPacientes(piIdPaciente, piIdFolio);
                if (resGetPacientes.Code != 0)
                {
                    return(resGetPacientes.GetResponse <List <EntPaciente> >());
                }

                List <EntPaciente> lstPacientes = new List <EntPaciente>();

                foreach (DataRow drPaciente in resGetPacientes.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drPaciente);

                    EntPaciente paciente = new EntPaciente()
                    {
                        iIdFolio           = dr.ConvertTo <int>("iIdFolio"),
                        iIdPaciente        = dr.ConvertTo <int>("iIdPaciente"),
                        iIdSexo            = dr.ConvertTo <int>("iIdSexo"),
                        sApellidoMaterno   = dr.ConvertTo <string>("sApellidoMaterno"),
                        sApellidoPaterno   = dr.ConvertTo <string>("sApellidoPaterno"),
                        sCorreo            = dr.ConvertTo <string>("sCorreo"),
                        dtFechaNacimiento  = dr.ConvertTo <DateTime?>("dtFechaNacimiento"),
                        sdtFechaNacimiento = string.Empty,
                        sFolio             = dr.ConvertTo <string>("sFolio"),
                        sNombre            = dr.ConvertTo <string>("sNombre"),
                        sSexo       = dr.ConvertTo <string>("sSexo"),
                        sTelefono   = dr.ConvertTo <string>("sTelefono"),
                        sTipoSangre = dr.ConvertTo <string>("sTipoSangre"),
                    };

                    paciente.sdtFechaNacimiento = paciente.dtFechaNacimiento?.ToString("dd/MM/yyyy");

                    lstPacientes.Add(paciente);
                }

                response.Code    = 0;
                response.Message = lstPacientes.Count == 0 ? "No se encontraron pacientes en la lista." : "La lista de pacientes ha sido obtenida.";
                response.Result  = lstPacientes;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458517626;
                response.Message = "Ocurrió un error inesperado al obtener la lista de pacientes.";

                logger.Error(IMDSerialize.Serialize(67823458517626, $"Error en {metodo}(int? piIdPaciente = null, int? piIdFolio = null): {ex.Message}", piIdPaciente, piIdFolio, ex, response));
            }
            return(response);
        }
예제 #13
0
        /// <summary>
        /// Función: Obtiene la lista de cupones
        /// Creado: Cristopher Noh 28/07/2020
        /// Modificado:
        /// </summary>
        /// <param name="piIdCupon">Id de cupón</param>
        /// <param name="piIdCuponCategoria">Categoría del cupón</param>
        /// <param name="psDescripcion">Descripción del cupón</param>
        /// <param name="psCodigo">Código de cupón</param>
        /// <param name="pdtFechaVencimientoInicio">Fecha de vencimiento desde...</param>
        /// <param name="pdtFechaVencimientoFin">..a la Fecha de vencimiento</param>
        /// <param name="pdtFechaCreacionInicio">Fecha de creación desde...</param>
        /// <param name="pdtFechaCreacionFin">...a la fecha de creación</param>
        /// <param name="pbActivo">Cupón activo</param>
        /// <param name="pbBaja">Cupón inactivo</param>
        /// <returns></returns>
        public IMDResponse <List <EntCupon> > BObtenerCupones(int?piIdCupon = null, int?piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime?pdtFechaVencimientoInicio = null, DateTime?pdtFechaVencimientoFin = null, DateTime?pdtFechaCreacionInicio = null, DateTime?pdtFechaCreacionFin = null, bool?pbActivo = true, bool?pbBaja = false, bool?pbVigente = null)
        {
            IMDResponse <List <EntCupon> > response = new IMDResponse <List <EntCupon> >();

            string metodo = nameof(this.BObtenerCupones);

            logger.Info(IMDSerialize.Serialize(67823458191286, $"Inicia {metodo}(int? piIdCupon = null, int? piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime? pdtFechaVencimientoInicio = null, DateTime? pdtFechaVencimientoFin = null, DateTime? pdtFechaCreacionInicio = null, DateTime? pdtFechaCreacionFin = null, bool pbActivo = true, bool pbBaja = false)", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja));

            try
            {
                IMDResponse <DataTable> respuestaObtenerCupones = datPromociones.DGetCupones(piIdCupon, piIdCuponCategoria, pbVigente, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja);
                if (respuestaObtenerCupones.Code != 0)
                {
                    return(respuestaObtenerCupones.GetResponse <List <EntCupon> >());
                }

                List <EntCupon> listaCupones = new List <EntCupon>();
                foreach (DataRow filaCupon in respuestaObtenerCupones.Result.Rows)
                {
                    IMDDataRow dr    = new IMDDataRow(filaCupon);
                    EntCupon   cupon = new EntCupon();

                    cupon.fbActivo               = Convert.ToBoolean(dr.ConvertTo <int>("bActivo"));
                    cupon.fbBaja                 = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"));
                    cupon.fbVigente              = Convert.ToBoolean(dr.ConvertTo <int>("bVigente"));
                    cupon.fdtFechaVencimiento    = dr.ConvertTo <DateTime?>("dtFechaVencimiento");
                    cupon.sFechaVencimiento      = cupon.fdtFechaVencimiento == null ? "Hasta agotar" : ((DateTime)cupon.fdtFechaVencimiento).ToString("dd/MM/yy HH:mm");
                    cupon.dtFechaCreacion        = dr.ConvertTo <DateTime?>("dtFechaCreacion");
                    cupon.sFechaCreacion         = cupon.dtFechaCreacion == null ? null : ((DateTime)cupon.dtFechaCreacion).ToString("dd/MM/yy HH:mm");
                    cupon.fiIdCupon              = dr.ConvertTo <int>("iIdCupon");
                    cupon.fiIdCuponCategoria     = dr.ConvertTo <int>("iIdCuponCategoria");
                    cupon.fiMesBono              = dr.ConvertTo <int?>("iMesBono");
                    cupon.fiTotalLanzamiento     = dr.ConvertTo <int>("iTotalLanzamiento");
                    cupon.fiTotalCanjeado        = dr.ConvertTo <int>("iTotalCanjeado");
                    cupon.fnMontoDescuento       = dr.ConvertTo <double?>("nMontoDescuento");
                    cupon.sMontoDescuento        = cupon.fnMontoDescuento == null ? null : ((double)cupon.fnMontoDescuento / 100d).ToString("C");
                    cupon.fnPorcentajeDescuento  = dr.ConvertTo <double?>("nPorcentajeDescuento");
                    cupon.sPorcentajeDescuento   = cupon.fnPorcentajeDescuento == null ? null : ((double)cupon.fnPorcentajeDescuento).ToString("#%");
                    cupon.fsCodigo               = dr.ConvertTo <string>("sCodigo");
                    cupon.fsDescripcion          = dr.ConvertTo <string>("sDescripcion");
                    cupon.fsDescripcionCategoria = dr.ConvertTo <string>("sDescripcionCategoria");

                    listaCupones.Add(cupon);
                }

                response.Code    = 0;
                response.Message = "Lista de cupones obtenida.";
                response.Result  = listaCupones;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458192063;
                response.Message = "Ocurrió un error al intentar consultar los cupones";

                logger.Error(IMDSerialize.Serialize(67823458192063, $"Error en {metodo}(int? piIdCupon = null, int? piIdCuponCategoria = null, string psDescripcion = null, string psCodigo = null, DateTime? pdtFechaVencimientoInicio = null, DateTime? pdtFechaVencimientoFin = null, DateTime? pdtFechaCreacionInicio = null, DateTime? pdtFechaCreacionFin = null, bool pbActivo = true, bool pbBaja = false): {ex.Message}", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja, ex, response));
            }
            return(response);
        }
예제 #14
0
        /// <summary>
        /// Obtiene las consultas programadas en el horario solicitado para una nueva consulta
        /// </summary>
        /// <param name="piIdColaborador"></param>
        /// <param name="piIdConsulta"></param>
        /// <param name="pdtFechaProgramadaInicio"></param>
        /// <param name="pdtFechaProgramadaFin"></param>
        /// <returns></returns>
        public IMDResponse <List <EntDetalleConsulta> > BGetDisponibilidadConsulta(int?piIdColaborador = null, int?piIdConsulta = null, DateTime?pdtFechaProgramadaInicio = null, DateTime?pdtFechaProgramadaFin = null)
        {
            IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >();

            string metodo = nameof(this.BGetDisponibilidadConsulta);

            logger.Info(IMDSerialize.Serialize(67823458537051, $"Inicia {metodo}(int piIdColaborador, int piIdConsulta, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null)", piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin));

            try
            {
                IMDResponse <DataTable> resGetConsulta = datConsulta.DGetDisponibilidadConsulta(piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin);
                if (resGetConsulta.Code != 0)
                {
                    return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >());
                }

                List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>();

                foreach (DataRow drConsulta in resGetConsulta.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drConsulta);

                    EntDetalleConsulta consulta = new EntDetalleConsulta
                    {
                        dtFechaConsultaFin      = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"),
                        dtFechaConsultaInicio   = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"),
                        dtFechaCreacion         = dr.ConvertTo <DateTime?>("dtFechaCreacion"),
                        dtFechaProgramadaFin    = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"),
                        dtFechaProgramadaInicio = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"),
                        dtFechaVencimiento      = dr.ConvertTo <DateTime?>("dtFechaVencimiento"),
                        iIdColaborador          = dr.ConvertTo <int?>("iIdColaborador"),
                        iIdConsulta             = dr.ConvertTo <int?>("iIdConsulta"),
                        iIdEmpresa         = dr.ConvertTo <int?>("iIdEmpresa"),
                        iIdEspecialidad    = dr.ConvertTo <int?>("iIdEspecialidad"),
                        iIdEstatusConsulta = dr.ConvertTo <int?>("iIdEstatusConsulta"),
                        iIdFolio           = dr.ConvertTo <int?>("iIdFolio"),
                        iIdPaciente        = dr.ConvertTo <int?>("iIdPaciente"),
                        iIdTipoDoctor      = dr.ConvertTo <int?>("iIdTipoDoctor"),
                        iIdTipoProducto    = dr.ConvertTo <int?>("iIdTipoProducto"),
                        iNumSala           = dr.ConvertTo <int?>("iNumSala"),
                        sFolio             = dr.ConvertTo <string>("sFolio"),
                        sFolioEmpresa      = dr.ConvertTo <string>("sFolioEmpresa"),
                    };

                    consulta.sFechaConsultaFin        = consulta.dtFechaConsultaFin?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaConsultaInicio     = consulta.dtFechaConsultaInicio?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaCreacion           = consulta.dtFechaCreacion?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaNacimientoPaciente = consulta.dtFechaNacimientoPaciente?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaProgramadaFin      = consulta.dtFechaProgramadaFin?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaProgramadaInicio   = consulta.dtFechaProgramadaInicio?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaVencimiento        = consulta.dtFechaVencimiento?.ToString("dd/MM/yyyy HH:mm");

                    lstConsultas.Add(consulta);
                }

                response.Code    = 0;
                response.Message = "Se ha consultado la disponibilidad del colaborador.";
                response.Result  = lstConsultas;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458537828;
                response.Message = "Ocurrió un error inesperado al consultar la disponibilidad del colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458537828, $"Error en {metodo}(int piIdColaborador, int piIdConsulta, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null): {ex.Message}", piIdColaborador, piIdConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, ex, response));
            }
            return(response);
        }
예제 #15
0
        /// <summary>
        /// Obtiene la lista de detalles de la consulta solicitada
        /// </summary>
        /// <param name="piIdConsulta">Filtro por consulta</param>
        /// <param name="piIdPaciente">Filtro por paciente</param>
        /// <param name="piIdColaborador">Filtro por colaborador</param>
        /// <param name="piIdEstatusConsulta">Filtro por estatus de consulta</param>
        /// <param name="pdtFechaProgramadaInicio">Filtro</param>
        /// <param name="pdtFechaProgramadaFin">Filtro</param>
        /// <param name="pdtFechaConsultaInicio">Filtro</param>
        /// <param name="pdtFechaConsultaFin">Filtro</param>
        /// <returns></returns>
        public IMDResponse <List <EntDetalleConsulta> > BGetDetalleConsulta(int?piIdConsulta = null, int?piIdPaciente = null, int?piIdColaborador = null, int?piIdEstatusConsulta = null, DateTime?pdtFechaProgramadaInicio = null, DateTime?pdtFechaProgramadaFin = null, DateTime?pdtFechaConsultaInicio = null, DateTime?pdtFechaConsultaFin = null)
        {
            IMDResponse <List <EntDetalleConsulta> > response = new IMDResponse <List <EntDetalleConsulta> >();

            string metodo = nameof(this.BGetDetalleConsulta);

            logger.Info(IMDSerialize.Serialize(67823458530835, $"Inicia {metodo}(int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdEstatusConsulta = null, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null, DateTime? pdtFechaConsultaInicio = null, DateTime? pdtFechaConsultaFin = null)", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin));

            try
            {
                pdtFechaProgramadaInicio = pdtFechaProgramadaInicio?.Date;
                pdtFechaProgramadaFin    = pdtFechaProgramadaFin?.AddDays(1).Date;

                //Consultar datos de la base
                IMDResponse <DataTable> resGetConsulta = datConsulta.DGetDetalleConsulta(piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin);
                if (resGetConsulta.Code != 0)
                {
                    return(resGetConsulta.GetResponse <List <EntDetalleConsulta> >());
                }

                List <EntDetalleConsulta> lstConsultas = new List <EntDetalleConsulta>();

                foreach (DataRow drConsulta in resGetConsulta.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drConsulta);

                    EntDetalleConsulta consulta = new EntDetalleConsulta
                    {
                        bTerminosYCondiciones     = Convert.ToBoolean(dr.ConvertTo <int>("bTerminosYCondiciones")),
                        dtFechaConsultaFin        = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"),
                        dtFechaConsultaInicio     = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"),
                        dtFechaCreacion           = dr.ConvertTo <DateTime?>("dtFechaCreacion"),
                        dtFechaNacimientoPaciente = dr.ConvertTo <DateTime?>("dtFechaNacimientoPaciente"),
                        dtFechaProgramadaFin      = dr.ConvertTo <DateTime?>("dtFechaProgramadaFin"),
                        dtFechaProgramadaInicio   = dr.ConvertTo <DateTime?>("dtFechaProgramadaInicio"),
                        dtFechaVencimiento        = dr.ConvertTo <DateTime?>("dtFechaVencimiento"),
                        iIdColaborador            = dr.ConvertTo <int?>("iIdColaborador"),
                        iIdConsulta              = dr.ConvertTo <int?>("iIdConsulta"),
                        iIdEmpresa               = dr.ConvertTo <int?>("iIdEmpresa"),
                        iIdEspecialidad          = dr.ConvertTo <int?>("iIdEspecialidad"),
                        iIdEstatusConsulta       = dr.ConvertTo <int?>("iIdEstatusConsulta"),
                        iIdFolio                 = dr.ConvertTo <int?>("iIdFolio"),
                        iIdOrigen                = dr.ConvertTo <int?>("iIdOrigen"),
                        iIdPaciente              = dr.ConvertTo <int?>("iIdPaciente"),
                        iIdTipoDoctor            = dr.ConvertTo <int?>("iIdTipoDoctor"),
                        iIdTipoProducto          = dr.ConvertTo <int?>("iIdTipoProducto"),
                        iNumSala                 = dr.ConvertTo <int?>("iNumSala"),
                        sApellidoMaternoPaciente = dr.ConvertTo <string>("sApellidoMaternoPaciente"),
                        sApellidoPaternoPaciente = dr.ConvertTo <string>("sApellidoPaternoPaciente"),
                        sCorreoColaborador       = dr.ConvertTo <string>("sCorreoColaborador"),
                        sCorreoEmpresa           = dr.ConvertTo <string>("sCorreoEmpresa"),
                        sCorreoPaciente          = dr.ConvertTo <string>("sCorreoPaciente"),
                        sEspecialidad            = dr.ConvertTo <string>("sEspecialidad"),
                        sEstatusConsulta         = dr.ConvertTo <string>("sEstatusConsulta"),
                        sFechaConsultaFin        = string.Empty,
                        sFechaConsultaInicio     = string.Empty,
                        sFechaCreacion           = string.Empty,
                        sFechaNacimientoPaciente = string.Empty,
                        sFechaProgramadaFin      = string.Empty,
                        sFechaProgramadaInicio   = string.Empty,
                        sFechaVencimiento        = string.Empty,
                        sFolio              = dr.ConvertTo <string>("sFolio"),
                        sPassword           = dr.ConvertTo <string>("sPassword"),
                        sFolioEmpresa       = dr.ConvertTo <string>("sFolioEmpresa"),
                        sNombreColaborador  = dr.ConvertTo <string>("sNombreColaborador"),
                        sNombreEmpresa      = dr.ConvertTo <string>("sNombreEmpresa"),
                        sNombrePaciente     = dr.ConvertTo <string>("sNombrePaciente"),
                        sNombreProducto     = dr.ConvertTo <string>("sNombreProducto"),
                        sOrdenConekta       = dr.ConvertTo <string>("sOrdenConekta"),
                        sOrigen             = dr.ConvertTo <string>("sOrigen"),
                        sSexoPaciente       = dr.ConvertTo <string>("sSexoPaciente"),
                        sTelefonoPaciente   = dr.ConvertTo <string>("sTelefonoPaciente"),
                        sTipoDoctor         = dr.ConvertTo <string>("sTipoDoctor"),
                        sTipoProducto       = dr.ConvertTo <string>("sTipoProducto"),
                        sTipoSangrePaciente = dr.ConvertTo <string>("sTipoSangrePaciente"),
                    };

                    consulta.sFechaConsultaFin        = consulta.dtFechaConsultaFin?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaConsultaInicio     = consulta.dtFechaConsultaInicio?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaCreacion           = consulta.dtFechaCreacion?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaNacimientoPaciente = consulta.dtFechaNacimientoPaciente?.ToString("dd/MM/yyyy");
                    consulta.sFechaProgramadaFin      = consulta.dtFechaProgramadaFin?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaProgramadaInicio   = consulta.dtFechaProgramadaInicio?.ToString("dd/MM/yyyy HH:mm");
                    consulta.sFechaVencimiento        = consulta.dtFechaVencimiento?.ToString("dd/MM/yyyy HH:mm");

                    lstConsultas.Add(consulta);
                }

                response.Code    = 0;
                response.Message = lstConsultas.Count == 0 ? "No se encontraron las consultas solicitadas." : "Se han obtenido los detalles de las consultas.";
                response.Result  = lstConsultas;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458531612;
                response.Message = "Ocurrió un error inesperado al consultar el detalle de la consulta médica.";

                logger.Error(IMDSerialize.Serialize(67823458531612, $"Error en {metodo}(int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdEstatusConsulta = null, DateTime? pdtFechaProgramadaInicio = null, DateTime? pdtFechaProgramadaFin = null, DateTime? pdtFechaConsultaInicio = null, DateTime? pdtFechaConsultaFin = null): {ex.Message}", piIdConsulta, piIdPaciente, piIdColaborador, piIdEstatusConsulta, pdtFechaProgramadaInicio, pdtFechaProgramadaFin, pdtFechaConsultaInicio, pdtFechaConsultaFin, ex, response));
            }
            return(response);
        }
예제 #16
0
        /// <summary>
        /// Obtiene el historial clínico del paciente
        /// </summary>
        /// <param name="piIdHistorialClinico"></param>
        /// <param name="piIdConsulta"></param>
        /// <param name="piIdPaciente"></param>
        /// <param name="piIdColaborador"></param>
        /// <param name="piIdFolio"></param>
        /// <param name="psIdTipoDoctor"></param>
        /// <returns></returns>
        public IMDResponse <List <EntHistorialClinico> > BGetHistorialMedico(int?piIdHistorialClinico = null, int?piIdConsulta = null, int?piIdPaciente = null, int?piIdColaborador = null, int?piIdFolio = null, string psIdTipoDoctor = null)
        {
            IMDResponse <List <EntHistorialClinico> > response = new IMDResponse <List <EntHistorialClinico> >();

            string metodo = nameof(this.BGetHistorialMedico);

            logger.Info(IMDSerialize.Serialize(67823458524619, $"Inicia {metodo}(int? piIdHistorialClinico = null, int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdFolio = null)", piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio));

            try
            {
                IMDResponse <DataTable> resGetHistorialClinico = datConsulta.DGetHistorialMedico(piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio, psIdTipoDoctor);
                if (resGetHistorialClinico.Code != 0)
                {
                    return(resGetHistorialClinico.GetResponse <List <EntHistorialClinico> >());
                }

                List <EntHistorialClinico> lstHistorial = new List <EntHistorialClinico>();

                foreach (DataRow drHistorial in resGetHistorialClinico.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drHistorial);

                    EntHistorialClinico entHistorialClinico = new EntHistorialClinico
                    {
                        dtFechaCreacion       = dr.ConvertTo <DateTime?>("dtFechaCreacion"),
                        dtFechaConsultaFin    = dr.ConvertTo <DateTime?>("dtFechaConsultaFin"),
                        dtFechaConsultaInicio = dr.ConvertTo <DateTime?>("dtFechaConsultaInicio"),
                        fAltura             = dr.ConvertTo <double>("fAltura"),
                        fPeso               = dr.ConvertTo <double>("fPeso"),
                        iIdConsulta         = dr.ConvertTo <int>("iIdConsulta"),
                        iIdHistorialClinico = dr.ConvertTo <int>("iIdHistorialClinico"),
                        sAlergias           = dr.ConvertTo <string>("sAlergias"),
                        sComentarios        = dr.ConvertTo <string>("sComentarios"),
                        sDiagnostico        = dr.ConvertTo <string>("sDiagnostico"),
                        sFechaCreacion      = string.Empty,
                        sSintomas           = dr.ConvertTo <string>("sSintomas"),
                        sTratamiento        = dr.ConvertTo <string>("sTratamiento"),
                    };

                    entHistorialClinico.sFechaCreacion       = entHistorialClinico.dtFechaCreacion?.ToString("ddd dd/MM/yyyy hh:mm tt");
                    entHistorialClinico.sFechaConsultaInicio = entHistorialClinico.dtFechaConsultaInicio?.ToString("ddd dd/MM/yyyy hh:mm tt");
                    entHistorialClinico.sFechaConsultaFin    = entHistorialClinico.dtFechaConsultaFin?.ToString("ddd dd/MM/yyyy hh:mm tt");

                    //Calcular la duración de la consulta
                    TimeSpan?dff = entHistorialClinico.dtFechaConsultaFin - entHistorialClinico.dtFechaConsultaInicio;

                    entHistorialClinico.sDuracionConsulta = dff?.ToString(@"hh\:mm\:ss");

                    lstHistorial.Add(entHistorialClinico);
                }

                response.Code    = 0;
                response.Message = "Se ha consultado el historial clínico.";
                response.Result  = lstHistorial;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458525396;
                response.Message = "Ocurrió un error inesperado al consultar el historial clínico.";

                logger.Error(IMDSerialize.Serialize(67823458525396, $"Error en {metodo}(int? piIdHistorialClinico = null, int? piIdConsulta = null, int? piIdPaciente = null, int? piIdColaborador = null, int? piIdFolio = null): {ex.Message}", piIdHistorialClinico, piIdConsulta, piIdPaciente, piIdColaborador, piIdFolio, ex, response));
            }
            return(response);
        }
예제 #17
0
        /// <summary>
        /// Iniciar sesión en el portal administrativo/Callcenter
        /// </summary>
        /// <param name="sUsuario"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        public IMDResponse <EntUsuario> BLogin(string sUsuario, string sPassword)
        {
            IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>();

            string metodo = nameof(this.BLogin);

            logger.Info(IMDSerialize.Serialize(67823458374658, $"Inicia {metodo}(string sUsuario, string sPassword)", sUsuario, sPassword));

            try
            {
                sPassword = BEncodePassword(sPassword);

                IMDResponse <DataTable> dtUsuario = datUsuario.DLogin(sUsuario, sPassword);

                if (dtUsuario.Code != 0)
                {
                    return(dtUsuario.GetResponse <EntUsuario>());
                }

                if (dtUsuario.Result.Rows.Count != 1)
                {
                    response.Code    = 78772637586;
                    response.Message = "Usuario o contraseña incorrecta.";
                    return(response);
                }

                EntUsuario entUsuario = new EntUsuario();

                foreach (DataRow item in dtUsuario.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(item);

                    entUsuario.iIdUsuario    = dr.ConvertTo <int>("iIdUsuario");
                    entUsuario.iIdTipoCuenta = dr.ConvertTo <int>("iIdTipoCuenta");
                    entUsuario.sTipoCuenta   = dr.ConvertTo <string>("sTipoCuenta");
                    entUsuario.iIdPerfil     = dr.ConvertTo <int>("iIdPerfil");
                    entUsuario.sPerfil       = dr.ConvertTo <string>("sPerfil");
                    entUsuario.sUsuario      = dr.ConvertTo <string>("sUsuario");
                    //entUsuario.sPassword = dr.ConvertTo<string>("sPassword");
                    entUsuario.sNombres          = dr.ConvertTo <string>("sNombres");
                    entUsuario.sApellidoPaterno  = dr.ConvertTo <string>("sApellidoPaterno");
                    entUsuario.sApellidoMaterno  = dr.ConvertTo <string>("sApellidoMaterno");
                    entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime>("dtFechaNacimiento");
                    entUsuario.sTelefono         = dr.ConvertTo <string>("sTelefono");
                    entUsuario.sCorreo           = dr.ConvertTo <string>("sCorreo");
                    entUsuario.sDomicilio        = dr.ConvertTo <string>("sDomicilio");
                    entUsuario.iIdUsuarioMod     = dr.ConvertTo <int>("iIdUsuarioMod");
                    entUsuario.bActivo           = dr.ConvertTo <bool>("bActivo");
                    entUsuario.bBaja             = dr.ConvertTo <bool>("bBaja");
                }

                response.Result  = entUsuario;
                response.Message = "Inicio de sesión existoso.";
            }
            catch (Exception ex)
            {
                response.Code    = 67823458375435;
                response.Message = "Ocurrió un error inesperado al iniciar sesión";

                logger.Error(IMDSerialize.Serialize(67823458375435, $"Error en {metodo}(string sUsuario, string sPassword): {ex.Message}", sUsuario, sPassword, ex, response));
            }
            return(response);
        }
예제 #18
0
        /// <summary>
        /// Agrega/actualiza/elimina un usuario de la base
        /// </summary>
        /// <param name="entUsuario"></param>
        /// <param name="bEnviarCredenciales"></param>
        /// <returns></returns>
        public IMDResponse <EntUsuario> BSaveUsuario(EntUsuario entUsuario, bool bEnviarCredenciales = false)
        {
            IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>();

            string metodo = nameof(this.BSaveUsuario);

            logger.Info(IMDSerialize.Serialize(67823458344355, $"Inicia {metodo}(EntUsuario entUsuario)", entUsuario));

            try
            {
                if (entUsuario == null)
                {
                    response.Code    = 67823458345132;
                    response.Message = "No se ingresó información del usuario.";
                    return(response);
                }

                if (entUsuario.bActivo == true && entUsuario.bBaja == false)
                {
                    //Validar datos y encriptar contraseña sólo si se trata de un guardado o actualización
                    IMDResponse <bool> resValidaDatos = BValidaDatos(entUsuario);
                    if (!resValidaDatos.Result)
                    {
                        return(resValidaDatos.GetResponse <EntUsuario>());
                    }
                    if (!string.IsNullOrWhiteSpace(entUsuario.sPassword))
                    {
                        entUsuario.sPassword = BEncodePassword(entUsuario.sPassword);
                    }
                }

                IMDResponse <DataTable> resSaveUsuario = datUsuario.DSaveUsuario(entUsuario);
                if (resSaveUsuario.Code != 0)
                {
                    return(resSaveUsuario.GetResponse <EntUsuario>());
                }

                //Enviar credenciales por correo sólo si es un nuevo usuario, la contraseña ha sido actualizada, o se ha pasado de un estado SIN ACCESO a CON ACCESO
                if (bEnviarCredenciales && (entUsuario.iIdUsuario == 0 || !string.IsNullOrWhiteSpace(entUsuario.sPassword)))
                {
                    List <string> users = new List <string> {
                        entUsuario.sUsuario
                    };
                    IMDResponse <bool> resEnviarCredenciales = this.BEnviarCredenciales(entUsuario.sCorreo, entUsuario.iIdUsuario == 0 ? EnumEmailActionPass.Crear : EnumEmailActionPass.Modificar, users);
                }

                IMDDataRow dr = new IMDDataRow(resSaveUsuario.Result.Rows[0]);
                entUsuario.iIdUsuario = dr.ConvertTo <int>("iIdUsuario");

                response.Code    = 0;
                response.Message = entUsuario.iIdUsuario == 0 ? "El usuario ha sido guardado correctamente." : !entUsuario.bActivo ? "El usuario ha sido eliminado correctamente." : "El usuario ha sido actualizado correctamente.";
                response.Result  = entUsuario;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458345132;
                response.Message = "Ocurrió un error inesperado al guardar los datos del usuario.";

                logger.Error(IMDSerialize.Serialize(67823458345132, $"Error en {metodo}(EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response));
            }
            return(response);
        }
예제 #19
0
        /// <summary>
        /// Obtiene la lista de usuarios del sistema
        /// </summary>
        /// <param name="iIdUsuario"></param>
        /// <param name="iIdTipoCuenta"></param>
        /// <param name="iIdPerfil"></param>
        /// <param name="sUsuario"></param>
        /// <param name="sPassword"></param>
        /// <param name="bActivo"></param>
        /// <param name="bBaja"></param>
        /// <param name="psCorreo"></param>
        /// <returns></returns>
        public IMDResponse <List <EntUsuario> > BObtenerUsuario(int?iIdUsuario = null, int?iIdTipoCuenta = null, int?iIdPerfil = null, string sUsuario = null, string sPassword = null, bool?bActivo = null, bool?bBaja = null, string psCorreo = null)
        {
            IMDResponse <List <EntUsuario> > response = new IMDResponse <List <EntUsuario> >();

            string metodo = nameof(this.BObtenerUsuario);

            logger.Info(IMDSerialize.Serialize(67823458362226, $"Inicia {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja)", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja));

            try
            {
                //Consultar usuarios
                IMDResponse <DataTable> dtUsuario = datUsuario.DObtenerUsuario(iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, psCorreo);
                if (dtUsuario.Code != 0)
                {
                    return(dtUsuario.GetResponse <List <EntUsuario> >());
                }

                List <EntUsuario> lstUsuario = new List <EntUsuario>();
                foreach (DataRow item in dtUsuario.Result.Rows)
                {
                    IMDDataRow dr         = new IMDDataRow(item);
                    EntUsuario entUsuario = new EntUsuario();

                    entUsuario.iIdUsuario        = dr.ConvertTo <int>("iIdUsuario");
                    entUsuario.iIdTipoCuenta     = dr.ConvertTo <int>("iIdTipoCuenta");
                    entUsuario.sTipoCuenta       = dr.ConvertTo <string>("sTipoCuenta");
                    entUsuario.iIdPerfil         = dr.ConvertTo <int>("iIdPerfil");
                    entUsuario.sPerfil           = dr.ConvertTo <string>("sPerfil");
                    entUsuario.sUsuario          = dr.ConvertTo <string>("sUsuario");
                    entUsuario.sPassword         = dr.ConvertTo <string>("sPassword");
                    entUsuario.sNombres          = dr.ConvertTo <string>("sNombres");
                    entUsuario.sApellidoPaterno  = dr.ConvertTo <string>("sApellidoPaterno");
                    entUsuario.sApellidoMaterno  = dr.ConvertTo <string>("sApellidoMaterno");
                    entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime?>("dtFechaNacimiento");
                    entUsuario.sFechaNacimiento  = entUsuario.dtFechaNacimiento?.ToString("dd/MM/yyyy");
                    entUsuario.dtFechaCreacion   = dr.ConvertTo <DateTime>("dtFechaCreacion");
                    entUsuario.sFechaCreacion    = entUsuario.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm");
                    entUsuario.sTelefono         = dr.ConvertTo <string>("sTelefono");
                    entUsuario.sCorreo           = dr.ConvertTo <string>("sCorreo");
                    entUsuario.sDomicilio        = dr.ConvertTo <string>("sDomicilio");
                    entUsuario.iIdUsuarioMod     = dr.ConvertTo <int>("iIdUsuarioMod");
                    entUsuario.bAcceso           = Convert.ToBoolean(dr.ConvertTo <int>("bAcceso"));
                    entUsuario.bActivo           = Convert.ToBoolean(dr.ConvertTo <int>("bActivo"));
                    entUsuario.bBaja             = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"));

                    lstUsuario.Add(entUsuario);
                }


                response.Message = "Los usuarios del sistema han sido obtenidos.";
                response.Result  = lstUsuario;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458363003;
                response.Message = "Ocurrió un error inesperado al consultar los usuarios del sistema.";

                logger.Error(IMDSerialize.Serialize(67823458363003, $"Error en {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja): {ex.Message}", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, ex, response));
            }
            return(response);
        }
예제 #20
0
        /// <summary>
        /// Obtiene o filtra la lista de colaboradores
        /// </summary>
        /// <param name="piIdColaborador"></param>
        /// <param name="piIdTipoDoctor"></param>
        /// <param name="piIdEspecialidad"></param>
        /// <param name="piIdUsuarioCGU"></param>
        /// <returns></returns>
        public IMDResponse <List <EntColaborador> > BGetColaborador(int?piIdColaborador = null, int?piIdTipoDoctor = null, int?piIdEspecialidad = null, int?piIdUsuarioCGU = null)
        {
            IMDResponse <List <EntColaborador> > response = new IMDResponse <List <EntColaborador> >();

            string metodo = nameof(this.BGetColaborador);

            logger.Info(IMDSerialize.Serialize(67823458474891, $"Inicia {metodo}(int? piIdColaborador = null, int? piIdTipoDoctor = null, int? piIdEspecialidad = null, int? piIdUsuarioCGU = null)", piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU));

            try
            {
                IMDResponse <DataTable> resGetColaboradores = datColaborador.DGetColaborador(piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU);
                if (resGetColaboradores.Code != 0)
                {
                    return(resGetColaboradores.GetResponse <List <EntColaborador> >());
                }

                List <EntColaborador> lstColaboradores = new List <EntColaborador>();

                foreach (DataRow drColaborador in resGetColaboradores.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drColaborador);

                    EntColaborador colaborador = new EntColaborador
                    {
                        bActivo                 = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")),
                        bBaja                   = Convert.ToBoolean(dr.ConvertTo <int>("bBaja")),
                        bAcceso                 = Convert.ToBoolean(dr.ConvertTo <int>("bAcceso")),
                        bOcupado                = Convert.ToBoolean(dr.ConvertTo <int>("bOcupado")),
                        bOnline                 = Convert.ToBoolean(dr.ConvertTo <int>("bOnline")),
                        dtFechaCreacion         = dr.ConvertTo <DateTime>("dtFechaCreacion"),
                        dtFechaNacimientoDoctor = dr.ConvertTo <DateTime>("dtFechaNacimientoDoctor"),
                        iIdColaborador          = dr.ConvertTo <int>("iIdColaborador"),
                        iIdEspecialidad         = dr.ConvertTo <int>("iIdEspecialidad"),
                        iIdTipoCuenta           = dr.ConvertTo <int>("iIdTipoCuenta"),
                        iIdTipoDoctor           = dr.ConvertTo <int>("iIdTipoDoctor"),
                        iIdUsuarioCGU           = dr.ConvertTo <int>("iIdUsuarioCGU"),
                        iNumSala                = dr.ConvertTo <int?>("iNumSala"),
                        sApellidoMaternoDoctor  = dr.ConvertTo <string>("sApellidoMaternoDoctor"),
                        sApellidoPaternoDoctor  = dr.ConvertTo <string>("sApellidoPaternoDoctor"),
                        sCedulaProfecional      = dr.ConvertTo <string>("sCedulaProfecional"),
                        sCorreoDirectorio       = dr.ConvertTo <string>("sCorreo"),
                        sCorreoDoctor           = dr.ConvertTo <string>("sCorreoDoctor"),
                        sDireccionConsultorio   = dr.ConvertTo <string>("sDireccionConsultorio"),
                        sDomicilioDoctor        = dr.ConvertTo <string>("sDomicilioDoctor"),
                        sEspecialidad           = dr.ConvertTo <string>("sEspecialidad"),
                        sFechaCreacion          = string.Empty,
                        sFechaNacimientoDoctor  = string.Empty,
                        sMaps                   = dr.ConvertTo <string>("sMaps"),
                        sNombreDirectorio       = dr.ConvertTo <string>("sNombre"),
                        sNombreConsultorio      = dr.ConvertTo <string>("sNombreConsultorio"),
                        sNombresDoctor          = dr.ConvertTo <string>("sNombresDoctor"),
                        sPasswordAdministrativo = dr.ConvertTo <string>("sPasswordAdministrativo"),
                        sPasswordTitular        = dr.ConvertTo <string>("sPasswordTitular"),
                        sRFC = dr.ConvertTo <string>("sRFC"),
                        sTelefonoDirectorio = dr.ConvertTo <string>("sTelefono"),
                        sTelefonoDoctor     = dr.ConvertTo <string>("sTelefonoDoctor"),
                        sTipoCuenta         = dr.ConvertTo <string>("sTipoCuenta"),
                        sTipoDoctor         = dr.ConvertTo <string>("sTipoDoctor"),
                        sURL = dr.ConvertTo <string>("sURL"),
                        sUsuarioAdministrativo = dr.ConvertTo <string>("sUsuarioAdministrativo"),
                        sUsuarioTitular        = dr.ConvertTo <string>("sUsuarioTitular"),
                        sWhatsApp = dr.ConvertTo <string>("sWhatsApp"),
                    };

                    colaborador.sFechaCreacion         = colaborador.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm");
                    colaborador.sFechaNacimientoDoctor = colaborador.dtFechaNacimientoDoctor.ToString("dd/MM/yyyy");
                    colaborador.sAcceso        = colaborador.bAcceso ? "SI" : "NO";
                    colaborador.bAdministrador = colaborador.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoAdministrativo;

                    lstColaboradores.Add(colaborador);
                }

                response.Code    = 0;
                response.Message = "Se han obtenido los colaboradores del sistema.";
                response.Result  = lstColaboradores;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458475668;
                response.Message = "Ocurrió un error inesperado al consultar los colaboradores del sistema.";

                logger.Error(IMDSerialize.Serialize(67823458475668, $"Error en {metodo}(int? piIdColaborador = null, int? piIdTipoDoctor = null, int? piIdEspecialidad = null, int? piIdUsuarioCGU = null): {ex.Message}", piIdColaborador, piIdTipoDoctor, piIdEspecialidad, piIdUsuarioCGU, ex, response));
            }
            return(response);
        }
예제 #21
0
        /// <summary>
        /// Obtiene y filtra el directorio de médicos especialistas
        /// </summary>
        /// <param name="piIdEspecialidad"></param>
        /// <param name="psBuscador"></param>
        /// <param name="piPage"></param>
        /// <param name="piPageSize"></param>
        /// <returns></returns>
        public IMDResponse <EntDirectorio> BGetDirectorio(int?piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0, bool?pbAcceso = null)
        {
            IMDResponse <EntDirectorio> response = new IMDResponse <EntDirectorio>();

            string metodo = nameof(this.BGetDirectorio);

            logger.Info(IMDSerialize.Serialize(67823458504417, $"Inicia {metodo}(int? piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0)", piIdEspecialidad, psBuscador, piPage, piPageSize));

            try
            {
                //Configurar el paginador de la consulta
                int piLimitInit = (piPage * piPageSize - piPageSize);
                int piLimitEnd  = piPage * piPageSize - 1;

                IMDResponse <DataTable> resGetDirectorio = datColaborador.DGetDirectorio(piIdEspecialidad, psBuscador, piLimitInit, piLimitEnd, pbAcceso);
                if (resGetDirectorio.Code != 0)
                {
                    return(resGetDirectorio.GetResponse <EntDirectorio>());
                }

                EntDirectorio entDirectorio = new EntDirectorio();

                foreach (DataRow drItem in resGetDirectorio.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(drItem);

                    int iIdColaborador = dr.ConvertTo <int>("iIdColaborador");

                    if (iIdColaborador != 0)
                    {
                        EntColaboradorDirectorio entColaborador = new EntColaboradorDirectorio
                        {
                            iIdColaborador        = iIdColaborador,
                            iIdEspecialidad       = dr.ConvertTo <int>("iIdEspecialidad"),
                            sCedulaProfecional    = dr.ConvertTo <string>("sCedulaProfecional"),
                            sCorreo               = dr.ConvertTo <string>("sCorreo"),
                            sDireccionConsultorio = dr.ConvertTo <string>("sDireccionConsultorio"),
                            sEspecialidad         = dr.ConvertTo <string>("sEspecialidad"),
                            sFoto              = string.Empty,
                            sMaps              = dr.ConvertTo <string>("sMaps"),
                            sNombre            = dr.ConvertTo <string>("sNombre"),
                            sNombreConsultorio = dr.ConvertTo <string>("sNombreConsultorio"),
                            sRFC      = dr.ConvertTo <string>("sRFC"),
                            sTelefono = dr.ConvertTo <string>("sTelefono"),
                            sWhatsApp = dr.ConvertTo <string>("sWhatsApp"),
                            sURL      = dr.ConvertTo <string>("sURL"),
                        };

                        //Reemplazar valores nulos/vacíos por la leyenda Sin información
                        string sinInformacion = ConfigurationManager.AppSettings["sLeyendaSinInformacion"];
                        entColaborador.sCedulaProfecional    = string.IsNullOrEmpty(entColaborador.sCedulaProfecional) ? sinInformacion : entColaborador.sCedulaProfecional;
                        entColaborador.sCorreo               = string.IsNullOrEmpty(entColaborador.sCorreo) ? sinInformacion : entColaborador.sCorreo;
                        entColaborador.sDireccionConsultorio = string.IsNullOrEmpty(entColaborador.sDireccionConsultorio) ? sinInformacion : entColaborador.sDireccionConsultorio;
                        entColaborador.sEspecialidad         = string.IsNullOrEmpty(entColaborador.sEspecialidad) ? sinInformacion : entColaborador.sEspecialidad;
                        entColaborador.sNombre               = string.IsNullOrEmpty(entColaborador.sNombre) ? sinInformacion : entColaborador.sNombre;
                        entColaborador.sNombreConsultorio    = string.IsNullOrEmpty(entColaborador.sNombreConsultorio) ? sinInformacion : entColaborador.sNombreConsultorio;
                        entColaborador.sRFC      = string.IsNullOrEmpty(entColaborador.sRFC) ? sinInformacion : entColaborador.sRFC;
                        entColaborador.sTelefono = string.IsNullOrEmpty(entColaborador.sTelefono) ? sinInformacion : entColaborador.sTelefono;
                        entColaborador.sURL      = string.IsNullOrEmpty(entColaborador.sURL) ? sinInformacion : entColaborador.sURL;
                        entColaborador.sWhatsApp = string.IsNullOrEmpty(entColaborador.sWhatsApp) ? sinInformacion : entColaborador.sWhatsApp;

                        try
                        {
                            byte[] foto  = drItem["sFoto"] is DBNull ? new byte[0] : (byte[])drItem["sFoto"];
                            string sFoto = Convert.ToBase64String(foto);
                            if (string.IsNullOrWhiteSpace(sFoto))
                            {
                                sFoto = string.Empty;
                            }

                            entColaborador.sFoto = sFoto;
                        }
                        catch (Exception)
                        {
                        }

                        entDirectorio.lstColaboradores.Add(entColaborador);
                    }
                }

                //Calcular el total de páginas existentes
                int iCount = 0;
                if (resGetDirectorio.Result.Rows.Count > 0)
                {
                    iCount = Convert.ToInt32(resGetDirectorio.Result.Rows[0]["iCount"].ToString());
                }

                entDirectorio.iTotalPaginas = (int)Math.Ceiling(iCount / (double)piPageSize);

                response.Code    = 0;
                response.Message = "El directorio médico ha sido obtenido.";
                response.Result  = entDirectorio;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458505194;
                response.Message = "Ocurrió un error inesperado al consultar el directorio médico.";

                logger.Error(IMDSerialize.Serialize(67823458505194, $"Error en {metodo}(int? piIdEspecialidad = null, string psBuscador = null, int piPage = 0, int piPageSize = 0): {ex.Message}", piIdEspecialidad, psBuscador, piPage, piPageSize, ex, response));
            }
            return(response);
        }
예제 #22
0
        public IMDResponse <List <EntProducto> > BObtenerProductos(int?iIdProducto)
        {
            IMDResponse <List <EntProducto> > response = new IMDResponse <List <EntProducto> >();

            string metodo = nameof(this.BObtenerProductos);

            logger.Info(IMDSerialize.Serialize(67823458396414, $"Inicia {metodo}(int? iIdProducto)", iIdProducto));

            try
            {
                List <EntProducto>      lstProductos = new List <EntProducto>();
                IMDResponse <DataTable> dtProductos  = datProducto.DObterProductos(iIdProducto);

                if (dtProductos.Code != 0)
                {
                    response = dtProductos.GetResponse <List <EntProducto> >();
                    return(response);
                }

                if (dtProductos.Result.Rows.Count == 0)
                {
                    response         = dtProductos.GetResponse <List <EntProducto> >();
                    response.Code    = 67823458396414;
                    response.Message = "No se encontraron productos en el sistema.";
                    return(response);
                }

                foreach (DataRow item in dtProductos.Result.Rows)
                {
                    IMDDataRow  dr       = new IMDDataRow(item);
                    EntProducto producto = new EntProducto
                    {
                        iIdProducto      = dr.ConvertTo <int>("iIdProducto"),
                        iIdTipoProducto  = dr.ConvertTo <int>("iIdTipoProducto"),
                        iIdGrupoProducto = dr.ConvertTo <int>("iIdGrupoProducto"),
                        sTipoProducto    = dr.ConvertTo <string>("sTipoProducto"),
                        sGrupoProducto   = dr.ConvertTo <string>("sGrupoProducto"),
                        sNombre          = dr.ConvertTo <string>("sNombre"),
                        sNombreCorto     = dr.ConvertTo <string>("sNombreCorto"),
                        sDescripcion     = dr.ConvertTo <string>("sDescripcion"),
                        fCosto           = dr.ConvertTo <double>("fCosto"),
                        iMesVigencia     = dr.ConvertTo <int>("iMesVigencia"),
                        sIcon            = dr.ConvertTo <string>("sIcon"),
                        sPrefijoFolio    = dr.ConvertTo <string>("sPrefijoFolio"),
                        bComercial       = Convert.ToBoolean(dr.ConvertTo <int>("bComercial")),
                        bActivo          = Convert.ToBoolean(dr.ConvertTo <int>("bActivo")),
                        bBaja            = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"))
                    };
                    producto.sComercial = producto.bComercial ? "Si" : "No";
                    producto.sCosto     = producto.fCosto.ToString("C");

                    lstProductos.Add(producto);
                }


                response.Code    = 0;
                response.Result  = lstProductos;
                response.Message = "La lista de productos ha sido obtenida.";
            }
            catch (Exception ex)
            {
                response.Code    = 67823458397191;
                response.Message = "Ocurrió un error inesperado";

                logger.Error(IMDSerialize.Serialize(67823458397191, $"Error en {metodo}(int? iIdProducto): {ex.Message}", iIdProducto, ex, response));
            }
            return(response);
        }