private void CargarComboPuertoDestino()
        {
            SqlDataReader reader = PuertoFunc.ObtenerPuerto();

            DataGridViewComboBoxColumn comboTipo = (DataGridViewComboBoxColumn)dgv_tramos.Columns["colPuertoDestino"];

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Puerto puerto = new Puerto();
                    puerto.id     = Convert.ToInt32(reader.GetDecimal(0));
                    puerto.nombre = reader.GetString(1);
                    //puerto.estado = reader.GetBoolean(2);
                    ComboboxItem item = new ComboboxItem();
                    item.Text  = puerto.nombre;
                    item.Value = puerto;
                    comboTipo.Items.Add(puerto.nombre);
                }
                int currentRow = dgv_tramos.Rows.Count - 1;
                DataGridViewComboBoxCell celltipo = (DataGridViewComboBoxCell)(dgv_tramos.Rows[currentRow].Cells[1]);
                celltipo.Value = comboTipo.Items[0];
            }
            reader.Close();
        }
        private Tramo obtenerTramo(int row)
        {
            Tramo tramo = new Tramo();

            tramo.id        = Convert.ToInt32(dgv_tramos.Rows[row].Cells["colId"].Value);
            tramo.salida    = Convert.ToString((dgv_tramos.Rows[row].Cells["colPuertoSalida"].Value));
            tramo.salida_id = Convert.ToInt32(PuertoFunc.ObtenerPuerto(tramo.salida).Rows[0]["pue_id"]);
            //MessageBox.Show(String.Format("salida {0}, salida_id {1}", tramo.salida, tramo.salida_id.ToString()));
            tramo.destino    = Convert.ToString((dgv_tramos.Rows[row].Cells["colPuertoDestino"].Value));
            tramo.destino_id = Convert.ToInt32(PuertoFunc.ObtenerPuerto(tramo.destino).Rows[0]["pue_id"]);
            //MessageBox.Show(String.Format("destino {0}, destino_id {1}", tramo.destino, tramo.destino_id.ToString()));

            tramo.precio = Math.Round(Convert.ToDecimal(dgv_tramos.Rows[row].Cells["colPrecioBase"].Value), 2);
            return(tramo);
        }
