/*
- * Copyright (C) 2010-2016 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2010-2017 Andrea Zagli <azagli@libero.it>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
#include <libzakautho/autho.h>
#include <libgdaexgrid/libgdaexgrid.h>
+#include <libzakutils/libzakutils.h>
#include "comuni.h"
#include "comune.h"
return priv->widget;
}
+GdaDataModel
+*territorio_comuni_get_dm (TerritorioCommons *commons, gboolean con_provincia, const gchar *where)
+{
+ GdaDataModel *dm;
+
+ GdaExSqlBuilder *sqlb;
+ GValue *gval;
+
+ gchar *sql;
+
+ sqlb = gdaex_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
+
+ if (con_provincia)
+ {
+ gdaex_sql_builder_from_v (sqlb,
+ "comuni", "",
+ "province", "",
+ NULL);
+
+ gdaex_sql_builder_fields (sqlb,
+ "comuni", "id", "comuni_id", NULL,
+ "comuni", "nome", "comuni_nome", NULL,
+ "comuni", "cod_istat", "comuni_cod_istat", NULL,
+ "comuni", "cap", "comuni_cap", NULL,
+ "comuni", "id_province", "comuni_id_province", NULL,
+ "comuni", "capoluogo", "comuni_capoluogo", NULL,
+ "comuni", "status", "comuni_status", NULL,
+ "province", "id", "province_id", NULL,
+ "province", "nome", "province_nome", NULL,
+ "province", "cod_istat", "province_cod_istat", NULL,
+ "province", "sigla", "province_sigla", NULL,
+ "province", "id_regioni", "province_id_regioni", NULL,
+ "province", "status", "province_status", NULL,
+ NULL);
+
+ gdaex_sql_builder_join (sqlb, GDA_SQL_SELECT_JOIN_INNER,
+ "comuni", "id_province", "",
+ GDA_SQL_OPERATOR_TYPE_EQ,
+ "province", "id", "",
+ NULL);
+
+ gval = zak_utils_gvalue_new_string ("E");
+ gdaex_sql_builder_where (sqlb, 0,
+ "province", "status", "",
+ GDA_SQL_OPERATOR_TYPE_DIFF,
+ gval,
+ NULL);
+ g_value_unset (gval);
+ }
+ else
+ {
+ gdaex_sql_builder_from_v (sqlb,
+ "comuni", "",
+ NULL);
+
+ gdaex_sql_builder_fields (sqlb,
+ "comuni", "id", "comuni_id", NULL,
+ "comuni", "nome", "comuni_nome", NULL,
+ "comuni", "cod_istat", "comuni_cod_istat", NULL,
+ "comuni", "cap", "comuni_cap", NULL,
+ "comuni", "id_province", "comuni_id_province", NULL,
+ "comuni", "capoluogo", "comuni_capoluogo", NULL,
+ "comuni", "status", "comuni_status", NULL,
+ NULL);
+ }
+
+ gval = zak_utils_gvalue_new_string ("E");
+ gdaex_sql_builder_where (sqlb, 0,
+ "comuni", "status", "comuni_status",
+ GDA_SQL_OPERATOR_TYPE_DIFF,
+ gval,
+ NULL);
+ g_value_unset (gval);
+
+ sql = g_strdup_printf ("SELECT %s FROM %s WHERE %s%s",
+ gdaex_sql_builder_get_sql_select (sqlb, NULL, NULL),
+ gdaex_sql_builder_get_sql_from (sqlb, NULL, NULL),
+ gdaex_sql_builder_get_sql_where (sqlb, NULL, NULL),
+ where != NULL ? where : "");
+
+ dm = gdaex_query (commons->gdaex, sql);
+ g_free (sql);
+
+ return dm;
+}
+
/* PRIVATE */
static void
territorio_comuni_carica (TerritorioComuni *territorio_comuni)
gchar *sql;
gchar *sql_where;
- GValue *gvalue;
gchar *gcval;
gint ival;
sql_where);
gdaex_grid_fill_from_sql (priv->grid,
- priv->commons->gdaex,
- sql,
- NULL);
+ priv->commons->gdaex,
+ sql,
+ NULL);
g_free (sql);
}