sprAdd.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * ДОБАВЛЕНИЕ ЗАЯВЛЕНИЯ РОДИТЕЛЕЙ О ПРИЧИНЕ ПРОПУСКА УРОКОВ
  3. * Copyright © 2024, А.М.Гольдин. Modified BSD License
  4. */
  5. "use strict";
  6. // Аргументы: ["med", "2019-09-02", "2019-09-02", "petrov"]
  7. // Первый аргумент: med - медицинская справка
  8. // doc - документ организации</option>
  9. // fam - семейные обстоятельства
  10. // Последний аргумент - логин родителя (он же логин ребенка)
  11. // (с фронтенда не передается, подписывается скриптом index.js)
  12. // Возвращает "success" или "none"
  13. module.exports = async (args) => {
  14. try {
  15. if (args.length != 4) return "none";
  16. let vid = args[0].substr(0, 3).trim(),
  17. start = args[1].substr(0, 10).trim(),
  18. fin = args[2].substr(0, 10).trim(),
  19. lgn = args[3].substr(0, 30).trim();
  20. if (!vid || !start || !fin || !lgn) return "none";
  21. let dtPatt = /^\d{4}-\d{2}-\d{2}$/;
  22. if (!dtPatt.test(start) || !dtPatt.test(fin)) return "none";
  23. if (start > fin) return "none";
  24. // Определяем класс ребенка
  25. let pupRes = await dbFind("pupils", {Ulogin: lgn});
  26. if (!pupRes.length) return "none";
  27. let pupClass = pupRes[0].Uclass;
  28. // Пишем новую запись в базу
  29. await db.spravki.insert({
  30. Uclass: pupClass, pupil: lgn, vid: "par",
  31. start: start, fin: fin, prim: vid, state: "new"
  32. });
  33. return "success";
  34. }
  35. catch(e) {return "none";}
  36. };