Exemple #3
0
        private void CargarComboPuertoDestino()
        {
            SqlDataReader reader = PuertoFunc.ObtenerPuerto();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Puerto puerto = new Puerto();
                    puerto.id     = Convert.ToInt32(reader.GetDecimal(0));
                    puerto.nombre = reader.GetString(1);
                    ComboboxItem item = new ComboboxItem();
                    item.Text  = puerto.nombre;
                    item.Value = puerto;
                    cmb_puertoDestino.Items.Add(item);
                }
                reader.Close();
            }
        }
        public FormAmRecorrido(String IDRecorrido, FormRecorrido fr)
        {
            InitializeComponent();
            this.IDRecorrido = IDRecorrido;
            dgv_tramos.EditingControlShowing += dgv_tramos_EditingControlShowing;
            dgv_tramos.CellValidating        += dgv_tramos_CellValidating;
            dgv_tramos.CellEndEdit           += dgv_tramos_CellEndEdit;
            dgv_tramos.AllowUserToAddRows     = false;

            txt_id.ReadOnly = true;
            dgv_tramos.Columns["colId"].Visible = false;

            if (!String.IsNullOrEmpty(IDRecorrido))
            {
                this.esModificar = true;
                //Modificar
                Recorrido recorrido = new Recorrido();

                //Obtener recorrido
                SqlDataReader reader = RecorridoFunc.ObtenerRecorrido(IDRecorrido);

                recorrido = RecorridoFunc.ObtenerRecorridoDesdeUnReader(reader);

                //Llenar textos
                txt_id.Text = recorrido.rec_id.ToString();
                //cmb_puertoDestino.SelectedIndex = cmb_puertoDestino.SelectedIndex.Equals(recorrido.rec_pue_desde);
                //cmb_puertoSalida.SelectedIndex = PuertoFunc.ObtenerNombre(recorrido.rec_pue_hasta);


                DataTable tramo = TramoFunc.ObtenerTramos(this.IDRecorrido);

                //Se carga combo Tipo Cabina de la fila
                dgv_tramos.Rows.Add();
                CargarComboPuertoSalida();
                CargarComboPuertoDestino();

                this.cantTramos = tramo.Rows.Count;
                //Se agragan las filas necesarias
                for (Int32 j = 0; j < this.cantTramos; j++)
                {
                    DataGridViewRow rowTram = (DataGridViewRow)dgv_tramos.Rows[0].Clone();
                    dgv_tramos.Rows.Add(rowTram);
                }

                Queue <Tramo> tramosList = new Queue <Tramo>();
                //Se agregan los datos en las filas
                Tramo tramo_inicial = new Tramo();
                int   cont;
                for (cont = 0; true; cont++)
                {
                    tramo_inicial.salida    = tramo.Rows[cont]["tra_desde"].ToString().Trim();
                    tramo_inicial.salida_id = Convert.ToInt32(PuertoFunc.ObtenerPuerto(tramo_inicial.salida).Rows[0]["pue_id"]);
                    if (tramo_inicial.salida_id == recorrido.rec_pue_id_desde)
                    {
                        tramo_inicial.id      = Convert.ToInt32(tramo.Rows[cont]["tra_id"]);
                        tramo_inicial.destino = tramo.Rows[cont]["tra_hasta"].ToString().Trim();
                        tramo_inicial.precio  = Convert.ToDecimal(tramo.Rows[cont]["tra_precio_base"]);
                        tramosList.Enqueue(tramo_inicial);
                        break;
                    }
                }

                for (int i = 0; i < this.cantTramos; i++)
                {
                    if (i == cont)
                    {
                        continue;
                    }

                    Tramo nuevo_tram = new Tramo();
                    //dgv_tramos.Rows[i].Cells[0].Text =  i.ToString();
                    nuevo_tram.id      = Convert.ToInt32(tramo.Rows[i]["tra_id"]);
                    nuevo_tram.salida  = tramo.Rows[i]["tra_desde"].ToString().Trim();
                    nuevo_tram.destino = tramo.Rows[i]["tra_hasta"].ToString().Trim();
                    nuevo_tram.precio  = Convert.ToDecimal(tramo.Rows[i]["tra_precio_base"]);
                    tramosList.Enqueue(nuevo_tram);
                }

                //this.recorridoTramos = tramosList;

                Tramo primer_tramo = tramosList.Dequeue();
                dgv_tramos.Rows[0].Cells["colId"].Value = primer_tramo.id.ToString();
                dgv_tramos.Rows[0].Cells[0].Value       = primer_tramo.salida.ToString().Trim();
                dgv_tramos.Rows[0].Cells[1].Value       = primer_tramo.destino.ToString().Trim();
                dgv_tramos.Rows[0].Cells[2].Value       = primer_tramo.precio.ToString();

                for (int j = 1; j < this.cantTramos;)
                {
                    Tramo nue_tramo = tramosList.Dequeue();
                    if (String.Equals(Convert.ToString(dgv_tramos.Rows[j - 1].Cells[1].Value), nue_tramo.salida))
                    {
                        dgv_tramos.Rows[j].Cells["colId"].Value = nue_tramo.id.ToString();
                        dgv_tramos.Rows[j].Cells[0].Value       = nue_tramo.salida.ToString().Trim();
                        dgv_tramos.Rows[j].Cells[1].Value       = nue_tramo.destino.ToString().Trim();
                        dgv_tramos.Rows[j].Cells[2].Value       = nue_tramo.precio.ToString();
                        j++;
                    }
                    else
                    {
                        tramosList.Enqueue(nue_tramo);
                    }
                }

                for (int j = 0; j < this.cantTramos; j++)
                {
                    Tramo nue_tramo = new Tramo();
                    nue_tramo.id = Convert.ToInt32(dgv_tramos.Rows[j].Cells["colId"].Value);
                    this.recorridoTramos.Enqueue(nue_tramo);
                }

                this.recorridoModificado.rec_id           = recorrido.rec_id;
                this.recorridoModificado.rec_pue_id_desde = recorrido.rec_pue_id_desde;
                this.recorridoModificado.rec_pue_id_hasta = recorrido.rec_pue_id_hasta;
                this.recorridoModificado.rec_estado       = recorrido.rec_estado;

                //MessageBox.Show(String.Format("Cantidad de tramos {0}", recorridoTramos.Count.ToString()));

                //Dejar identificación como grisado
                DataTable pue_desde, pue_hasta;
                pue_desde = PuertoFunc.ObtenerPuerto((int)recorrido.rec_pue_id_desde);
                pue_hasta = PuertoFunc.ObtenerPuerto((int)recorrido.rec_pue_id_hasta);

                dgv_tramos.Rows.RemoveAt(this.cantTramos);

                numericTextBox1.Text     = pue_desde.Rows[0]["pue_nombre"].ToString();
                numericTextBox1.ReadOnly = true;
                numericTextBox2.Text     = pue_hasta.Rows[0]["pue_nombre"].ToString();
                numericTextBox2.ReadOnly = true;
                txt_id.ReadOnly          = true;
            }
            else
            {
                this.esModificar         = false;
                txt_id.Text              = "";
                txt_id.ReadOnly          = false;
                numericTextBox1.ReadOnly = true;
                numericTextBox2.ReadOnly = true;
                dgv_tramos.Rows.Add();
                //Cargar Puerto Desde
                CargarComboPuertoSalida();
                //Cargar Puerto Hasta
                CargarComboPuertoDestino();
            }
        }