Ejemplo n.º 1
0
        private void txtCodigoPostal_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                //Validamos que sea un numero lo que se ingresó en el textbox
                bool isNumeric = int.TryParse(this.txtCodigoPostal.Text.Trim(), out int codigoPostal);

                if (isNumeric == false)
                {
                    this.txtCodigoPostal.SelectAll();
                    this.label2.Visible          = false;
                    this.lblMejorOpcion.Visible  = false;
                    this.btnUtilizarGuia.Visible = false;
                    this.lblEstado.Visible       = false;
                    this.lblMunicipio.Visible    = false;
                    this.lblNoEncontrado.Visible = false;
                    Mensajes.NoExito("Inserte un código postal válido");
                    return;
                }

                //Hacemos una consulta a la DB para traer la mejor opción de paquetería dependiendo de su nivel de prioridad
                string sql = string.Format("SELECT TOP 1 Paqueterias.NombrePaqueteria FROM Paqueterias_codigos INNER JOIN Paqueterias ON Paqueterias_codigos.Paqueteria=Paqueterias.NombrePaqueteria WHERE Paqueterias_codigos.CodigoPostal={0} ORDER BY Paqueterias.Prioridad ASC;", this.txtCodigoPostal.Text.Trim());
                ds  = Conexion.Ejecutar(sql);//Ejecutamos la consulta
                sql = string.Format("SELECT Estado, Municipio FROM Codigos_postales WHERE CodigoPostal={0}", this.txtCodigoPostal.Text.Trim());
                DataSet ds2 = Conexion.Ejecutar(sql);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    this.label2.Visible          = true;
                    this.lblMejorOpcion.Visible  = true;
                    this.btnUtilizarGuia.Visible = true;
                    this.lblMejorOpcion.Text     = ds.Tables[0].Rows[0]["NombrePaqueteria"].ToString();
                    this.lblEstado.Text          = "Estado: " + ds2.Tables[0].Rows[0]["Estado"].ToString();
                    this.lblMunicipio.Text       = "Municipio: " + ds2.Tables[0].Rows[0]["Municipio"].ToString();
                    this.lblMejorOpcion.Left     = (int)((this.Size.Width / 2) - (this.lblMejorOpcion.Size.Width / 2));
                    this.lblEstado.Left          = (int)((this.Size.Width / 2) - (this.lblEstado.Size.Width / 2));
                    this.lblMunicipio.Left       = (int)((this.Size.Width / 2) - (this.lblMunicipio.Size.Width / 2));
                    this.lblNoEncontrado.Visible = false;
                    this.lblEstado.Visible       = true;
                    this.lblMunicipio.Visible    = true;
                    this.btnUtilizarGuia.Focus();
                }
                else
                {
                    this.label2.Visible          = false;
                    this.lblMejorOpcion.Visible  = false;
                    this.lblNoEncontrado.Visible = true;
                    this.btnUtilizarGuia.Visible = false;
                    this.lblEstado.Visible       = false;
                    this.lblMunicipio.Visible    = false;
                }
                ds.Clear();
            }
        }
Ejemplo n.º 2
0
        private void btnUtilizarGuias_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.cbTipoGuias.Text))
            {
                Mensajes.NoExito("Selecciona un tipo de guía a utilizar.");
                return;
            }

            if (this.numCantGuias.Value != 0)
            {
                int cantGuias = Funciones.TraerCantidadGuias(wPrincipal.lblMejorOpcion.Text, this.cbTipoGuias.Text);
                cantGuias -= (int)this.numCantGuias.Value;
                sql        = string.Format("UPDATE Inv_guias SET CantGuias={0} WHERE Paqueteria='{1}' AND TipoGuia='{2}';", cantGuias, wPrincipal.lblMejorOpcion.Text, this.cbTipoGuias.Text);
                ds         = Conexion.Ejecutar(sql);
                this.Close();
                Mensajes.Exito("Se han descontado las guías del inventario");
            }
        }
