public void DeleteRestock(object parameter)
        {
            var selectedRestock = (RestockModel)parameter;

            if (selectedRestock == null)
            {
                return;
            }

            if (MessageBox.Show("Soll die ausgewählte Bestückungsliste gelöscht werden?", "Frage", MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.Cancel)
            {
                return;
            }

            try
            {
                using (var db = new PetaPoco.Database("db"))
                {
                    db.Execute(sql: "DELETE FROM Restocks WHERE RestockId =@0;", selectedRestock.Id);

                    db.Execute(sql: "DELETE FROM RestockLines WHERE RestockId =@0;", selectedRestock.Id);

                    RestockModels.Remove(selectedRestock);

                    RestockLineModels.Clear();

                    MessageBox.Show("Ausgewählte Bestückungsliste wurde gelöscht.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Daten konnten nicht abgerufen werden:\n\n" + ex.Message), "Fehler");
            }
        }
        public void GetRestocks(object patameter)
        {
            using (var db = new PetaPoco.Database("db"))
            {
                try
                {
                    int?storeId   = null;
                    var isStoreId = int.TryParse(App.Current.Properties["StoreId"].ToString(), out int resultStoreId);

                    if (isStoreId)
                    {
                        storeId = resultStoreId;
                    }

                    RestockModels.Clear();

                    RestockModels.AddRange(db.Fetch <RestockModel>("SELECT RestockId AS Id, Dt AS DATE, IsProcd AS IsProcd, StoreId AS StoreId, TemplateId AS TemplateId FROM Restocks WHERE (StoreId IS NULL OR StoreId = @0)", storeId));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Daten konnten nicht abgerufen werden:\n\n" + ex.Message), "Fehler");
                }
            }
        }
        public void CreateRestock(object paramater)
        {
            var selectedRestock = (RestockModel)paramater;

            if (selectedRestock == null)
            {
                return;
            }

            try
            {
                if (selectedRestock.TemplateId != null)
                {
                    throw new Exception("Neue Bestückslisten können nur aus Vorlagen erstellt werden.");
                }

                int?storeId = null;

                var isStoreId = int.TryParse(App.Current.Properties["StoreId"].ToString(), out int resultStoreId);

                if (isStoreId)
                {
                    storeId = resultStoreId;
                }
                else
                {
                    throw new Exception("Vorgang nicht möglich:\n\nBenutzer ist keiner Filiale zugeordnet.");
                }

                if (RestockModels.Any(x => x.StoreId == storeId && x.IsProcd == false))
                {
                    throw new Exception("Vorgang nicht möglich:\n\n Bitte zunächst die offene Bestückungsliste abschließen.");
                }

                int userId;

                var isUserId = int.TryParse(App.Current.Properties["UserId"].ToString(), out int resultUserId);

                if (isUserId)
                {
                    userId = resultUserId;
                }
                else
                {
                    throw new Exception("Vorgang nicht möglich:\n\nUnbekannter Benutzer.");
                }

                using (var db = new PetaPoco.Database("db"))
                {
                    using (var scope = db.GetTransaction())
                    {
                        var rowId = db.ExecuteScalar <int>("INSERT INTO Restocks(Dt, StoreId, UserId, TemplateId) VALUES(date('now'), @0, @1, @2);SELECT last_insert_rowid();", storeId, userId, selectedRestock.Id);

                        var restock = new RestockModel()
                        {
                            Date       = DateTime.Now,
                            Id         = rowId,
                            IsProcd    = false,
                            StoreId    = storeId,
                            UserId     = userId,
                            TemplateId = selectedRestock.Id
                        };

                        scope.Complete();

                        RestockModels.Add(restock);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Daten konnten nicht abgerufen werden:\n\n" + ex.Message), "Fehler");
            }
        }