public List <EstProduccion> Produccion_InformeProduccion(string OT, string NombreOT, string Area, string Maquina, string Operador, DateTime Fechainicio, DateTime FechaTermino, int Procedimiento)
        {
            List <EstProduccion> lista    = new List <EstProduccion>();
            Conexion             conexion = new Conexion();
            SqlCommand           cmd      = conexion.AbrirConexionIntranet();
            string ceros = "00";

            if (cmd != null)
            {
                cmd.CommandText = "[Produccion_InformeProduccion_V2]";
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@OT", OT);
                cmd.Parameters.AddWithValue("@NombreOT", NombreOT);
                cmd.Parameters.AddWithValue("@Area", Area);
                cmd.Parameters.AddWithValue("@Maquina", Maquina);
                cmd.Parameters.AddWithValue("@Operador", Operador);
                cmd.Parameters.AddWithValue("@FechaInicio", Fechainicio);
                cmd.Parameters.AddWithValue("@FechaTermino", FechaTermino);
                cmd.Parameters.AddWithValue("@Procedimiento", Procedimiento);
                cmd.CommandTimeout = 9000000;
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    EstProduccion p = new EstProduccion();
                    p.Maquina  = reader["Maquina"].ToString().Replace("Rapida 106", "").Replace("C150", "").Replace("C-18", "").ToLower();
                    p.OT       = reader["OT"].ToString();
                    p.NombreOT = reader["NombreOT"].ToString().ToLower();
                    p.Pliego   = Regex.Replace(reader["Pliego"].ToString(), @"[^0-9]", string.Empty);
                    double Plani = Convert.ToDouble(reader["Planificado"].ToString());
                    p.Planificado = Convert.ToInt32(reader["Planificado"].ToString()).ToString("N0").Replace(",", ".");
                    double Buenos = Convert.ToDouble(reader["Buenos"].ToString());
                    p.Producido = Convert.ToInt32(reader["Buenos"].ToString()).ToString("N0").Replace(",", ".");

                    TimeSpan t0    = TimeSpan.FromSeconds(Convert.ToDouble(reader["HorasTiraje"].ToString()));
                    int      Dias0 = t0.Days * 24;
                    p.HorasTiraje = (t0.Hours + Dias0).ToString() + ":" + ceros.Substring(0, ceros.Length - t0.Minutes.ToString().Length) + t0.Minutes.ToString() + ":" + ceros.Substring(0, ceros.Length - t0.Seconds.ToString().Length) + t0.Seconds.ToString();

                    TimeSpan t1    = TimeSpan.FromSeconds(Convert.ToDouble(reader["HorasPreparacion"].ToString()));
                    int      Dias1 = t1.Days * 24;
                    p.HorasPreparacion = (t1.Hours + Dias1).ToString() + ":" + ceros.Substring(0, ceros.Length - t1.Minutes.ToString().Length) + t1.Minutes.ToString() + ":" + ceros.Substring(0, ceros.Length - t1.Seconds.ToString().Length) + t1.Seconds.ToString();

                    p.MermaTiraje = Convert.ToInt32(reader["MermaTiraje"].ToString()).ToString("N0").Replace(",", ".");

                    p.MermaPreparacion = Convert.ToInt32(reader["MermaPreparacion"].ToString()).ToString("N0").Replace(",", ".");

                    p.FechaInicio = Convert.ToDateTime(reader["FechaInicio"].ToString()).ToString("dd/MM/yyyy HH:mm");
                    if (Convert.ToDateTime(reader["FechaTermino"].ToString()).ToString("dd/MM/yyyy HH:mm") == "30/12/1899 00:00")
                    {
                        p.FechaTermino = "En Proceso";
                    }
                    else
                    {
                        p.FechaTermino = Convert.ToDateTime(reader["FechaTermino"].ToString()).ToString("dd/MM/yyyy HH:mm");
                    }
                    double horastir = Convert.ToDouble(reader["HorasTiraje"].ToString()) / 3600;
                    if (Buenos > 0)
                    {
                        p.Velocidad = Convert.ToInt32(Buenos / horastir).ToString("N0").Replace(",", ".") + "/Hr";
                    }
                    else
                    {
                        p.Velocidad = "0/Hr";
                    }

                    double HorasImp = Convert.ToDouble(reader["HorasImproductivas"].ToString()) / 3600;
                    if (horastir > 0)
                    {
                        p.Uptime = ((horastir / (horastir + HorasImp)) * 100).ToString("N2") + "%";
                    }
                    else
                    {
                        p.Uptime = "0,00%";
                    }
                    if (p.Maquina.ToLower().Contains("kba"))
                    {
                        p.VerMas = "";
                    }
                    else
                    {
                        p.VerMas = "<a style='Color:Blue;text-decoration:none;' href='javascript:openDetalle(\"" + reader["OT"].ToString() + "\",\"" + reader["Processo"].ToString() + "\",\"" + reader["NombreOT"].ToString() + "\",\"" + p.Pliego + "\")'>Ver Más</a>";
                    }
                    if (Procedimiento == 3)
                    {
                        p.Operador = reader["Operador"].ToString();
                    }
                    else
                    {
                        p.Operador = "";
                    }
                    p.CodRecurso = reader["CodRecurso"].ToString();
                    lista.Add(p);
                }
            }
            conexion.CerrarConexion();

            return(lista);
        }
