private void generarDireccion()
        {
            daoAsentamiento = new DaoAsentamiento();

            Asentamiento objAsentamiento = new Asentamiento();
            Estado       objEstado       = new Estado();
            Municipio    objMunicipio    = new Municipio();

            Conexion.abrirConexion();

            //Asentamiento seleccionado
            Object asentamiento = cmbAsentamiento.SelectedItem;

            objAsentamiento = daoAsentamiento.consultarUno(asentamiento.ToString());

            Conexion.cerrarConexion();

            //Estado seleccionado
            Object oEstado = cmbEstado.SelectedItem;

            //Municipio seleccionado
            Object oMunicipio = cmbMunicipio.SelectedItem;

            String calleNumero        = txtCalleNumero.Text + " ";
            String tipoAsentamiento   = objAsentamiento.Tipo + " ";
            String nombreAsentamiento = objAsentamiento.Nombre + " ";
            String cpAsentamiento     = objAsentamiento.CP + " ";
            String municipio          = oMunicipio.ToString() + ", ";
            String estado             = oEstado.ToString();

            direccion = calleNumero + tipoAsentamiento + nombreAsentamiento + cpAsentamiento + municipio + estado;
        }
        private void cargarCiudades()
        {
            List <Asentamiento> listaCiudades = new List <Asentamiento>();

            try
            {
                Conexion.abrirConexion();

                DaoAsentamiento daoAsentamiento = new DaoAsentamiento();
                listaCiudades = daoAsentamiento.consultarTodosPorCiudad();

                Conexion.cerrarConexion();

                AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();

                foreach (var item in listaCiudades)
                {
                    coleccion.Add(item.Ciudad);
                }

                //txtCiudad.AutoCompleteCustomSource = coleccion;
            }
            catch (Exception e)
            {
            }
        }
        private void cargarCP()
        {
            List <Asentamiento> listaCP = new List <Asentamiento>();

            try
            {
                Conexion.abrirConexion();

                DaoAsentamiento daoAsentamiento = new DaoAsentamiento();
                listaCP = daoAsentamiento.consultarTodosPorCP();

                Conexion.cerrarConexion();
                txtCP.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();

                foreach (var item in listaCP)
                {
                    coleccion.Add(item.CP);
                }

                txtCP.AutoCompleteCustomSource = coleccion;
            }
            catch (Exception e)
            {
            }
        }
        public void guardar()
        {
            if (esCorrecto())
            {
                try
                {
                    daoAsentamiento = new DaoAsentamiento();

                    if (operacion.Equals("Agregar"))
                    {
                        //Saber si ya hay un asentamiento igual en la base de datos

                        if (daoAsentamiento.consultarRepetido(txtNombre.Text.Trim()))
                        {
                            Conexion.cerrarConexion();
                            MessageBox.Show("¡" + txtNombre.Text.Trim() + " ya existe en la base de datos!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            llenarModelo();
                            Conexion.abrirConexion();

                            if (daoAsentamiento.agregar(elemento))
                            {
                                MessageBox.Show("¡El asentamiento ha sido correctamente guardado!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("¡Ha ocurrido un error al intentar guardar!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                    }
                    else
                    {
                        llenarModelo();
                        Conexion.abrirConexion();
                        //Conexion.abrirConexion();
                        if (daoAsentamiento.editar(elemento))
                        {
                            MessageBox.Show("¡El asentamiento ha sido correctamente guardado!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("¡Ha ocurrido un error al intentar guardar!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }

                    Conexion.cerrarConexion();

                    actualizarTabla();
                }
                catch (Exception e)
                {
                    Conexion.cerrarConexion();
                }
            }
        }
        public void llenarControles()
        {
            daoCliente = new DaoCliente();
            daoEstado  = new DaoEstado();
            elemento   = new Cliente();
            Municipio    elementoMunicipio    = new Municipio();
            Asentamiento elementoAsentamiento = new Asentamiento();

            Conexion.abrirConexion();
            elemento = daoCliente.consultarUno(id);


            if (elemento != null)
            {
                txtClave.Text = elemento.Clave.ToString();
                // elemento.Estatus = Convert.ToChar(tx);
                if (elemento.Estatus == 1)
                {
                    rdActivo.Checked = true;
                }
                else
                {
                    rdInactivo.Checked = true;
                }

                txtRFC.Text         = elemento.RFC.ToString();
                txtNombre.Text      = elemento.Nombre.ToString();
                txtApellidos.Text   = elemento.Apellidos.ToString();
                txtTelefono.Text    = elemento.Telefono.ToString();
                txtCalleNumero.Text = elemento.CalleNumero.ToString();

                //Obtener el estado y municipio
                daoEstado       = new DaoEstado();
                daoMunicipio    = new DaoMunicipio();
                daoAsentamiento = new DaoAsentamiento();

                elementoMunicipio = daoMunicipio.consultarUno(Convert.ToInt32(elemento.Municipio));

                cmbEstado.SelectedIndex = elementoMunicipio.Estado;

                cargarMunicipios(Convert.ToInt32(elementoMunicipio.Estado), "", "Editar");

                cmbMunicipio.SelectedItem = elementoMunicipio.Nombre;

                //Obtener el asentamiento
                cargarAsentamientos(elementoMunicipio.Nombre);

                elementoAsentamiento         = daoAsentamiento.consultarUno(elemento.Asentamiento);
                cmbAsentamiento.SelectedItem = elementoAsentamiento.Nombre;
            }

            Conexion.cerrarConexion();
        }
        private void cargarAsentamientos(String municipio)
        {
            List <Asentamiento> listaAsentamientos = new List <Asentamiento>();

            if (!municipio.Equals("SELECCIONA UNA OPCIÓN"))
            {
                try
                {
                    Conexion.abrirConexion();

                    daoAsentamiento = new DaoAsentamiento();
                    daoMunicipio    = new DaoMunicipio();

                    //Obtener la clave del municipio
                    int clave = daoMunicipio.consultarUno(municipio);

                    listaAsentamientos = daoAsentamiento.consultarTodosPorAsentamiento(clave);
                    Conexion.cerrarConexion();

                    cmbAsentamiento.Items.Clear();
                    cmbAsentamiento.Refresh();

                    if (listaAsentamientos.Count > 0)
                    {
                        cmbAsentamiento.Items.Add("SELECCIONA UNA OPCIÓN");

                        foreach (var item in listaAsentamientos)
                        {
                            cmbAsentamiento.Items.Add(item.Nombre);
                        }
                    }
                    else
                    {
                        MessageBox.Show("¡" + municipio + " no tiene asentamientos!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    cmbAsentamiento.SelectedIndex = 0;
                }
                catch (Exception e)
                {
                }
            }
        }
        private void inicializar(String operacion)
        {
            InitializeComponent();
            this.operacion = operacion;
            lblTitulo.Text = operacion + " asentamiento";
            configurarVisibilidadYEdicion();

            //Traer último est_clave cuando es Agregar
            if (operacion == "Agregar")
            {
                daoAsentamiento = new DaoAsentamiento();
                this.id         = daoAsentamiento.consultarUltimo();
                txtClave.Text   = id.ToString();
            }

            cargarZonas();
            cargarCiudades();
            cargarCP();
            cargarTipos();
            cargarEstados();
        }
        public void llenarControles()
        {
            daoAsentamiento = new DaoAsentamiento();
            Municipio elementoMunicipio = new Municipio();

            Conexion.abrirConexion();

            elemento = daoAsentamiento.consultarUno(id);

            Conexion.cerrarConexion();

            if (elemento != null)
            {
                txtClave.Text  = elemento.Clave.ToString();
                txtNombre.Text = elemento.Nombre;
                txtCiudad.Text = elemento.Ciudad;
                txtZona.Text   = elemento.Zona;
                txtCP.Text     = elemento.CP;
                txtTipo.Text   = elemento.Tipo;

                //Obtener el estado y municipio
                daoEstado       = new DaoEstado();
                daoMunicipio    = new DaoMunicipio();
                daoAsentamiento = new DaoAsentamiento();

                elementoMunicipio = daoMunicipio.consultarUno(Convert.ToInt32(elemento.Municipio));

                cmbEstado.SelectedIndex = elementoMunicipio.Estado;

                cargarMunicipios(Convert.ToInt32(elementoMunicipio.Estado), "", "Editar");

                cmbMunicipio.SelectedItem = elementoMunicipio.Nombre;
            }
            else
            {
                MessageBox.Show("¡Ha ocurrido un error al cargar la información!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
        }
        public void eliminar()
        {
            if (tbAsentamientos.SelectedRows.Count > 0)
            {
                DialogResult dialogo = MessageBox.Show("¿Estás seguro de eliminar el asentamiento?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information);

                if (dialogo == DialogResult.Yes)
                {
                    daoAsentamiento = new DaoAsentamiento();

                    Conexion.abrirConexion();

                    if (daoAsentamiento.eliminar(Convert.ToInt32(tbAsentamientos.SelectedRows[0].Cells["Clave"].Value)))
                    {
                        MessageBox.Show("¡El asentamiento ha sido correctamente eliminado!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);

                        cargarDatos();
                    }
                    else
                    {
                        String error = "";
                        error += Environment.NewLine + "-> Hay clientes relacionados con " + tbAsentamientos.SelectedRows[0].Cells["Nombre"].Value;
                        error += Environment.NewLine + "-> Hay empleados relacionados con " + tbAsentamientos.SelectedRows[0].Cells["Nombre"].Value;
                        MessageBox.Show("¡No se ha podido realizar la operación!" + error, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    Conexion.cerrarConexion();
                }
            }
            else
            {
                MessageBox.Show("¡Debes seleccionar una fila!", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            txtBusqueda.Text = "";
        }
        public void algoritmoBusqueda(String busqueda, int pagina)
        {
            daoAsentamiento = new DaoAsentamiento();

            List <Object> listaPaginacion = new List <Object>();

            try
            {
                Conexion.abrirConexion();
                listaElementos = daoAsentamiento.buscar(busqueda);
                Conexion.cerrarConexion();

                //Si la consulta tuvo más de un registro, se hace la paginación
                double totalPaginacion = Convert.ToDouble(listaElementos.Count) / 10.0;

                int i       = (((pagina) - 1) * (10)) + 1;
                int f       = 0;
                int paginaS = pagina + 1;

                totalPaginacion = totalPaginacion + 1;
                String[] auxiliar = totalPaginacion.ToString().Split('.');
                lblTotalPaginas.Text = auxiliar[0];

                if (banderaUltimaPagina)
                {
                    f = listaElementos.Count;
                    banderaUltimaPagina = false;
                }
                else if (listaElementos.Count < 10)
                {
                    f = listaElementos.Count;
                    banderaUltimaPagina = false;
                }
                else
                {
                    f = ((paginaS) - 1) * 10;
                }

                totalPaginacion = totalPaginacion - 1;

                for (int j = i - 1; j < f; j++)
                {
                    Asentamiento obj = new Asentamiento();

                    obj.Clave  = listaElementos[j].Clave;
                    obj.Nombre = listaElementos[j].Nombre;
                    obj.Ciudad = listaElementos[j].Ciudad;
                    obj.Zona   = listaElementos[j].Zona;
                    obj.CP     = listaElementos[j].CP;
                    obj.Tipo   = listaElementos[j].Tipo;

                    listaPaginacion.Add(obj);
                }

                tbAsentamientos.Columns.Clear();
                tbAsentamientos.Refresh();
                tbAsentamientos.DataSource = listaPaginacion;

                //Total de registros totales en la tabla
                lblTotalRegistros.Text  = listaElementos.Count.ToString();
                lblRegistrosActual.Text = listaPaginacion.Count.ToString();

                //Obtener el total de páginas
                if (totalPaginacion == 0)
                {
                    int aux = 1;
                    lblTotalPaginas.Text = aux.ToString();
                }
                else if (totalPaginacion.ToString().Contains('.'))
                {
                    totalPaginacion = totalPaginacion + 1;
                    String[] auxiliar2 = totalPaginacion.ToString().Split('.');
                    lblTotalPaginas.Text = auxiliar2[0];
                }
                else
                {
                    lblTotalPaginas.Text = totalPaginacion.ToString();
                }

                lblPaginasActual.Text = pagina.ToString();

                lblTotalRegistros.Text = listaElementos.Count.ToString();

                if (listaElementos.Count == 0)
                {
                    lblRegistrosActual.Text = "0";
                    lblTotalRegistros.Text  = "0";
                    lblPaginasActual.Text   = "0";
                    lblTotalPaginas.Text    = "0";
                }
                tbAsentamientos.AutoSizeColumnsMode   = DataGridViewAutoSizeColumnsMode.Fill;
                tbAsentamientos.Columns[0].Visible    = false;
                tbAsentamientos.Columns[6].Visible    = false;
                tbAsentamientos.Columns[4].HeaderText = "Código Postal";
            }
            catch (Exception e)
            {
            }
        }