Advertisement
sowamaciej

Untitled

May 20th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.93 KB | None | 0 0
  1. ********************************************************* TRIGGER 1 - KLASA NIE PRZEKROCZYŁA MAKSYMALNEJ ILOŚCI OSÓB PRZY DODAWANIU NOWEGO UCZNIA DO KLASY *********************************************************
  2.  
  3. if(inserted(id_uczen, id_klasy))
  4. {
  5. if(klasaDostepna(id_klasy))
  6. INSERT;
  7. else
  8. {
  9. print("Klasa osiągnęła limit 25 osób");
  10. break;
  11. }
  12. }
  13.  
  14. klasaDostepna(id_klasy)
  15. {
  16. liczba_uczniow = SELECT COUNT(id_uczen) FROM Uczen
  17. WHERE Uczen.id_klasy = id_klasy;
  18.  
  19. if(liczba_uczniow <= 25)
  20. return 1;
  21. else
  22. return 0;
  23. }
  24.  
  25.  
  26.  
  27. ********************************************************* TRIGGER 2 - ZAJECIA DODATKOWE NIE KOLIDUJĄ Z PLANEM ZAJEC UCZNIA *********************************************************
  28.  
  29. if(insertUczenZajeciaDodatkowe(id_uczen, id_zajecia_dodatkowe))
  30. {
  31. id_godzina_lekcyjna = SELECT id_godzina_lekcyjna FROM Plan_zajec_dodatkowych as plan
  32. WHERE plan.id_zajecia_dodatkowe = id_zajecia_dodatkowe;
  33.  
  34. id_dzien_tygodnia = SELECT id_dzien_tygodnia FROM Plan_zajec_dodatkowych as plan
  35. WHERE id_zajecia_dodatkowe = plan.id_zajecia_dodatkowe;
  36. if(uczenDostepny(id_godzina_lekcyjna, id_uczen, id_dzien_tygodnia)
  37. INSERT;
  38. else
  39. {
  40. print("Uczen ma w tym czasie zajecia");
  41. break;
  42. }
  43. }
  44.  
  45. uczenDostepny(id_godzina_lekcyjna, id_uczen, id_dzien_tygodnia)
  46. {
  47. id_klasy = SELECT id_klasa FROM Uczen
  48. WHERE Uczen.id_uczen == id_uczen;
  49.  
  50. if(sprawdzCzySaZajecia(id_klasy, id_godzina_lekcyjna, id_dzien_tygodnia))
  51. return 0;
  52. else
  53. return 1;
  54. }
  55.  
  56. sprawdzCzySaZajecia(id_klasy, id_godzina_lekcyjna)
  57. {
  58. if exists(SELECT 1 FROM Plan_zajec as Plan
  59. WHERE Plan.id_klasy = id_klasy
  60. AND Plan.id_godzina_lekcyjna = id_godzina_lekcyjna
  61. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia)
  62. {
  63. return 0;
  64. }
  65. else
  66. return 1;
  67.  
  68.  
  69. }
  70.  
  71.  
  72. ********************************************************* TRIGGER 3 - ZAJĘCIA DODATKOWE NIE KOLIDUJĄ Z PLANEM NAUCZYCIELA ANI Z SALĄ *********************************************************
  73.  
  74. if(inserted(id_zajecia_dodatkowe, id_nauczyciel, id_dzien_tygodnia, id_sala, id_godzina_lekcyjna))
  75. {
  76. if(nieKolidujeZPlanemNauczyciela(id_nauczyciel, id_dzien_tygodnia, id_godzina_lekcyjna))
  77.  
  78. if(nieKolidujeZSala(id_sala, id_dzien_tygodnia, id_godzina_lekcyjna))
  79. {
  80. INSERT;
  81. }
  82. else
  83. {
  84. print("Ten termin zajec dodatkowych koliduje z salą");
  85. }
  86. else
  87. {
  88. print("Ten termin zajec dodatkowych koliduje z planem nauczyciela");
  89. }
  90. }
  91.  
  92. nieKolidujeZPlanemNauczyciela(id_nauczyciel, id_dzien_tygodnia, id_godzina_lekcyjna)
  93. {
  94. if exists(SELECT 1 FROM Plan_zajec as Plan
  95. WHERE Plan.id_nauczyciel = id_nauczyciel
  96. AND Plan.id_godzina_lekcyjna = id_godzina_lekcyjna
  97. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia)
  98. {
  99. return 0;
  100. }
  101. else
  102. return 1;
  103. }
  104.  
  105. nieKolidujeZSala(id_sala, id_dzien_tygodnia, id_godzina_lekcyjna)
  106. {
  107. if exists(SELECT 1 FROM Plan_zajec as Plan
  108. WHERE Plan.id_sala = id_sala
  109. AND Plan.id_godzina_lekcyjna = id_godzina_lekcyjna
  110. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia)
  111. {
  112. return 0;
  113. }
  114. else
  115. return 1;
  116. }
  117.  
  118.  
  119. ********************************************************* TRIGGER 4 - NOWA LEKCJA NIE PRZEKRACZA MAKSYMALNEJ ILOŚCI GODZIN LEKCYJNYCH DLA KLASY W DANYM DNIU *********************************************************
  120.  
  121.  
  122. if(INSERTED(id_klasa, id_dzien_tygodnia, id_nauczyciela)
  123. {
  124. if(dzienDostepnyDlaKlasy(id_klasa, id_dzien_tygodnia))
  125. {
  126. if(dzienDostepnyDlaNauczyciela(id_nauczyciel, id_dzien_tygodnia))
  127. INSERT;
  128. else
  129. {
  130. print("Nauczyciel przekroczył maksymalną ilość godzin w tym dniu");
  131. }
  132. }
  133. else
  134. {
  135. print("Klasa przekroczyła maksymalną ilość godzin w tym dniu");
  136. }
  137. }
  138.  
  139.  
  140. dzienDostepnyDlaKlasy(id_klasa, id_dzien_tygodnia)
  141. {
  142. ilosc_godzin = SELECT COUNT(id_klasa) FROM Plan_zajec as Plan
  143. WHERE Plan.id_klasa = id_klasa
  144. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia;
  145.  
  146. if(ilosc_godzin < 8)
  147. return 1;
  148. else
  149. return 0;
  150. }
  151.  
  152. dzienDostepnyDlaNauczyciela(id_nauczyciel, id_dzien_tygodnia)
  153. {
  154. ilosc_godzin = SELECT COUNT(id_nauczyciel) FROM Plan_zajec as Plan
  155. WHERE Plan.id_nauczyciel = id_nauczyciel
  156. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia;
  157.  
  158. if(ilosc_godzin < 8)
  159. return 1;
  160. else
  161. return 0;
  162. }
  163.  
  164.  
  165. ********************************************************* PROCEDURA 1 - SPRAWDZ OBECNOSC *********************************************************
  166.  
  167.  
  168. if (isnerted(id_klasy, id_godzina_lekcyjna, id_data))
  169. {
  170. sprawdzObecnosc();
  171. }
  172. else
  173. {
  174. INSERT LEKCJA;
  175. sprawdzObecnosc();
  176. }
  177.  
  178. sprawdzObecnosc(id_klasa,id_lekcja)
  179. {
  180. i = 0;
  181. ilosc_uczniow=SELECT COUNT(id_ucznia) FROM Uczen
  182. WHERE Uczen.id_klasa=id_klasa
  183. for (i = 0; i < ilosc_uczniow; i++) {
  184. INSERT FREKWENCJA;
  185. }
  186. }
  187.  
  188. ********************************************************* PROCEDURA 2 - DODAJ LEKCJE *********************************************************
  189. dodajLekcje(id_lekcja) {
  190. id_plan_zajec = SELECT 1 FROM Lekcja
  191. WHERE Lekcja.id_lekcja = id_lekcja;
  192. if (inserted(SELECT id_typ_sali FROM Sala
  193. where Sala.id_sala=id_sala))
  194. {
  195. INSERT LEKCJA
  196. }
  197. else {
  198. INSERT (nowy TYP_SALI)
  199. INSERT LEKCJA
  200. }
  201. }
  202. ********************************************************* PROCEDURA 3 - DODAWANE ZASTEPSTWO POD WARUNKIEM ZE NAUCZYCIEL MOZE JE PRZEPROWADZIC I MA ODPOWIEDNIE KWALIFIKACJE *********************************************************
  203. if (nauczycielDostepny(id_godzina_lekcyjna, id_nauczyciel, id_dzien_tygodnia))
  204. {
  205. if (dzienDostepnyDlaNauczyciela(id_nauczyciel, id_dzien_tygodnia))
  206. {
  207. if (nauczycielWykwalifikowany(id_plan_zajec, id_przedmiot))
  208. {
  209. if (inserted(id_typ_Wydarzenia))
  210. {
  211. INSERT ZASTEPSTWO;
  212. }
  213. else
  214. {
  215. INSERT(nowy_typ_wydarzenia);
  216. INSERT ZASTEPSTWO;
  217. }
  218. }
  219. print("Nauczyciel nie jest wykwalifikowany by prowadzic ten przedmiot")
  220. }
  221. print("Nauczyciel w tym dniu osiągnął limit godzin")
  222. }
  223. print ("Nauczyciel ma w tym czasie zajęcia")
  224. nauczycielDostepny(id_godzina_lekcyjna, id_nauczyciel, id_dzien_tygodnia)
  225. {
  226.  
  227. id_nauczyciel_przedmiot = SELECT * FROM Nauczyciel_Przedmiot as N_Przedmiot
  228. WHERE N_Przedmiot.id_nauczyciel = id_nauczyciel;
  229. while (id_nauczyciel_przedmiot) {
  230. if exists(SELECT 1 FROM Plan_zajec as Plan
  231. WHERE Plan.id_nauczyciel_przedmiot = id_nauczycielPrzedmiot
  232. AND Plan.id_godzina_lekcyjna = id_godzina_lekcyjna
  233. AND Plan.id_dzien_tygodnia = id_dzien_tygodnia)
  234. {
  235. return 0;
  236. }
  237. }
  238. return 1;
  239. }
  240. ********************************************************* PROCEDURA 4 - DODAJ OCENE *********************************************************
  241. if (inserted(id_kategoria_oceny))
  242. {
  243. INSERT OCENA;
  244. }
  245. else
  246. {
  247. INSERT(nowa kategoria oceny);
  248. INSERT OCENA;
  249. }
  250.  
  251. ********************************************************* PROCEDURA 5 - DODAJ SALE *********************************************************
  252. if (inserted(id_typ_sali))
  253. {
  254. INSERT SALA;
  255. }
  256. else
  257. {
  258. INSERT(nowy typ sali);
  259. INSERT SALA;
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement