{
GtkTreeIter iter;
gint id;
- gchar *pubblicazione_inizio_data;
- GDateTime *gdt_oggi;
- GDateTime *gdt_pubblicazione_inizio_data;
gchar *sql;
GdaDataModel *dm;
/* 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,