public void FormulaObtenerTodosActivos() { var pl = new FormulaPL(); IList <FormulaInfo> lista = pl.ObtenerTodos(EstatusEnum.Activo); Assert.AreNotEqual(lista, null); }
public string ValidarCodigoFormula(ProcesarArchivoInfo renglonArchivo) { string resultado; resultado = GetLocalResourceObject("OK").ToString(); var formulas = new FormulaPL(); if (string.IsNullOrWhiteSpace(renglonArchivo.Formula)) { return(GetLocalResourceObject("formulas").ToString()); } var formulasTodos = formulas.ObtenerTodos(EstatusEnum.Activo); var formulaExiste = formulasTodos.FirstOrDefault(fo => fo.Descripcion.ToUpper().Trim().Equals(renglonArchivo.Formula.ToUpper().Trim(), StringComparison.InvariantCultureIgnoreCase)); if (formulaExiste == null) { return(GetLocalResourceObject("formulas").ToString()); } else { renglonArchivo.FormulaID = formulaExiste.FormulaId; } 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); }
private void ObtenerFormulas() { var formulaPl = new FormulaPL(); IList <FormulaInfo> formulas = formulaPl.ObtenerTodos(); if (formulas == null) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoGordo_MensajeNoSeEncontraronRegistrosFormula, MessageBoxButton.OK, MessageImage.Warning); } CboFormula.ItemsSource = formulas; }
/* protected void btnLimpiar_Click(object sender, EventArgs e) * { * txtCodigoCorral.Text = string.Empty; * txtKgsProgramados.Text = string.Empty; * ddlFormula.SelectedIndex = -1; * }*/ #endregion #region Metodos private void CargarFormulas() { FormulaPL formulaPL = new FormulaPL(); var formulas = formulaPL.ObtenerTodos(); if (formulas != null) { formulas = formulas.Where(registro => registro.TipoFormula.TipoFormulaID == TipoFormula.Inicio.GetHashCode() || registro.TipoFormula.TipoFormulaID == TipoFormula.Finalizacion.GetHashCode() || registro.TipoFormula.TipoFormulaID == TipoFormula.Retiro.GetHashCode()).ToList(); ddlFormula.DataSource = formulas; ddlFormula.DataBind(); } }
/// <summary> /// Funcion que llena los datos de los combos de formulas /// </summary> private void CargarFormulas() { try { Logger.Info(); FormulaPL formulaPL = new FormulaPL(); IList <FormulaInfo> listaFormulas = formulaPL.ObtenerTodos(); cmbFormulaManiana.DataSource = listaFormulas; cmbFormulaManiana.DataTextField = "Descripcion"; cmbFormulaManiana.DataValueField = "FormulaId"; cmbFormulaManiana.DataBind(); cmbFormulaTarde.DataSource = listaFormulas; cmbFormulaTarde.DataTextField = "Descripcion"; cmbFormulaTarde.DataValueField = "FormulaId"; cmbFormulaTarde.DataBind(); } catch (Exception ex) { Logger.Error(ex); } }
public List <ProduccionFormulaDetalleInfo> CrearListaProduccionFormulaDetalle(List <ProcesarArchivoInfo> lista, string formula) { var seguridad = (SeguridadInfo)ObtenerSeguridad(); var listaGlobalFormulaDetalle = new List <ProduccionFormulaDetalleInfo>(); var ingredientePL = new IngredientePL(); try { //sacamos los Productos var Prod = from w in lista where w.Formula == formula && w.Marca != "2" group w by w.Codigo into g select new { FirstLetter = g.Key, Words = g }; var formulaPL = new FormulaPL(); var formulasTodas = formulaPL.ObtenerTodos(EstatusEnum.Activo); foreach (var produccion in Prod) { var produccionFormulaDetalle = new ProduccionFormulaDetalleInfo(); List <ProcesarArchivoInfo> listafltrada = lista.Where(k => k.Formula == formula && k.Codigo == produccion.FirstLetter).ToList(); decimal cantidad = (from prod in listafltrada select prod.Real).Sum(); produccionFormulaDetalle.Producto = new ProductoInfo { ProductoId = int.Parse(produccion.FirstLetter) }; produccionFormulaDetalle.CantidadProducto = cantidad; produccionFormulaDetalle.Activo = EstatusEnum.Activo; var formulaExiste = formulasTodas.FirstOrDefault( fo => fo.Descripcion.ToUpper().Trim().Equals(formula.ToUpper().Trim(), StringComparison.InvariantCultureIgnoreCase)); if (formulaExiste == null) { formulaExiste = new FormulaInfo(); } IngredienteInfo ingredienteInfo = ingredientePL.ObtenerPorIdOrganizacionFormulaProducto(formulaExiste.FormulaId, int.Parse(produccion.FirstLetter), seguridad.Usuario.Organizacion.OrganizacionID); if (ingredienteInfo == null) { return(null); } produccionFormulaDetalle.Ingrediente = ingredienteInfo; listaGlobalFormulaDetalle.Add(produccionFormulaDetalle); } } catch (Exception er) { Logger.Error(er); return(null); } return(listaGlobalFormulaDetalle); }
public ResultadoValidacion ValidacionesLista(List <ProcesarArchivoInfo> listaprocesarlo) { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; string mensajeOK = string.Empty; var localResourceObject = GetLocalResourceObject("OK"); if (localResourceObject != null) { mensajeOK = localResourceObject.ToString(); } string nombrerotomix = ""; var resultado = new ResultadoValidacion { Mensaje = mensajeOK }; var listaFormulaDetalle = new List <ProduccionFormulaDetalleInfo>(); var listaFormulaProduccionBatch = new List <ProduccionFormulaBatchInfo>(); try { List <ProcesarArchivoInfo> listaparadetalle = listaprocesarlo; //sacamos las distintas formulas del archivo de texto List <ProcesarArchivoInfo> formulas = listaprocesarlo.GroupBy(p => p.Formula).Select(g => g.First()).ToList(); foreach (var renglon in formulas) //recorremos por formulas { ProcesarArchivoInfo elemento = renglon; //sacamos los batchs var batches = from w in listaprocesarlo where w.Formula == elemento.Formula group w by w.batch into g select new { FirstLetter = g.Key, Words = g }; resultado.Mensaje = ValidarCodigoFormula(elemento); if (resultado.Mensaje != mensajeOK) { return(resultado); } int sumatoriameta = 0; int sumatoriareal = 0; listaFormulaProduccionBatch = new List <ProduccionFormulaBatchInfo>(); foreach (var batch in batches) { List <ProcesarArchivoInfo> lista = listaprocesarlo.Where(k => k.Formula == elemento.Formula && k.batch == batch.FirstLetter).ToList(); var detallesBatchs = new DetalleBatchInfo(); int sumatoriarealbatch = 0; foreach (ProcesarArchivoInfo elmentoArchivo in lista) { if (elmentoArchivo.Marca == "2") { resultado.Mensaje = ValidarColumnaCodigoLista(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } } else { resultado.Mensaje = ValidarFechaYHora(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } //valido que exista el codigo del producto resultado.Mensaje = ValidarCodigoProducto(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } resultado.Mensaje = ValidarCodigoRotomix(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } resultado.Mensaje = ValidarCodigoFormula(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } resultado.Mensaje = ValidarProduccionFormula(elmentoArchivo); if (resultado.Mensaje != mensajeOK) { return(resultado); } //var elementosDuplicados = // lista.Where(det => det.Codigo.Equals(elmentoArchivo.Codigo) // && det.Formula.ToUpper().Trim().Equals(elmentoArchivo.Formula.ToUpper().Trim()) // && det.Rotomix.ToUpper().Trim().Equals(elmentoArchivo.Rotomix.ToUpper().Trim()) // && det.Hora.Equals(elmentoArchivo.Hora)).ToList(); //if(elementosDuplicados.Count > 1) //{ // resultado.Mensaje = string.Format("El renglon se encuentra duplicado, Batch: {0}, Producto: {1}, RotoMix: {2}, Hora: {3}", elmentoArchivo.batch, elmentoArchivo.Codigo, elmentoArchivo.Rotomix, elmentoArchivo.Hora); // return resultado; //} sumatoriameta = sumatoriameta + elmentoArchivo.Meta; sumatoriareal = sumatoriareal + elmentoArchivo.Real; sumatoriarealbatch = sumatoriarealbatch + elmentoArchivo.Real; nombrerotomix = elmentoArchivo.Rotomix; } } detallesBatchs.Batch = batch.FirstLetter; detallesBatchs.KilosProducidos = sumatoriarealbatch; detallesBatchs.Rotomix = nombrerotomix; detallesBatchs.Formula = renglon.Formula; ListaGlobalDetalleBatch.Add(detallesBatchs); //creamos el detalle de la tabla Produccion Formula Detalle listaFormulaDetalle = CrearListaProduccionFormulaDetalle(listaparadetalle, renglon.Formula); if (listaFormulaDetalle == null) { resultado.Mensaje = "ingrediente"; return(resultado); } //creamos el detalle de la tabla Produccion Formula Batch listaFormulaProduccionBatch.AddRange(CrearListaProduccionFormulaBatch(listaparadetalle, renglon.Formula, batch.FirstLetter, nombrerotomix)); }//aqui termina por batch //aqui llenara la lista var produccionFormula = new ProduccionFormulaInfo(); produccionFormula.Organizacion = new OrganizacionInfo { OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID }; var formulaPL = new FormulaPL(); var todasFormulas = formulaPL.ObtenerTodos(EstatusEnum.Activo); FormulaInfo formula = todasFormulas.FirstOrDefault( fo => fo.Descripcion.ToUpper().Trim().Equals(renglon.Formula.ToUpper().Trim(), StringComparison.InvariantCultureIgnoreCase)); produccionFormula.Formula = formula; produccionFormula.CantidadReparto = sumatoriameta; //cantidad programada produccionFormula.CantidadProducida = sumatoriareal; //cantidad real produccionFormula.FechaProduccion = DateTime.Parse(txtFecha.Text); produccionFormula.Activo = EstatusEnum.Activo; produccionFormula.ProduccionFormulaDetalle = listaFormulaDetalle; //produccionFormula.ProduccionFormulaBatch = ListaGlobalDetalleBatch.Where(batch => batch.Formula.ToUpper().Trim().Equals(produccionFormula.Formula.Descripcion.ToUpper().Trim())).ToList(); produccionFormula.ProduccionFormulaBatch = listaFormulaProduccionBatch; produccionFormula.UsuarioCreacionId = seguridad.Usuario.UsuarioID; ListaGlobal.Add(produccionFormula); } } catch (Exception er) { Logger.Error(er); return(null); } return(resultado); }