Example #1
0
        internal static int GetToShoppingListQuantity(int articleId, int?minQuantity = null, int?prefQuantity = null)
        {
            if ((minQuantity == null) || (prefQuantity == null))
            {
                ArticleData article = Database.GetArticleData(articleId);

                // Artikle ist noch (gar) nicht angelegt?
                // (Laut Absturzbericht ist so ein Fall vorhanden, konnte aber nicht reproduziert werden.)
                if (article == null)
                {
                    return(-1);
                }

                minQuantity  = article.MinQuantity.HasValue  ? article.MinQuantity.Value  : 0;
                prefQuantity = article.PrefQuantity.HasValue ? article.PrefQuantity.Value : 0;
            }

            int isQuantityInStorage = (int)Database.GetArticleQuantityInStorage(articleId);

            int toBuyQuantity = ShoppingListHelper.GetToBuyQuantity(minQuantity.Value, prefQuantity.Value, isQuantityInStorage);

            int shoppingListQuantiy = (int)Database.GetShoppingListQuantiy(articleId);

            toBuyQuantity = toBuyQuantity - shoppingListQuantiy;

            if (toBuyQuantity < 0) // Mehr auf der Einkaufsliste als berechnet?
            {
                return(0);
            }

            return(toBuyQuantity);
        }
Example #2
0
        internal static int GetToShoppingListQuantity(int articleId, int minQuantity, int prefQuantity)
        {
            int isQuantity = (int)Database.GetArticleQuantityInStorage(articleId);

            int toBuyQuantity = ShoppingListHelper.GetToBuyQuantity(minQuantity, prefQuantity, isQuantity);

            int shoppingListQuantiy = (int)Database.GetShoppingListQuantiy(articleId);

            toBuyQuantity = toBuyQuantity - shoppingListQuantiy;

            if (toBuyQuantity < 0) // Mehr auf der Einkaufsliste als berechnet?
            {
                return(0);
            }

            return(toBuyQuantity);
        }
        public static void UnitTest()
        {
            //                                               MinQuantity  PrefQuantity IsQuantity ToBuy
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 4) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 3) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 2) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 1) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 0, 0) == 0);

            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 6) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 5) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 4) == 1);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 3) == 2);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 2) == 3);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 1) == 4);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 0, 0) == 5);

            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 9) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 8) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 7) == 1);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 6) == 2);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 5) == 3);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 4) == 4);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 3) == 5);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 2) == 6);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 1) == 7);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(0, 8, 0) == 8);

            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 9) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 8) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 7) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 6) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 5) == 0);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 4) == 4);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 3) == 5);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 2) == 6);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 1) == 7);
            Trace.Assert(ShoppingListHelper.GetToBuyQuantity(5, 8, 0) == 8);
        }
