コード例 #1
0
 public static String GetDashboardCompromisosValues(int num_empleado, string usuario, string ver_todos_empleados)
 {
     try
     {
         EmpleadosCOM empleados         = new EmpleadosCOM();
         bool         ver_Todos         = Convert.ToBoolean(ver_todos_empleados);
         DataSet      ds                = empleados.sp_listado_empleados(num_empleado, false, false);
         DataTable    dt_list_empleados = ds.Tables[1];
         string       value             = JsonConvert.SerializeObject("");
         if (dt_list_empleados.Rows.Count == 1)
         {
             DataRow row       = ds.Tables[0].Rows[0];
             string  userinrow = row["usuario"].ToString().Trim().ToUpper();
             if (userinrow != usuario)
             {
                 string lista_empleados = dt_list_empleados.Rows[0]["lista_empleados"].ToString();
                 lista_empleados = lista_empleados.Remove(lista_empleados.Length - 1);
                 value           = GetDashboardCompromisos_Individual(lista_empleados, usuario);
             }
         }
         else if (dt_list_empleados.Rows.Count > 1)
         {
             string lista_empleados = dt_list_empleados.Rows[0]["lista_empleados"].ToString();
             lista_empleados = lista_empleados.Remove(lista_empleados.Length - 1);
             value           = GetDashboardCompromisos_Individual(lista_empleados, usuario);
         }
         return(value);
     }
     catch (Exception ex)
     {
         return("");
     }
 }
コード例 #2
0
        protected void CargarDatosFiltros(string filtro)
        {
            try
            {
                DateTime now = DateTime.Now;
                rdpfechainicial.SelectedDate = new DateTime(now.Year, now.Month, 1);     // DateTime.Today.AddDays(-7);
                rdpfechafinal.SelectedDate   = new DateTime(now.Year, now.Month, 1 + 5); // DateTime.Today;
                int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
                int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
                Boolean      ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
                EmpleadosCOM empleados               = new EmpleadosCOM();
                DataTable    dt_empleados            = new DataTable();
                bool         no_activos              = false;
                DataSet      ds = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
                if (filtro != "")
                {
                    DataView dv_empleados = ds.Tables[0].DefaultView;
                    dv_empleados.RowFilter = "nombre like '%" + filtro + "%'";
                    dt_empleados           = dv_empleados.ToTable();
                    if (dt_empleados.Rows.Count == 1)
                    {
                        //int num_jefe = Convert.ToInt32(ddlempleado_a_consultar.SelectedValue);
                        //CargarListadoEmpleado(num_jefe, false);
                    }
                }
                else
                {
                    dt_empleados = ds.Tables[0];
                }
                ddlempleado_a_consultar.DataValueField = "num_empleado";
                ddlempleado_a_consultar.DataTextField  = "nombre";
                ddlempleado_a_consultar.DataSource     = ds.Tables[0];
                ddlempleado_a_consultar.DataBind();
                ddlempleado_a_consultar.Items.Insert(0, "Seleccione un empleado");
                if (filtro != "")
                {
                    ddlempleado_a_consultar.SelectedValue = dt_empleados.Rows[0]["num_empleado"].ToString();
                }
                //ddlempleado_a_consultar.Visible = true;

                //div_filtro_empleados.Visible = true;
                //if (!ver_Todos_los_empleados)
                //{
                //    div_filtro_empleados.Visible = false;
                //    ddlempleado_a_consultar.Enabled = false;
                //    CargarListadoEmpleado(num_empleado, false);
                //    ddlempleado_a_consultar.SelectedValue = num_empleado.ToString();
                //    lnkagregartodos_Click(null, null);
                //}
            }
            catch (Exception ex)
            {
                Toast.Error("Error al iniciar modal de filtros: " + ex.Message, this);
            }
            finally
            {
                lnkfiltros.Visible = true;
                nkcargandofiltros.Style["display"] = "none";
            }
        }