Ejemplo n.º 3
0
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            string paqueteria = this.cbPaqueteria.Text;
            string tipoGuia   = this.cbTipoGuia.Text;

            if (string.IsNullOrEmpty(paqueteria) || string.IsNullOrEmpty(tipoGuia))
            {
                Mensajes.NoExito("Selecciona una paquetería y el tipo de guía para añadir al inventario.");
                return;
            }
            int cantidad = Funciones.TraerCantidadGuias(paqueteria, tipoGuia);

            cantidad += (int)nCantidad.Value;
            string sql = string.Format("UPDATE Inv_guias SET CantGuias={0} WHERE Paqueteria='{1}' AND TipoGuia='{2}';", cantidad, paqueteria, tipoGuia);

            ds = Conexion.Ejecutar(sql);
            ds.Clear();
            this.lblCantidad.Text = Funciones.TraerCantidadGuias(paqueteria, tipoGuia).ToString();
        }
Ejemplo n.º 4
0
        private void txtCodigoPostal_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                string sql;

                //Limpiamos los datos
                this.LimpiarFormulario();

                bool isNumeric = int.TryParse(this.txtCodigoPostal.Text.Trim(), out int codigoPostal);
                if (isNumeric == false)
                {
                    Mensajes.NoExito("Inserte un código postal válido");
                    return;
                }

                this.cbMunicipio.Enabled = true;
                sql = string.Format("SELECT Estado, Municipio FROM Codigos_postales WHERE CodigoPostal={0}", codigoPostal);
                ds  = Conexion.Ejecutar(sql);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    ds.Clear();
                    Mensajes.NoExito("No existe el código postal");
                    return;
                }

                this.cbMunicipio.Text = ds.Tables[0].Rows[0]["Municipio"].ToString();
                this.cbEstado.Text    = ds.Tables[0].Rows[0]["Estado"].ToString();
                ds.Clear();

                sql = string.Format("SELECT Paqueteria, Ocurre FROM Paqueterias_codigos WHERE CodigoPostal={0}", codigoPostal);
                ds  = Conexion.Ejecutar(sql);
                foreach (DataRow paqueteria in ds.Tables[0].Rows)
                {
                    int             nuevaFila = dgvPaqueterias.Rows.Add();
                    DataGridViewRow fila      = dgvPaqueterias.Rows[nuevaFila];
                    fila.Cells["Paqueteria"].Value = paqueteria["Paqueteria"].ToString();
                    fila.Cells["Ocurre"].Value     = paqueteria["Ocurre"].ToString();
                }
                ds.Clear();
            }
        }
