protected void Button_InformarDescarte_Click(object sender, EventArgs e)
    {
        Decimal ID_REQUERIMIENTO = Convert.ToDecimal(HiddenField_ID_REQUERIMIENTO.Value);
        Decimal ID_SOLICITUD = Convert.ToDecimal(HiddenField_ID_SOLICITUD.Value);

        ConRegContratoTemporal _contratoTemporal = new ConRegContratoTemporal(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        Boolean correcto = _contratoTemporal.DescartarConRegContratosTemporal(ID_REQUERIMIENTO, ID_SOLICITUD, TextBox_ObservacionesDescarte.Text.Trim());

        if (correcto == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _contratoTemporal.MensajeError, Proceso.Error);
        }
        else
        {
            parametro _parametro = new parametro(Session["idEmpresa"].ToString());

            DataTable tablaRolParaInformar = _parametro.ObtenerParametrosPorTabla(tabla.PARAMETROS_ROL_INFORMAR_DESCARTE_PROCESO_CONTRATACION);

            if (tablaRolParaInformar.Rows.Count <= 0)
            {
                tools _tools = new tools();
                SecureQueryString QueryStringSeguro;
                QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                QueryStringSeguro["img_area"] = "contratacion";
                QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                QueryStringSeguro["nombre_modulo"] = "HOJA DE TRABAJO DE CONTRATACIÓN";
                QueryStringSeguro["accion"] = "descarteContratacionNoRol";

                Response.Redirect("~/contratacion/hojaTrabajoContratacion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
            }
            else
            {
                DataRow filaParametroRol = tablaRolParaInformar.Rows[0];

                String NOMBRE_ROL = filaParametroRol["CODIGO"].ToString().Trim();

                usuario _usuario = new usuario(Session["idEmpresa"].ToString());
                DataTable tablaUsuariosAInformar = _usuario.ObtenerListaUsuariosSistemaActivosPorNombreRol(NOMBRE_ROL);

                if (tablaUsuariosAInformar.Rows.Count <= 0)
                {
                    tools _tools = new tools();
                    SecureQueryString QueryStringSeguro;
                    QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                    QueryStringSeguro["img_area"] = "contratacion";
                    QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                    QueryStringSeguro["nombre_modulo"] = "HOJA DE TRABAJO DE CONTRATACIÓN";
                    QueryStringSeguro["accion"] = "descarteContratacionNoUsuarios";

                    Response.Redirect("~/contratacion/hojaTrabajoContratacion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                }
                else
                {
                    Int32 contadorEnvios = 0;
                    Int32 contadorErrores = 0;

                    StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\email_informativo_descarte_contratacion.htm"));
                    String html_formato_plantilla_email = archivo_original.ReadToEnd();
                    archivo_original.Dispose();
                    archivo_original.Close();

                    String NOMBRE_CANDIDATO = Label_NOMBRE_TRABAJADOR.Text;
                    String NUMERO_IDENTIFICACION = Label_NUM_DOC_IDENTIDAD.Text;
                    String OBSERVACIONES_DESCARTE = TextBox_ObservacionesDescarte.Text.Trim();

                    String NOMBRE_USUARIO;
                    DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(Session["USU_LOG"].ToString());
                    DataRow filaUsuario = tablaUsuario.Rows[0];

                    if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
                    {
                        NOMBRE_USUARIO = filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim();
                    }
                    else
                    {
                        NOMBRE_USUARIO = filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim();
                    }

                    html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NOMBRE_CANDIDATO]", NOMBRE_CANDIDATO);
                    html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NUMERO_IDENTIFICACION]", NUMERO_IDENTIFICACION);
                    html_formato_plantilla_email = html_formato_plantilla_email.Replace("[OBSERVACIONES_DESCARTE]", OBSERVACIONES_DESCARTE);
                    html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NOMBRE_USUARIO]", NOMBRE_USUARIO);

                    tools _tools = new tools();

                    foreach (DataRow filausuario in tablaUsuariosAInformar.Rows)
                    {
                        if (DBNull.Value.Equals(filausuario["USU_MAIL"]) == false)
                        {
                            try
                            {
                                _tools.enviarCorreoConCuerpoHtml(filausuario["USU_MAIL"].ToString().Trim(), "DESCARTE EN CONTRATACIÓN", html_formato_plantilla_email);
                                contadorEnvios += 1;
                            }
                            catch
                            {
                                contadorErrores += 1;
                            }
                        }
                        else
                        {
                            contadorErrores += 1;
                        }
                    }

                    if (contadorEnvios <= 0)
                    {
                        SecureQueryString QueryStringSeguro;
                        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                        QueryStringSeguro["img_area"] = "contratacion";
                        QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                        QueryStringSeguro["nombre_modulo"] = "HOJA DE TRABAJO DE CONTRATACIÓN";
                        QueryStringSeguro["accion"] = "descarteContratacionNoEmail";

                        Response.Redirect("~/contratacion/hojaTrabajoContratacion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                    }
                    else
                    {
                        SecureQueryString QueryStringSeguro;
                        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                        QueryStringSeguro["img_area"] = "contratacion";
                        QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                        QueryStringSeguro["nombre_modulo"] = "HOJA DE TRABAJO DE CONTRATACIÓN";
                        QueryStringSeguro["accion"] = "descarteContratacionOk";

                        Response.Redirect("~/contratacion/hojaTrabajoContratacion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                    }
                }
            }
        }
    }
        public Boolean enviarNotificacionesObjetosContrato()
        {
            tools _tools = new tools();

            Boolean correcto = true;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                DataTable tablaContratosPorNotificar = ObtenerContratosQueNecesitanNotificacionEmail(conexion);

                String correos = "";
                Decimal ID_EMPRESA = 0;
                String mensajeMail;

                String RAZ_SOCIAL;
                String NUMERO_CONTRATO;
                String FECHA;
                String FCH_VENCE;
                Decimal REGISTRO;

                foreach (DataRow filaContrato in tablaContratosPorNotificar.Rows)
                {
                    try
                    {
                        ID_EMPRESA = Convert.ToDecimal(filaContrato["ID_EMPRESA"]);
                    }
                    catch
                    {
                        ID_EMPRESA = 0;
                    }

                    DataTable tablaUsuarios = ObtenerDatosUsuarioPorEmpreUnidadNegocio(ID_EMPRESA, "REP. COMERCIAL", conexion);
                    DataRow filaUsuario;

                    correos = String.Empty;

                    for (int i = 0; i < tablaUsuarios.Rows.Count; i++)
                    {
                        filaUsuario = tablaUsuarios.Rows[i];

                        if (filaUsuario["USU_MAIL"] != DBNull.Value)
                        {
                            if (i == 0)
                            {
                                correos = filaUsuario["USU_MAIL"].ToString().Trim();
                            }
                            else
                            {
                                correos += ";" + filaUsuario["USU_MAIL"].ToString().Trim();
                            }
                        }
                    }

                    if (String.IsNullOrEmpty(correos) == false)
                    {
                        RAZ_SOCIAL = filaContrato["RAZ_SOCIAL"].ToString().Trim().ToUpper();
                        NUMERO_CONTRATO = filaContrato["NUMERO_CONTRATO"].ToString();
                        REGISTRO = Convert.ToDecimal(filaContrato["REGISTRO"]);

                        try
                        {
                            FECHA = Convert.ToDateTime(filaContrato["FECHA"]).ToLongDateString();
                        }
                        catch
                        {
                            FECHA = "DESCONOCIDA";
                        }
                        try
                        {
                            FCH_VENCE = Convert.ToDateTime(filaContrato["FCH_VENCE"]).ToLongDateString();
                        }
                        catch
                        {
                            FCH_VENCE = "DESCONOCIDA";
                        }

                        mensajeMail = String.Format("<div style=\"text-align:center\"><b>AVISO -CONTRATO/OFERTA MERCANTIL- POR VENCER</b></div><br /><div style=\"text-align:justify\">Señor(a) Representante comercial de <b>{0}</b> el contrato/Oferta mercantil Numero: <b>{1}</b> esta por vencer.<br /><br /><br /><b>Numero Contrato/Oferta Mercantil:</b> {0}.<br /><b>Fecha Inicio:</b> {2}.<br /><b>Fecha Vencimiento:</b> {3}.</div>", RAZ_SOCIAL, NUMERO_CONTRATO, FECHA, FCH_VENCE);

                        if (_tools.enviarCorreoConCuerpoHtml(correos, "CONTRATO/OFERTA MERCANTIL POR VENCER", mensajeMail) == true)
                        {
                            if (ActualizarFechaAvisoNenRContratos(REGISTRO, conexion) == false)
                            {
                                correcto = false;
                                conexion.DeshacerTransaccion();
                                break;
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch
            {
                conexion.DeshacerTransaccion();
                correcto = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return correcto;
        }
    private Boolean EnviarCorreoAColaboradoresInteresados(Decimal idRequerimiento)
    {
        String mensaje;
        String mensaje_interno;
        tools _tools = new tools();
        String destinatarios = "";
        String destinatarioCliente = "";
        Boolean resultado = true;
        Boolean resultadoCliente = true;

        if (GridView_EnvioCorreos.Rows.Count > 0)
        {
            for (int i = 0; i < GridView_EnvioCorreos.Rows.Count; i++)
            {
                String email = GridView_EnvioCorreos.DataKeys[i].Values["MAIL_COLABORADOR"].ToString().Trim();
                if (String.IsNullOrEmpty(email) == false)
                {
                    if (string.IsNullOrEmpty(destinatarios) == true)
                    {
                        destinatarios = email;
                    }
                    else
                    {
                        destinatarios += ";" + email;
                    }
                }
            }

            if (String.IsNullOrEmpty(destinatarios) == true)
            {
                resultado = false;
            }
        }
        else
        {
            resultado = false;
        }

        if (TextBox_EMAIL_ENVIO.Text.Trim().Length > 0)
        {
            if (TextBox_EMAIL_ENVIO.Text.Contains("@") == true)
            {
                destinatarioCliente = TextBox_EMAIL_ENVIO.Text.Trim();
                resultadoCliente = true;
            }
            else
            {
                resultadoCliente = false;
            }
        }

        {
            mensaje_interno = "<p style=\"text-align:center; font-weight:bold\">REQUERIMIENTO NUEVO!</p>";
            mensaje_interno += "<p>Se creó un nuevo requerimiento, los datos más importantes son los siguientes:</p>";
            mensaje_interno += "<ul><li><strong>NUM REQUERIMIENTO:</strong>[ID_REQUERIMIENTO]</li>";
            mensaje_interno += "<li><strong>CLIENTE:</strong>[CLIENTE]</li>";
            mensaje_interno += "<li><strong>TIPO REQ:</strong>[TIPO_REQ]</li></ul>";
            mensaje_interno += "<p>Para realizar el respectivo seguimiento según sus funciones, dirijase al sistema SISER WEB - Hoja de trabajado de selección, recuerde el id de este requerimeinto es el <strong>[ID_REQUERIMIENTO]</strong>.</p>";
            mensaje_interno += "<p>Creado Automáticamente por el Sistema SISER WEB, por favor no responder a este mensaje.</p>";
            mensaje_interno += "<p>Fecha: [FECHA_REPORTE].</p>";

            mensaje_interno = mensaje_interno.Replace("[ID_REQUERIMIENTO]", idRequerimiento.ToString());
            mensaje_interno = mensaje_interno.Replace("[CLIENTE]", DropDownList_ID_EMPRESA.SelectedItem.Text.Trim());
            mensaje_interno = mensaje_interno.Replace("[TIPO_REQ]", DropDownList_TIP_REQ.SelectedItem.Text.Trim());
            mensaje_interno = mensaje_interno.Replace("[FECHA_REPORTE]", DateTime.Now.ToLongDateString());

            resultado = _tools.enviarCorreoConCuerpoHtml(destinatarios, "NUEVO REQUERIMIENTO -SISER WEB-", mensaje_interno);

        }

        if (resultadoCliente == true)
        {

            if (ConfigurationManager.AppSettings["envioCorreosAClienteRequerimientosSeleccion"].ToLower() == "true")
            {
                mensaje = "<p style=\"text-align:center; font-weight:bold\">REQUERIMIENTO NUEVO -[EMPRESA_TEMPORAL]-!</p>";
                mensaje += "<p>Se creó un nuevo requerimiento, los datos más importantes son los siguientes:</p>";
                mensaje += "<ul><li><strong>NUM REQUERIMIENTO:</strong>[ID_REQUERIMIENTO]</li>";
                mensaje += "<li><strong>CLIENTE:</strong>[CLIENTE]</li>";
                mensaje += "<li><strong>TIPO REQ:</strong>[TIPO_REQ]</li>";
                mensaje += "<li><strong>CARGO:</strong>[CARGO]</li>";
                mensaje += "<li><strong>PERSONAS SOLICITADAS:</strong>[CANTIDAD]</li>";
                mensaje += "<li><strong>FECHA VENCIMIENTO:</strong>[FECHA_VENCE]</li>";
                mensaje += "<li><strong>CIUDAD:</strong>[CIUDAD]</li></ul>";
                mensaje += "<p>E-mail creado Automáticamente por el Sistema SISER WEB, por favor no responder a este mensaje.</p>";
                mensaje += "<p>Fecha: [FECHA_REPORTE].</p>";

                mensaje = mensaje.Replace("[ID_REQUERIMIENTO]", idRequerimiento.ToString());
                mensaje = mensaje.Replace("[CLIENTE]", DropDownList_ID_EMPRESA.SelectedItem.Text.Trim());
                mensaje = mensaje.Replace("[TIPO_REQ]", DropDownList_TIP_REQ.SelectedItem.Text.Trim());
                mensaje = mensaje.Replace("[CARGO]", DropDownList_PERFILES.SelectedItem.Text.Trim());
                mensaje = mensaje.Replace("[CANTIDAD]", TextBox_CANTIDAD.Text.Trim());
                mensaje = mensaje.Replace("[FECHA_VENCE]", Convert.ToDateTime(TextBox_FECHA_REQUERIDA.Text).ToLongDateString());
                mensaje = mensaje.Replace("[CIUDAD]", DropDownList_REGIONAL.SelectedItem.Text.Trim() + " - " + DropDownList_DEPARTAMENTO.SelectedItem.Text.Trim() + " - " + DropDownList_CIUDAD_REQ.SelectedItem.Text.Trim());
                mensaje = mensaje.Replace("[FECHA_REPORTE]", DateTime.Now.ToLongDateString());

                if (Session["idEmpresa"].ToString() == "1")
                {
                    mensaje = mensaje.Replace("[EMPRESA_TEMPORAL]", tabla.VAR_NOMBRE_SERTEMPO);
                    resultadoCliente = _tools.enviarCorreoConCuerpoHtml(destinatarios, "NUEVO REQUERIMIENTO -" + tabla.VAR_NOMBRE_SERTEMPO + "-", mensaje);
                }
                else
                {
                    mensaje = mensaje.Replace("[EMPRESA_TEMPORAL]", tabla.VAR_NOMBRE_EYS);
                    resultadoCliente = _tools.enviarCorreoConCuerpoHtml(destinatarios, "NUEVO REQUERIMIENTO -" + tabla.VAR_NOMBRE_EYS + "-", mensaje);
                }
            }
        }

        return resultado;
    }
    private void EnviarCorreoAComercial()
    {
        tools _tools = new tools();
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        seguridad _seguridad = new seguridad(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaUsuariosEmpresa = _seguridad.ObtenerUsuariosPorEmpresa(ID_EMPRESA);

        if (tablaUsuariosEmpresa.Rows.Count <= 0)
        {
            if (_seguridad.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _seguridad.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La ubicación seleccionada NO posee CONDICIONES COMERCIALES. Puede continuar con el proceso, pero debe informar personalmente a un Representante Comercial para que ingrese las CONDICIONES COMERCIALES para esta empresa.", Proceso.Advertencia);
            }
        }
        else
        {
            StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\email_conf_condiciones_comerciales.htm"));
            String html_formato_plantilla_email = archivo_original.ReadToEnd();
            archivo_original.Dispose();
            archivo_original.Close();

            String html_tabla_ubicacion_perfil = "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"400px\" style=\"font-size:11px; line-height:13px;\">";
            if (DropDownList_SUB_CENTRO.SelectedIndex > 0)
            {
                html_tabla_ubicacion_perfil += "<tr>";
                html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                html_tabla_ubicacion_perfil += "CIUDAD:";
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                html_tabla_ubicacion_perfil += DropDownList_CIUDAD.SelectedItem.Text;
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "</tr>";

                html_tabla_ubicacion_perfil += "<tr>";
                html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                html_tabla_ubicacion_perfil += "CENTRO DE COSTO:";
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                html_tabla_ubicacion_perfil += DropDownList_CENTRO_COSTO.SelectedItem.Text;
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "</tr>";

                html_tabla_ubicacion_perfil += "<tr>";
                html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                html_tabla_ubicacion_perfil += "SUB CENTRO:";
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                html_tabla_ubicacion_perfil += DropDownList_SUB_CENTRO.SelectedItem.Text;
                html_tabla_ubicacion_perfil += "</td>";
                html_tabla_ubicacion_perfil += "</tr>";
            }
            else
            {
                if (DropDownList_CENTRO_COSTO.SelectedIndex > 0)
                {
                    html_tabla_ubicacion_perfil += "<tr>";
                    html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                    html_tabla_ubicacion_perfil += "CIUDAD:";
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                    html_tabla_ubicacion_perfil += DropDownList_CIUDAD.SelectedItem.Text;
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "</tr>";

                    html_tabla_ubicacion_perfil += "<tr>";
                    html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                    html_tabla_ubicacion_perfil += "CENTRO DE COSTO:";
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                    html_tabla_ubicacion_perfil += DropDownList_CENTRO_COSTO.SelectedItem.Text;
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "</tr>";
                }
                else
                {
                    html_tabla_ubicacion_perfil += "<tr>";
                    html_tabla_ubicacion_perfil += "<td width=\"30%\" valign=\"middle\" style=\"text-align: left; font-weight: bold;\">";
                    html_tabla_ubicacion_perfil += "CIUDAD:";
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "<td width=\"70%\" valign=\"middle\" style=\"text-align: justify;\">";
                    html_tabla_ubicacion_perfil += DropDownList_CIUDAD.SelectedItem.Text;
                    html_tabla_ubicacion_perfil += "</td>";
                    html_tabla_ubicacion_perfil += "</tr>";
                }
            }
            html_tabla_ubicacion_perfil += "</table>";

            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[RAZ_SOCIAL]", Label_INFO_ADICIONAL_MODULO.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[TABLA_UBICACION]", html_tabla_ubicacion_perfil);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NOM_OCUPACION]", Label_NOM_OCUPACION.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[EDAD_MIN]", Label_EDAD_MIN.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[EDAD_MAX]", Label_EDAD_MAX.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NIVEL_ACADEMICO]", Label_NIVEL_ACADEMICO.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[EXPERIENCIA]", Label_EXPERIENCIA.Text);
            html_formato_plantilla_email = html_formato_plantilla_email.Replace("[SEXO]", Label_SEXO.Text);

            usuario _usuario = new usuario(Session["idEmpresa"].ToString());
            DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(Session["USU_LOG"].ToString());
            DataRow filaUsuario = tablaUsuario.Rows[0];

            if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
            {
                html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NOMBRE_USUARIO]", filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim());
            }
            else
            {
                html_formato_plantilla_email = html_formato_plantilla_email.Replace("[NOMBRE_USUARIO]", filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim());
            }

            Int32 contadorEnvioEmail = 0;
            Int32 contadorErrores = 0;
            foreach (DataRow fila in tablaUsuariosEmpresa.Rows)
            {
                if (fila["UNIDAD_NEGOCIO"].ToString().Trim().Contains("REP. COMERCIAL") == true)
                {
                    if (DBNull.Value.Equals(fila["USU_MAIL"]) == false)
                    {
                        try
                        {
                            _tools.enviarCorreoConCuerpoHtml(fila["USU_MAIL"].ToString().Trim(), "CONFIGURACIÓN DE CONDICIONES COMERCIALES", html_formato_plantilla_email);
                            contadorEnvioEmail += 1;
                        }
                        catch
                        {
                            contadorErrores += 1;
                        }
                    }
                }
            }

            if (contadorEnvioEmail <= 0)
            {
                if (contadorErrores <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La ubicación seleccionada NO posee CONDICIONES COMERCIALES. Puede continuar con el proceso, pero debe informar personalmente a un Representante Comercial para que ingrese las CONDICIONES COMERCIALES para esta empresa.", Proceso.Advertencia);
                }
                else
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La ubicación seleccionada NO posee CONDICIONES COMERCIALES. Puede continuar con el proceso, pero debe informar personalmente a un Representante Comercial para que ingrese las CONDICIONES COMERCIALES para esta empresa. (Problema con envío de Emails)", Proceso.Advertencia);
                }
            }
        }
    }
        public Boolean ObtenerClaveUsuarioPorUsuLogCedula(String USU_LOG, String DOC_IDENTIDAD)
        {
            String clave = null;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            MensajeError = null;

            Boolean correcto = true;

            String NOMBRE_EMPLEADO = null;
            String NUM_DOC_IDENTIDAD_EMPLEADO = null;
            String mensaje = null;

            try
            {
                DataTable tablaInfoUsuario = ObtenerUsuarioPorUsuLog(USU_LOG, conexion);

                if (tablaInfoUsuario.Rows.Count <= 0)
                {
                    if (MensajeError == null)
                    {
                        MensajeError = "El Nombre de usuario digitado no se encuentra registrado en la base de datos.";
                    }

                    correcto = false;

                    conexion.DeshacerTransaccion();
                }
                else
                {
                    DataRow filaInfoUsuario = tablaInfoUsuario.Rows[0];

                    if (filaInfoUsuario["ESTADO_USUARIO"].ToString() == "INACTIVO")
                    {
                        MensajeError = "El Usuario digitado esta en estado INCATIVO, Consulte al Administrador del Sistema.";
                        correcto = false;
                        conexion.DeshacerTransaccion();
                    }
                    else
                    {
                        if ((filaInfoUsuario["ID_ROL"] == DBNull.Value) || (filaInfoUsuario["ACTIVO_ROL"] == DBNull.Value) || (filaInfoUsuario["ACTIVO_ROL"].ToString().Trim() == "False"))
                        {
                            MensajeError = "El Usuario digitado no tiene asignado un ROL, o el ROL esta inactivo, Consulte al Administrador del Sistema.";
                            correcto = false;
                            conexion.DeshacerTransaccion();
                        }
                        else
                        {
                            if (filaInfoUsuario["USU_TIPO"].ToString().Trim() == "PLANTA")
                            {
                                if ((filaInfoUsuario["ACTIVO_EMPLEADO"].ToString() == "N") || (filaInfoUsuario["ID_EMPLEADO"] == DBNull.Value))
                                {
                                    MensajeError = "El Usuario digitado no tiene asignado un EMPLEADO ó el EMPLEADO está INACTIVO, Consulte al Administrador del Sistema.";
                                    correcto = false;
                                    conexion.DeshacerTransaccion();
                                }
                                else
                                {
                                    NOMBRE_EMPLEADO = filaInfoUsuario["NOMBRES"].ToString().Trim() + " " + filaInfoUsuario["APELLIDOS"].ToString().Trim();
                                    NUM_DOC_IDENTIDAD_EMPLEADO = filaInfoUsuario["NUM_DOC_IDENTIDAD"].ToString().Trim();
                                }
                            }
                            else
                            {
                                if (filaInfoUsuario["ID_EMPLEADO"] == DBNull.Value)
                                {
                                    MensajeError = "El Usuario digitado no tiene asignado un EMPLEADO, Consulte al Administrador del Sistema.";
                                    correcto = false;
                                    conexion.DeshacerTransaccion();
                                }
                                else
                                {
                                    NOMBRE_EMPLEADO = filaInfoUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaInfoUsuario["APELLIDOS_EXTERNO"].ToString().Trim();
                                    NUM_DOC_IDENTIDAD_EMPLEADO = filaInfoUsuario["NUM_DOC_IDENTIDAD_EXTERNO"].ToString().Trim();
                                }
                            }
                        }
                    }

                    if (correcto == true)
                    {
                        if (NUM_DOC_IDENTIDAD_EMPLEADO != DOC_IDENTIDAD)
                        {
                            MensajeError = "El número de identificación digitado no corresponde al que esta almacenado en la bd. Consulte al administrador.";
                            correcto = false;
                            conexion.DeshacerTransaccion();
                        }
                    }

                    if (correcto == true)
                    {
                        tools _tools = new tools();

                        clave = CrearPassword(8);
                        mensaje = "Se ha realizado una solicitud de cambio de contraseña para el usuario <b>[USU_LOG]</b>.<br />";
                        mensaje += "<br />";
                        mensaje += "USUARIO: <b>[USU_LOG]</b><br />";
                        mensaje += "CONTRASEÑA NUEVA:<b>[CLAVE]</b><BR />";
                        mensaje += "<BR />";
                        mensaje += "Al ingresar nuevamente al Sistema debe digitar su nueva contraseña. <B>IMPORTANTE:</B> Se pedirá cambio obligatorio de esta contraseña.<br />";
                        mensaje += "<br />";
                        mensaje += "<br />";
                        mensaje += "Por favor no responder a este correo, es un correo de administración del Sistema.";
                        mensaje += "<br />";
                        mensaje += "<br />";
                        mensaje += "<br />";
                        mensaje += "<B>SISER WEB</B>";

                        mensaje = mensaje.Replace("[USU_LOG]", filaInfoUsuario["USU_LOG"].ToString().Trim());
                        mensaje = mensaje.Replace("[CLAVE]", clave);

                        if (_tools.enviarCorreoConCuerpoHtml(filaInfoUsuario["USU_MAIL"].ToString(), "Nueva Contraseña SISER WEB", mensaje) == true)
                        {
                            if (ActualizarClaveUsuario(USU_LOG, filaInfoUsuario["USU_PSW"].ToString(), Encriptar(clave), conexion) == false)
                            {
                                correcto = false;
                                conexion.DeshacerTransaccion();
                            }
                        }
                        else
                        {
                            MensajeError = "No se puedo enviar el correo, la contraseña no pudo ser recuperada. Consulte al administrador del sistema.";
                            correcto = false;
                            conexion.DeshacerTransaccion();
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                MensajeError = ex.Message;
                correcto = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return correcto;
        }