protected void lbImprimir_Click(object sender, EventArgs e)
        {
            ProgramaProduccion_Controller sc = new ProgramaProduccion_Controller();
            string Maquinas = ""; int count = 0;

            foreach (ListItem item in lstFruits.Items)
            {
                if (item.Selected)
                {
                    Maquinas += item.Value + ",";
                    count++;
                }
            }
            if (count > 0)
            {
                Maquinas = Maquinas.Substring(0, Maquinas.Length - 1);
                int      Mes = DateTime.Now.Month; int MesRecorrido = DateTime.Now.Month;
                int      Año = DateTime.Now.Year; int AñoRecorrido = DateTime.Now.Year;
                int      MesesBusqueda = Convert.ToInt32(ddlMeses.SelectedValue.ToString());
                DateTime FechaInicio; int ddm; DateTime FechaTermino;
                List <ProgramaProduccion_Extendido> lista = new List <ProgramaProduccion_Extendido>();
                if (Mes + MesesBusqueda > 12)
                {
                    FechaInicio  = new DateTime(Año, Mes, 1);
                    ddm          = DateTime.DaysInMonth(Año, FechaInicio.AddMonths(MesesBusqueda).Month);
                    FechaTermino = new DateTime((Año + 1), FechaInicio.AddMonths(MesesBusqueda).Month, ddm);
                }
                else
                {
                    FechaInicio  = new DateTime(Año, Mes, 1);
                    ddm          = DateTime.DaysInMonth(Año, FechaInicio.AddMonths(MesesBusqueda).Month);
                    FechaTermino = new DateTime(Año, FechaInicio.AddMonths(MesesBusqueda).Month, ddm);
                }


                ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open('_ProgramaProduccion_Ext.aspx?fi=" + FechaInicio.ToString() + "&ft=" + FechaTermino.ToString() + "&maq=" + Maquinas + "&meses=" + ddlMeses.SelectedValue.ToString() + "');", true);
            }
        }
        protected void btnFiltro_Click(object sender, EventArgs e)
        {
            ProgramaProduccion_Controller sc = new ProgramaProduccion_Controller();
            string Maquinas = ""; int count = 0;

            foreach (ListItem item in lstFruits.Items)
            {
                if (item.Selected)
                {
                    Maquinas += item.Value + ",";
                    count++;
                }
            }
            if (count > 0)
            {
                Maquinas = Maquinas.Substring(0, Maquinas.Length - 1);
                string EncDias = "<tr><td style = 'width:15%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Lunes </b></td>" +
                                 "<td style = 'width:14%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Martes </b></td>" +
                                 "<td style = 'width:14%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Miércoles </b></td>" +
                                 "<td style = 'width:14%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Jueves </b></td>" +
                                 "<td style = 'width:14%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Viernes </b></td>" +
                                 "<td style = 'width:14%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Sábado </b></td>" +
                                 "<td style = 'width:15%;height:19px;font-size: 12px;border: 1px solid black;' align = 'center' ><b> Domingo </b></td>" +
                                 "</tr>";
                int Mes = DateTime.Now.Month; int MesRecorrido = DateTime.Now.Month;
                int Año = DateTime.Now.Year; int AñoRecorrido = DateTime.Now.Year;
                int MesesBusqueda = Convert.ToInt32(ddlMeses.SelectedValue.ToString());

                List <ProgramaProduccion_Extendido> lista = new List <ProgramaProduccion_Extendido>();
                if (Mes + MesesBusqueda > 12)
                {
                    DateTime FechaInicio  = new DateTime(Año, Mes, 1);
                    int      ddm          = DateTime.DaysInMonth(Año, FechaInicio.AddMonths(MesesBusqueda).Month);
                    DateTime FechaTermino = new DateTime((Año + 1), FechaInicio.AddMonths(MesesBusqueda).Month, ddm);
                    lista = sc.Programa_Extendido(FechaInicio, FechaTermino, Maquinas);
                }
                else
                {
                    DateTime FechaInicio  = new DateTime(Año, Mes, 1);
                    int      ddm          = DateTime.DaysInMonth(Año, FechaInicio.AddMonths(MesesBusqueda).Month);
                    DateTime FechaTermino = new DateTime(Año, FechaInicio.AddMonths(MesesBusqueda).Month, ddm);
                    lista = sc.Programa_Extendido(FechaInicio, FechaTermino, Maquinas);
                }



                string Semanas = ""; string diavacio = "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> - </b></td>";
                string diasvacios = "<td style='width:14%;overflow: hidden;max-height: 175px;vertical-align:top;border: 1px solid black;'><div style='font-size: 8px;'></div></td>"; string Dias = "";
                string tabla = "<table style='width:100%;height 665px;border-collapse: collapse;'><tbody>" + EncDias;
                string contenido = ""; string tablacompleta = ""; string detalleDia = "";
                //Recorrer segun maquina
                foreach (string MaquinaFor in lista.Select(o => o.Maquina).Distinct())
                {
                    //Recorrer Meses de la maquina
                    for (int m = MesesBusqueda; m >= 0; m--)
                    {
                        // TimeSpan tspan2 = (new DateTime(AñoRecorrido, MesRecorrido, 1)) - (new DateTime(AñoRecorrido, (MesRecorrido + 1), 1).AddDays(-1));
                        int diasdelmes = DateTime.DaysInMonth(AñoRecorrido, MesRecorrido);
                        for (int i = 1; i <= diasdelmes; i++)
                        {
                            if (i == 4)
                            {
                            }
                            //recorrer registros por dia
                            detalleDia = "";
                            foreach (ProgramaProduccion_Extendido info in lista.Where(o => o.Año == AñoRecorrido && o.Mes == MesRecorrido && o.Dia == i && o.Maquina == MaquinaFor))
                            {
                                detalleDia += "<div style='font-size: 8px;'><span style='float:right'>" + info.TiempoDif + "</span><b>" + info.OT + "</b> " + info.NombreOT + "(" + info.NumPliego + ")</div>";
                            }

                            string Fec = new DateTime(AñoRecorrido, MesRecorrido, i).ToString("dddd", new CultureInfo("es-ES"));
                            if (i == 1)
                            {
                                switch (Fec)
                                {
                                case "lunes":
                                    Semanas += "<tr>" +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "martes":
                                    Semanas += "<tr>" + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + diasvacios + "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "miércoles":
                                    Semanas += "<tr>" + diavacio + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + diasvacios + diasvacios +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "jueves":
                                    Semanas += "<tr>" + diavacio + diavacio + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + diasvacios + diasvacios + diasvacios +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "viernes":
                                    Semanas += "<tr>" + diavacio + diavacio + diavacio + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + diasvacios + diasvacios + diasvacios + diasvacios +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "sábado":
                                    Semanas += "<tr>" + diavacio + diavacio + diavacio + diavacio + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" + diasvacios + diasvacios + diasvacios + diasvacios + diasvacios +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                case "domingo":
                                    Semanas += "<tr>" + diavacio + diavacio + diavacio + diavacio + diavacio + diavacio +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td></tr>";
                                    Dias += "<tr>" + diasvacios + diasvacios + diasvacios + diasvacios + diasvacios + diasvacios +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    break;

                                default: break;
                                }
                            }
                            else
                            {
                                if (Fec == "lunes")
                                {
                                    Semanas += "<tr>" +
                                               "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias += "<tr>" +
                                            "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                }
                                else if (Fec == "domingo")
                                {
                                    Semanas += "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>" +
                                               "</tr>";
                                    Dias += "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>" +
                                            "</tr>";
                                    //borrar valor semanas y dias
                                    contenido += Semanas + Dias;
                                    Semanas    = ""; Dias = "";
                                }
                                else //martes,miercoles,jueves,viernes y sabado
                                {
                                    Semanas += "<td bgcolor = '#DCDCDC' style = 'width:14%;height:17px;font-size: 10px;border: 1px solid black;' align = 'center'><b> " + new DateTime(AñoRecorrido, MesRecorrido, i).ToString("d MMMM", new CultureInfo("es-ES")) + " </b></td>";
                                    Dias    += "<td style='width:14%;overflow: hidden;max-height: 175px;height: 50px;vertical-align:top;border: 1px solid black;'>" + detalleDia + "</td>";
                                    //"<td style='width:14%;overflow: hidden;max-height: 175px;vertical-align:top;'><div style='font-size: 8px;'><span style='float:right'>horas</span><b>ot</b> nombreot-pliegos</div></td>";
                                }
                            }
                        }
                        //sumar mes y si es necesario el año
                        //agregar ultima semana antes de terminar el recorrido si no termina en domingo
                        tablacompleta += "<div style='width:100%;text-align:center'><b>" + MaquinaFor + " - " + new DateTime(AñoRecorrido, MesRecorrido, 1).ToString("MMMM", new CultureInfo("es-ES")).ToUpperInvariant() + " " + AñoRecorrido + "</b></div>" + "<table style='width:100%;height 665px;border-collapse: collapse;'><tbody>" + EncDias + contenido + Semanas + Dias + "</tbody></table><div style='page-break-before: always;'></div><br/>";
                        //set varialbes
                        contenido = ""; Semanas = ""; Dias = "";
                        if (MesRecorrido == 12)
                        {
                            MesRecorrido = 1; AñoRecorrido = AñoRecorrido + 1;
                        }
                        else
                        {
                            MesRecorrido = MesRecorrido + 1;
                        }
                    }
                    //Igualar mes inicial al recorrido para la siguiente maquina
                    MesRecorrido = Mes; AñoRecorrido = Año;
                }


                Label1.Text = tablacompleta;
            }
            else
            {
            }
        }