Subversion Repositories eFlore/Applications.coel

Rev

Rev 1309 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
935 jpm 1
package org.tela_botanica.client.modeles.personne;
102 jpm 2
 
350 gduche 3
import java.util.Date;
102 jpm 4
import java.util.Iterator;
5
import java.util.Set;
6
 
827 gduche 7
import org.tela_botanica.client.Mediateur;
935 jpm 8
import org.tela_botanica.client.modeles.aDonnee;
993 gduche 9
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
1295 cyprien 10
import org.tela_botanica.client.util.Debug;
620 gduche 11
import org.tela_botanica.client.util.UtilString;
12
 
1331 cyprien 13
import com.extjs.gxt.ui.client.data.ModelData;
350 gduche 14
import com.google.gwt.core.client.GWT;
15
import com.google.gwt.i18n.client.DateTimeFormat;
102 jpm 16
import com.google.gwt.json.client.JSONObject;
17
 
18
public class Personne extends aDonnee {
208 jp_milcent 19
 
748 jpm 20
	private static final long serialVersionUID = -6974716696155349332L;
21
 
208 jp_milcent 22
	public static final String PREFIXE = "cp";
245 jp_milcent 23
	public static final String TELEPHONE_FIXE = "FIX";
24
	public static final String TELEPHONE_GSM = "GSM";
602 jp_milcent 25
	public static final String TELEPHONE_FAX = "FAX";
875 jpm 26
	public static final String ETRE_DECEDE = "30745";
27
	public static final String ETRE_VIVANT = "30746";
1150 gduche 28
	public static String[] champsObligatoires = {"cp_id_personne"};
208 jp_milcent 29
 
993 gduche 30
	private PublicationAPersonneListe publicationsLiees= null;
31
 
103 jpm 32
	public Personne() {
33
	}
1331 cyprien 34
 
35
	public Personne(ModelData model)
36
	{
37
		this.set("id_personne", model.get("cp_id_personne"));
38
		this.set("fmt_nom_complet", model.get("cp_fmt_nom_complet"));
39
		this.set("code_postal", model.get("cp_code_postal"));
40
		this.set("ville", model.get("cp_ville"));
41
		this.set("truk_courriel", model.get("cp_truk_courriel"));
42
	}
103 jpm 43
 
775 jpm 44
	public Personne(JSONObject personne) {
45
		initialiserModele(personne);
261 gduche 46
		//Ajout du champ courriel principal
947 gduche 47
		this.setCourrielPrinc(this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1));
102 jpm 48
	}
49
 
748 jpm 50
	@Override
51
	protected String getPrefixe() {
52
		return PREFIXE;
53
	}
54
 
1150 gduche 55
	protected String[] getChampsObligatoires()	{
56
		return champsObligatoires;
57
	}
58
 
875 jpm 59
	public Object obtenirValeurChamp(String nomChamp)	{
60
		return renvoyerValeurCorrecte(nomChamp);
61
	}
62
 
63
	public Date getDate(String nomChamp)	{
64
		String strDate = renvoyerValeurCorrecte(nomChamp);
65
		Date dateRetour = null;
66
		try {
67
			if ((strDate != null) && (!strDate.equals("0000-00-00"))) {
68
				dateRetour = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(strDate);
69
			}
70
		} catch (StringIndexOutOfBoundsException e)	{
71
			GWT.log("Impossible de parser la date " + strDate, e);
72
		}
73
		return dateRetour;
74
	}
75
 
76
	public String getString(String nomChamp)	{
77
		return String.valueOf(renvoyerValeurCorrecte(nomChamp));
78
	}
79
 
80
	//Traitement des truks
81
	protected void remplacerTypeDansChaineDenormalise(String champ, String type, Object valeur) {
82
		if (valeur != null && !valeur.equals("")) {
83
			ajouterChaineDenormaliseAvecType(champ, type, valeur);
84
		} else {
85
			supprimerTypeDansChaineDenormalise(champ, type);
86
		}
87
	}
