2
0

json.class.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <?php
  2. class json extends db
  3. {
  4. public function __construct()
  5. {
  6. }
  7. public static function create(string $_target)
  8. {
  9. if (isset($_target)) {
  10. if (preg_match('/^banque-lignes-(\d+)$/', $_target, $matches)) {
  11. return self::create_banque_lignes((int)$matches[1]);
  12. }
  13. switch ($_target) {
  14. case "salaries":
  15. return self::create_salaries();
  16. break;
  17. case "excel":
  18. return self::create_excel();
  19. break;
  20. case "excel-proweb":
  21. return self::create_excelProweb();
  22. break;
  23. case "excel-proweb-dossiers":
  24. return self::create_excelProwebDossiers();
  25. break;
  26. case "events":
  27. return self::create_events();
  28. break;
  29. case "users":
  30. return self::create_users();
  31. break;
  32. case "salaries-proweb":
  33. return self::create_salariesProweb();
  34. break;
  35. case "dossiers-proweb":
  36. return self::create_dossiersProweb();
  37. break;
  38. case "lotterys":
  39. return self::create_lotterys();
  40. break;
  41. case "banque-csv":
  42. return self::create_banque_csv();
  43. break;
  44. case "documents":
  45. return self::create_document();
  46. break;
  47. case "documents-limited":
  48. return self::create_document("limited");
  49. break;
  50. }
  51. } else {
  52. return 0;
  53. }
  54. }
  55. public static function createBanks()
  56. {
  57. foreach (banque::getAll() as $compte) {
  58. self::create_banque_lignes($compte["id"]);
  59. }
  60. }
  61. private static function create_dossiersProweb()
  62. {
  63. $row = prowebDossiers::all();
  64. if (file_put_contents(DIR_DATAS_JSON . "dossiers-proweb.json", json_encode($row))) {
  65. return 1;
  66. } else {
  67. return 0;
  68. }
  69. }
  70. private static function create_salariesProweb()
  71. {
  72. $row = proweb::getBase();
  73. if (file_put_contents(DIR_DATAS_JSON . "salaries-proweb.json", json_encode($row))) {
  74. return 1;
  75. } else {
  76. return 0;
  77. }
  78. }
  79. private static function create_salaries()
  80. {
  81. $row = salaries::getSalaries();
  82. if (file_put_contents(DIR_DATAS_JSON . "salaries.json", json_encode($row))) {
  83. return 1;
  84. } else {
  85. return 0;
  86. }
  87. }
  88. private static function create_excel()
  89. {
  90. db::query("SELECT
  91. " . DB_T_EXCEL . ".id,
  92. " . DB_T_FILES . ".name,
  93. " . DB_T_EXCEL . ".nbSalaries,
  94. CONCAT(ROUND((" . DB_T_FILES . ".size / 1024 / 1024), 2), ' Mo') AS size,
  95. " . DB_T_EXCEL . ".md5,
  96. " . DB_T_EXCEL . ".cree,
  97. CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user',
  98. dateData,
  99. goMysql,
  100. md5forSFTP,
  101. log
  102. FROM " . DB_T_EXCEL . "
  103. INNER JOIN " . DB_T_USER . " ON " . DB_T_EXCEL . ".id_user = " . DB_T_USER . ".id
  104. LEFT JOIN " . DB_T_FILES . " ON " . DB_T_EXCEL . ".md5 = " . DB_T_FILES . ".id");
  105. $row = db::resultset();
  106. if (file_put_contents(DIR_DATAS_JSON . "excel.json", json_encode($row))) {
  107. return 1;
  108. } else {
  109. return 0;
  110. }
  111. }
  112. private static function create_excelProweb()
  113. {
  114. db::query("SELECT
  115. " . DB_T_EXCEL_PROWEB . ".id,
  116. " . DB_T_FILES . ".name,
  117. " . DB_T_EXCEL_PROWEB . ".nbSalaries,
  118. CONCAT(ROUND((" . DB_T_FILES . ".size / 1024 / 1024), 2), ' Mo') AS size,
  119. " . DB_T_EXCEL_PROWEB . ".md5,
  120. " . DB_T_EXCEL_PROWEB . ".cree,
  121. CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user',
  122. dateData
  123. FROM " . DB_T_EXCEL_PROWEB . "
  124. INNER JOIN " . DB_T_USER . " ON " . DB_T_EXCEL_PROWEB . ".id_user = " . DB_T_USER . ".id
  125. LEFT JOIN " . DB_T_FILES . " ON " . DB_T_EXCEL_PROWEB . ".md5 = " . DB_T_FILES . ".id");
  126. $row = db::resultset();
  127. if (file_put_contents(DIR_DATAS_JSON . "excel-proweb.json", json_encode($row))) {
  128. return 1;
  129. } else {
  130. return 0;
  131. }
  132. }
  133. private static function create_excelProwebDossiers(){
  134. db::query("SELECT
  135. " . DB_T_EXCEL_PROWEB_DOSSIERS . ".id,
  136. " . DB_T_FILES . ".name,
  137. " . DB_T_EXCEL_PROWEB_DOSSIERS . ".nbDossiers,
  138. CONCAT(ROUND((" . DB_T_FILES . ".size / 1024 / 1024), 2), ' Mo') AS size,
  139. " . DB_T_EXCEL_PROWEB_DOSSIERS . ".md5,
  140. " . DB_T_EXCEL_PROWEB_DOSSIERS . ".cree,
  141. CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user',
  142. dateData
  143. FROM " . DB_T_EXCEL_PROWEB_DOSSIERS . "
  144. INNER JOIN " . DB_T_USER . " ON " . DB_T_EXCEL_PROWEB_DOSSIERS . ".id_user = " . DB_T_USER . ".id
  145. LEFT JOIN " . DB_T_FILES . " ON " . DB_T_EXCEL_PROWEB_DOSSIERS . ".md5 = " . DB_T_FILES . ".id");
  146. $row = db::resultset();
  147. if (file_put_contents(DIR_DATAS_JSON . "excel-proweb-dossiers.json", json_encode($row))) {
  148. return 1;
  149. } else {
  150. return 0;
  151. }
  152. }
  153. private static function create_events()
  154. {
  155. $row = event::getEvents();
  156. if (file_put_contents(DIR_DATAS_JSON . "events.json", json_encode($row))) {
  157. return 1;
  158. } else {
  159. return 0;
  160. }
  161. }
  162. private static function create_lotterys()
  163. {
  164. $row = lottery::getLotterys();
  165. if (file_put_contents(DIR_DATAS_JSON . "lotterys.json", json_encode($row))) {
  166. return 1;
  167. } else {
  168. return 0;
  169. }
  170. }
  171. private static function create_users()
  172. {
  173. $row = user::getUsers();
  174. if (file_put_contents(DIR_DATAS_JSON . "users.json", json_encode($row))) {
  175. return 1;
  176. } else {
  177. return 0;
  178. }
  179. }
  180. private static function create_banque_csv()
  181. {
  182. $row = banque::getHistoriqueCSV();
  183. if (file_put_contents(DIR_DATAS_JSON . "banque-csv.json", json_encode($row))) {
  184. return 1;
  185. } else {
  186. return 0;
  187. }
  188. }
  189. private static function create_banque_lignes(int $_id)
  190. {
  191. $row = array(banque::getInitial($_id));
  192. $row2 = banque::getLignes($_id, $row[0]["solde"]);
  193. $return = array_merge($row, $row2);
  194. if (file_put_contents(DIR_DATAS_JSON . "banque-lignes-" . $_id . ".json", json_encode($return))) {
  195. return 1;
  196. } else {
  197. return 0;
  198. }
  199. }
  200. public static function delete(string $_target)
  201. {
  202. if (is_file(DIR_DATAS_JSON . "/" . $_target . ".json")) {
  203. unlink(DIR_DATAS_JSON . "/" . $_target . ".json");
  204. }
  205. }
  206. public static function testSFTP()
  207. {
  208. return (sftp::testAccessHost()) ? "OK" : "KO";
  209. }
  210. private static function create_document(?string $_limited = NULL)
  211. {
  212. $where = ($_limited == TRUE) ? " WHERE " . DB_T_DOCUMENTS . ".id_type != 3" : NULL;
  213. if(is_null($_limited)){
  214. $where = NULL;
  215. $file = "documents";
  216. } else {
  217. $where = " WHERE " . DB_T_DOCUMENTS . ".id_type != 3";
  218. $file = "documents-limited";
  219. }
  220. db::query("SELECT
  221. " . DB_T_DOCUMENTS . ".id,
  222. " . DB_T_DOCUMENTS . ".titre,
  223. " . DB_T_DOCUMENTS . ".date,
  224. " . DB_T_DOCUMENTS . ".deadline,
  225. " . DB_T_DOCUMENTS . ".description,
  226. " . DB_T_CLIENTS . ".label AS attach,
  227. " . DB_T_DOCUMENTS . ".montant,
  228. ( SELECT GROUP_CONCAT(" . DB_T_TAGS . ".label SEPARATOR ', ')
  229. FROM " . DB_T_DOCUMENT_TAGS . "
  230. INNER JOIN " . DB_T_TAGS . " ON " . DB_T_TAGS . ".id = " . DB_T_DOCUMENT_TAGS . ".id_tags
  231. WHERE id_documents = " . DB_T_DOCUMENTS . ".id AND " . DB_T_DOCUMENT_TAGS . ".id_type_tags = 2
  232. ORDER BY " . DB_T_DOCUMENT_TAGS . ".creer) AS tags,
  233. ( SELECT GROUP_CONCAT(" . DB_T_TAGS . ".label SEPARATOR ', ')
  234. FROM " . DB_T_DOCUMENT_TAGS . "
  235. INNER JOIN " . DB_T_TAGS . " ON " . DB_T_TAGS . ".id = " . DB_T_DOCUMENT_TAGS . ".id_tags
  236. WHERE id_documents = " . DB_T_DOCUMENTS . ".id AND " . DB_T_DOCUMENT_TAGS . ".id_type_tags = 1
  237. ORDER BY " . DB_T_DOCUMENT_TAGS . ".creer) AS assign,
  238. IF(" . DB_T_DOCUMENTS . ".id_user_done IS NOT NULL, 'Traité', 'Non traité') AS done,
  239. " . DB_T_TYPE_DOCUMENT . ".label
  240. FROM " . DB_T_DOCUMENTS . "
  241. LEFT JOIN " . DB_T_CLIENTS . " ON " . DB_T_CLIENTS . ".id = " . DB_T_DOCUMENTS . ".id_client
  242. INNER JOIN " . DB_T_TYPE_DOCUMENT . " ON " . DB_T_TYPE_DOCUMENT . ".id = " . DB_T_DOCUMENTS . ".id_type" . $where);
  243. $row = db::resultset();
  244. if (file_put_contents(DIR_DATAS_JSON . $file . ".json", json_encode($row))) {
  245. return 1;
  246. } else {
  247. return 0;
  248. }
  249. }
  250. }