From: Andrea Zagli Date: Sun, 24 Feb 2013 11:33:00 +0000 (+0100) Subject: Controllo della pubblicazione dell'atto all'albo (closes #606). X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=20c156136b72b0692f6ff7269af27499b531f0a1;p=albonline%2Fbe Controllo della pubblicazione dell'atto all'albo (closes #606). --- diff --git a/src/atti.c b/src/atti.c index 67f8133..847d956 100644 --- a/src/atti.c +++ b/src/atti.c @@ -611,9 +611,6 @@ atti_on_btn_pubblica_clicked (GtkButton *button, { GtkTreeIter iter; gint id; - gchar *pubblicazione_inizio_data; - GDateTime *gdt_oggi; - GDateTime *gdt_pubblicazione_inizio_data; gchar *sql; GdaDataModel *dm; @@ -627,20 +624,30 @@ atti_on_btn_pubblica_clicked (GtkButton *button, /* controllo che le date siano corrette */ gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_atti), &iter, COL_ID, &id, - COL_DATA_INIZIO_PUBBLICAZIONE, &pubblicazione_inizio_data, -1); - gdt_oggi = g_date_time_new_now_local (); - gdt_pubblicazione_inizio_data = gtk_form_field_datetime_get_gdatetime_from_str (pubblicazione_inizio_data, "%d/%m/%Y"); - - if (g_date_time_compare (gdt_pubblicazione_inizio_data, gdt_oggi) < 0) + sql = g_strdup_printf ("SELECT a.id" + " FROM atti AS a" + " WHERE a.id = %d" + " AND a.status <> 'E'" + " AND (a.pubblicazione_inizio_data < CURRENT_DATE" + " OR a.pubblicazione_fine_data < CURRENT_DATE" + " OR EXISTS (SELECT id FROM registro AS r WHERE a.id = r.id_atti))", + id); + dm = gdaex_query (priv->commons->gdaex, sql); + g_free (sql); + if (dm != NULL && gda_data_model_get_n_rows (dm) > 0) { solipa_message_dialog (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_main")), GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, - "La data inizio pubblicazione non è valida."); + "Le date di pubblicazione non sono valide o atto già pubblicato."); return; } + if (dm != NULL) + { + g_object_unref (dm); + } if (solipa_message_dialog (GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, "w_main")), GTK_MESSAGE_QUESTION,