88
	/**
89
	 * Ajoute un nouvel élément sans type à une chaine dénormalisée.
90
	 * Champ de type "truk" contenant seulement des valeurs séparées par ";;".
91
	 * Si l'élément existe déjà, il ne sera pas ajouté.
92
	 *
93
	 * @param champ le nom du champ dénormalisé
94
	 * @param valeur la valeur à ajouter
95
	 */
96
	protected void ajouterChaineDenormalise(String champ, Object valeur) {
97
		if (valeur instanceof String) {
98
			String chaineExistante = renvoyerValeurCorrecte(champ);
99
			if (chaineExistante.equals("")) {
100
				this.set(champ, valeur);
101
			} else {
102
				// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons
103
				if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) {
104
					this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur);
105
				}
106
			}
107
		}
108
	}
109
 
240 jp_milcent 110
	// ID PERSONNE
102 jpm 111
	public String getId() {
240 jp_milcent 112
		return renvoyerValeurCorrecte("id_personne");
102 jpm 113
	}
875 jpm 114
	public void setId(String personneId) {
115
		this.set("id_personne", personneId);
116
	}
102 jpm 117
 
609 jp_milcent 118
	// ID PROJET
119
	public String getIdProjet() {
120
		return renvoyerValeurCorrecte("ce_projet");
121
	}
122
 
240 jp_milcent 123
	// NOM COMPLET
124
	public String getNomComplet() {
125
		return renvoyerValeurCorrecte("fmt_nom_complet");
181 gduche 126
	}
912 jpm 127
	public void setNomComplet(String nomComplet) {
128
		this.set("fmt_nom_complet", nomComplet);
129
	}
875 jpm 130
	public void setFmtNomComplet(String prefixe, String suffixe)	{
131
		String fmtNomComplet = "";
912 jpm 132
 
875 jpm 133
		if ((prefixe != null)&&(!prefixe.trim().equals("")))	{
134
			fmtNomComplet += prefixe + " ";
135
		}
136
 
137
		if ((this.getPrenom()!=null)&&(!this.getPrenom().trim().equals("")))	{
138
			fmtNomComplet += this.getPrenom() + " ";
139
		}
140
 
141
		if ((this.getNom()!=null)&&(!this.getNom().trim().equals("")))	{
142
			fmtNomComplet += this.getNom() + " ";
143
		}
144
 
145
		if ((suffixe!=null)&&(!suffixe.trim().equals("")))	{
146
			fmtNomComplet += suffixe;
147
		}
912 jpm 148
 
149
		setNomComplet(UtilString.ucFirst(fmtNomComplet));
875 jpm 150
	}
181 gduche 151
 
240 jp_milcent 152
	// NOM
153
	public String getNom() {
154
		return renvoyerValeurCorrecte("nom");
181 gduche 155
	}
912 jpm 156
	public void setNom(String nom) {
157
		set("nom", nom);
158
	}
181 gduche 159
 
240 jp_milcent 160
	// PRÉNOM
161
	public String getPrenom() {
162
		return renvoyerValeurCorrecte("prenom");
238 aurelien 163
	}
912 jpm 164
	public void setPrenom(String prenom) {
165
		set("prenom", prenom);
166
	}
238 aurelien 167
 
240 jp_milcent 168
	// TÉLÉPHONE
169
	public String getTelephone() {
170
		return renvoyerValeurCorrecte("truk_telephone");
171
	}
172
	public void setTelephone(String t) {
173
		this.set("truk_telephone", t);
174
	}
245 jp_milcent 175
	public void ajouterTelephone(String type, Object valeur) {
240 jp_milcent 176
		ajouterChaineDenormaliseAvecType("truk_telephone", type, valeur);
177
	}
245 jp_milcent 178
	public String selectionnerTelephone(String type) {
179
		return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), type);
180
	}
240 jp_milcent 181
 
182
	// FAX
183
	public String getFax() {
184
		return renvoyerValeurCorrecte("truk_fax");
185
	}