예제 #2
0
        protected void ibExcel_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (RadGrid1.Items.Count > 0)
                {
                    List <EstProduccion> lista = new List <EstProduccion>();
                    for (int i = 0; i < RadGrid1.Items.Count; i++)
                    {
                        EstProduccion p = new EstProduccion();
                        p.Maquina          = RadGrid1.Items[i]["Maquina"].Text;
                        p.OT               = RadGrid1.Items[i]["OT"].Text.ToUpper();
                        p.NombreOT         = RadGrid1.Items[i]["NombreOT"].Text;
                        p.Pliego           = RadGrid1.Items[i]["Pliego"].Text;
                        p.Planificado      = RadGrid1.Items[i]["Planificado"].Text.Replace(".", "");
                        p.Producido        = RadGrid1.Items[i]["Producido"].Text.Replace(".", "");
                        p.HorasTiraje      = RadGrid1.Items[i]["HorasTiraje"].Text;
                        p.MermaTiraje      = RadGrid1.Items[i]["MermaTiraje"].Text.Replace(".", "");
                        p.MermaPreparacion = RadGrid1.Items[i]["MermaPreparacion"].Text.Replace(".", "");
                        p.HorasPreparacion = RadGrid1.Items[i]["HorasPreparacion"].Text;
                        p.Velocidad        = RadGrid1.Items[i]["Velocidad"].Text.Replace(".", "").Replace("/Hr", "");
                        p.Uptime           = RadGrid1.Items[i]["Uptime"].Text;
                        p.FechaInicio      = RadGrid1.Items[i]["FechaInicio"].Text;
                        p.FechaTermino     = RadGrid1.Items[i]["FechaTermino"].Text;
                        p.Operador         = RadGrid1.Items[i]["Operador"].Text;
                        lista.Add(p);
                    }
                    GridView GridView1 = new GridView();
                    GridView1.DataSource = lista;
                    GridView1.DataBind();
                    GridView1.HeaderStyle.BackColor = System.Drawing.Color.Blue;
                    GridView1.HeaderStyle.ForeColor = System.Drawing.Color.White;
                    if (RadGrid1.Columns[14].Visible == false)
                    {
                        GridView1.HeaderRow.Cells[14].Visible = false;
                    }
                    GridView1.HeaderRow.Cells[15].Visible = false;
                    GridView1.HeaderRow.Cells[16].Visible = false;

                    for (int contador = 0; contador < GridView1.Rows.Count; contador++)
                    {
                        GridViewRow row = GridView1.Rows[contador];
                        if (RadGrid1.Columns[14].Visible == false)
                        {
                            row.Cells[14].Visible = false;
                        }
                        row.Cells[15].Visible = false;
                        row.Cells[16].Visible = false;
                    }
                    string NombreInforme = "";
                    if (txtOT.Text != "")
                    {
                        NombreInforme = "OT: " + txtOT.Text;
                    }
                    else
                    {
                        if (ddlMaquina.SelectedValue.ToString() != "Seleccione...")
                        {
                            NombreInforme = "Máquina " + ddlMaquina.SelectedItem.ToString() + " Desde " + txtFechaInicio.Text + " Hasta " + txtFechaTermino.Text;
                        }
                        else
                        {
                            NombreInforme = "Área " + ddlArea.SelectedItem.ToString() + " Desde " + txtFechaInicio.Text + " Hasta " + txtFechaTermino.Text;
                        }
                    }
                    ExportToExcel(NombreInforme, GridView1);
                }
            }
            catch (Exception ex)
            {
                string popupScript = "<script language='JavaScript'> alert('Ha ocurrido un error al generar el archivo excel! \\n Error: " + ex.Message + "'); </script>";
                Page.RegisterStartupScript("PopupScript", popupScript);
            }
        }