コード例 #1
0
ファイル: ListMovementWindow.cs プロジェクト: Benito-B/ad
        public ListMovementWindow(Window parent) : base(WindowType.Toplevel)
        {
            this.parent = parent;
            buildWindow();
            TreeViewHelper.Fill(tvMovements, new string[] { "Article", "Type", "Ammount", "Date" },
                                MovementDAO.GetAll());

            btBack.Clicked += (sender, e) => close();
        }
コード例 #2
0
        public static bool DoMovement(Movement m, Window w)
        {
            //Si no hay stock suficiente, anular el movimiento
            if (m.Article.Stock.CurrentStock < m.Ammount)
            {
                DialogHelper.ShowDialog("Error de stock", "Stock insuficiente\n" +
                                        "Stock actual: " + m.Article.Stock.CurrentStock, w,
                                        DialogFlags.Modal | DialogFlags.DestroyWithParent, "Volver", ResponseType.Close);
                return(false);
            }
            //Si después del movimiento quedan menos del mínimo
            if ((m.Article.Stock.CurrentStock - m.Ammount) < m.Article.Stock.MinStock &&
                m.Type.Equals(Movement.M_OUT))
            {
                DialogHelper.ShowDialog("Advertencia de stock", "El stock actual de " +
                                        m.Article.Name + " \nha alcanzado el mínimo establecido", w,
                                        DialogFlags.Modal | DialogFlags.DestroyWithParent, "Aceptar", ResponseType.Close);
            }
            //Si después del movimiento el stock sobrepasa el límite máximo
            if ((m.Article.Stock.CurrentStock + m.Ammount) > m.Article.Stock.MaxStock &&
                m.Type.Equals(Movement.M_IN))
            {
                DialogHelper.ShowDialog("Aviso de stock", "El stock actual de " +
                                        m.Article.Name + " \nha superado el máximo establecido", w,
                                        DialogFlags.Modal | DialogFlags.DestroyWithParent, "Aceptar", ResponseType.Close);
            }

            switch (m.Type)
            {
            case Movement.M_IN:
                m.Article.Stock.CurrentStock += m.Ammount;
                break;

            case Movement.M_OUT:
                m.Article.Stock.CurrentStock -= m.Ammount;
                break;
            }
            StockDAO.Update(m.Article.Stock);
            MovementDAO.Save(m);
            return(true);
        }