186
	public void setFax(String f) {
187
		this.set("truk_fax", f);
188
	}
245 jp_milcent 189
	public void ajouterFax(Object valeur) {
240 jp_milcent 190
		ajouterChaineDenormalise("truk_fax", valeur);
191
	}
245 jp_milcent 192
	public String selectionnerFax(int position) {
193
		return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_fax"), position);
194
	}
240 jp_milcent 195
 
196
	// COURRIEL
197
	public String getCourriel() {
198
		return renvoyerValeurCorrecte("truk_courriel");
199
	}
200
	public void setCourriel(String c) {
201
		this.set("truk_courriel", c);
202
	}
245 jp_milcent 203
	public void ajouterCourriel(String c) {
240 jp_milcent 204
		ajouterChaineDenormalise("truk_courriel", c);
205
	}
245 jp_milcent 206
	public String selectionnerCourriel(int position) {
207
		return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_courriel"), position);
208
	}
240 jp_milcent 209
 
210
	// SPÉCIALITÉ
211
	public String getSpecialite() {
212
		return renvoyerValeurCorrecte("ce_truk_specialite");
213
	}
214
	public void setSpecialite(String s) {
215
		// Pas de liste pour l'instant, donc tout passe dans "Autre".
216
		setChaineDenormaliseUnique("ce_truk_specialite", "AUTRE", s);
217
	}
245 jp_milcent 218
	public String afficherSpecialite() {
219
		return getChaineDenormaliseUnique("ce_truk_specialite");
220
	}
240 jp_milcent 221
 
875 jpm 222
	// NAISSANCE DATE
223
	public String getNaissanceDate()	{
224
		String dateNaiss = "";
225
		dateNaiss = get("naissance_date");
226
		if (UtilString.isEmpty(dateNaiss)||dateNaiss.equals("0000-00-00"))	{
227
			dateNaiss = Mediateur.i18nC.inconnue();
228
		}
229
		return dateNaiss;
181 gduche 230
	}
1270 jpm 231
 
1309 cyprien 232
	public String getDateSouple(String date) {
233
		String valeurDate = date;
234
 
235
		String jour = "";
236
		String mois = "";
237
		String annee = "";
238
 
239
		// pas de date dans la BD
240
		if (UtilString.isEmpty(valeurDate) || valeurDate.equals("0000-00-00")) {
241
			valeurDate  = "";
242
 
243
		// YYYY
244
		} else if (valeurDate.endsWith("00-00")) {
245
			valeurDate = valeurDate.substring(0, 4);
246
			if (valeurDate.matches("\\d{4}")) {
247
				jour = "";
248
				mois = "";
249
				annee = valeurDate.substring(0,4);
250
				valeurDate = annee;
1295 cyprien 251
			}
1309 cyprien 252
 
253
		// YYYY-MM
254
		} else if (valeurDate.endsWith("-00")) {
255
			valeurDate = valeurDate.substring(0, 7);
256
			if (valeurDate.matches("\\d{4}-\\d{2}")) {
257
				jour = "";
258
				mois = valeurDate.substring(5,7);
259
				annee = valeurDate.substring(0,4);
260
				valeurDate = mois+"/"+annee;
261
			}
262
		}
263
 
264
		// YYYY-MM-DD
265
		else if (valeurDate.matches("\\d{4}-\\d{2}-\\d{2}")) {
266
			Date objetDate = DateTimeFormat.getFormat("yyyy-MM-dd").parse(valeurDate);
267
			DateTimeFormat fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
268
			valeurDate = fmt.format(objetDate);
269
		}
1295 cyprien 270
 
1309 cyprien 271
		 return valeurDate;
1270 jpm 272
	}
273
 
1309 cyprien 274
	public String getAnneeOuDateNaiss()	{
275
		String valeurDateNaissance = get("naissance_date");
276
		return getDateSouple(valeurDateNaissance);
277
	}
278
 
