Etablissement.cs 41 KB

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