Example #4
0
        protected override void OnCreate(Bundle bundle)
        {
            MainActivity.Strings_Manufacturer  = Resources.GetString(Resource.String.ArticleDetails_Manufacturer);
            MainActivity.Strings_Size          = Resources.GetString(Resource.String.ArticleDetails_Size);
            MainActivity.Strings_WarnenInTagen = Resources.GetString(Resource.String.ArticleDetails_WarningInDays);
            MainActivity.Strings_Calories      = Resources.GetString(Resource.String.ArticleDetails_Calories);
            MainActivity.Strings_Category      = Resources.GetString(Resource.String.ArticleDetails_Category);
            MainActivity.Strings_SubCategory   = Resources.GetString(Resource.String.ArticleDetails_SubCategory);
            MainActivity.Strings_Supermarket   = Resources.GetString(Resource.String.ArticleDetails_SupermarketLabel);
            MainActivity.Strings_Price         = Resources.GetString(Resource.String.ArticleDetails_Price);
            MainActivity.Strings_Storage       = Resources.GetString(Resource.String.ArticleDetails_StorageLabel);
            MainActivity.Strings_MinQuantity   = Resources.GetString(Resource.String.ArticleDetails_MinQuantityLabel);
            MainActivity.Strings_PrefQuantity  = Resources.GetString(Resource.String.ArticleDetails_PrefQuantityLabel);
            MainActivity.Strings_EANCode       = Resources.GetString(Resource.String.ArticleDetails_EANCode);
            MainActivity.Strings_Amount        = Resources.GetString(Resource.String.ArticleDetails_Amount);
            MainActivity.Strings_Notes         = Resources.GetString(Resource.String.ArticleDetails_Notes);

            // Damit Pre-Launch von Google Play Store nicht immer wieder
            // in die EAN Scan "Falle" tappt und da nicht wieder rauskommt.
            // (meistens nächster Tag)
            MainActivity.preLaunchTestEndDay = new DateTime(2020, 12, 21);

            base.OnCreate(bundle);

            if (Debugger.IsAttached)
            {
                ShoppingListHelper.UnitTest();
            }

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // ActionBar Hintergrund Farbe setzen
            var backgroundPaint = ContextCompat.GetDrawable(this, Resource.Color.Application_ActionBar_Background);

            backgroundPaint.SetBounds(0, 0, 10, 10);
            ActionBar.SetBackgroundDrawable(backgroundPaint);
            ActionBar.SetDisplayShowHomeEnabled(true);

            string storageDir = this.GetExternalFilesDir(null).AbsolutePath;

            //File.WriteAllText(storageDir + "/Test.txt", "Das ist ein Test.");

            // Datenbanken erstellen
            Android_Database.Instance.RestoreSampleDatabaseFromResources();

            // Initialisierung für EAN Scanner
            ZXing.Mobile.MobileBarcodeScanner.Initialize(Application);

            // Zugriff auf die SD Karte anfordern
            new SdCardAccess().Grand(this);

            // Klick auf den "abgelaufen" Text bringt die Liste der (bald) abgelaufender Artieln.
            FindViewById <TextView>(Resource.Id.Main_Text).Click  += ArticlesNearExpiryDate_Click;
            FindViewById <TextView>(Resource.Id.Main_Text1).Click += ArticlesNearExpiryDate_Click;
            FindViewById <TextView>(Resource.Id.Main_Text2).Click += ArticlesNearExpiryDate_Click;

            // Auswahl nach Kategorien
            Button buttonKategorie = FindViewById <Button>(Resource.Id.MainButton_Kategorie);

            buttonKategorie.Click += delegate { this.ShowCategoriesSelection(); };

            // Lagerbestand
            Button buttonLagerbestand = FindViewById <Button>(Resource.Id.MainButton_Lagerbestand);

            buttonLagerbestand.Click += delegate { StartActivityForResult(new Intent(this, typeof(StorageItemListActivity)), EditStorageItemQuantityId); };

            // Artikeldaten
            Button buttonArticle = FindViewById <Button>(Resource.Id.MainButton_Artikeldaten);

            buttonArticle.Click += delegate { StartActivityForResult(new Intent(this, typeof(ArticleListActivity)), ArticleListId); };

            // Einkaufsliste
            Button buttonShoppingList = FindViewById <Button>(Resource.Id.MainButton_ShoppingList);

            buttonShoppingList.Click += delegate { StartActivity(new Intent(this, typeof(ShoppingListActivity))); };

            // Barcode scannen
            Button buttonBarcode = FindViewById <Button>(Resource.Id.MainButton_Barcode);

            buttonBarcode.Click += ButtonBarcode_Click;

            // Einstellungen für Warnhinweis beim OpenFoodFacts.org
            ArticleDetailsActivity.showCostMessage = Settings.GetBoolean("ShowOpenFoodFactsInternetCostsMessage", true);

            StorageItemQuantityActivity.UseAltDatePicker = Settings.GetBoolean("UseAltDatePicker", false);

            // DatePicker-DEBUG
            if (debug_date_picker)
            {
                Android_Database.UseTestDatabase = true;
                Button b = new Button(this.ApplicationContext);
                b.Text   = "Test DP";
                b.Click += delegate
                {
                    AltDatePickerFragment frag = AltDatePickerFragment.NewInstance(delegate(DateTime? time) { b.Text = time != null ? time.Value.ToShortDateString() : "Kein Datum"; }, DateTime.Today);
                    frag.ShowsDialog = true;
                    frag.Show(this.FragmentManager, AltDatePickerFragment.TAG);
                };
                FindViewById <LinearLayout>(Resource.Id.Main_LinearLayout).AddView(b);
                AltDatePickerFragment frag2 = AltDatePickerFragment.NewInstance(delegate(DateTime? time) { b.Text = time != null ? time.Value.ToShortDateString() : "Kein Datum"; }, DateTime.Today);
                frag2.ShowsDialog = true;
                frag2.Show(this.FragmentManager, AltDatePickerFragment.TAG);
            }


            if (MainActivity.IsGooglePlayPreLaunchTestMode)
            {
                Android_Database.UseTestDatabase = true;
            }
            else
            {
                this.ShowInfoAufTestdatenbank();
            }

            // Datenbankverbindung initialisieren
            this.InitializeDatabase();

            // Hinweis bei Pre-Launch Untersuchung
            this.ShowInfoAufTestversion();
        }