private void cmdAceptar_Click(object sender, EventArgs e)
        {
            var bloquesNombre = new string[] {"Bloque1","Bloque2","Bloque3","Bloque4","Bloque5",
                "Bloque6","Bloque7","Bloque8","Bloque9"};

            var bloquesValor = new object[]
            {
                cb1.SelectedValue, cb2.SelectedValue, cb3.SelectedValue, cb4.SelectedValue, cb5.SelectedValue,
                cb6.SelectedValue, cb7.SelectedValue, cb8.SelectedValue, cb9.SelectedValue
            };

            var catalogo =
            service.PedidoDao.CatTipoprocedimientoByBloques(bloquesNombre, bloquesValor);

            string fraccion = null, numero = null, num_licitacion=null;

            bool error = false;

            if ((catalogo.Id >= 1 && catalogo.Id <= 6) || (catalogo.Id >= 11 && catalogo.Id <= 13))
            {
                string pattern = "\\d{3}-\\d{4}";
                if (!Regex.IsMatch(txt1.Text, pattern))
                    error = true;

                num_licitacion = txt1.Text;
            }

            switch (catalogo.Id)
            {
                case 2:
                case 4:
                    if (txt4.Text.Length == 0 || txt5.Text.Length == 0)
                        error = true;
                    fraccion = txt4.Text;
                    numero = txt5.Text;
                    break;
                case 5:
                case 6:
                    if (txt3.Text.Length == 0)
                        error = true;
                    numero = txt3.Text;
                    break;
                case 7:
                case 14:

                    if (txt2.Text.Length == 0 || txt4.Text.Length == 0)
                        error = true;

                    fraccion = txt2.Text;
                    numero = txt4.Text;
                    break;
            }

            if (!error)
            {
                var tipoProcedimiento = new TipoProcedimiento()
                {
                    Catalogo = catalogo,
                    Fraccion = fraccion,
                    NumLicitacion = num_licitacion,
                    NumOrdinal = numero
                };

                _tipoProcedimiento = tipoProcedimiento;
                this.Visible = false;
            }
            else
            {
                _tipoProcedimiento = new TipoProcedimiento();
                XtraMessageBox.Show(@"Faltan completar campos",
                @"Adquisiciones", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void CargarSeleccion(TipoProcedimiento tipoProcedimiento)
        {
            if (tipoProcedimiento == null || tipoProcedimiento.Catalogo == null)
                return;

            var catalogo = tipoProcedimiento.Catalogo;

            try
            {
                service.CatalogoTipoProcedimiento(cb1, "Bloque1", TipoPedido);
                service.CatalogoTipoProcedimiento(cb2, "Bloque2", TipoPedido, condicionColumn: "Bloque1", condicionValor: catalogo.Bloque1);
                service.CatalogoTipoProcedimiento(cb3, "Bloque3", TipoPedido, condicionColumn: "Bloque2", condicionValor: catalogo.Bloque2);
                service.CatalogoTipoProcedimiento(cb4, "Bloque4", TipoPedido, condicionColumn: "Bloque3", condicionValor: catalogo.Bloque3);
                service.CatalogoTipoProcedimiento(cb5, "Bloque5", TipoPedido, condicionColumn: "Bloque4", condicionValor: catalogo.Bloque4);
                service.CatalogoTipoProcedimiento(cb6, "Bloque6", TipoPedido, condicionColumn: "Bloque5", condicionValor: catalogo.Bloque5);
                service.CatalogoTipoProcedimiento(cb7, "Bloque7", TipoPedido, condicionColumn: "Bloque6", condicionValor: catalogo.Bloque6);
                service.CatalogoTipoProcedimiento(cb8, "Bloque8", TipoPedido, condicionColumn: "Bloque7", condicionValor: catalogo.Bloque7);
                service.CatalogoTipoProcedimiento(cb9, "Bloque9", TipoPedido, condicionColumn: "Bloque8", condicionValor: catalogo.Bloque8);

                cb1.SelectedIndex = cb1.FindStringExact(catalogo.Bloque1);
                cb2.SelectedIndex = cb2.FindStringExact(catalogo.Bloque2);
                cb3.SelectedIndex = cb3.FindStringExact(catalogo.Bloque3);
                cb4.SelectedIndex = cb4.FindStringExact(catalogo.Bloque4);
                cb5.SelectedIndex = cb5.FindStringExact(catalogo.Bloque5);
                cb6.SelectedIndex = cb6.FindStringExact(catalogo.Bloque6);
                cb7.SelectedIndex = cb7.FindStringExact(catalogo.Bloque7);
                cb8.SelectedIndex = cb8.FindStringExact(catalogo.Bloque8);
                cb9.SelectedIndex = cb9.FindStringExact(catalogo.Bloque9);
            }
            catch(Exception e){}

            txt1.Text = tipoProcedimiento.NumLicitacion;

            switch (catalogo.Id)
            {
                case 2:
                case 4:
                    txt4.Text = tipoProcedimiento.Fraccion;
                    txt5.Text = tipoProcedimiento.NumOrdinal;
                    txt4.Visible = true;
                    txt5.Visible = true;
                    break;
                case 5:
                case 6:
                    txt3.Text = tipoProcedimiento.NumOrdinal;
                    txt3.Visible = true;
                    break;
                case 7: case 14:
                    txt2.Text = tipoProcedimiento.Fraccion;
                    txt4.Text = tipoProcedimiento.NumOrdinal;
                    txt4.Visible = true;
                    txt2.Visible = true;
                    break;
            }
        }