private void button6_Click(object sender, EventArgs e)
        {
            Hoja nueva = new Hoja(ruta3, listBox5.Items[listBox5.SelectedIndex].ToString());

            archivo3.listaHojas.Add(nueva);
            int cont = 0;

            dataGridView3.Rows.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
            try
            {
                Modelo_canasta gabinete = new Modelo_canasta();
                gabinete.Area = archivo2.listaHojas[listBox2.SelectedIndex].Nombre;
                archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta.Add(gabinete);
                int indiceB = listBox2.SelectedIndex;
                archivo2.listaHojas[indiceB].obtenTabla();
                dataGridView2.DataSource = archivo2.listaHojas[indiceB].modelos;
                foreach (Parte par2 in archivo2.listaHojas[listBox2.SelectedIndex].modelos)
                {
                    if (!archivo3.listaHojas[listBox5.SelectedIndex].obtenRenglon(par2.parte, par2.cantidad, "Cantidad", cont))
                    {
                        listBox4.Items.Add(par2.parte);
                    }
                    else
                    {
                        cont++;
                    }
                }

                Modelo_canasta total = new Modelo_canasta();
                total.EachNet = "Process Level Total";


                archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta.Add(total);
                dataGridView3.DataSource = archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta;
                cambiaCeldas();
            }
            catch (Exception)
            {
                MessageBox.Show("Selecciona un elemento de ambas listas");
            }
        }
        private void button4_Click(object sender, EventArgs e)
        {
            Hoja nueva = new Hoja(ruta3, listBox5.Items[listBox5.SelectedIndex].ToString());

            archivo3.listaHojas.Add(nueva);
            int indiceA;
            int indiceB;

            dataGridView3.Rows.Clear();
            listBox4.Items.Clear();
            listBox3.Items.Clear();
            try
            {
                indiceA = listBox1.SelectedIndex;
                indiceB = listBox2.SelectedIndex;
                archivo1.listaHojas[indiceA].obtenTabla();
                archivo2.listaHojas[indiceB].obtenTabla();
                dataGridView1.DataSource = archivo1.listaHojas[indiceA].modelos;
                dataGridView2.DataSource = archivo2.listaHojas[indiceB].modelos;
                Modelo_canasta gabinete = new Modelo_canasta();

                gabinete.Area = archivo2.listaHojas[listBox2.SelectedIndex].Nombre;
                archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta.Add(gabinete);

                comparaListas();
                Modelo_canasta total = new Modelo_canasta();
                total.EachNet = "Process Level Total";
                archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta.Add(total);
                dataGridView3.DataSource = archivo3.listaHojas[listBox5.SelectedIndex].modelosCanasta;
                cambiaCeldas();
            }
            catch (Exception)
            {
                MessageBox.Show("Selecciona un elemento de ambas listas");
            }
        }
        private void button7_Click(object sender, EventArgs e)
        {
            Hoja nueva = new Hoja(ruta3, listBox5.Items[listBox5.SelectedIndex].ToString());

            nueva.obtenBasketMaestra();

            archivo3.listaHojas.Add(nueva);
            int            ren = 0;
            Modelo_canasta modeloC;

            dataGridView3.Rows.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
            superlista.Clear();
            try
            {
                for (int j = 0; j < archivo2.listaHojas.Count; j++)
                {
                    Modelo_canasta gabinete = new Modelo_canasta();
                    gabinete.Area = archivo2.listaHojas[j].Nombre;
                    superlista.Add(gabinete);
                    ren++;
                    archivo2.listaHojas[j].obtenTabla();
                    foreach (Parte par2 in archivo2.listaHojas[j].modelos)
                    {
                        foreach (Modelo_canasta mod in archivo3.listaHojas[archivo3.listaHojas.Count - 1].basketMaestra)
                        {
                            if (mod.Model.Contains(par2.parte))
                            {
                                modeloC                 = new Modelo_canasta();
                                modeloC.Area            = mod.Area;
                                modeloC.Leavel          = mod.Leavel;
                                modeloC.Item            = mod.Item;
                                modeloC.Qty             = par2.cantidad;
                                modeloC.ReqDate         = mod.ReqDate;
                                modeloC.ProductType     = mod.ProductType;
                                modeloC.Model           = mod.Model;
                                modeloC.AuxSpec1        = mod.AuxSpec1;
                                modeloC.Description     = mod.Description;
                                modeloC.LongDescription = mod.LongDescription;
                                modeloC.EachList        = mod.EachList;
                                modeloC.EachNet         = mod.EachNet;
                                modeloC.TotalList       = mod.EachList;
                                modeloC.Discount        = mod.Discount;
                                modeloC.TotalNet        = mod.TotalNet;
                                modeloC.EachXferList    = mod.EachXferList;
                                modeloC.EachXferNet     = mod.EachXferNet;
                                modeloC.TotXferList     = mod.TotXferList;
                                modeloC.XferDisc        = mod.XferDisc;
                                modeloC.TotXferNet      = mod.TotXferNet;
                                modeloC.EachInitialXfer = mod.EachInitialXfer;
                                modeloC.TotInitialXfer  = mod.TotInitialXfer;
                                modeloC.VendorCode      = mod.VendorCode;
                                modeloC.Weight          = mod.Weight;
                                modeloC.MarketGroup     = mod.MarketGroup;
                                modeloC.setNet          = mod.setNet;
                                modeloC.DiscountA       = mod.DiscountA;
                                modeloC.DiscountB       = mod.DiscountB;
                                modeloC.DiscountC       = mod.DiscountC;
                                modeloC.DiscountD       = mod.DiscountD;
                                modeloC.DiscountE       = mod.DiscountE;
                                modeloC.LeadTime        = mod.LeadTime;
                                modeloC.LifeCycle       = mod.LifeCycle;
                                modeloC.Country         = mod.Country;
                                modeloC.LineItem        = mod.LineItem;
                                modeloC.MfgCurrency     = mod.MfgCurrency;
                                modeloC.TagSet          = mod.TagSet;
                                modeloC.TagQty          = mod.TagQty;
                                modeloC.ModeloJornadas  = mod.ModeloJornadas;
                                modeloC.EEC             = mod.EEC;
                                modeloC.areaP           = mod.areaP;
                                modeloC.Sistema         = mod.Sistema;
                                superlista.Add(modeloC);
                                break;
                            }
                        }
                    }

                    Modelo_canasta total = new Modelo_canasta();
                    total.EachNet = "Process Level Total";


                    superlista.Add(total);
                }
                cambiaLista();
                dataGridView3.DataSource = superlista;
            }
            catch (Exception)
            {
                MessageBox.Show("Selecciona un elemento de ambas listas");
            }
        }
        public bool obtenRenglon(String Nmodelo, String cant, String Operacion, int ren)
        {
            SLDocument sl = new SLDocument(path, Nombre);
            int        r  = 4;

            while (!sl.GetCellValueAsString(r, 7).Equals(Nmodelo) && r < 2355)
            {
                r++;
            }
            if (sl.GetCellValueAsString(r, 7).Equals(Nmodelo))
            {
                Modelo_canasta modeloC = new Modelo_canasta();
                modeloC.Area            = "";
                modeloC.Leavel          = Operacion;
                modeloC.Item            = "=" + sl.GetCellFormula(r, 3);
                modeloC.Qty             = cant;
                modeloC.ReqDate         = sl.GetCellValueAsString(r, 5);
                modeloC.ProductType     = sl.GetCellValueAsString(r, 6);
                modeloC.Model           = sl.GetCellValueAsString(r, 7);
                modeloC.AuxSpec1        = sl.GetCellValueAsString(r, 8);
                modeloC.Description     = sl.GetCellValueAsString(r, 9);
                modeloC.LongDescription = sl.GetCellValueAsString(r, 10);
                modeloC.EachList        = sl.GetCellValueAsString(r, 11);
                modeloC.EachNet         = sl.GetCellValueAsString(r, 12);
                modeloC.TotalList       = "=" + sl.GetCellFormula(r, 13);
                modeloC.Discount        = sl.GetCellValueAsString(r, 14);
                modeloC.TotalNet        = "=" + sl.GetCellFormula(r, 15);
                modeloC.EachXferList    = sl.GetCellValueAsString(r, 16);
                modeloC.EachXferNet     = sl.GetCellValueAsString(r, 17);
                modeloC.TotXferList     = sl.GetCellFormula(r, 18);
                modeloC.XferDisc        = sl.GetCellValueAsString(r, 19);
                modeloC.TotXferNet      = "=" + sl.GetCellFormula(r, 20);
                modeloC.EachInitialXfer = sl.GetCellValueAsString(r, 21);
                modeloC.TotInitialXfer  = "=" + sl.GetCellFormula(r, 22);
                modeloC.VendorCode      = sl.GetCellValueAsString(r, 23);
                modeloC.Weight          = sl.GetCellValueAsString(r, 24);
                modeloC.MarketGroup     = sl.GetCellValueAsString(r, 25);
                modeloC.setNet          = sl.GetCellValueAsString(r, 26);
                modeloC.DiscountA       = sl.GetCellValueAsString(r, 27);
                modeloC.DiscountB       = sl.GetCellValueAsString(r, 28);
                modeloC.DiscountC       = sl.GetCellValueAsString(r, 28);
                modeloC.DiscountD       = sl.GetCellValueAsString(r, 30);
                modeloC.DiscountE       = sl.GetCellValueAsString(r, 31);
                modeloC.LeadTime        = sl.GetCellValueAsString(r, 32);
                modeloC.LifeCycle       = sl.GetCellValueAsString(r, 33);
                modeloC.Country         = sl.GetCellValueAsString(r, 34);
                modeloC.LineItem        = sl.GetCellValueAsString(r, 35);
                modeloC.MfgCurrency     = sl.GetCellValueAsString(r, 36);
                modeloC.TagSet          = sl.GetCellValueAsString(r, 37);
                modeloC.TagQty          = sl.GetCellValueAsString(r, 38);
                modeloC.ModeloJornadas  = sl.GetCellValueAsString(r, 39);
                modeloC.EEC             = sl.GetCellValueAsString(r, 40);
                modeloC.Sistema         = sl.GetCellValueAsString(r, 41);
                modeloC.areaP           = sl.GetCellValueAsString(r, 42);
                modelosCanasta.Add(modeloC);
                sl.CloseWithoutSaving();
                return(true);
            }
            else
            {
                sl.CloseWithoutSaving();
                return(false);
            }
        }
        public void obtenBasketMaestra()
        {
            Modelo_canasta modeloC;
            SLDocument     sl = new SLDocument(path, Nombre);

            for (int r = 4; r < 2420; r++)
            {
                if (!string.IsNullOrEmpty(sl.GetCellValueAsString(r, 7)))
                {
                    while (!string.IsNullOrEmpty(sl.GetCellValueAsString(r, 7)))
                    {
                        modeloC                 = new Modelo_canasta();
                        modeloC.Area            = "";
                        modeloC.Leavel          = sl.GetCellValueAsString(r, 2);
                        modeloC.Item            = "=" + sl.GetCellFormula(r, 3);
                        modeloC.Qty             = sl.GetCellValueAsString(r, 4);
                        modeloC.ReqDate         = sl.GetCellValueAsString(r, 5);
                        modeloC.ProductType     = sl.GetCellValueAsString(r, 6);
                        modeloC.Model           = sl.GetCellValueAsString(r, 7);
                        modeloC.AuxSpec1        = sl.GetCellValueAsString(r, 8);
                        modeloC.Description     = sl.GetCellValueAsString(r, 9);
                        modeloC.LongDescription = sl.GetCellValueAsString(r, 10);
                        modeloC.EachList        = sl.GetCellValueAsString(r, 11);
                        modeloC.EachNet         = sl.GetCellValueAsString(r, 12);
                        modeloC.TotalList       = "=" + sl.GetCellFormula(r, 13);
                        modeloC.Discount        = sl.GetCellValueAsString(r, 14);
                        modeloC.TotalNet        = "=" + sl.GetCellFormula(r, 15);
                        modeloC.EachXferList    = sl.GetCellValueAsString(r, 16);
                        modeloC.EachXferNet     = sl.GetCellValueAsString(r, 17);
                        modeloC.TotXferList     = sl.GetCellFormula(r, 18);
                        modeloC.XferDisc        = sl.GetCellValueAsString(r, 19);
                        modeloC.TotXferNet      = "=" + sl.GetCellFormula(r, 20);
                        modeloC.EachInitialXfer = sl.GetCellValueAsString(r, 21);
                        modeloC.TotInitialXfer  = "=" + sl.GetCellFormula(r, 22);
                        modeloC.VendorCode      = sl.GetCellValueAsString(r, 23);
                        modeloC.Weight          = sl.GetCellValueAsString(r, 24);
                        modeloC.MarketGroup     = sl.GetCellValueAsString(r, 25);
                        modeloC.setNet          = sl.GetCellValueAsString(r, 26);
                        modeloC.DiscountA       = sl.GetCellValueAsString(r, 27);
                        modeloC.DiscountB       = sl.GetCellValueAsString(r, 28);
                        modeloC.DiscountC       = sl.GetCellValueAsString(r, 28);
                        modeloC.DiscountD       = sl.GetCellValueAsString(r, 30);
                        modeloC.DiscountE       = sl.GetCellValueAsString(r, 31);
                        modeloC.LeadTime        = sl.GetCellValueAsString(r, 32);
                        modeloC.LifeCycle       = sl.GetCellValueAsString(r, 33);
                        modeloC.Country         = sl.GetCellValueAsString(r, 34);
                        modeloC.LineItem        = sl.GetCellValueAsString(r, 35);
                        modeloC.MfgCurrency     = sl.GetCellValueAsString(r, 36);
                        modeloC.TagSet          = sl.GetCellValueAsString(r, 37);
                        modeloC.TagQty          = sl.GetCellValueAsString(r, 38);
                        modeloC.ModeloJornadas  = sl.GetCellValueAsString(r, 39);
                        modeloC.EEC             = sl.GetCellValueAsString(r, 40);
                        modeloC.Sistema         = sl.GetCellValueAsString(r, 41);
                        modeloC.areaP           = sl.GetCellValueAsString(r, 42);
                        basketMaestra.Add(modeloC);

                        r++;
                    }
                }
            }

            sl.CloseWithoutSaving();
        }