Ejemplo n.º 5
0
        private void btnGuardarCodigo_Click(object sender, EventArgs e)
        {
            string sql;
            //Validamos que el código postal sea válido
            bool isNumeric = int.TryParse(this.txtCodigoPostal.Text.Trim(), out int codigoPostal);

            if (isNumeric == false)
            {
                Mensajes.NoExito("Inserte un código postal válido");
                return;
            }
            //Validamos que haya seleccionado un estado
            if (string.IsNullOrEmpty(this.cbEstado.Text))
            {
                Mensajes.NoExito("Seleccione un estado");
                return;
            }
            //Validamos que haya seleccionado o escrito una ciudad
            if (string.IsNullOrWhiteSpace(this.cbMunicipio.Text))
            {
                Mensajes.NoExito("Seleccione o escriba una ciudad");
                return;
            }


            //Validamos que tenga al menos 1 paquetería
            if (dgvPaqueterias.Rows.Count == 0)
            {
                Mensajes.NoExito("El código postal al menos debe de tener una paquetería");
                return;
            }

            //Recorremos el datagridview para validar que no haya datos vacíos
            foreach (DataGridViewRow fila in dgvPaqueterias.Rows)
            {
                if (fila.Cells["Paqueteria"].Value == null)
                {
                    Mensajes.NoExito("No puede haber datos vacíos");
                    return;
                }
                if (fila.Cells["Ocurre"].Value == null)
                {
                    fila.Cells["Ocurre"].Value = false;
                }
            }

            string estado    = this.cbEstado.Text;
            string municipio = this.cbMunicipio.Text.Trim().ToUpper();


            DialogResult respuesta = DialogResult.None;

            //Validamos que no haya sido registrado ya el código postal
            sql = string.Format("SELECT Id FROM Codigos_postales WHERE CodigoPostal={0};", codigoPostal);
            ds  = Conexion.Ejecutar(sql);
            if (ds.Tables[0].Rows.Count > 0)
            {
                ds.Clear();
                respuesta = Mensajes.Confirmar("¿Deseas actualizar los datos?");
                if (respuesta == DialogResult.No)
                {
                    return;
                }
            }

            sql = string.Format("SELECT Id FROM Ciudades WHERE Ciudad='{0}'", municipio);
            ds  = Conexion.Ejecutar(sql);
            if (ds.Tables[0].Rows.Count == 0)
            {
                ds.Clear();
                sql = string.Format("INSERT INTO Ciudades (Estado, Ciudad) VALUES('{0}', '{1}')", estado, municipio);
                ds  = Conexion.Ejecutar(sql);
            }
            ds.Clear();

            if (respuesta == DialogResult.Yes)
            {
                //Actualizamos el estado y municipio
                sql = string.Format("UPDATE Codigos_postales SET Estado='{0}', Municipio='{1}' WHERE CodigoPostal={2};", estado, municipio, codigoPostal);
                ds  = Conexion.Ejecutar(sql);
                ds.Clear();

                //Borramos la información primero
                sql = string.Format("DELETE FROM Paqueterias_codigos WHERE CodigoPostal={0}", codigoPostal);
                ds  = Conexion.Ejecutar(sql);
                ds.Clear();

                //Recorremos el datagridview para actualizar los datos de los métodos de envío
                foreach (DataGridViewRow fila in dgvPaqueterias.Rows)
                {
                    string paqueteria = fila.Cells["Paqueteria"].Value.ToString();
                    bool   ocurre     = bool.Parse(fila.Cells["Ocurre"].Value.ToString());

                    //Insertamos las paqueterias que tiene ese codigo postal
                    sql = string.Format("INSERT INTO Paqueterias_codigos (CodigoPostal, Paqueteria, Ocurre) VALUES ({0}, '{1}', {2});", codigoPostal, paqueteria, ocurre);
                    ds  = Conexion.Ejecutar(sql);
                    ds.Clear();
                }

                Mensajes.Exito("El código postal se ha actualizado correctamente");
                this.txtCodigoPostal.Clear();
                this.LimpiarFormulario();

                return; //Salimos del proceso
            }

            //Insertamos los datos del codigo postal
            sql = string.Format("INSERT INTO Codigos_postales (CodigoPostal, Estado, Municipio) VALUES({0}, '{1}', '{2}')", codigoPostal, estado, municipio);
            ds  = Conexion.Ejecutar(sql);
            ds.Clear();

            //Recorremos el datagridview para insertar la información en la DB
            foreach (DataGridViewRow fila in dgvPaqueterias.Rows)
            {
                string paqueteria = fila.Cells["Paqueteria"].Value.ToString();
                bool   ocurre     = bool.Parse(fila.Cells["Ocurre"].Value.ToString());

                //Insertamos las paqueterias que tiene ese codigo postal
                sql = string.Format("INSERT INTO Paqueterias_codigos (CodigoPostal, Paqueteria, Ocurre) VALUES ({0}, '{1}', {2});", codigoPostal, paqueteria, ocurre);
                ds  = Conexion.Ejecutar(sql);
                ds.Clear();
            }
            Mensajes.Exito("El código postal se ha registrado correctamente");
            this.txtCodigoPostal.Clear();
            this.LimpiarFormulario();
        }