コード例 #3
0
 protected void CargarListadoEmpleado(int num_jefe, Boolean ver_Todos_los_empleados)
 {
     try
     {
         EmpleadosCOM        empleados  = new EmpleadosCOM();
         bool                no_activos = cbxnoactivo.Checked;
         DataSet             ds         = empleados.sp_listado_empleados(num_jefe, ver_Todos_los_empleados, no_activos);
         DataTable           dt         = ds.Tables[0];
         List <SiteDataItem> siteData   = new List <SiteDataItem>();
         foreach (DataRow row in dt.Rows)
         {
             siteData.Add(new SiteDataItem(
                              Convert.ToInt32(row["num_empleado"]),
                              Convert.ToInt32(row["numjefe"]),
                              row["nombre"].ToString(),
                              row["usuario"].ToString()
                              ));
         }
         rtvListEmpleado.DataTextField     = "Text";
         rtvListEmpleado.DataValueField    = "Value";
         rtvListEmpleado.DataFieldID       = "ID";
         rtvListEmpleado.DataFieldParentID = "ParentID";
         rtvListEmpleado.DataSource        = siteData;
         rtvListEmpleado.DataBind();
         lblcountlistempleados.Text = siteData.Count.ToString();
     }
     catch (Exception ex)
     {
         Toast.Error("Error al cargar listado de empleados: " + ex.Message, this);
     }
 }
コード例 #4
0
        protected void CargarDatosempleados(string filtro)
        {
            try
            {
                int     NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
                int     num_empleado            = Convert.ToInt32(Session["num_empleado"]);
                Boolean ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
                if (funciones.Permisos(Session["usuario"] as string, 4))
                {
                    ver_Todos_los_empleados = true;
                }
                EmpleadosCOM empleados    = new EmpleadosCOM();
                bool         no_activos   = false;
                DataSet      ds           = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
                DataTable    dt_empleados = new DataTable();
                if (filtro != "")
                {
                    DataView dv_empleados = ds.Tables[0].DefaultView;
                    dv_empleados.RowFilter = "nombre like '%" + filtro + "%'";
                    if (dv_empleados.ToTable().Rows.Count <= 0)
                    {
                        dv_empleados.RowFilter = "usuario like '%" + filtro + "%'";
                    }
                    dt_empleados = dv_empleados.ToTable();
                    if (dt_empleados.Rows.Count == 1)
                    {
                        int num_jefe = Convert.ToInt32(dt_empleados.Rows[0]["num_empleado"].ToString());
                        CargarListadoEmpleado(num_jefe, false);
                    }
                }
                else
                {
                    dt_empleados = ds.Tables[0];
                }
                ddlempleado_a_consultar.DataValueField = "num_empleado";
                ddlempleado_a_consultar.DataTextField  = "nombre";
                ddlempleado_a_consultar.DataSource     = dt_empleados;
                ddlempleado_a_consultar.DataBind();
                if (!ver_Todos_los_empleados)
                {
                    CargarListadoEmpleado(num_empleado, false);
                    ddlempleado_a_consultar.SelectedValue = num_empleado.ToString();
                    //lnkagregartodos_Click(null, null);
                }

                ddlempleado_a_consultar.Enabled = ver_Todos_los_empleados;
                div_filtro_empleados.Visible    = ver_Todos_los_empleados;
            }
            catch (Exception ex)
            {
                Toast.Error("Error al iniciar busqueda de empleados: " + ex.Message, this);
            }
            finally
            {
            }
        }
