public string FuncionCalcula(string item, DashboardProd lo)
        {
            int countDias = 1; double TotalMermasPreparacionPA = 0; double TotalMermasTiraje = 0; double HorasDirectas = 0; double ImprodIndirectos = 0; double OtrasIndirectas = 0; double HorasIndirectas = 0;

            string ValorFormula = "";
            int    ValorMaquina = dc.ListarRecursos().Where(x => x.CodMaquina == DropDownList1.SelectedValue.ToString()).Select(p => p.Valor).FirstOrDefault();

            TotalMermasPreparacionPA = (lo.Buenos > 0) ? (((double)lo.MalosPreparacion) / (double)lo.Buenos) * 100 : 0;
            TotalMermasTiraje        = (lo.Buenos > 0) ? (((double)lo.MalosTiraje) / (double)lo.Buenos) * 100 : 0;
            HorasDirectas            = lo.HorasTiraje + lo.HorasPreparacion + lo.HorasDelay + lo.HorasImprod_Prep;//[20190619_horas imp.Preperacion agregadas]
            OtrasIndirectas          = lo.TotalHoras - lo.HorasPreparacion - lo.HorasTiraje - lo.HorasDelay - (lo.HorasSinPersonal + lo.HorasColacion + lo.HorasAseo + lo.HorasSinTrabajo + lo.HorasMantencion);
            ImprodIndirectos         = lo.HorasColacion + lo.HorasAseo + OtrasIndirectas;
            HorasIndirectas          = lo.HorasSinPersonal + lo.HorasColacion + lo.HorasAseo + lo.HorasSinTrabajo + lo.HorasMantencion + OtrasIndirectas;
            switch (item)
            {
            case "Disponibilidad":
                ValorFormula = (lo.TotalHoras - lo.HorasColacion - lo.HorasSinPersonal) > 0 ? (((lo.HorasTiraje + lo.HorasPreparacion) / (lo.TotalHoras - lo.HorasColacion - lo.HorasSinPersonal)) * 100).ToString("N2") + "%" : "0";        //; ((lo.HorasTiraje + lo.HorasPreparacion) / (lo.TotalHoras - lo.HorasColacion - lo.HorasSinPersonal)).ToString();
                break;

            case "Rendimiento":
                ValorFormula = ((lo.HorasTiraje + lo.HorasPreparacion) * (int)ValorMaquina) > 0 ? ((lo.Buenos / ((lo.HorasTiraje + lo.HorasPreparacion) * (int)ValorMaquina)) * 100).ToString("N2") + "%" : "0";
                break;

            case "Calidad":
                ValorFormula = (TotalMermasPreparacionPA + TotalMermasTiraje) > 0 ? (100 - (TotalMermasPreparacionPA + TotalMermasTiraje)).ToString("N2") + "%" : "100%";
                break;

            case "Uptime":
                ValorFormula = (lo.HorasTiraje + lo.HorasDelay) > 0 ? ((lo.HorasTiraje / (lo.HorasTiraje + lo.HorasDelay)) * 100).ToString("N2") + "%" : "0%";
                break;

            case "R":
                ValorFormula = (lo.HorasTiraje > 0) ? Convert.ToInt32(((double)lo.Buenos / lo.HorasTiraje)).ToString("N0").Replace(",", ".") : "0";
                break;

            case "RD":
                ValorFormula = ((lo.HorasTiraje + lo.HorasDelay) > 0) ? Convert.ToInt32(((double)lo.Buenos / (lo.HorasTiraje + lo.HorasDelay))).ToString("N0").Replace(",", ".") : "0";
                break;

            case "MRD":
                ValorFormula = ((HorasDirectas) > 0) ? Convert.ToInt32(((double)lo.Buenos / HorasDirectas)).ToString("N0").Replace(",", ".") : "0";
                break;

            case "LOR":
                ValorFormula = ((lo.Preparaciones2 + lo.Arranques2) > 0) ? Convert.ToInt32(((double)lo.Buenos / (lo.Preparaciones2 + lo.Arranques2))).ToString("N0").Replace(",", ".") : "0";
                break;

            case "Tasa Falla Area Logistica":
                ValorFormula = ((HorasDirectas) > 0) ? (((lo.Logistica) / HorasDirectas) * 100).ToString("N2") + "%" : "0";
                break;

            case "Tasa Falla Area Mantencion":
                ValorFormula = ((HorasDirectas) > 0) ? (((lo.Mantencion) / HorasDirectas) * 100).ToString("N2") + "%" : "0";
                break;

            case "Mantencion Mecanica":
                ValorFormula = ((HorasDirectas) > 0) ? (((lo.Mecanico) / HorasDirectas) * 100).ToString("N2") + "%" : "0";
                break;

            case "Mantencion Electrica":
                ValorFormula = ((HorasDirectas) > 0) ? (((lo.Electrico) / HorasDirectas) * 100).ToString("N2") + "%" : "0";
                break;

            case "Gestion":
                ValorFormula = ((HorasDirectas) > 0) ? (((lo.Gestion) / HorasDirectas) * 100).ToString("N2") + "%" : "0";
                break;

            case "Horas Totales":
                ValorFormula = lo.TotalHoras.ToString("N0");
                break;

            case "Horas Directas":
                ValorFormula = HorasDirectas.ToString("N2");
                break;

            case "Horas Tripuladas (Hrs Directas + Indirectas)":
                ValorFormula = (HorasDirectas + ImprodIndirectos + lo.HorasMantencion + lo.HorasSinTrabajo).ToString("N0").Replace(",", ".");
                break;

            case "Preparación":
                ValorFormula = lo.HorasPreparacion.ToString("N2");
                break;

            case "Tiraje":
                ValorFormula = lo.HorasTiraje.ToString("N2");
                break;

            case "Delay":
                ValorFormula = lo.HorasDelay.ToString("N2");
                break;

            //"Horas Indirectas","Improd. Indirectos" ,"Mantencion Planificada","Sin Trabajo","Sin Personal"
            case "Horas Indirectas":
                ValorFormula = HorasIndirectas.ToString("N2");
                break;

            case "Improd. Indirectos":
                ValorFormula = ImprodIndirectos.ToString("N2");
                break;


            //"Sin Personal","Colacion","Aseo / Limpieza de Equipos","Sin OT","Mantencion Planificada","Otras Indirectas"
            case "Sin Personal":
                ValorFormula = lo.HorasSinPersonal.ToString("N2");
                break;

            case "Aseo / Limpieza de Equipos":
                ValorFormula = lo.HorasAseo.ToString("N2");
                break;

            case "Mantencion Planificada":
                ValorFormula = lo.HorasMantencion.ToString("N2");
                break;

            case "Colacion":
                ValorFormula = lo.HorasColacion.ToString("N2");
                break;

            case "Sin Trabajo":
                ValorFormula = lo.HorasSinTrabajo.ToString("N2");
                break;

            case "Otras Indirectas":
                ValorFormula = OtrasIndirectas.ToString("N2");
                break;

            //"Impresiones Totales","Impresiones Netas","Merma Total"
            case "Impresiones Totales":
                ValorFormula = (lo.Buenos + lo.MalosPreparacion + lo.MalosTiraje).ToString("N0").Replace(",", ".");
                break;

            case "Impresiones Netas":
                ValorFormula = lo.Buenos.ToString("N0").Replace(",", ".");
                break;

            case "Merma Total":
                ValorFormula = (lo.MalosPreparacion + lo.MalosTiraje).ToString("N0").Replace(",", ".");
                break;

            //
            case "Malos Preparacion":
                ValorFormula = lo.MalosPreparacion.ToString("N0").Replace(",", ".");
                break;

            case "Malos Tiraje":
                ValorFormula = lo.MalosTiraje.ToString("N0").Replace(",", ".");
                break;

            //"N° Preparaciones","N° Arranques"
            case "N° Preparaciones":
                ValorFormula = lo.Preparaciones.ToString("N0").Replace(",", ".");
                break;

            case "N° Arranques":
                ValorFormula = lo.Arranques.ToString("N0").Replace(",", ".");
                break;
            //,"PREPARACIONES","Minutos x Preparacion","Minutos x Arranque","Minutos Promedio Preparacion o Arranque"

            case "Minutos x Preparacion":
                ValorFormula = (lo.Preparaciones2 > 0) ? (lo.Preparaciones / lo.Preparaciones2).ToString() : "0";
                break;

            case "Minutos x Arranque":
                ValorFormula = (lo.Arranques2 > 0) ? (lo.Arranques / lo.Arranques2).ToString() : "0";
                break;

            case "Minutos Promedio Preparacion o Arranque":
                ValorFormula = ((lo.Preparaciones2 + lo.Arranques2) > 0) ? ((lo.Preparaciones + lo.Arranques) / (lo.Preparaciones2 + lo.Arranques2)).ToString() : "0";
                break;

            //,"MERMAS PROMEDIO","Preparacion.","Arranques.","Tiraje."
            case "Preparacion.":
                ValorFormula = ((lo.Preparaciones2) > 0) ? (lo.MalosPreparacion / (lo.Preparaciones2)).ToString() : "0";
                break;

            case "Arranques.":
                ValorFormula = "0";
                break;

            case "Tiraje.":
                ValorFormula = ((lo.Preparaciones2 + lo.Arranques2) > 0) ? (lo.MalosTiraje / (lo.Preparaciones2 + lo.Arranques2)).ToString() : "0";
                break;
            //

            case "(%) Total Mermas Preparacion (P+A)":
                ValorFormula = TotalMermasPreparacionPA.ToString("N2") + "%";
                break;

            case "(%) Mermas Tiraje":
                ValorFormula = TotalMermasTiraje.ToString("N2") + "%";
                break;

            //"(%) Mermas Preparacion","(%) Total Mermas"
            case "(%) Mermas Preparacion":
                ValorFormula = (lo.Buenos > 0) ? (((double)lo.MalosPreparacion / (double)lo.Buenos) * 100).ToString("N2") + "%" : "0%";
                break;

            case "(%) Total Mermas":
                ValorFormula = (lo.Buenos > 0) ? ((((double)lo.MalosPreparacion + (double)lo.MalosTiraje) / (double)lo.Buenos) * 100).ToString("N2") + "%" : "0%";
                break;



            //,"Logistica","Encuadernacion","Impresion","Mantencion","Mecanica" ,"Electrica","Gestión","Material","Atascos","Espera Cambio de Turno","Espera o Parada por Jefatura"
            //,"Operacional","Planchas","Planificacion","Servicio al Cliente","Limpieza - Regulacion y Lavados"

            case "Logistica":
                ValorFormula = lo.Logistica.ToString("N2");
                break;

            case "Encuadernacion":
                ValorFormula = lo.Encuadernacion.ToString("N2");
                break;

            case "Impresion":
                ValorFormula = lo.Impresion.ToString("N2");
                break;

            case "Mantencion":
                ValorFormula = lo.Mantencion.ToString("N2");
                break;

            case "Mecanica":
                ValorFormula = lo.Mecanico.ToString("N2");
                break;

            case "Electrica":
                ValorFormula = lo.Electrico.ToString("N2");
                break;

            case "Gestión":
                ValorFormula = lo.Gestion.ToString("N2");
                break;

            case "Material":
                ValorFormula = lo.Material.ToString("N2");
                break;

            case "Atascos":
                ValorFormula = lo.Atascos.ToString("N2");
                break;

            case "Espera Cambio de Turno":
                ValorFormula = lo.EsperaCambioTurno.ToString("N2");
                break;

            case "Espera o Parada por Jefatura":
                ValorFormula = lo.ParadaPorJefatura.ToString("N2");
                break;

            case "Operacional":
                ValorFormula = lo.Operacional.ToString("N2");
                break;

            case "Planchas":
                ValorFormula = lo.Planchas.ToString("N2");
                break;

            case "Planificacion":
                ValorFormula = lo.Planificacion.ToString("N2");
                break;

            case "Servicio al Cliente":
                ValorFormula = lo.ServicioCliente.ToString("N2");
                break;

            case "Limpieza - Regulacion y Lavados":
                ValorFormula = lo.RegulacionyLavados.ToString("N2");
                break;
            }
            return(ValorFormula);
        }
