From 14187421f2613f54254d69adc12c0029a13ca6c6 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 24 Feb 2013 12:54:00 +0100 Subject: [PATCH] Controllo sovrapposizione date dell'atto per l'albo (closes #609). --- src/atto.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/atto.c b/src/atto.c index 9e32e50..43d1b51 100644 --- a/src/atto.c +++ b/src/atto.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -303,6 +304,10 @@ atto_salva (Atto *atto, gboolean chiudi) { gchar *sql; + GDateTime *gdt_ricezione_data; + GDateTime *gdt_da_data; + GDateTime *gdt_a_data; + AttoClass *klass = ATTO_GET_CLASS (atto); AttoPrivate *priv = ATTO_GET_PRIVATE (atto); @@ -312,6 +317,29 @@ atto_salva (Atto *atto, gboolean chiudi) return; } + gdt_ricezione_data = gtk_form_field_datetime_get_gdatetime_from_str (gtk_form_get_form_field_value_stringify_by_name (priv->form, "ricezione_data"), "%d/%m/%Y"); + gdt_da_data = gtk_form_field_datetime_get_gdatetime_from_str (gtk_form_get_form_field_value_stringify_by_name (priv->form, "pubblicazione_inizio_data"), "%d/%m/%Y"); + gdt_a_data = gtk_form_field_datetime_get_gdatetime_from_str (gtk_form_get_form_field_value_stringify_by_name (priv->form, "pubblicazione_fine_data"), "%d/%m/%Y"); + + if (gdt_ricezione_data != NULL + && g_date_time_compare (gdt_ricezione_data, gdt_da_data) > 0) + { + solipa_message_dialog (priv->w, + GTK_MESSAGE_INFO, + GTK_BUTTONS_OK, + "La data ricezione non può essere maggiore di quella di inizio pubblicazione."); + return; + } + + if (g_date_time_compare (gdt_da_data, gdt_a_data) > 0) + { + solipa_message_dialog (priv->w, + GTK_MESSAGE_INFO, + GTK_BUTTONS_OK, + "La data inizio pubblicazione non può essere maggiore di quella di fine."); + return; + } + if (priv->id == 0) { sql = gtk_form_get_sql (priv->form, GTK_FORM_SQL_INSERT); -- 2.49.0