Etablissement.cs 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Xml.Serialization;
  5. namespace CG67.FicheCollege.Domaine
  6. {
  7. // pointeurs de fonction, lasy-loading.
  8. public delegate IList<ActionEducative> dlgLoadActionEducative(string codeRNE, int annee);
  9. public delegate IList<ClasseDecouverte> dlgLoadClasseDecouverte(string codeRNE, int annee);
  10. public delegate IList<ATC> dlgLoadATC(string codeRNE);
  11. public delegate IList<ContratAide> dlgLoadContratAide(string codeRNE);
  12. public delegate IList<Bilinguisme> dlgLoadBilinguisme(string codeRNE, int annee);
  13. public delegate Commentaires dlgLoadCommentaires(string codeRNE, int annee);
  14. public delegate IList<Contact> dlgLoadContact(string codeRNE);
  15. public delegate Dotation dlgLoadDotation(string codeRNE, int annee);
  16. public delegate IList<InvestissementDCE> dlgLoadInvestissementDCE(string codeRNE, int annee);
  17. public delegate IList<Investissement> dlgLoadInvestissement(string codeRNE, int annee);
  18. public delegate IList<EffectifDetail> dlgLoadEffectifDetail(string codeRNE, int annee);
  19. public delegate MCG dlgLoadMCG(string codeRNE);
  20. public delegate Logement dlgLoadLogement(string codeRNE);
  21. public delegate IList<ProgTravaux> dlgLoadProgTravaux(string codeRNE, int annee);
  22. public delegate IList<ProjetPilote> dlgLoadProjetPilote(string codeRNE, int annee);
  23. public delegate Restauration dlgLoadRestauration(string codeRNE, int annee);
  24. public delegate SoutienScolaireEnLigne dlgLoadSoutienScolaireEnLigne(string codeRNE, int annee);
  25. [Serializable]
  26. public class Etablissement
  27. {
  28. #region Propriétés
  29. #region Loaders
  30. private dlgLoadActionEducative LoaderActionEducative;
  31. private dlgLoadClasseDecouverte LoaderClasseDecouverte;
  32. private dlgLoadATC LoaderATC;
  33. private dlgLoadContratAide LoaderContratAide;
  34. private dlgLoadBilinguisme LoaderBilinguisme;
  35. private dlgLoadCommentaires LoaderCommentaires;
  36. private dlgLoadContact LoaderContact;
  37. private dlgLoadDotation LoaderDotation;
  38. private dlgLoadInvestissementDCE LoaderInvestissementDCE;
  39. private dlgLoadInvestissement LoaderInvestissement;
  40. private dlgLoadEffectifDetail LoaderEffectifDetail;
  41. private dlgLoadMCG LoaderMCG;
  42. private dlgLoadLogement LoaderLogement;
  43. private dlgLoadProgTravaux LoaderProgTravaux;
  44. private dlgLoadProjetPilote LoaderProjetPilote;
  45. private dlgLoadRestauration LoaderRestauration;
  46. private dlgLoadSoutienScolaireEnLigne LoaderSoutienScolaireEnLigne;
  47. #endregion
  48. /// <summary>
  49. /// Code RNE de l'établissement.
  50. /// </summary>
  51. private string mCodeRNE;
  52. /// <summary>
  53. /// annee de generation de la fiche.
  54. /// </summary>
  55. private int mAnnee;
  56. /// annee civil de l'année en cours.
  57. /// </summary>
  58. private int mAnneeCivil;
  59. /// <summary>
  60. /// Nom de l'établissement.
  61. /// </summary>
  62. private string mNom;
  63. /// <summary>
  64. /// Type de l'établissement de l'établissement.
  65. /// </summary>
  66. private string mTypeEtablissement;
  67. /// <summary>
  68. /// Année de contruction de l'établissement.
  69. /// </summary>
  70. private int mAnneConstruction;
  71. /// <summary>
  72. /// Telephone de l'établissement.
  73. /// </summary>
  74. private string mTelephone;
  75. /// <summary>
  76. /// E-Mail de l'établissement.
  77. /// </summary>
  78. private string mEmail;
  79. /// <summary>
  80. /// Fax de l'établissement.
  81. /// </summary>
  82. private string mFax;
  83. /// <summary>
  84. /// Nom du propriétaire de l'établissement.
  85. /// </summary>
  86. private string mNomProprietaire;
  87. /// <summary>
  88. /// Valeur théorique ETP (Equivalent Temps Plein) de l'établissement.
  89. /// </summary>
  90. private double mValeurETPTheorique;
  91. /// <summary>
  92. /// Montant de la réserve monétaire de l'établissement.
  93. /// </summary>
  94. private double mReserve;
  95. /// <summary>
  96. /// IListe des actions éducatives dont l'établissement participe.
  97. /// </summary>
  98. private IList<ClasseDecouverte> mLstClasseDecouverte;
  99. /// <summary>
  100. /// IListe des actions éducatives dont l'établissement participe.
  101. /// </summary>
  102. private IList<ActionEducative> mLstActionEducatives;
  103. /// <summary>
  104. /// IListe des projets pilotes dont l'établissement participe.
  105. /// </summary>
  106. private IList<ProjetPilote> mLstProjetPilote;
  107. /// <summary>
  108. /// Dotation à l'année N de l'établissement.
  109. /// </summary>
  110. private Dotation mDotationAnneeN;
  111. /// <summary>
  112. /// Dotation à l'année N - 1 de l'établissement.
  113. /// </summary>
  114. private Dotation mDotationAnneeNmoins1;
  115. /// <summary>
  116. /// IListe des investissements de l'établissement.
  117. /// </summary>
  118. private IList<Investissement> mLstInvestissement;
  119. /// IListe des effectifs SEGPA l'établissement.
  120. /// </summary>
  121. private IList<EffectifDetail> mLstEffectifDetail;
  122. /// <summary>
  123. /// IListe du nombre d'effectif collégien sur les 10 dernières années
  124. /// </summary>
  125. private IList<Effectif> mLstEffectif;
  126. /// <summary>
  127. /// Surface d'emprise de l'établissement
  128. /// </summary>
  129. private double mSurface;
  130. /// <summary>
  131. /// IListe des années de restructuration
  132. /// </summary>
  133. private IList<int> mLstRestructuration;
  134. /// <summary>
  135. /// Principal, gesionnaire et conseiller general de l'établissement (Civilité, Nom, Prénom)
  136. /// </summary>
  137. private IList<Contact> mContacts;
  138. /// <summary>
  139. /// MCG de rattachement de l'établissement
  140. /// </summary>
  141. private MCG mMcgRattachement;
  142. /// <summary>
  143. /// Logement de fonction
  144. /// </summary>
  145. private Logement mLogementFonction;
  146. /// <summary>
  147. /// IListe d'ATC
  148. /// </summary>
  149. private IList<ATC> mLstATC;
  150. /// <summary>
  151. /// IListe des contrats Aidés
  152. /// </summary>
  153. private IList<ContratAide> mLstContratAide;
  154. /// <summary>
  155. /// IListe des équipements
  156. /// </summary>
  157. private IList<InvestissementDCE> mLstInvestissementDCE;
  158. /// <summary>
  159. /// Le(s) secteur(s) de recrutement de l'établissement.
  160. /// </summary>
  161. private IList<EtablissementRecrutement> mLstSecteurRecrutement;
  162. /// <summary>
  163. /// adresse de l'établissement.
  164. /// </summary>
  165. private string mAdresse;
  166. /// <summary>
  167. /// complément de l'adresse.
  168. /// </summary>
  169. private string mComplementAdresse;
  170. /// <summary>
  171. /// ville de l'établissement.
  172. /// </summary>
  173. private string mVille;
  174. /// <summary>
  175. /// Contient les commentaires utiles à différents moments de la fiche.
  176. /// </summary>
  177. private Commentaires mCommentairesGeneraux;
  178. /// <summary>
  179. /// Liste de travaux de n-1 à n+1
  180. /// </summary>
  181. private IList<ProgTravaux> mLstTravaux;
  182. /// <summary>
  183. /// objet restauration
  184. /// </summary>
  185. private Restauration mRestaurer;
  186. /// <summary>
  187. /// objet SoutienScolaireEnligne
  188. /// </summary>
  189. private SoutienScolaireEnLigne mSoutienScolaireEnLigne;
  190. /// <summary>
  191. /// Bilinguisme
  192. /// </summary>
  193. private IList<Bilinguisme> mBilingue;
  194. /// <summary>
  195. /// Code postal du l'établissement
  196. /// </summary>
  197. private int mCodePostal;
  198. /// <summary>
  199. /// Lien vers la photo du collège.
  200. /// </summary>
  201. private string mLienPhoto;
  202. /// <summary>
  203. /// nombre total de remplacements d'ATC
  204. /// </summary>
  205. private int mNbrRemplacementsATC;
  206. private int mNbrRemplacementsContratAide;
  207. private bool mIsRestautant;
  208. private bool mIsInternat;
  209. private int mEffectifTheorique;
  210. #endregion
  211. #region méthodes get/set
  212. /// <summary>
  213. /// Obtient ou définit le Code RNE de l'établissement.
  214. /// </summary>
  215. public string CodeRNE
  216. {
  217. get { return mCodeRNE; }
  218. set { mCodeRNE = value; }
  219. }
  220. /// <summary>
  221. /// Obtient ou définit le Nom de l'établissement.
  222. /// </summary>
  223. public string Nom
  224. {
  225. //si le collège n'a pas de nom, on retourne la ville du collège (ex : collège de truchtersheim)
  226. get
  227. {
  228. if (mNom == string.Empty)
  229. return "de " + mVille;
  230. return mNom;
  231. }
  232. set { mNom = value; }
  233. }
  234. /// <summary>
  235. /// Obtient ou définit le Type de l'établissement.
  236. /// </summary>
  237. public string TypeEtablissement
  238. {
  239. get { return mTypeEtablissement; }
  240. set { mTypeEtablissement = value; }
  241. }
  242. /// <summary>
  243. /// Obtient ou définit l'année de construction de l'établissement.
  244. /// </summary>
  245. public int AnneeConstruction
  246. {
  247. get { return mAnneConstruction; }
  248. set { mAnneConstruction = value; }
  249. }
  250. /// <summary>
  251. /// Obtient ou définit le téléphone de l'établissement.
  252. /// </summary>
  253. public string Telephone
  254. {
  255. get { return mTelephone; }
  256. set { mTelephone = value; }
  257. }
  258. /// <summary>
  259. /// Obtient ou définit l'email de l'établissement.
  260. /// </summary>
  261. public string Email
  262. {
  263. get { return mEmail; }
  264. set { mEmail = value; }
  265. }
  266. /// <summary>
  267. /// Obtient ou définit le fax de l'établissement.
  268. /// </summary>
  269. public string Fax
  270. {
  271. get { return mFax; }
  272. set { mFax = value; }
  273. }
  274. /// <summary>
  275. /// Obtient ou définit le Nom du propriétaire de l'établissement.
  276. /// </summary>
  277. public string NomProprietaire
  278. {
  279. get { return mNomProprietaire; }
  280. set { mNomProprietaire = value; }
  281. }
  282. /// <summary>
  283. /// Obtient ou définit la valeur ETP Théorique de l'établissement.
  284. /// </summary>
  285. public double ValeurETPTheorique
  286. {
  287. get { return mValeurETPTheorique; }
  288. set { mValeurETPTheorique = value; }
  289. }
  290. /// <summary>
  291. /// Obtient ou définit la réserve monétaire de l'établissement.
  292. /// </summary>
  293. public double Reserve
  294. {
  295. get { return mReserve; }
  296. set { mReserve = value; }
  297. }
  298. /// <summary>
  299. /// Obtient ou définit la IListe des Classes de découvertes auxquels l'établissement participe.
  300. /// </summary>
  301. public IList<ClasseDecouverte> LstClasseDecouverte
  302. {
  303. get
  304. {
  305. if (mLstClasseDecouverte == null)
  306. mLstClasseDecouverte = this.LoaderClasseDecouverte(mCodeRNE, mAnnee);
  307. return mLstClasseDecouverte;
  308. }
  309. set { mLstClasseDecouverte = value; }
  310. }
  311. /// <summary>
  312. /// Obtient ou définit la IListe des actions éducatives auxquels l'établissement participe.
  313. /// </summary>
  314. public IList<ActionEducative> LstActionEducatives
  315. {
  316. get
  317. {
  318. if (mLstActionEducatives == null)
  319. mLstActionEducatives = this.LoaderActionEducative(mCodeRNE, mAnnee);
  320. return mLstActionEducatives;
  321. }
  322. set { mLstActionEducatives = value; }
  323. }
  324. /// <summary>
  325. /// Obtient ou définit la IListe des projets pilotes auxquels l'établissement participe.
  326. /// </summary>
  327. public IList<ProjetPilote> LstProjetPilote
  328. {
  329. get
  330. {
  331. if (mLstProjetPilote == null)
  332. mLstProjetPilote = this.LoaderProjetPilote(mCodeRNE, mAnnee);
  333. return mLstProjetPilote;
  334. }
  335. set { mLstProjetPilote = value; }
  336. }
  337. /// <summary>
  338. /// Obtient ou définit la dotation à l'année N de l'établissement.
  339. /// </summary>
  340. public Dotation DotationAnneeN
  341. {
  342. get
  343. {
  344. if (mDotationAnneeN == null)
  345. mAnneeCivil = System.DateTime.Now.Year;
  346. if (System.DateTime.Now.Month > 8)
  347. mAnneeCivil += 1;
  348. mDotationAnneeN = this.LoaderDotation(mCodeRNE, mAnneeCivil);
  349. return mDotationAnneeN;
  350. }
  351. set { mDotationAnneeN = value; }
  352. }
  353. /// <summary>
  354. /// Obtient ou définit la dotation à l'année N - 1 de l'établissement.
  355. /// </summary>
  356. public Dotation DotationAnneeNmoins1
  357. {
  358. get
  359. {
  360. if (mDotationAnneeNmoins1 == null)
  361. mAnneeCivil = System.DateTime.Now.Year;
  362. if (System.DateTime.Now.Month > 8)
  363. mAnneeCivil += 1;
  364. mDotationAnneeNmoins1 = this.LoaderDotation(mCodeRNE, mAnneeCivil - 1);
  365. return mDotationAnneeNmoins1;
  366. }
  367. set { mDotationAnneeNmoins1 = value; }
  368. }
  369. /// <summary>
  370. /// Obtient ou définit la IListe des investissements de l'établissement.
  371. /// </summary>
  372. public IList<Investissement> LstInvestissement
  373. {
  374. get
  375. {
  376. if (mLstInvestissement == null)
  377. mLstInvestissement = this.LoaderInvestissement(mCodeRNE, mAnnee);
  378. return mLstInvestissement;
  379. }
  380. set { mLstInvestissement = value; }
  381. }
  382. /// <summary>
  383. /// liste des effectifs de SEGPA, CLA , UPI
  384. /// </summary>
  385. public IList<EffectifDetail> LstEffectifDetail
  386. {
  387. get
  388. {
  389. if (mLstEffectifDetail == null)
  390. mLstEffectifDetail = this.LoaderEffectifDetail(mCodeRNE, mAnnee);
  391. return mLstEffectifDetail;
  392. }
  393. set { mLstEffectifDetail = value; }
  394. }
  395. /// <summary>
  396. /// Obtient ou définit la IListe du nombre d'effectif collégien sur les 10 dernières années
  397. /// </summary>
  398. public IList<Effectif> LstEffectif
  399. {
  400. get { return mLstEffectif; }
  401. set { mLstEffectif = value; }
  402. }
  403. /// <summary>
  404. /// Obtient ou définit la surface d'emprise de l'établissement
  405. /// </summary>
  406. public double Surface
  407. {
  408. get { return mSurface; }
  409. set { mSurface = value; }
  410. }
  411. /// <summary>
  412. /// Obtient ou définit le IListe des années de restructuration
  413. /// </summary>
  414. public IList<int> LstRestructuration
  415. {
  416. get { return mLstRestructuration; }
  417. set { mLstRestructuration = value; }
  418. }
  419. /// <summary>
  420. /// Obtient au définit le principal de l'établissement (Civilité, Nom, Prénom)
  421. /// </summary>
  422. public IList<Contact> Contacts
  423. {
  424. get {
  425. if (mContacts == null)
  426. mContacts = this.LoaderContact(mCodeRNE);
  427. return mContacts; }
  428. set { mContacts = value; }
  429. }
  430. /// <summary>
  431. /// Obtient ou définit la MCG re rattachement de l'établissement.
  432. /// </summary>
  433. public MCG McgRattachement
  434. {
  435. get
  436. {
  437. if (mMcgRattachement == null)
  438. mMcgRattachement = this.LoaderMCG(mCodeRNE);
  439. return mMcgRattachement;
  440. }
  441. set { mMcgRattachement = value; }
  442. }
  443. /// <summary>
  444. /// Obtient ou définit un objet Logement
  445. /// </summary>
  446. public Logement LogementDeFonction
  447. {
  448. get
  449. {
  450. if (mLogementFonction == null)
  451. mLogementFonction = this.LoaderLogement(mCodeRNE);
  452. return mLogementFonction;
  453. }
  454. set { mLogementFonction = value; }
  455. }
  456. /// <summary>
  457. /// Obtient ou définit la IListe d'ATC
  458. /// </summary>
  459. public IList<ATC> LstATC
  460. {
  461. get
  462. {
  463. if (mLstATC == null)
  464. mLstATC = this.LoaderATC(mCodeRNE);
  465. return mLstATC;
  466. }
  467. set { mLstATC = value; }
  468. }
  469. /// <summary>
  470. /// Obtient ou définit la IListe d'ATC
  471. /// </summary>
  472. public IList<ContratAide> LstContratAide
  473. {
  474. get
  475. {
  476. if (mLstContratAide == null)
  477. mLstContratAide = this.LoaderContratAide(mCodeRNE);
  478. return mLstContratAide;
  479. }
  480. set { mLstContratAide = value; }
  481. }
  482. /// <summary>
  483. /// Obtient ou définit la IListe des équipements obtenus.
  484. /// </summary>
  485. public IList<InvestissementDCE> LstInvestissementDCE
  486. {
  487. get
  488. {
  489. if (mLstInvestissementDCE == null)
  490. mLstInvestissementDCE = this.LoaderInvestissementDCE(mCodeRNE, mAnnee);
  491. return mLstInvestissementDCE;
  492. }
  493. set { mLstInvestissementDCE = value; }
  494. }
  495. /// <summary>
  496. /// Obtient ou définit le(s) secteur(s) de recrutement de l'établissement.
  497. /// </summary>
  498. public IList<EtablissementRecrutement> LstSecteurRecrutement
  499. {
  500. get { return mLstSecteurRecrutement; }
  501. set { mLstSecteurRecrutement = value; }
  502. }
  503. public string Adresse
  504. {
  505. get { return mAdresse; }
  506. set { mAdresse = value; }
  507. }
  508. public string ComplementAdresse
  509. {
  510. get { return mComplementAdresse; }
  511. set { mComplementAdresse = value; }
  512. }
  513. public string Ville
  514. {
  515. get { return mVille; }
  516. set { mVille = value; }
  517. }
  518. public Commentaires CommentaireGeneraux
  519. {
  520. get
  521. {
  522. if (mCommentairesGeneraux == null)
  523. mCommentairesGeneraux = this.LoaderCommentaires(mCodeRNE, mAnnee);
  524. return mCommentairesGeneraux;
  525. }
  526. set { mCommentairesGeneraux = value; }
  527. }
  528. public IList<ProgTravaux> LstTravaux
  529. {
  530. get
  531. {
  532. if (mLstTravaux == null)
  533. mLstTravaux = this.LoaderProgTravaux(mCodeRNE, mAnnee);
  534. return mLstTravaux;
  535. }
  536. set { mLstTravaux = value; }
  537. }
  538. public Restauration Restaurer
  539. {
  540. get
  541. {
  542. if (mRestaurer == null)
  543. mRestaurer = this.LoaderRestauration(mCodeRNE, mAnnee);
  544. return mRestaurer;
  545. }
  546. set { mRestaurer = value; }
  547. }
  548. public SoutienScolaireEnLigne SoutienScolaireLigne
  549. {
  550. get
  551. {
  552. if (mSoutienScolaireEnLigne == null)
  553. mSoutienScolaireEnLigne = this.LoaderSoutienScolaireEnLigne(mCodeRNE, mAnnee);
  554. return mSoutienScolaireEnLigne;
  555. }
  556. set { mSoutienScolaireEnLigne = value; }
  557. }
  558. public IList<Bilinguisme> LstBilingue
  559. {
  560. get
  561. {
  562. if (mBilingue == null)
  563. mBilingue = this.LoaderBilinguisme(mCodeRNE, mAnnee);
  564. return mBilingue;
  565. }
  566. set { mBilingue = value; }
  567. }
  568. public int CodePostal
  569. {
  570. get { return mCodePostal; }
  571. set { mCodePostal = value; }
  572. }
  573. /// <summary>
  574. /// sera utilisé pour l'affichage sur la première page.
  575. /// </summary>
  576. public string NomCollegePourPresentation
  577. {
  578. get { return mVille + " - Collège " + Nom; }
  579. }
  580. public string LienPhoto
  581. {
  582. get { return mLienPhoto; }
  583. set { mLienPhoto = value; }
  584. }
  585. public int NbrRemplacementsATC
  586. {
  587. get { return mNbrRemplacementsATC; }
  588. set { mNbrRemplacementsATC = value; }
  589. }
  590. public int NbrRemplacementsContratAide
  591. {
  592. get { return mNbrRemplacementsContratAide; }
  593. set { mNbrRemplacementsContratAide = value; }
  594. }
  595. #endregion
  596. #region autres méthodes
  597. /// <summary>
  598. /// retourne le principal de l'établissement
  599. /// </summary>
  600. public string Principal
  601. {
  602. get
  603. {
  604. string retour = string.Empty;
  605. foreach (Contact cont in Contacts)
  606. if (cont.Fonction.ToLower() == "principal")
  607. retour = cont.Civilite + " " + Utile.formatStringPrenom(cont.Prenom) + " " + cont.Nom.ToUpper();
  608. return retour;
  609. }
  610. }
  611. /// <summary>
  612. /// retourne le gestionnaire de l'établissement
  613. /// </summary>
  614. public string Gestionnaire
  615. {
  616. get
  617. {
  618. string retour = string.Empty;
  619. foreach (Contact cont in Contacts)
  620. if (cont.Fonction.ToLower() == "gestionnaire")
  621. retour = cont.Civilite + " " + Utile.formatStringPrenom(cont.Prenom) + " " + cont.Nom.ToUpper();
  622. return retour;
  623. }
  624. }
  625. /// <summary>
  626. /// retourne le conseiller general de l'établissement
  627. /// </summary>
  628. public string ConseillerGeneral
  629. {
  630. get
  631. {
  632. string retour = string.Empty;
  633. foreach (Contact cont in Contacts)
  634. if (cont.Fonction.ToLower() == "conseiller général")
  635. retour = cont.Civilite + " " + Utile.formatStringPrenom(cont.Prenom) + " " + cont.Nom.ToUpper();
  636. return retour;
  637. }
  638. }
  639. /// <summary>
  640. /// retourne la phrase decrivant l'effectif de l'établissement
  641. /// </summary>
  642. public string Effectif
  643. {
  644. get
  645. {
  646. int nbrElevesReel = 0;
  647. //le dernier enregistrement de cette liste est l'effectif actuel.
  648. foreach (Effectif effectif in LstEffectif)
  649. if (effectif.TypeEffectif == "R")
  650. nbrElevesReel = effectif.EffectifTotal;
  651. string retour = nbrElevesReel + " élèves";
  652. return retour;
  653. }
  654. }
  655. /// <summary>
  656. /// retourne la phrase concernant le(s) restructurations de l'établissement
  657. /// </summary>
  658. public string PhraseRestructuration
  659. {
  660. get
  661. {
  662. string retour = string.Empty;
  663. foreach (int anneeRestruct in LstRestructuration)
  664. {
  665. if (LstRestructuration.Count == 1)
  666. {
  667. retour = Convert.ToString(anneeRestruct);
  668. break;
  669. }
  670. else
  671. {
  672. if (retour == string.Empty)
  673. retour = "Plusieurs restructurations lourdes ont été effectuées, les années de celles-ci sont les suivantes : ";
  674. retour += "\n - " + anneeRestruct;
  675. }
  676. }
  677. if (retour == string.Empty)
  678. retour = "Néant";
  679. return retour;
  680. }
  681. }
  682. /// <summary>
  683. /// retourne le commentaire concernant le(s) aménagement(s) particulier(s) de l'établissement
  684. /// </summary>
  685. public string CommentaireAmenagementParticulier
  686. {
  687. get
  688. {
  689. return CommentaireGeneraux == null ? string.Empty : CommentaireGeneraux.AmenagementsParticuliers;
  690. }
  691. }
  692. /// <summary>
  693. /// retourne le commentaire concernant la programmation des travaux de l'établissement
  694. /// </summary>
  695. public string CommentaireProgTravaux
  696. {
  697. get
  698. {
  699. return CommentaireGeneraux == null ? string.Empty : CommentaireGeneraux.ProgrammationTravaux;
  700. }
  701. }
  702. /// <summary>
  703. /// retourne le commentaire concernant le secteur de recrutement de l'établissement
  704. /// </summary>
  705. public string CommentaireSecteurRecrutement
  706. {
  707. get
  708. {
  709. return CommentaireGeneraux == null ? string.Empty : CommentaireGeneraux.SecteurRecrutement;
  710. }
  711. }
  712. /// <summary>
  713. /// retourne le commentaire concernant le graphique d'évolution des effectifs de l'établissement
  714. /// </summary>
  715. public string CommentaireGraphique
  716. {
  717. get
  718. {
  719. return CommentaireGeneraux == null ? string.Empty : CommentaireGeneraux.TableauEffectif;
  720. }
  721. }
  722. /// <summary>
  723. /// retourne le commentaire concernant les prévisions d'éffectifs ATC de l'établissement
  724. /// </summary>
  725. public string CommentairePrevisionEffectifATC
  726. {
  727. get
  728. {
  729. return CommentaireGeneraux == null ? string.Empty : CommentaireGeneraux.PrevisionEffectifATC;
  730. }
  731. }
  732. /// <summary>
  733. /// retourne la phrase concernant la programmation des travaux de l'établissement
  734. /// </summary>
  735. //public string PhraseProgTravaux
  736. //{
  737. // get
  738. // {
  739. // string retour = string.Empty;
  740. // string type = string.Empty;
  741. // //la requete trie déja par ordre de type d'opération.
  742. // foreach (ProgTravaux prog in LstTravaux)
  743. // {
  744. // if (prog.TypeOperation == type)
  745. // {
  746. // retour += "\n\n" + prog.TypeOperation + " :";
  747. // }
  748. // retour += "\n" + prog.Annee + " : " + prog.Libelle;
  749. // type = prog.TypeOperation;
  750. // }
  751. // if (retour == string.Empty)
  752. // retour = "néant";
  753. // return retour;
  754. // }
  755. //}
  756. /// <summary>
  757. /// retourne la phrase concernant le secteur de recrutement de l'établissement
  758. /// </summary>
  759. public string PhraseSecteurRecrutement
  760. {
  761. get
  762. {
  763. string retour = string.Empty;
  764. int i=0;
  765. foreach (EtablissementRecrutement com in LstSecteurRecrutement)
  766. {
  767. if (i == 0)
  768. {
  769. retour = com.Libelle;
  770. i++;
  771. }
  772. else
  773. {
  774. retour += ", " + com.Libelle;
  775. }
  776. }
  777. if (retour == string.Empty)
  778. retour = "l'information n'est actuellement pas disponible";
  779. return retour;
  780. }
  781. }
  782. /// <summary>
  783. /// retourne la phrase concernant les prévisions sur 5 ans de l'établissement
  784. /// </summary>
  785. public string PhrasePrevision5Ans
  786. {
  787. get
  788. {
  789. int nbrActuel = 0;
  790. int nbrPrev = 0;
  791. int nbrEvolution = 0;
  792. string retour;
  793. foreach (Effectif effectif in LstEffectif)
  794. {
  795. if (effectif.TypeEffectif =="P")
  796. nbrPrev = effectif.EffectifTotal;
  797. if (effectif.TypeEffectif == "R")
  798. nbrActuel = effectif.EffectifTotal;
  799. }
  800. nbrEvolution = nbrPrev - nbrActuel;
  801. if (nbrActuel == 0)
  802. {
  803. return "calcul impossible, nbrActuelle =0";
  804. }
  805. double pourcentageEvol = (double) nbrEvolution * 100 / (double)nbrActuel;
  806. if (nbrEvolution < 0)
  807. {
  808. retour = string.Format("Diminution de {0} élèves, soit {1:##0.00}% sur les cinq prochaines années.", (nbrActuel - nbrPrev), pourcentageEvol);
  809. }
  810. else if (nbrEvolution == 0)
  811. {
  812. retour = "néant";
  813. }
  814. else
  815. {
  816. retour = string.Format("Augmentation de {0} élèves, soit +{1:##0.00}% sur les cinq prochaines années.",nbrEvolution,pourcentageEvol);
  817. }
  818. return retour;
  819. }
  820. }
  821. /// <summary>
  822. /// retourne la phrase concernant le total d'ATC de l'établissement
  823. /// </summary>
  824. // public string PhraseTotalATC
  825. // {
  826. // get
  827. // {
  828. // int nbr = 0;
  829. // foreach (ATC adjoint in LstATC)
  830. // if (adjoint.ValeurETP < 1)
  831. // nbr++;
  832. // if (nbr != 0)
  833. // //return LstATC.Count + " agents , dont " + nbr + " à temps partiel.";
  834. // return LstATC.Count + " agents.";
  835. // else
  836. // return LstATC.Count + " agents.";
  837. // }
  838. // }
  839. /// <summary>
  840. /// retourne la phrase concernant la valeur ETP totale des ATC de l'établissement
  841. /// </summary>
  842. // public string PhraseValeurETP
  843. // {
  844. // get
  845. // {
  846. // double valeurReel = 0;
  847. // foreach (ATC adjoint in LstATC)
  848. // valeurReel += adjoint.ValeurETP;
  849. // string retour = "ETP réels : " + valeurReel + "\nEtp Barème : " + ValeurETPTheorique + "\nEcart : ";
  850. // double ecart = valeurReel - ValeurETPTheorique;
  851. // if (ecart >= 0)
  852. // retour += ecart;
  853. // else
  854. // retour += (ecart - ecart * 2);
  855. // return retour;
  856. // }
  857. // }
  858. /// <summary>
  859. /// retourne la phrase concernant le nombre de jours de formation des ATC de l'établissement
  860. /// </summary>
  861. // public string PhraseNombreJoursFormation
  862. // {
  863. // get
  864. // {
  865. // int valeur = 0;
  866. // foreach (ATC adjoint in LstATC)
  867. // valeur += adjoint.NbJoursFormation;
  868. // return valeur + " jours.";
  869. // }
  870. // }
  871. /// <summary>
  872. /// retourne la phrase concernant le(s) remplacement(s) de l'établissement
  873. /// </summary>
  874. ///
  875. public string PhraseRemplacements
  876. {
  877. get
  878. {
  879. if (NbrRemplacementsATC == 0)
  880. return "néant";
  881. else if (NbrRemplacementsATC == 1)
  882. return "Le remplacement d'un agent à été assuré";
  883. else
  884. return "Le remplacement de " + NbrRemplacementsATC + " à été assuré";
  885. }
  886. }
  887. /// <summary>
  888. /// retourne la phrase concernant le total de contrat aidé
  889. /// </summary>
  890. public string PhraseTotalContratAide
  891. {
  892. get
  893. {
  894. // int nbr = 0;
  895. // foreach (ContratAide adjoint in LstContratAide)
  896. // if (adjoint.Quotite < 1)
  897. // nbr++;
  898. // if (nbr != 0)
  899. //return LstATC.Count + " agents , dont " + nbr + " à temps partiel.";
  900. // return LstContratAide.Count + " agents.";
  901. // else
  902. return LstContratAide.Count + " agents.";
  903. }
  904. }
  905. /// <summary>
  906. /// retourne la phrase concernant la valeur ETP totale des ATC de l'établissement
  907. /// </summary>
  908. //public string PhraseValeurETPContratAide
  909. // {
  910. // get
  911. // {
  912. // double valeurReel = 0;
  913. // foreach (ContratAide adjoint in LstContratAide)
  914. // valeurReel += adjoint.ValeurETP;
  915. // string retour = "ETP réels : " + valeurReel + "\nEtp Barème : " + ValeurETPTheorique + "\nEcart : ";
  916. // double ecart = valeurReel - ValeurETPTheorique;
  917. // if (ecart >= 0)
  918. // retour += ecart;
  919. // else
  920. // retour += (ecart - ecart * 2);
  921. // return retour;
  922. // }
  923. // }
  924. /// <summary>
  925. /// retourne la phrase concernant le nombre de jours de formation des ATC de l'établissement
  926. /// </summary>
  927. // public string PhraseNombreJoursFormationContratAide
  928. // {
  929. // get
  930. // {
  931. // int valeur = 0;
  932. // foreach (ContratAide adjoint in LstContratAide)
  933. // valeur += adjoint.NbJoursFormation;
  934. // return valeur + " jours.";
  935. // }
  936. // }
  937. /// <summary>
  938. /// retourne la phrase concernant le(s) remplacement(s) de l'établissement
  939. /// </summary>
  940. // public string PhraseRemplacementsContratAide
  941. // {
  942. // get
  943. // {
  944. // if (NbrRemplacementsContratAide == 0)
  945. // return "néant";
  946. // else if (NbrRemplacementsContratAide == 1)
  947. // return "Le remplacement d'un agent à été assuré";
  948. // else
  949. // return "Le remplacement de " + NbrRemplacementsContratAide + " à été assuré";
  950. // }
  951. // }
  952. public bool IsRestaurant
  953. {
  954. get { return mIsRestautant; }
  955. set { mIsRestautant = value; }
  956. }
  957. public bool IsInternat
  958. {
  959. get { return mIsInternat; }
  960. set { mIsInternat = value; }
  961. }
  962. public int EffectifTheorique
  963. {
  964. get { return mEffectifTheorique; }
  965. set { mEffectifTheorique = value; }
  966. }
  967. #endregion
  968. #region Constructeurs
  969. /// <summary>
  970. /// constructeur minimal d'établissement, sera utilisé au chargement de l'application.
  971. /// </summary>
  972. /// <param name="codeRNE"></param>
  973. /// <param name="nom"></param>
  974. /// <param name="ville"></param>
  975. public Etablissement(string codeRNE, string nom, string ville)
  976. {
  977. this.mCodeRNE = codeRNE;
  978. this.mNom = nom;
  979. this.mVille = ville;
  980. }
  981. public Etablissement(string codeRNE, int annee, string nom, string typeEtablissement, int anneeConstruction, string telephone, string email, string fax, string nomProprietaire, string adresse, string complementAdresse, int codePostal, string ville, string lienPhoto,
  982. bool isRestaurant,bool isInternat,int effectifTheorique,
  983. dlgLoadActionEducative loaderActionEducative,
  984. dlgLoadClasseDecouverte loaderClasseDecouverte,
  985. dlgLoadATC loaderATC,
  986. dlgLoadContratAide loaderContratAide,
  987. dlgLoadBilinguisme loaderBilinguisme,
  988. dlgLoadSoutienScolaireEnLigne loaderSoutienScolaireEnLigne,
  989. dlgLoadCommentaires loaderCommentaires,
  990. dlgLoadContact loaderContact,
  991. dlgLoadDotation loaderDotation,
  992. dlgLoadInvestissementDCE loaderInvestissementDCE,
  993. dlgLoadInvestissement loaderInvestissement,
  994. dlgLoadEffectifDetail loaderEffectifDetail,
  995. dlgLoadMCG loaderMCG, dlgLoadLogement loaderLogement,
  996. dlgLoadProgTravaux loaderProgTravaux,
  997. dlgLoadProjetPilote loaderProjetPilote,
  998. dlgLoadRestauration loaderRestauration)
  999. {
  1000. this.mCodeRNE = codeRNE;
  1001. this.mAnnee = annee;
  1002. this.mNom = nom;
  1003. this.mTypeEtablissement = typeEtablissement;
  1004. this.mAnneConstruction = anneeConstruction;
  1005. this.mTelephone = telephone;
  1006. this.mEmail = email;
  1007. this.mFax = fax;
  1008. this.mNomProprietaire = nomProprietaire;
  1009. this.mAdresse = adresse;
  1010. this.mComplementAdresse = complementAdresse;
  1011. this.mVille = ville;
  1012. this.mCodePostal = codePostal;
  1013. this.mLienPhoto = lienPhoto;
  1014. this.mIsRestautant = isRestaurant;
  1015. this.mIsInternat = isInternat;
  1016. this.mEffectifTheorique = effectifTheorique;
  1017. this.LoaderActionEducative = loaderActionEducative;
  1018. this.LoaderClasseDecouverte = loaderClasseDecouverte;
  1019. this.LoaderATC = loaderATC;
  1020. this.LoaderContratAide = loaderContratAide;
  1021. this.LoaderBilinguisme = loaderBilinguisme;
  1022. this.LoaderSoutienScolaireEnLigne = loaderSoutienScolaireEnLigne;
  1023. this.LoaderCommentaires = loaderCommentaires;
  1024. this.LoaderContact = loaderContact;
  1025. this.LoaderDotation = loaderDotation;
  1026. this.LoaderInvestissementDCE = loaderInvestissementDCE;
  1027. this.LoaderInvestissement = loaderInvestissement;
  1028. this.LoaderEffectifDetail = loaderEffectifDetail;
  1029. this.LoaderMCG = loaderMCG;
  1030. this.LoaderLogement = loaderLogement;
  1031. this.LoaderProgTravaux = loaderProgTravaux;
  1032. this.LoaderProjetPilote = loaderProjetPilote;
  1033. this.LoaderRestauration = loaderRestauration;
  1034. }
  1035. public Etablissement() { }
  1036. #endregion
  1037. }
  1038. }