/// <summary>
        /// Valida que no exista la produccion de formula
        /// </summary>
        internal ProduccionFormulaBatchInfo ValidarProduccionFormulaBatch(ProcesarArchivoInfo produccionFormula)
        {
            ProduccionFormulaBatchInfo resultado = null;

            try
            {
                Logger.Info();
                var     parameters = AuxProduccionFormulaBatchDAL.ObtenerParametrosValidarProduccionFormulaBatch(produccionFormula);
                DataSet ds         = Retrieve("ProduccionFormulaBatch_ValidarBatch", parameters);
                if (ValidateDataSet(ds))
                {
                    resultado = MapProduccionFormulaBatchDAL.ValidarProduccionFormulaBatch(ds);
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
        public List <ProduccionFormulaBatchInfo> CrearListaProduccionFormulaBatch(List <ProcesarArchivoInfo> lista, string formula, int Batch, string nombrerotomix)
        {
            var listaFormulaProduccionBatch = new List <ProduccionFormulaBatchInfo>();
            var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

            var formulaPL = new FormulaPL();

            var formulasTodas = formulaPL.ObtenerTodos(EstatusEnum.Activo);

            try
            {
                //sacamos los Productos
                var produccionAgrupada = from w in lista
                                         where w.Formula == formula && w.Marca != "2" && w.batch == Batch
                                         group w by w.Codigo into g
                                         select new { FirstLetter = g.Key, Words = g };

                foreach (var z in produccionAgrupada)
                {
                    var         rotomixPl = new RotomixPL();
                    RotoMixInfo rotoMix   = rotomixPl.ObtenerRotoMixXOrganizacionYDescripcion(seguridad.Usuario.Organizacion.OrganizacionID, nombrerotomix);

                    var produccionformulabatch = new ProduccionFormulaBatchInfo();
                    List <ProcesarArchivoInfo> listafltrada = lista.Where(k => k.Formula == formula && k.Codigo == z.FirstLetter && k.batch == Batch).ToList();

                    int cantidadReal       = (from prod in listafltrada select prod.Real).Sum();
                    int cantidadProgramada = (from prod in listafltrada select prod.Meta).Sum();

                    var formulaExiste =
                        formulasTodas.FirstOrDefault(
                            fo =>
                            fo.Descripcion.ToUpper().Trim().Equals(formula.ToUpper().Trim(),
                                                                   StringComparison.InvariantCultureIgnoreCase));

                    if (formulaExiste == null)
                    {
                        formulaExiste = new FormulaInfo();
                    }

                    produccionformulabatch.OrganizacionID     = seguridad.Usuario.Organizacion.OrganizacionID;
                    produccionformulabatch.Batch              = Batch;
                    produccionformulabatch.ProductoID         = int.Parse(z.FirstLetter);
                    produccionformulabatch.FormulaID          = formulaExiste.FormulaId;
                    produccionformulabatch.CantidadProgramada = cantidadProgramada;
                    produccionformulabatch.CantidadReal       = cantidadReal;
                    produccionformulabatch.Activo             = EstatusEnum.Activo;
                    produccionformulabatch.RotomixID          = rotoMix.RotoMixId;

                    listaFormulaProduccionBatch.Add(produccionformulabatch);
                }
            }
            catch (Exception er)
            {
                Logger.Error(er);
                return(null);
            }
            return(listaFormulaProduccionBatch);
        }
        public string ValidarProduccionFormula(ProcesarArchivoInfo renglonArchivo)
        {
            var seguridad = (SeguridadInfo)ObtenerSeguridad();

            renglonArchivo.OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
            string resultado;

            resultado = GetLocalResourceObject("OK").ToString();
            var produccionFormulaBatchBL = new ProduccionFormulaBatchBL();

            ProduccionFormulaBatchInfo produccion = produccionFormulaBatchBL.ValidarProduccionFormulaBatch(renglonArchivo);

            if (produccion != null)
            {
                return(string.Format(GetLocalResourceObject("CodeBehind.ProduccionGenerada").ToString(), renglonArchivo.batch, renglonArchivo.ProductoID, renglonArchivo.Fecha, renglonArchivo.Rotomix));
            }
            return(resultado);
        }
Пример #4
0
        /// <summary>
        /// Valida que no exista la produccion de formula
        /// </summary>
        public ProduccionFormulaBatchInfo ValidarProduccionFormulaBatch(ProcesarArchivoInfo produccionFormula)
        {
            ProduccionFormulaBatchInfo resultado = null;

            try
            {
                Logger.Info();
                var produccionFormulaBatchDAL = new ProduccionFormulaBatchDAL();
                resultado = produccionFormulaBatchDAL.ValidarProduccionFormulaBatch(produccionFormula);
            }
            catch (ExcepcionDesconocida ex)
            {
                Logger.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
            return(resultado);
        }