Etablissement.cs 31 KB

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