コード例 #5
0
        protected void LlenarInformacionModal()
        {
            ViewState["dt_usuarios"] = null;
            string       usuario                 = hdfusuario.Value;
            int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
            int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
            Boolean      ver_Todos_los_empleados = true;// Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
            EmpleadosCOM empleados               = new EmpleadosCOM();
            bool         no_activos              = false;
            DataSet      ds = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
            DataTable    dt = ds.Tables[0];
            DataView     dv = dt.DefaultView;

            dv.RowFilter = "usuario = '" + usuario.Trim().ToUpper() + "'";
            if (dv.ToTable().Rows.Count > 0)
            {
                DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("~/img/users/"));
                string        imagen  = usuario + ".png";
                if (imagen != "" && File.Exists(dirInfo.ToString().Trim() + imagen))
                {
                    DateTime localDate = DateTime.Now;
                    string   date      = localDate.ToString();
                    date = date.Replace("/", "_");
                    date = date.Replace(":", "_");
                    date = date.Replace(" ", "");
                    img_employee.ImageUrl = "~/img/users/" + imagen + "?date=" + date;
                }
                else
                {
                    imagen = "user.png";
                    DateTime localDate = DateTime.Now;
                    string   date      = localDate.ToString();
                    date = date.Replace("/", "_");
                    date = date.Replace(":", "_");
                    date = date.Replace(" ", "");
                    img_employee.ImageUrl = "~/img/" + imagen + "?date=" + date;
                }
                DataRow empleado = dv.ToTable().Rows[0];
                lblnombre.Text  = empleado["nombre"].ToString();
                lblpuesto.Text  = empleado["puesto"].ToString();
                lblusuario.Text = empleado["usuario"].ToString();
                lblperfil.Text  = empleado["perfil"].ToString();

                //cargos los menus disponibles para el usuario
                CargarMenus(usuario);

                CargarPermisos(usuario);

                CargarDelegados(usuario);
                //cargamos los perfiles
                CargarListadoPerfiles("");

                //cargamos los permisos
                CargarListadoPermisos("");
            }
        }
コード例 #6
0
        protected void CargarDatosFiltros(string filtro)
        {
            try
            {
                int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
                int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
                Boolean      ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
                EmpleadosCOM empleados               = new EmpleadosCOM();
                bool         no_activos              = cbxnoactivo.Checked;
                DataSet      ds           = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
                DataTable    dt_empleados = new DataTable();
                if (filtro != "")
                {
                    DataView dv_empleados = ds.Tables[0].DefaultView;
                    dv_empleados.RowFilter = "nombre like '%" + filtro + "%'";
                    dt_empleados           = dv_empleados.ToTable();
                    if (dt_empleados.Rows.Count == 1)
                    {
                        int num_jefe = Convert.ToInt32(dt_empleados.Rows[0]["num_empleado"].ToString());
                        CargarListadoEmpleado(num_jefe, false);
                    }
                }
                else
                {
                    dt_empleados = ds.Tables[0];
                }
                ddlempleado_a_consultar.DataValueField = "num_empleado";
                ddlempleado_a_consultar.DataTextField  = "nombre";
                ddlempleado_a_consultar.DataSource     = dt_empleados;
                ddlempleado_a_consultar.DataBind();
                if (!ver_Todos_los_empleados)
                {
                    CargarListadoEmpleado(num_empleado, false);
                    ddlempleado_a_consultar.SelectedValue = num_empleado.ToString();
                    lnkagregartodos_Click(null, null);
                }

                ddlempleado_a_consultar.Enabled = ver_Todos_los_empleados;
                div_filtro_empleados.Visible    = ver_Todos_los_empleados;
            }
            catch (Exception ex)
            {
                Toast.Error("Error al iniciar modal de filtros: " + ex.Message, this);
            }
            finally
            {
                lnkfiltros.Visible = true;
                nkcargandofiltros.Style["display"] = "none";
            }
        }
コード例 #7
0
        private void CargarListadoEmpleados(string filtro)
        {
            try
            {
                int     NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
                int     num_empleado            = Convert.ToInt32(Session["num_empleado"]);
                Boolean ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
                if (funciones.Permisos(Session["usuario"] as string, 3))
                {
                    ver_Todos_los_empleados = true;
                }
                EmpleadosCOM empleados   = new EmpleadosCOM();
                bool         no_activos  = false;
                DataSet      ds          = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
                DataTable    dt_original = new DataTable();
                dt_original = ds.Tables[0];
                DataTable dt = new DataTable();
                if (filtro == "")
                {
                    dt = dt_original;
                }
                else
                {
                    if (dt_original.Select("nombre like '%" + filtro + "%'").Length > 0)
                    {
                        dt = filtro == "" ? dt_original : dt_original.Select("nombre like '%" + filtro + "%'").CopyToDataTable();
                    }
                }

                if (dt.Rows.Count > 0)
                {
                    ViewState["dt_empleados"]           = dt;
                    rdlempleadosproyecto.DataTextField  = "nombre";
                    rdlempleadosproyecto.DataValueField = "usuario";
                    rdlempleadosproyecto.DataSource     = dt;
                    rdlempleadosproyecto.DataBind();
                }
                else
                {
                    Toast.Info("No se encontro ninguna coincidencia. Intentelo nuevamente.", "Mensaje del Sistema", this);
                }
            }
            catch (Exception ex)
            {
                Toast.Error("Error al cargar lista de empleados. " + ex.Message, this);
            }
        }
