aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c
index da425ef..f2a7996 100644
--- a/src/data.c
+++ b/src/data.c
@@ -239,12 +239,24 @@ gboolean
data_update_manga(gint manga_id, const gchar *name, gint total_qty)
{
gchar *sql =
- g_strdup_printf("UPDATE manga SET name = '%s', total_qty = %d "
- "WHERE id = %d", name, total_qty, manga_id);
+ g_strdup_printf("UPDATE manga SET "
+ " name = '%s', "
+ " total_qty = %d, "
+ " current_qty = MIN(current_qty, %d) "
+ "WHERE id = %d", name, total_qty, total_qty,
+ manga_id);
gboolean ret = execute_non_query(sql);
g_free(sql);
+ if (ret) {
+ sql = g_strdup_printf("DELETE FROM volume "
+ "WHERE manga_id = %d "
+ "AND id > %d",
+ manga_id, total_qty);
+ ret = execute_non_query(sql);
+ }
+
return ret;
}