Etablissement.cs 42 KB

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