From 3bef5c036b09abb8119c451bb34d0e7f0e0590c0 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 13 Nov 2016 11:57:56 +0100 Subject: [PATCH] Tolta la combobox tipo prestazione in persona incarico (refs #645 #646). --- data/organigramma/form/persona_incarico.form | 13 ++++--- data/organigramma/gui/organigramma.gui | 27 ++++++-------- src/personaincarico.c | 37 +++++++++++++++++++- 3 files changed, 54 insertions(+), 23 deletions(-) diff --git a/data/organigramma/form/persona_incarico.form b/data/organigramma/form/persona_incarico.form index beec7fa..158f336 100644 --- a/data/organigramma/form/persona_incarico.form +++ b/data/organigramma/form/persona_incarico.form @@ -41,11 +41,14 @@ - - 0 - - SELECT id, nome FROM tipi_prestazione WHERE status <> 'E' ORDER BY nome - + + + + SELECT a.nome + FROM tipi_prestazione AS a + WHERE a.id = ##key0::gint + + diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui index f688a49..5fc9e88 100644 --- a/data/organigramma/gui/organigramma.gui +++ b/data/organigramma/gui/organigramma.gui @@ -5094,23 +5094,6 @@ 2 - - - True - False - True - - - - 1 - - - - - 1 - 3 - - True @@ -5258,6 +5241,16 @@ 4 + + + True + False + + + 1 + 3 + + True diff --git a/src/personaincarico.c b/src/personaincarico.c index f9980d9..a6bf201 100644 --- a/src/personaincarico.c +++ b/src/personaincarico.c @@ -30,6 +30,7 @@ #include "personaincarico.h" #include "nodi.h" +#include "tipiprestazione.h" #include "tipirapportolavoro.h" #include "profiliprofessionali.h" @@ -55,10 +56,13 @@ static gboolean organigramma_persona_incarico_on_w_organigramma_persona_incarico gpointer user_data); static void organigramma_persona_incarico_on_tipo_rapporto_lavoro_selezionato (gpointer instance, guint id, gpointer user_data); +static void organigramma_persona_incarico_on_tipo_prestazione_selezionato (gpointer instance, guint id, gpointer user_data); static void organigramma_persona_incarico_on_profilo_professionale_selezionato (gpointer instance, guint id, gpointer user_data); static void organigramma_persona_incarico_on_btn_ricerca_tipo_rapporto_lavoro_clicked (GtkButton *button, gpointer user_data); +static void organigramma_persona_incarico_on_btn_ricerca_tipo_prestazione_clicked (GtkButton *button, + gpointer user_data); static void organigramma_persona_incarico_on_btn_ricerca_profilo_professionale_clicked (GtkButton *button, gpointer user_data); @@ -151,7 +155,6 @@ OrganigrammaPersonaIncarico gtk_builder_add_objects_from_file (priv->commons->gtkbuilder, priv->commons->guifile, g_strsplit ( "lstore_posizioni_economiche" - "|lstore_tipi_prestazione" "|w_persona_incarico", "|", -1), &error); if (error != NULL) @@ -176,6 +179,8 @@ OrganigrammaPersonaIncarico g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder2"), "btn-browse-clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_ricerca_tipo_rapporto_lavoro_clicked), (gpointer)a); + g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder4"), + "btn-browse-clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_ricerca_tipo_prestazione_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "gtkformdecoder3"), "btn-browse-clicked", G_CALLBACK (organigramma_persona_incarico_on_btn_ricerca_profilo_professionale_clicked), (gpointer)a); @@ -363,6 +368,17 @@ organigramma_persona_incarico_on_tipo_rapporto_lavoro_selezionato (gpointer inst g_strdup_printf ("%d", id)); } +static void +organigramma_persona_incarico_on_tipo_prestazione_selezionato (gpointer instance, guint id, gpointer user_data) +{ + OrganigrammaPersonaIncarico *ia = (OrganigrammaPersonaIncarico *)user_data; + + OrganigrammaPersonaIncaricoPrivate *priv = ORGANIGRAMMA_PERSONA_INCARICO_GET_PRIVATE (ia); + + gtk_form_widget_set_value_stringify (gtk_form_get_form_widget_from_name (priv->form, "gtkformdecoder4"), + g_strdup_printf ("%d", id)); +} + static void organigramma_persona_incarico_on_profilo_professionale_selezionato (gpointer instance, guint id, gpointer user_data) { @@ -393,6 +409,25 @@ organigramma_persona_incarico_on_btn_ricerca_tipo_rapporto_lavoro_clicked (GtkBu gtk_widget_show (w); } +static void +organigramma_persona_incarico_on_btn_ricerca_tipo_prestazione_clicked (GtkButton *button, + gpointer user_data) +{ + GtkWidget *w; + + OrganigrammaPersonaIncarico *ia = (OrganigrammaPersonaIncarico *)user_data; + OrganigrammaPersonaIncaricoPrivate *priv = ORGANIGRAMMA_PERSONA_INCARICO_GET_PRIVATE (ia); + + OrganigrammaTipiPrestazione *c = organigramma_tipi_prestazione_new (priv->commons, TRUE); + + g_signal_connect (G_OBJECT (c), "selezionato", + G_CALLBACK (organigramma_persona_incarico_on_tipo_prestazione_selezionato), user_data); + + w = organigramma_tipi_prestazione_get_widget (c); + gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (priv->w)); + gtk_widget_show (w); +} + static void organigramma_persona_incarico_on_btn_ricerca_profilo_professionale_clicked (GtkButton *button, gpointer user_data) -- 2.49.0