Example #1
0
        /// <summary>
        /// Método en el cual se calcula la operación.
        /// </summary>
        /// <param name="ElAnilloProcesado">Anillo que presenta el anillo como se recibe de la operación anterior.</param>
        /// <param name="elPlano">Anillo que representa el plano que ingresó el usuario.</param>
        public void CrearOperacion(Anillo ElAnilloProcesado, Anillo elPlano)
        {
            //Asignamos el valor del anillor procesado al anillo de la operación.
            anilloProcesado = ElAnilloProcesado;

            CriteriosSegmentos Criterio       = DataManager.GetCriteriosSegmentos();
            double             layermin       = Criterio.NitruLayerMin;
            double             layermax       = Criterio.NitruLayerMax;
            PropiedadOptional  especNitrurado = elPlano.PerfilOD.PropiedadesOpcionales.Where(o => o.lblTitle == "ESPEC_NITRURADO").FirstOrDefault();

            DO_DataGasNitridingRails data = DataManager.GetDataGasNitriding(especNitrurado.ElementSelected.ValorCadena);

            double nitruradoMin = data.ThicknessMin;
            double nitruradoMax = data.ThicknessMax;
            double hardnessMin  = data.DurezaMin;
            double hardnessMax  = data.DurezaMax;
            string widthLayer   = data.WhiteLayer;
            double dhp          = data.DHP;

            //Agregamos el texto con las instrucciones de la operación.
            TextoProceso  = "*NITRURADO" + Environment.NewLine;
            TextoProceso += "DIFUSION LAYER THICKNESS " + nitruradoMin + " - " + nitruradoMax + "" + Environment.NewLine;
            TextoProceso += "CONSIDERAR DIAMETRO EXT. E INT." + Environment.NewLine;
            TextoProceso += "HARDNESS " + hardnessMin + " - " + hardnessMax + " DPH HV   " + dhp + Environment.NewLine;
            TextoProceso += widthLayer + Environment.NewLine;
            TextoProceso += "EL SEGMENTO NO DEBERA ROMPERSE A" + Environment.NewLine;
            TextoProceso += "180 GRADOS EN LA PRUEBA DE TWIST" + Environment.NewLine;
            TextoProceso += "PROGRAMA PRG-10" + Environment.NewLine;

            anilloProcesado.PropiedadesCadenaAdquiridasProceso.Add(new PropiedadCadena {
                Nombre = "receta497", Valor = "PRG-10"
            });

            //Ejecutamos el método para calculo de Herramentales.
            BuscarHerramentales();

            //Ejecutamos el méotodo para calcular los tiempos estándar.
            CalcularTiemposEstandar();
        }
        /// <summary>
        /// Método en el cual se calcula la operación.
        /// </summary>
        /// <param name="ElAnilloProcesado">Anillo que presenta el anillo como se recibe de la operación anterior.</param>
        /// <param name="elPlano">Anillo que representa el plano que ingresó el usuario.</param>
        public void CrearOperacion(Anillo ElAnilloProcesado, Anillo elPlano)
        {
            //Asignamos el valor del anillor procesado al anillo de la operación.
            anilloProcesado = ElAnilloProcesado;

            #region Obtenemos el Width
            Propiedad widthMin = Module.GetPropiedad("h11 Min", elPlano.PerfilLateral.Propiedades);
            Propiedad widthMax = Module.GetPropiedad("h11 Max", elPlano.PerfilLateral.Propiedades);
            widthMin.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), widthMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), widthMin.Valor);
            widthMax.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), widthMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), widthMax.Valor);
            #endregion

            #region Obtenemos el Thickness
            Propiedad thicknessMin = Module.GetPropiedad("a1 Min", elPlano.PerfilID.Propiedades);
            Propiedad thicknessMax = Module.GetPropiedad("a1 Max", elPlano.PerfilID.Propiedades);
            thicknessMin.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), thicknessMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), thicknessMin.Valor);
            thicknessMax.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), thicknessMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), thicknessMax.Valor);
            #endregion

            #region Obtenemos el Gap
            Propiedad gapMin = Module.GetPropiedad("s1 Min", elPlano.PerfilPuntas.Propiedades);
            Propiedad gapMax = Module.GetPropiedad("s1 Max", elPlano.PerfilPuntas.Propiedades);
            gapMin.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), gapMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), gapMin.Valor);
            gapMax.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), gapMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), gapMax.Valor);
            #endregion

            #region Obtenemos el Free Gap
            Propiedad freeGapMin = Module.GetPropiedad("freeGapMin", elPlano.PerfilPuntas.Propiedades);
            Propiedad freeGapMax = Module.GetPropiedad("freeGapMax", elPlano.PerfilPuntas.Propiedades);
            freeGapMin.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), freeGapMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), freeGapMin.Valor);
            freeGapMax.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), freeGapMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), freeGapMax.Valor);
            #endregion

            #region Obtenemos la capa de nitrurado
            //Propiedad thicknessNitMin = Module.GetPropiedad("ODCoatingNitrideMin", elPlano.PerfilOD.Propiedades);
            //Propiedad thicknessNitMax = Module.GetPropiedad("ODCoatingNitrideMax", elPlano.PerfilOD.Propiedades);
            //thicknessNitMax.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), thicknessNitMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), thicknessNitMax.Valor);
            //thicknessNitMin.Valor = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), thicknessNitMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), thicknessNitMin.Valor);

            PropiedadOptional especNitrurado = elPlano.PerfilOD.PropiedadesOpcionales.Where(o => o.lblTitle == "ESPEC_NITRURADO").FirstOrDefault();

            DO_DataGasNitridingRails data = DataManager.GetDataGasNitriding(especNitrurado.ElementSelected.ValorCadena);
            #endregion

            double d1 = Module.ConvertTo(elPlano.D1.TipoDato, elPlano.D1.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), elPlano.D1.Valor);
            double h1 = Module.ConvertTo(elPlano.H1.TipoDato, elPlano.H1.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), elPlano.H1.Valor);

            PropiedadOptional propiedadEspec = elPlano.PerfilOD.PropiedadesOpcionales.Where(o => o.lblTitle == "ESPEC_PVD").FirstOrDefault();
            DO_DataPVD        dataPVD        = DataManager.GetDataPVD(propiedadEspec.ElementSelected.ValorCadena);
            string            recetaPVD      = dataPVD.NoReceta;

            //Agregamos el texto con las instrucciones de la operación.
            TextoProceso  = "*INSPECCION FINAL" + Environment.NewLine;
            TextoProceso += "*AUDITORIA DIM." + Environment.NewLine;
            TextoProceso += "ABERTURA       " + gapMin.Valor + " - " + gapMax.Valor + "" + Environment.NewLine;
            TextoProceso += "ESPESOR RADIAL " + thicknessMin.Valor + " - " + thicknessMax.Valor + "" + Environment.NewLine;
            TextoProceso += "TH. NITRURADO  " + data.ThicknessMin + " - " + data.ThicknessMax + "" + Environment.NewLine;
            TextoProceso += "ABERTURA LIBRE " + freeGapMin.Valor + " - " + freeGapMin.Valor + "" + Environment.NewLine;
            TextoProceso += "ESPESOR AXIAL  " + widthMin.Valor + " - " + widthMax.Valor + "" + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;
            TextoProceso += "ESPECIFICACION PVD " + recetaPVD + Environment.NewLine;
            TextoProceso += "ESPESOR PVD " + dataPVD.ThicknessMin + " - " + dataPVD.ThicknessMax + Environment.NewLine;
            TextoProceso += "DIMENSION PARA REGIÓN INTERNA " + "" + " -" + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;
            TextoProceso += "ALINEAR E INSPECCIONAR" + Environment.NewLine;

            #region Pintura
            bool banPintura = false;
            TextoProceso += "*PINTURA" + Environment.NewLine;
            if (elPlano.FranjasPintura.Count > 0)
            {
                banPintura    = true;
                TextoProceso += "PINTAR FRANJAS COLOR:" + Environment.NewLine;
                int c = 1;
                foreach (var franja in elPlano.FranjasPintura)
                {
                    TextoProceso += c + ")" + franja.Color + "     DE " + franja.AnchoPintura + Environment.NewLine;
                    c++;
                }

                TextoProceso += "UBICACION FRANJA:" + Environment.NewLine;
                c             = 1;
                foreach (var franja in elPlano.FranjasPintura)
                {
                    TextoProceso += c + ")" + franja.UbicacionFranja.UbicacionFranjaTexto + Environment.NewLine;
                    c++;
                }

                TextoProceso += "NOTAS:" + Environment.NewLine;
                foreach (var franja in elPlano.FranjasPintura)
                {
                    TextoProceso += "." + franja.Nota + Environment.NewLine;
                }
            }
            else
            {
                TextoProceso += "PINTAR FRANJAS COLOR: N O  P I N T A R" + Environment.NewLine;
            }
            #endregion

            #region Condiciones de empaque
            TextoProceso += "*ENVOLTURA" + Environment.NewLine;
            TextoProceso += "ACEITE :" + Environment.NewLine;
            TextoProceso += "TIPO: " + elPlano.CondicionesDeEmpaque.AceiteTipo + "       CANT: " + elPlano.CondicionesDeEmpaque.CantidadPasos + " PASOS" + Environment.NewLine;
            TextoProceso += "NOTA:" + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.Nota1 + "" + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.Nota2 + "" + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.PzasXRollo + " PIEZAS POR ROLLO" + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.PapelTipo + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.RollosXCaja + " ROLLOS POR CAJA, CJA " + elPlano.CondicionesDeEmpaque.CajaNo + "" + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;
            TextoProceso += "NOTA:" + Environment.NewLine;
            TextoProceso += "" + elPlano.CondicionesDeEmpaque.NotaGeneral + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;
            TextoProceso += "*IDENTIFICACION" + Environment.NewLine;
            TextoProceso += "CLIENTE: MAHLE MORRISTOWN" + Environment.NewLine;
            TextoProceso += "PTE. CLTE. " + "" + " REV. " + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;
            TextoProceso += "MEDIDA " + d1 + " X " + h1 + Environment.NewLine;
            TextoProceso += " " + Environment.NewLine;

            bool banAceite = string.IsNullOrEmpty(elPlano.CondicionesDeEmpaque.AceiteTipo) ? false : true;
            anilloProcesado.PropiedadesBoolAdquiridasProceso.Add(new PropiedadBool {
                Nombre = "llevaAceite", Valor = banAceite
            });

            anilloProcesado.PropiedadesAdquiridasProceso.Add(new Propiedad {
                Nombre = "CantidadFranjas", Valor = elPlano.FranjasPintura.Count, TipoDato = "Cantidad", Unidad = "Unidades"
            });

            anilloProcesado.PropiedadesBoolAdquiridasProceso.Add(new PropiedadBool {
                Nombre = "llevapintura", Valor = banPintura
            });

            #endregion

            //Ejecutamos el método para calculo de Herramentales.
            BuscarHerramentales();

            //Ejecutamos el méotodo para calcular los tiempos estándar.
            CalcularTiemposEstandar();
        }