コード例 #8
0
 protected void lnkactualizar_Click(object sender, EventArgs e)
 {
     try
     {
         string         username                = Session["usuario"] as string;
         string         password                = Session["contraseña"] as string;
         DirectoryEntry directoryEntry          = new DirectoryEntry("LDAP://" + "MIGESA.NET", username, password);
         int            NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
         int            num_empleado            = Convert.ToInt32(Session["num_empleado"]);
         Boolean        ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
         EmpleadosCOM   empleados               = new EmpleadosCOM();
         bool           no_activos              = false;
         DataSet        ds           = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
         DataTable      dt_empleados = ds.Tables[0];
         foreach (DataRow row in dt_empleados.Rows)
         {
             string usuario = row["usuario"].ToString().Trim().ToUpper();
             //Create a searcher on your DirectoryEntry
             DirectorySearcher adSearch = new DirectorySearcher(directoryEntry);
             adSearch.SearchScope = SearchScope.Subtree;                                     //Look into all subtree during the search
             adSearch.Filter      = "(&(ObjectClass=user)(sAMAccountName=" + usuario + "))"; //Filter information, here i'm looking at a user with given username
             if (adSearch != null)
             {
                 SearchResult sResult = adSearch.FindOne();       //username is unique, so I want to find only one
                 string       imagen  = "";
                 if (sResult != null)
                 {
                     if (sResult.Properties["thumbnailPhoto"].Count > 0)
                     {
                         byte[] array_img = sResult.Properties["thumbnailPhoto"][0] as byte[];    //Get the property info
                         imagen = GuardarImagenUsuario(array_img, usuario + ".png");
                     }
                 }
             }
         }
         Toast.Success("Todas las fotografias de los usuarios fueron actualizadas de manera correcta.", "Porceso terminado correctamente", this);
     }
     catch (Exception ex)
     {
         Toast.Error("Error al actualizar imagenes: " + ex.Message, this);
     }
     finally {
         lnkactualizar.Visible = true;
         lnkactualizaractualizar.Style["display"] = "none";
     }
 }
コード例 #9
0
 protected void CargarDatosFiltros(string filtro)
 {
     try
     {
         int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
         int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
         Boolean      ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
         EmpleadosCOM empleados               = new EmpleadosCOM();
         bool         no_activos              = cbxnoactivo.Checked;
         DataSet      ds           = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
         DataTable    dt_empleados = new DataTable();
         if (filtro != "")
         {
             DataView dv_empleados = ds.Tables[0].DefaultView;
             dv_empleados.RowFilter = "nombre like '%" + filtro + "%'";
             dt_empleados           = dv_empleados.ToTable();
         }
         else
         {
             dt_empleados = ds.Tables[0];
         }
         //DataView dv2 = dt_empleados.DefaultView;
         //dv2.RowFilter = "clave_ventas <> ''";
         DataTable dt_final = dt_empleados;
         ddlempleado_a_consultar.DataValueField = "clave_ventas";
         ddlempleado_a_consultar.DataTextField  = "nombre";
         ddlempleado_a_consultar.DataSource     = dt_final;
         ddlempleado_a_consultar.DataBind();
         ddlempleado_a_consultar.Enabled = ver_Todos_los_empleados;
     }
     catch (Exception ex)
     {
         Toast.Error("Error al iniciar modal de filtros: " + ex.Message, this);
     }
     finally
     {
         lnkfiltros.Visible = true;
         nkcargandofiltros.Style["display"] = "none";
     }
 }
