From 9c2ff4b2dae9dee399632fbc8080f4aca7e2dde5 Mon Sep 17 00:00:00 2001 From: unodgs Date: Wed, 13 Oct 2010 18:42:17 +0000 Subject: [PATCH] HomeBudget: Fixed updating categories drop list after removing category, fixed clearing value in money grid after updating category (thanks porto!) git-svn-id: svn://ultimatepp.org/upp/trunk@2781 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- examples/HomeBudget/HomeBudget.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/examples/HomeBudget/HomeBudget.cpp b/examples/HomeBudget/HomeBudget.cpp index 14657aa93..9e742066b 100644 --- a/examples/HomeBudget/HomeBudget.cpp +++ b/examples/HomeBudget/HomeBudget.cpp @@ -295,6 +295,7 @@ void HomeBudget::RemoveGroup() if(categories.IsEmpty()) { SQL & Delete(GROUPS).Where(ID == groups(ID)); + if(groups.GetCount() == 1) categories.Disable(); } @@ -465,7 +466,10 @@ void HomeBudget::RemoveCategory() categories.CancelRemove(); } else + { SQL & Delete(CATEGORIES).Where(ID == categories(ID)); + UpdateCategories(); + } } catch(SqlExc &e) { @@ -746,13 +750,18 @@ void HomeBudget::UpdateValue() { if(money.IsEmpty()) return; - + try { - SQL & Select(DEFVALUE).From(CATEGORIES).Where(ID == money.Get(CAT_ID)); + SQL & Select(DEFVALUE, PM).From(CATEGORIES).Where(ID == money.Get(CAT_ID)); Value v = SQL.Fetch() ? SQL[0] : Value(0); - money.Set(VALUE, v); - money.Set(PM, GetCategorySign()); + Value s = SQL.Fetch() ? SQL[1] : -1; + + if(IsNull(money.Get(VALUE))) + money.Set(VALUE, v); + + if(IsNull(money.Get(PM))) + money.Set(PM, s); } catch(SqlExc &e) {