示例#2
0
        public List <DashboardProd> ListarRegistros(DateTime Fecha, string Maquina, int Procedimiento)
        {
            List <DashboardProd> lista = new List <DashboardProd>();
            Conexion             con   = new Conexion();
            SqlCommand           cmd   = con.AbrirConexionIntranet();

            if (cmd != null)
            {
                try
                {
                    cmd.CommandText = "DashboardProduccion";
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Fecha", Fecha);
                    cmd.Parameters.AddWithValue("@Maquina", Maquina);
                    cmd.Parameters.AddWithValue("@Procedimiento", Procedimiento);
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        DashboardProd d = new DashboardProd();
                        d.Maquina            = reader["CodRecurso"].ToString();
                        d.FechaProduccion    = reader["DtProducao"].ToString();
                        d.TotalHoras         = Convert.ToDouble(reader["HorasTotales"].ToString());
                        d.HorasTiraje        = Convert.ToDouble(reader["HorasTiraje"].ToString());
                        d.HorasPreparacion   = Convert.ToDouble(reader["HorasPreparacion"].ToString());
                        d.HorasDelay         = Convert.ToDouble(reader["HorasDelay"].ToString());
                        d.HorasColacion      = Convert.ToDouble(reader["HorasColacion"].ToString());
                        d.HorasAseo          = Convert.ToDouble(reader["HorasAseos"].ToString());
                        d.HorasSinTrabajo    = Convert.ToDouble(reader["HorasSinTrabajo"].ToString());
                        d.HorasMantencion    = Convert.ToDouble(reader["HorasMantencion"].ToString());
                        d.Buenos             = Convert.ToInt32(reader["Buenos"].ToString());
                        d.MalosPreparacion   = Convert.ToInt32(reader["MalosPreparacion"].ToString());
                        d.MalosTiraje        = Convert.ToInt32(reader["MalosTiraje"].ToString());
                        d.Preparaciones      = Convert.ToInt32(reader["Preparaciones"].ToString());
                        d.Arranques          = Convert.ToInt32(reader["Arranques"].ToString());
                        d.Preparaciones2     = Convert.ToInt32(reader["Preparaciones2"].ToString());
                        d.Arranques2         = Convert.ToInt32(reader["Arranques2"].ToString());
                        d.LogisticaMaterial  = Convert.ToDouble(reader["LogisticaMaterial"].ToString());
                        d.Encuadernacion     = Convert.ToDouble(reader["Encuadernacion"].ToString());
                        d.Impresion          = Convert.ToDouble(reader["Impresion"].ToString());
                        d.Logistica          = Convert.ToDouble(reader["Logistica"].ToString());
                        d.Mantencion         = Convert.ToDouble(reader["Mantencion"].ToString());
                        d.Mecanico           = Convert.ToDouble(reader["Mecanico"].ToString());
                        d.Electrico          = Convert.ToDouble(reader["Electrico"].ToString());
                        d.Gestion            = Convert.ToDouble(reader["Gestion"].ToString());
                        d.Material           = Convert.ToDouble(reader["Material"].ToString());
                        d.Atascos            = Convert.ToDouble(reader["Atascos"].ToString());
                        d.EsperaCambioTurno  = Convert.ToDouble(reader["EsperaCambioTurno"].ToString());
                        d.ParadaPorJefatura  = Convert.ToDouble(reader["ParadaPorJefatura"].ToString());
                        d.SinInformacion     = Convert.ToDouble(reader["SinInformacion"].ToString());
                        d.Operacional        = Convert.ToDouble(reader["Operacional"].ToString());
                        d.Planchas           = Convert.ToDouble(reader["Planchas"].ToString());
                        d.Planificacion      = Convert.ToDouble(reader["Planificacion"].ToString());
                        d.ServicioCliente    = Convert.ToDouble(reader["ServicioCliente"].ToString());
                        d.RegulacionyLavados = Convert.ToDouble(reader["RegulacionyLavados"].ToString());
                        d.HorasSinPersonal   = Convert.ToDouble(reader["HorasSinPersonal"].ToString());
                        d.HorasImprod_Prep   = Convert.ToDouble(reader["Improd_Prep"].ToString());
                        lista.Add(d);
                    }
                }
                catch (Exception ex)
                {
                }
            }
            con.CerrarConexion();
            return(lista);
        }