public decimal EsPodenFer(Estoc estoc, Recepta recepta) { decimal quantiatMin = Decimal.MaxValue; decimal quantiatAct = 0; if (ReceptaOriginal.PrimaryKey != new Recepta().PrimaryKey) { try { foreach (Ingredient ingredient in recepta) { quantiatAct = estoc[ingredient.Producte.PrimaryKey].QuantitatTotal / ingredient.Quantitat; if (quantiatAct < quantiatMin) { quantiatMin = quantiatAct; } } } catch { quantiatMin = 0; } } else { quantiatMin = 0; } return(quantiatMin); }
public override bool Equals(object obj) { Estoc other = obj as Estoc; bool iguals = other != null; IEnumerator <Producte> productes, productesOther; bool potPrimer = true, potSegon = false; if (iguals) { productes = GetEnumerator(); productesOther = other.GetEnumerator(); while (iguals && potPrimer) { potPrimer = productes.MoveNext(); potSegon = productesOther.MoveNext(); if (potSegon.Equals(potPrimer)) { if (potSegon) { iguals = productesOther.Current.Equals(productes.Current); } } else { iguals = false; } } if (iguals) { iguals = productes.MoveNext().Equals(productesOther.MoveNext()); } } return(iguals); }
public override dynamic Restaurar() { Estoc estocDessat = new Estoc(); try { BaseDeDades.Desconecta(); BaseDeDades.Conecta(); Recepta[] receptes = Recepta.ReceptesDessades(BaseDeDades); Producte[] productes = Producte.ProductesDessats(BaseDeDades, receptes); UnitatProducte[] unitats = UnitatProducte.UnitatsDessades(BaseDeDades, receptes, productes); estocDessat.Afegir(productes); //poso els objectes en el control! Afegir(receptes); for (int i = 0; i < receptes.Length; i++) { foreach (Ingredient ingredient in receptes[i]) { Afegir(ingredient); } } Afegir(productes); Afegir(unitats); } catch { } return(estocDessat); }
public static UnitatProducte[] FabricaElMax(Producte producte, Estoc estoc, Recepta recepta) { List <UnitatProducte> unitatsFetes = new List <UnitatProducte>(); UnitatProducte unitatFeta = Fabrica(producte, estoc, recepta); while (unitatFeta != null) { unitatsFetes.Add(unitatFeta); unitatFeta = Fabrica(producte, estoc, recepta); } return(unitatsFetes.ToArray <UnitatProducte>()); }
static void Main(string[] args) { BaseDeDadesMySQL bd = new BaseDeDadesMySQL(); bd.Conecta(); ControlObjectesSql control = new Control(bd); var estoc = control.Restaurar(); Estoc.Estoc estocAct = new Estoc.Estoc(); control.Reset(); Producte producte = new Producte("ProvaIDProducte", "ProvaCategoria", "ProvaUnitat", new TimeSpan(4, 3, 2, 1), new TimeSpan(1, 0, 0, 0), new TimeSpan(1, 2, 3, 4), new Recepta(), 5, 100); UnitatProducte unitat = new UnitatProducte(producte); UnitatProducte unitat2 = new UnitatProducte(producte); unitat2.Recepta = new Recepta("Altre"); control.Afegir((ObjecteSql)unitat2.Recepta); unitat2.Recepta.Afegir(new Ingredient(producte, 100M)); control.Afegir((IEnumerable <Ingredient>)unitat2.Recepta); unitat2.Quantitat = 12.3M; unitat.Quantitat = 10; control.Afegir((ObjecteSql)producte.ReceptaOriginal); control.Afegir((ObjecteSql)producte); control.Afegir(unitat); control.Afegir(unitat2); control.ComprovaActualitzacions(); estocAct.Afegir(producte); if (estocAct.Equals(estoc)) { Console.WriteLine("Funciona"); //si esta bien!! } else { Console.WriteLine("No funciona"); } estoc = control.Restaurar(); if (estocAct.Equals(estoc)) { Console.WriteLine("Funciona"); //si esta bien!! } else { Console.WriteLine("No funciona"); } //Console.WriteLine(unitat2); //Console.WriteLine(unitat2.Recepta); //Console.WriteLine(producte); //Console.WriteLine(estoc); //Console.WriteLine(control); Console.ReadKey(); }
public void ErrorFabricaProductesInsuficients() { Producte pa = new Producte("Pa"); Producte formatge = new Producte("Formatge"); Recepta receptaBocata = new Recepta("BocataFormatge"); Producte bocataFormatge = new Producte("Bocata de Formatge"); UnitatProducte unitatPa = new UnitatProducte(pa, 10); UnitatProducte unitatFormatge = new UnitatProducte(formatge, 15); UnitatProducte unitatBocata; Estoc.Estoc estoc = new Estoc.Estoc(); receptaBocata.Afegir(new Ingredient(pa, 1.5M)); receptaBocata.Afegir(new Ingredient(formatge, 50)); estoc.Afegir(new Producte[] { pa, formatge, bocataFormatge }); unitatBocata = Producte.Fabrica(bocataFormatge, receptaBocata, new Producte[] { pa, formatge });//por cambiar...se tiene que hacer... Assert.AreEqual(null, unitatBocata); }
public void FabricaElMaximDeProducteAmbProductesDeEstoc() { Producte pa = new Producte("Pa"); Producte formatge = new Producte("Formatge"); Recepta receptaBocata = new Recepta("BocataFormatge"); Producte bocataFormatge = new Producte("Bocata de Formatge"); UnitatProducte unitatPa = new UnitatProducte(pa, 10); UnitatProducte unitatFormatge = new UnitatProducte(formatge, 15); UnitatProducte[] unitatsBocata; Estoc.Estoc estoc = new Estoc.Estoc(); receptaBocata.Afegir(new Ingredient(pa, 1.5M)); receptaBocata.Afegir(new Ingredient(formatge, 6)); estoc.Afegir(new Producte[] { pa, formatge, bocataFormatge }); unitatsBocata = Producte.FabricaElMax(bocataFormatge, estoc, receptaBocata); Assert.AreNotEqual(new UnitatProducte[] {}, unitatsBocata); }
public void FabricaProducteAmbReceptaOriginal() { Producte pa = new Producte("Pa"); Producte formatge = new Producte("Formatge"); Recepta receptaBocata = new Recepta("BocataFormatge"); Producte bocataFormatge = new Producte("Bocata de Formatge"); UnitatProducte unitatPa = new UnitatProducte(pa, 10); UnitatProducte unitatFormatge = new UnitatProducte(formatge, 15); UnitatProducte unitatBocata; Estoc.Estoc estoc = new Estoc.Estoc(); bocataFormatge.ReceptaOriginal = receptaBocata; receptaBocata.Afegir(new Ingredient(pa, 1)); receptaBocata.Afegir(new Ingredient(formatge, 4)); estoc.Afegir(new Producte[] { pa, formatge, bocataFormatge }); unitatBocata = Producte.Fabrica(bocataFormatge, estoc); Assert.AreNotEqual(null, unitatBocata); }
static void Main(string[] args) { BaseDeDadesMySQL bd = new BaseDeDadesMySQL(); bd.Conecta(); ControlObjectesSql control = new Control(bd); var estoc = control.Restaurar(); Estoc.Estoc estocAct = new Estoc.Estoc(); control.Reset(); Producte producte = new Producte("ProvaIDProducte", "ProvaCategoria", "ProvaUnitat", new TimeSpan(4, 3, 2, 1), new TimeSpan(1, 0, 0, 0), new TimeSpan(1, 2, 3, 4), new Recepta(), 5, 100); UnitatProducte unitat = new UnitatProducte(producte); UnitatProducte unitat2 = new UnitatProducte(producte); unitat2.Recepta = new Recepta("Altre"); control.Afegir((ObjecteSql)unitat2.Recepta); unitat2.Recepta.Afegir(new Ingredient(producte, 100M)); control.Afegir((IEnumerable<Ingredient>)unitat2.Recepta); unitat2.Quantitat = 12.3M; unitat.Quantitat = 10; control.Afegir((ObjecteSql)producte.ReceptaOriginal); control.Afegir((ObjecteSql)producte); control.Afegir(unitat); control.Afegir(unitat2); control.ComprovaActualitzacions(); estocAct.Afegir(producte); if (estocAct.Equals(estoc)) Console.WriteLine("Funciona");//si esta bien!! else Console.WriteLine("No funciona"); estoc = control.Restaurar(); if (estocAct.Equals(estoc)) Console.WriteLine("Funciona");//si esta bien!! else Console.WriteLine("No funciona"); //Console.WriteLine(unitat2); //Console.WriteLine(unitat2.Recepta); //Console.WriteLine(producte); //Console.WriteLine(estoc); //Console.WriteLine(control); Console.ReadKey(); }
public static UnitatProducte Fabrica(Producte producte, Estoc estoc, Recepta recepta) { List <Producte> productesRecepta = new List <Producte>(); Producte producteR = null; try { if (recepta.PrimaryKey == new Recepta().PrimaryKey) { throw new Exception(); } foreach (Ingredient ingredient in recepta) { producteR = estoc[ingredient.Producte.PrimaryKey]; if (producteR == null) { throw new Exception(); } productesRecepta.Add(producteR); } } catch { return(null); } return(Fabrica(producte, recepta, productesRecepta)); }
public void ErrorFabricaProductesFaltants() { Producte pa = new Producte("Pa"); Producte formatge = new Producte("Formatge"); Recepta receptaBocata = new Recepta("BocataFormatge"); Producte bocataFormatge = new Producte("Bocata de Formatge"); Producte oli = new Producte("Oli"); UnitatProducte unitatOli = new UnitatProducte(oli, 100); UnitatProducte unitatPa = new UnitatProducte(pa, 10); UnitatProducte unitatFormatge = new UnitatProducte(formatge, 15); UnitatProducte unitatBocata; Estoc.Estoc estoc = new Estoc.Estoc(); receptaBocata.Afegir(new Ingredient(pa, 1.5M)); receptaBocata.Afegir(new Ingredient(formatge, 50)); receptaBocata.Afegir(new Ingredient(oli,10)); estoc.Afegir(new Producte[] { pa, formatge, bocataFormatge,oli }); unitatBocata = Producte.Fabrica(bocataFormatge, receptaBocata, new Producte[] { pa, formatge });//por cambiar...se tiene que hacer... Assert.AreEqual(null, unitatBocata); }
public void FabricaElMaximDeProducteAmbProductesDeEstoc() { Producte pa = new Producte("Pa"); Producte formatge = new Producte("Formatge"); Recepta receptaBocata = new Recepta("BocataFormatge"); Producte bocataFormatge = new Producte("Bocata de Formatge"); UnitatProducte unitatPa = new UnitatProducte(pa, 10); UnitatProducte unitatFormatge = new UnitatProducte(formatge, 15); UnitatProducte[] unitatsBocata; Estoc.Estoc estoc = new Estoc.Estoc(); receptaBocata.Afegir(new Ingredient(pa, 1.5M)); receptaBocata.Afegir(new Ingredient(formatge, 6)); estoc.Afegir(new Producte[] { pa, formatge, bocataFormatge }); unitatsBocata = Producte.FabricaElMax(bocataFormatge, estoc,receptaBocata); Assert.AreNotEqual(new UnitatProducte[]{}, unitatsBocata); }
public decimal EsPodenFer(Estoc estoc) { return(EsPodenFer(estoc, ReceptaOriginal)); }
public static UnitatProducte Fabrica(Producte producte, Estoc estoc) { return(Fabrica(producte, estoc, producte.ReceptaOriginal)); }
public decimal MaximQuePotHaver(Estoc estoc, Recepta recepta) { return(QuantitatTotal + EsPodenFer(estoc, recepta)); }
public decimal MaximQuePotHaver(Estoc estoc) { return(MaximQuePotHaver(estoc, ReceptaOriginal)); }