Пример #1
0
        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);
        }
Пример #2
0
 public UnitatProducte(Producte producte, decimal quantiat, DateTime dataCaducitat, DateTime dataObertura, Recepta recepta)
     : this(producte, quantiat, dataCaducitat, dataObertura)
 {
     if (recepta != null)
     {
         this.recepta = recepta;
     }
     else
     {
         this.recepta = new Recepta();
     }
 }
Пример #3
0
        public static UnitatProducte[] FabricaElMax(Producte producte, Recepta recepta, IEnumerable <Producte> productesPerFerLo)
        {
            List <UnitatProducte> unitatsFetes = new List <UnitatProducte>();
            UnitatProducte        unitatFeta   = Fabrica(producte, recepta, productesPerFerLo);

            while (unitatFeta != null)
            {
                unitatsFetes.Add(unitatFeta);
                unitatFeta = Fabrica(producte, recepta, productesPerFerLo);
            }
            return(unitatsFetes.ToArray <UnitatProducte>());
        }
Пример #4
0
        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>());
        }
Пример #5
0
 public Ingredient(Producte producte, decimal quantitat)
 {
     CampPrimaryKey = "IdIngredient";
     AltaCanvi("IdProducte");
     AltaCanvi("IdRecepta");
     AltaCanvi("Quantitat");
     this.producte  = producte;
     Taula          = "Ingredients";
     this.producte  = producte;
     this.quantitat = Convert.ToInt32(quantitat * 100);
     Recepta        = null;
     DessaCanvis();
 }
Пример #6
0
        public override bool Equals(object obj)
        {
            Producte other     = obj as Producte;
            bool     iguals    = other != null;
            bool     pucPrimer = true;
            bool     pucSegon  = false;
            IEnumerator <UnitatProducte> unitats;
            IEnumerator <UnitatProducte> unitatsOther;

            if (iguals)              //per no fer una super linea la he dividit :)
            {
                iguals = other.PrimaryKey == PrimaryKey && other.QuantitatMinimaEstoc == QuantitatMinimaEstoc && other.QuantitatNormalEstoc == QuantitatNormalEstoc;
                if (iguals)
                {
                    iguals = other.ReceptaOriginal.Equals(ReceptaOriginal) && other.rutaImatge == rutaImatge && other.TempsAvisPerCaducar.Equals(TempsAvisPerCaducar) && other.TempsUnCopFet.Equals(TempsUnCopFet) && other.TempsUnCopObert.Equals(TempsUnCopObert);
                    if (iguals)
                    {
                        iguals = other.Unitat == Unitat && other.Categoria == Categoria && other.InfoExtra == InfoExtra;
                    }
                    if (iguals)
                    {
                        unitats      = this.GetEnumerator();
                        unitatsOther = other.GetEnumerator();
                        while (iguals && pucPrimer)
                        {
                            pucPrimer = unitats.MoveNext();
                            pucSegon  = unitatsOther.MoveNext();
                            if (pucSegon.Equals(pucPrimer))
                            {
                                if (pucPrimer)
                                {
                                    iguals = unitatsOther.Current.Equals(unitats.Current);
                                }
                            }
                            else
                            {
                                iguals = false;
                            }
                        }
                        if (iguals)
                        {
                            iguals = unitats.MoveNext().Equals(unitatsOther.MoveNext());
                        }
                    }
                }
            }
            return(iguals);
        }
Пример #7
0
 public UnitatProducte(Producte producte)
 {
     if (producte == null)
     {
         throw new Exception("La unitatProducte Ha de tenir un producte associat!! ");
     }
     AltaCanvi("DataObertura");
     AltaCanvi("DataCaducitat");
     AltaCanvi("IdProducte");
     AltaCanvi("IdRecepta");
     AltaCanvi("Quantitat");
     this.producte    = producte;
     dataCaducitat    = new DateTime();
     dataQueEsVaObrir = new DateTime();
     recepta          = new Recepta();
     CampPrimaryKey   = "IdUnitat";
     PrimaryKey       = producte.PrimaryKey + ";unitat";      //algo para hacerlo unico...quizas se autoGenera y no hace falta...
     Taula            = "UnitatsProductes";
     producte.AltaUnitat(this);
 }
Пример #8
0
        public static UnitatProducte Fabrica(Producte producte, Recepta recepta, IEnumerable <Producte> productesPerFerLo)
        {
            UnitatProducte unitatFeta = null;
            SortedList <string, Producte> productesIndex = new SortedList <string, Producte>();

            foreach (Producte productePerFer in productesPerFerLo)
            {
                try {
                    productesIndex.Add(productePerFer.PrimaryKey, productePerFer);
                } catch {
                }
            }
            bool esPotFer = true;
            bool acabat   = false;
            IEnumerator <Ingredient> ingredients = recepta.GetEnumerator();

            while (esPotFer && !acabat)
            {
                acabat = !ingredients.MoveNext();
                if (!acabat)
                {
                    esPotFer = productesIndex.ContainsKey(ingredients.Current.Producte.PrimaryKey);
                    if (esPotFer)
                    {
                        esPotFer = (productesIndex[ingredients.Current.Producte.PrimaryKey].QuantitatTotal / ingredients.Current.Quantitat) >= 1;
                    }
                }
            }
            if (esPotFer)
            {
                foreach (Ingredient ingredient in recepta)
                {
                    productesIndex[ingredient.Producte.PrimaryKey].TreuQuantitat(ingredient.Quantitat);
                }
                unitatFeta = new UnitatProducte(producte, 1M, new DateTime(), new DateTime(), recepta);
            }
            return(unitatFeta);
        }
Пример #9
0
        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));
        }
Пример #10
0
 public UnitatProducte(Producte producte, decimal quantiat, Recepta recepta)
     : this(producte, quantiat)
 {
     this.recepta = recepta;
 }
Пример #11
0
 public UnitatProducte(Producte producte, decimal quantitat, DateTime dataCaducitat, DateTime dataObertura)
     : this(producte, quantitat, dataCaducitat)
 {
     this.dataQueEsVaObrir = dataObertura;
 }
Пример #12
0
 public UnitatProducte(Producte producte, decimal quantitat, DateTime dataCaducitat)
     : this(producte, quantitat)
 {
     this.dataCaducitat = dataCaducitat;
 }
Пример #13
0
 public UnitatProducte(Producte producte, decimal quantitat)
     : this(producte)
 { this.quantitat = Convert.ToInt32(quantitat * 100); }
Пример #14
0
 public static UnitatProducte[] UnitatsDessades(Gabriel.Cat.BaseDeDades baseDeDades)
 {
     Recepta[] receptesDessades = Recepta.ReceptesDessades(baseDeDades);
     return(UnitatsDessades(baseDeDades, receptesDessades, Producte.ProductesDessats(baseDeDades, receptesDessades)));
 }
Пример #15
0
 public static UnitatProducte Fabrica(Producte producte, Estoc estoc)
 {
     return(Fabrica(producte, estoc, producte.ReceptaOriginal));
 }
Пример #16
0
 public Ingredient(Producte producte, Recepta recepta, decimal quantitat)
     : this(producte, quantitat)
 {
     Recepta = recepta;
     DessaCanvis();
 }