コード例 #10
0
 private void CargarCatalogoUsuarios()
 {
     try
     {
         int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
         int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
         Boolean      ver_Todos_los_empleados = true;// Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
         EmpleadosCOM empleados               = new EmpleadosCOM();
         bool         no_activos              = false;
         DataSet      ds = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
         ViewState["dt_empleados"] = null;
         if (ds.Tables[2].Rows.Count > 0)
         {
             repeat_usuarios.DataSource = ds.Tables[2];
             repeat_usuarios.DataBind();
             ViewState["dt_empleados"] = ds.Tables[2];
         }
     }
     catch (Exception ex)
     {
         Toast.Error("Error al cargar usuarios: " + ex.Message, this);
     }
 }
コード例 #11
0
 protected void CargarDatosFiltros(string filtro)
 {
     try
     {
         int          NumJefe                 = Convert.ToInt32(Session["NumJefe"]);
         int          num_empleado            = Convert.ToInt32(Session["num_empleado"]);
         Boolean      ver_Todos_los_empleados = Convert.ToBoolean(Session["ver_Todos_los_empleados"]);
         EmpleadosCOM empleados               = new EmpleadosCOM();
         bool         no_activos              = cbxnoactivo.Checked;
         DataSet      ds           = empleados.sp_listado_empleados(num_empleado, ver_Todos_los_empleados, no_activos);
         DataTable    dt_empleados = new DataTable();
         if (filtro != "")
         {
             DataView dv_empleados = ds.Tables[0].DefaultView;
             dv_empleados.RowFilter = "nombre like '%" + filtro + "%'";
             dt_empleados           = dv_empleados.ToTable();
         }
         else
         {
             dt_empleados = ds.Tables[0];
         }
         ddlempleado_a_consultar.DataValueField = "num_empleado";
         ddlempleado_a_consultar.DataTextField  = "nombre";
         ddlempleado_a_consultar.DataSource     = dt_empleados;
         ddlempleado_a_consultar.DataBind();
         ddlempleado_a_consultar.Items.Insert(0, new ListItem("--Seleccione un empleado", "0"));
     }
     catch (Exception ex)
     {
         Toast.Error("Error al iniciar modal de filtros: " + ex.Message, this);
     }
     finally
     {
         imgloadempleado.Visible  = true;
         lblbemp.Style["display"] = "none";
     }
 }
コード例 #12
0
 protected void CargarListadoEmpleado(int num_jefe, Boolean ver_Todos_los_empleados)
 {
     try
     {
         EmpleadosCOM        empleados  = new EmpleadosCOM();
         bool                no_activos = false;
         DataSet             ds         = empleados.sp_listado_empleados(num_jefe, ver_Todos_los_empleados, no_activos);
         DataTable           dt         = ds.Tables[0];
         List <SiteDataItem> siteData   = new List <SiteDataItem>();
         foreach (DataRow row in dt.Rows)
         {
             siteData.Add(new SiteDataItem(
                              Convert.ToInt32(row["num_empleado"]),
                              Convert.ToInt32(row["numjefe"]),
                              row["nombre"].ToString(),
                              row["usuario"].ToString()
                              ));
         }
     }
     catch (Exception ex)
     {
         Toast.Error("Error al cargar listado de empleados: " + ex.Message, this);
     }
 }
