private void CalcularTiempoInsercion(Pieza p)
        {
            int fila = -1;
            int columna = -1;

            #region Numero de la izquierda (fila)
            if (rbSeparado.Checked)
                fila = 9;
            else
                fila = (chAseguradaInmediato.Checked ? 3 : 0) +
                    (chDestinoNoAlcanzado.Checked ? (rbObstruidoOr.Checked ? 1 : 2): 0);
            #endregion

            #region Numero de la derecha (columna)
            if (rbAgregada.Checked)
            {
                //Sacando numero columna si es de la primera seccion
                if (!chAseguradaInmediato.Checked)
                {
                    columna = (chPresion.Checked ? 6 : 0);
                    columna += (!chDificilAlinear.Checked ? 0 : 2);
                    columna += (chResistencia.Checked ? 1 : 0);
                }
                //Sacando numero de columna en caso de ser la segunda seccion
                else
                {
                    if (chDeformacionPlastica.Checked)
                    {
                        columna = rbRemache.Checked ? 5 : 2;
                        columna += !chDificilAlinear.Checked ? 0 :
                            (chResistencia.Checked ? 2 : 1);
                    }
                    else
                    {
                        columna = chTornillo.Checked ? 8 : 0;
                        columna += !chDificilAlinear.Checked ? 0 : 1;
                    }
                }
            }
            //Caso ultima seccion
            else
            {
                if(rbProcesoSinAmarre.Checked)
                {
                    columna = rbSubEnsamble.Checked ? 8 : 9;
                }
                else if (rbProcesoMecanico.Checked)
                {
                    if (chDeformacionPlastica2.Checked)
                        columna = 3;
                    else
                        columna = panelProceso1.Controls.OfType<RadioButton>().Single(rb => rb.Checked).TabIndex;
                }
                else
                {
                    if(chProcesoMetalurgico.Checked)
                        columna = chMaterialAdicional.Checked ? (rbSoldadura1.Checked ? 5 : 6) : 4;
                    else
                        columna = 7;
                }
            }
            #endregion

            p.InsertionCode = fila.ToString() + columna.ToString();
            p.InsertionTime = TablaPiezaData.InsertionTime(fila, columna);
        }
        private void CalcularTiempoManejo(Pieza p)
        {
            int columna = -1;
            int fila = -1;

            #region Analizando Numero de la izquierda (fila)
            switch(this.tabPage1.Controls.OfType<RadioButton>().Single(rb => rb.Checked).TabIndex)
            {
                case 1:
                    int? theta = p.Alfa + p.Beta;
                    if (theta < 360)
                        fila = 0;
                    else if (theta < 540)
                        fila = 1;
                    else if (theta < 720)
                        fila = 2;
                    else
                        fila = 3;
                    break;
                case 2:
                    if(p.Alfa == 360)
                    {
                        if (p.Beta <= 180)
                            fila = 6;
                        else
                            fila = 7;
                    }
                    else
                    {
                        if (p.Beta <= 180)
                            fila = 4;
                        else
                            fila = 5;
                    }
                    break;
                case 3:
                    fila = 8;
                    break;
                case 4:
                    fila = 9;
                    break;
            }
            #endregion

            #region Analizando Numero de la derecha (Columna)
            switch (this.tabPage1.Controls.OfType<RadioButton>().Single(rb => rb.Checked).TabIndex)
            {
                case 1:
                    if (rbFacil.Checked)
                    {
                        if (p.Ancho > 2)
                        {
                            columna = p.Largo > 15 ? 0 : p.Largo > 6 ? 1 : 2;
                        }
                        else
                        {
                            columna = p.Largo > 6 ? 3 : 4;
                        }
                    }
                    else
                    {
                        if (p.Ancho > 2)
                        {
                            columna = p.Largo > 15 ? 5 : p.Largo > 6 ? 6 : 7;
                        }
                        else
                        {
                            columna = p.Largo > 6 ? 8 : 9;
                        }
                    }
                    break;
                case 2:
                    if (this.panelSeccion2Sub.Enabled)
                    {
                        columna = this.panelSeccion2Sub.Controls.
                            OfType<RadioButton>().Single(rb => rb.Checked).TabIndex;
                        break;
                    }
                    else
                    {
                        if (!checkBox1.Checked)
                        {
                            if (rbFacil.Checked)
                                columna = p.Ancho > 0.25 ? 0 : 1;
                            else
                                columna = p.Ancho > 0.25 ? 2 : 3;
                        }
                        else
                        {
                            if (rbFacil.Checked)
                                columna = p.Ancho > 0.25 ? 4 : 5;
                            else
                                columna = p.Ancho > 0.25 ? 6 : 7;
                        }
                    }
                    break;
                case 3:
                    if(rbFacil.Checked)
                    {
                        if (p.Alfa <= 180)
                        {
                            columna = p.Largo > 15 ? 0 : p.Largo > 6 ? 1 : 2;
                        }
                        else
                        {
                            columna = p.Largo > 6 ? 3 : 4;
                        }
                    }
                    else
                    {
                        if (p.Alfa <= 180)
                        {
                            columna = p.Largo > 15 ? 5 : p.Largo > 6 ?  6: 7;
                        }
                        else
                        {
                            columna = p.Largo > 6 ? 8 : 9;
                        }
                    }
                    break;
                case 4:
                    if (!checkBox3.Checked)
                        columna = 9;
                    else
                    {
                        if (!checkBox4.Checked)
                        {
                            columna = 8;
                            break;
                        }
                        else
                        {
                            if (rbLigero.Checked)
                            {
                                if (rbFacil.Checked)
                                    columna = p.Alfa <= 180 ? 0 : 1;
                                else
                                    columna = p.Alfa <= 180 ? 2 : 3;
                            }
                            else
                            {
                                if (rbFacil.Checked)
                                    columna = p.Alfa <= 180 ? 4 : 5;
                                else
                                    columna = p.Alfa <= 180 ? 6 : 7;
                            }
                        }
                    }
                    break;
            }
            #endregion
            p.HandlingCode = fila.ToString() + columna.ToString();
            p.HandlingTime = TablaPiezaData.HandlingTime(fila, columna);
        }