455 gduche 279
	public void setNaissanceDate(Date naissanceDate) {
280
		if (naissanceDate != null) {
281
			this.set("naissance_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(naissanceDate));
1188 gduche 282
		} else {
283
			this.set("naissance_date", null);
455 gduche 284
		}
285
	}
286
 
875 jpm 287
	// NAISSANCE LIEU
288
	public String getNaissanceLieu() {
289
		return renvoyerValeurCorrecte("naissance_lieu");
827 gduche 290
	}
875 jpm 291
	public void setNaissanceLieu(String naissanceLieu) {
292
		this.set("naissance_lieu", naissanceLieu);
827 gduche 293
	}
294
 
875 jpm 295
	// DÉCÉS
827 gduche 296
	public boolean estDecedee()	{
875 jpm 297
		String ceDeces = getDeces();
298
		if (ceDeces.isEmpty() || ceDeces.equals(ETRE_DECEDE))	{
1185 gduche 299
			return true;
300
		} else {
827 gduche 301
			return false;
302
		}
303
	}
1270 jpm 304
 
875 jpm 305
	public String getDeces()	{
306
		return renvoyerValeurCorrecte("ce_deces");
455 gduche 307
	}
1270 jpm 308
 
309
	public String getAnneeOuDateDeces()	{
1309 cyprien 310
		String valeurDateDeces = get("deces_date");
311
		return getDateSouple(valeurDateDeces);
1270 jpm 312
	}
313
 
875 jpm 314
	public void setDeces(String deces)	{
315
		set("ce_deces", deces);
316
	}
1270 jpm 317
 
875 jpm 318
	public void setDeces(Date decesDate, String lieuDeces)	{
319
		set("ce_deces", ETRE_DECEDE);
320
		setDecesDate(decesDate);
321
		setDecesLieu(lieuDeces);
322
	}
323
	public void setNonDecedee()	{
324
		set("ce_deces", ETRE_VIVANT);
325
		setDecesDate(null);
326
		setDecesLieu("");
327
	}
455 gduche 328
 
875 jpm 329
	// DÉCÉS DATE
827 gduche 330
	public String getDecesDate()	{
875 jpm 331
		String dateDeces = renvoyerValeurCorrecte("deces_date");
332
		if (UtilString.isEmpty(dateDeces) || dateDeces.equals("0000-00-00"))	{
827 gduche 333
			dateDeces = Mediateur.i18nC.inconnue();
334
		}
335
		return dateDeces;
336
	}
1270 jpm 337
 
875 jpm 338
	public void setDecesDate(Date decesDate) {
339
		if (decesDate != null)	{
340
			this.set("deces_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(decesDate));
341
		}	else	{
342
			this.set("deces_date", "");
827 gduche 343
		}
344
	}
345
 
875 jpm 346
	// DÉCÉS LIEU
347
	public String getDecesLieu() {
348
		return renvoyerValeurCorrecte("deces_lieu");
455 gduche 349
	}
875 jpm 350
	public void setDecesLieu(String decesLieu) {
351
		this.set("deces_lieu", decesLieu);
818 gduche 352
	}
912 jpm 353
 
354
	// PARAMÊTRE
355
	public String getParametre() {
356
		return renvoyerValeurCorrecte("parametre");
357
	}
358
	public void setParametre(String parametre) {
359
		this.set("parametre", parametre);
360
	}
947 gduche 361
 
362
	public void setCourrielPrinc(String courriel)	{
363
		this.set("_courriel_princ_", courriel);
364
	}
365
 
366
	public String getCourrielPrinc()	{
367
		return (String) this.get("_courriel_princ_");
368
	}
993 gduche 369
 
370
	// PUBLICATIONS LIÉES
371
	public PublicationAPersonneListe getPublicationsLiees() {
372
		return publicationsLiees;
373
	}
374
 
375
	public void setPublicationsLiees(PublicationAPersonneListe relationsCollectionAPublication) {
376
		publicationsLiees = relationsCollectionAPublication;
377
	}
947 gduche 378
}
379