コード例 #13
0
        protected void lnkguardar_Click(object sender, EventArgs e)
        {
            try
            {
                string    vmensaje    = string.Empty;
                int       id_proyecto = Convert.ToInt32(hdfid_proyecto.Value == "" ? "0" : hdfid_proyecto.Value);
                proyectos proyecto    = new proyectos();

                proyecto.proyecto            = txtnombreproyecto.Text;
                proyecto.descripcion         = txtdescripcion.Text;
                proyecto.id_proyecto_periodo = Convert.ToInt32(ddlperiodo.SelectedValue);
                proyecto.id_proyecto_estatus = Convert.ToInt32(ddlestatus.SelectedValue);
                proyecto.folio_op            = txtcveop.Text;
                proyecto.folio_pmt           = txtfolopmt.Text;

                if (id_proyecto > 0)
                {
                    proyecto.id_proyecto = id_proyecto;
                }
                EmpleadosCOM empleados    = new EmpleadosCOM();
                int          num_empleado = Convert.ToInt32(ddlempleado_a_consultar.SelectedValue);
                DataSet      ds           = empleados.sp_listado_empleados(num_empleado, false, false);
                DataTable    dt           = ds.Tables[0];
                string       Usuario      = dt.Rows[0]["usuario"].ToString();
                proyecto.usuario_resp = Usuario;
                proyecto.usuario      = Session["usuario"] as string;

                DateTime fechaInicial = Convert.ToDateTime(rdpfechainicial.SelectedDate);
                DateTime fechaFinal   = Convert.ToDateTime(rdpfechafinal.SelectedDate);
                proyecto.fecha_inicio = fechaInicial;
                proyecto.fecha_fin    = fechaFinal;
                int dias = ((fechaFinal - fechaInicial)).Days;
                proyecto.duración = Convert.ToInt16(dias);

                proyecto.folio_pmt = txtfolopmt.Text.Trim();
                //CPED
                proyecto.cped = txtcped.Text.Trim();


                proyecto.costo_usd   = txtmonto.Text != "" ? Convert.ToDecimal(txtmonto.Text.Replace("$", "").Replace(",", "").Replace(" ", "")) : 0;;
                proyecto.costo_mn    = txtmontomn.Text != ""? Convert.ToDecimal(txtmontomn.Text.Replace("$", "").Replace(",", "").Replace(" ", "")):0;
                proyecto.tipo_moneda = txtmoneda.Text;


                List <proyectos_historial_tecnologias> tecnologias = new List <proyectos_historial_tecnologias>();
                string strtecnologias = "";
                IList <RadComboBoxItem> list_tecnologias = ddltegnologia.CheckedItems;
                foreach (RadComboBoxItem item in list_tecnologias)
                {
                    if (item.Checked)
                    {
                        proyectos_historial_tecnologias tecnologia = new proyectos_historial_tecnologias
                        {
                            id_proyecto_tecnologia = Convert.ToInt32(item.Value)
                        };
                        strtecnologias = strtecnologias + item.Text + ",";
                        tecnologias.Add(tecnologia);
                    }
                }
                strtecnologias = strtecnologias.Substring(0, strtecnologias.Length > 0 ? strtecnologias.Length - 1:0);

                if (proyecto.proyecto == "")
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar proyecto : Ingrese el nombre del proyecto", this);
                }
                else if (proyecto.descripcion == "")
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar estatus : Ingrese la descripción del proyecto", this);
                }
                else if (tecnologias.Count <= 0)
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar tecnologia : Seleccione una tecnología ", this);
                }
                else if (proyecto.id_proyecto_periodo <= 0)
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar periodo : Seleccione un periodo", this);
                }
                else if (proyecto.id_proyecto_estatus <= 0)
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar estatus : Seleccione un estatus", this);
                }
                else if (proyecto.folio_op == "")
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar folio pmtracker : Ingrese un numero de oportunidad", this);
                }
                else if (proyecto.folio_pmt == "")
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar folio pmtracker : Ingrese un folio pmtracker", this);
                }
                else if (proyecto.cped == "")
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar CPED : Favor de ingresar un CPED", this);
                }
                else if (rdpfechainicial.SelectedDate > rdpfechafinal.SelectedDate)
                {
                    ModalShow("#ModalCapturaProyectos");
                    Toast.Error("Error al procesar periodo : la fecha inicial no puede ser mayor a la fecha final ", this);
                }
                else
                {
                    proyecto.usuario_edicion = Session["usuario"] as string;
                    vmensaje = id_proyecto > 0 ? Editar(proyecto, tecnologias) : Agregar(proyecto, tecnologias);
                    if (vmensaje == "")
                    {
                        if (id_proyecto == 0)
                        {
                            string       usuario_resp = proyecto.usuario_resp;
                            EmpleadosCOM usuarios     = new EmpleadosCOM();
                            DataTable    dt_usuario   = usuarios.GetUsers();
                            DataView     dv           = dt_usuario.DefaultView;
                            dv.RowFilter = "usuario_red = '" + usuario_resp.Trim().ToUpper() + "'";
                            DataTable dt_result = dv.ToTable();
                            if (dt_result.Rows.Count > 0)
                            {
                                string  saludo  = DateTime.Now.Hour > 13 ? "Buenas tardes" : "Buenos dias";
                                DataRow usuario = dt_result.Rows[0];
                                string  mail_to = usuario["mail"].ToString() == "" ? "" : (usuario["mail"].ToString() + ";");
                                string  subject = "Módulo de proyectos - Proyecto creado";
                                string  mail    = "<div>" + saludo + " <strong>" +
                                                  System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(usuario["empleado"].ToString().ToLower())
                                                  + "</strong> <div>" +
                                                  "<br>" +
                                                  "<p>Le fue asignado el proyecto <strong>" + proyecto.proyecto + "</strong>" +
                                                  "</p>" +
                                                  "<p><strong>Descripción</strong> <br/> " +
                                                  (proyecto.descripcion == "" || proyecto.descripcion == null ?proyecto.proyecto:proyecto.descripcion) + "</p> " +
                                                  "<p><strong>CPED</strong> <br/> " +
                                                  proyecto.cped + "</p> " +
                                                  "<p><strong>Tecnología(s)</strong><br/> " +
                                                  strtecnologias + "</p> " +
                                                  "<p><strong>Costo</strong><br/> " +
                                                  txtmonto.Text + " USD / " + txtmontomn.Text + " MN</p> " +
                                                  "<p><strong>Duración</strong><br/> " +
                                                  proyecto.duración + " dia(s). Del " +
                                                  Convert.ToDateTime(proyecto.fecha_inicio).ToString("dddd dd MMMM, yyyy", CultureInfo.CreateSpecificCulture("es-MX")) + " al " +
                                                  Convert.ToDateTime(proyecto.fecha_fin).ToString("dddd dd MMMM, yyyy", CultureInfo.CreateSpecificCulture("es-MX")) + "</p> " +
                                                  "<br/><p>Este movimiento fue realizado por <strong>" +
                                                  System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(Session["nombre"].ToString().ToLower())
                                                  + "</strong> el dia <strong>" +
                                                  DateTime.Now.ToString("dddd dd MMMM, yyyy hh:mm:ss tt", CultureInfo.CreateSpecificCulture("es-MX")) + "</strong>" +
                                                  "</p>";
                                CorreosCOM correos = new CorreosCOM();
                                bool       correct = correos.SendMail(mail, subject, mail_to);
                            }
                        }

                        txtnombreproyecto.Text   = "";
                        txtdescripcion.Text      = "";
                        ddlperiodo.SelectedIndex = 0;
                        ddlestatus.SelectedIndex = 0;
                        txtcveop.Text            = "";
                        txtfolopmt.Text          = "";
                        txtcped.Text             = "";
                        txtmonto.Text            = "";
                        txtmontomn.Text          = "";
                        txtmoneda.Text           = "";
                        Cargarddlperiodo();
                        Cargarddlestatus();
                        Cargarddltegnologia();
                        hdfid_proyecto.Value = "";
                        CargarProyectos(1);
                        ModalClose("#ModalCapturaProyectos");
                        System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), Guid.NewGuid().ToString(),
                                                                          "AlertGO('Proyecto agregado correctamente.','mis_proyectos.aspx');", true);
                    }
                    else
                    {
                        ModalClose("#ModalCapturaProyectos");
                        Toast.Error("Error al procesar proyecto : " + vmensaje, this);
                    }
                }
            }
            catch (Exception ex)
            {
                ModalShow("#ModalProyectoestatus");
                Toast.Error("Error al procesar estatus : " + ex.Message, this);
            }
        }