atributomateria_update.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /* AJAX
  3. * Selecciona los atributos de una mateia
  4. * Recibe:
  5. * mat - ID de la materia
  6. */
  7. require_once("../../include/constantes.php");
  8. require_once("../../include/nocache.php");
  9. require_once("../../include/bd_pdo.php");
  10. require_once("../../classes/ValidaSesion.php");
  11. function getRGBA_color($hex, $nivel){
  12. list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
  13. $style = "rgba($r,$g, $b,";
  14. $a = 1.0;
  15. switch($nivel){
  16. case 0: $a = 0.15; break;
  17. //case 1: $a = 0.32; break;
  18. //case 2: $a = 0.48; break;
  19. case 3: $a = 0.50; break;
  20. //case 4: $a = 0.80; break;
  21. }
  22. $style .= "$a)";
  23. return $style;
  24. }
  25. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  26. $objSesion = new ValidaSesion($pdo, array(45, 25), APSA);
  27. if(!$objSesion->tieneAcceso()){
  28. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  29. }else if(!isset($_POST["mat"]) || !isset($_POST["plan"])){
  30. $return["error"] = "Error! No se recibió la información de la materia.";
  31. }else{
  32. $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  33. $mat = filter_input(INPUT_POST, "mat", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  34. $error = false;
  35. try{
  36. $pdo->beginTransaction();
  37. $stmt = $pdo->prepare('Select * from fd_materia_atributoegreso(NULL, :mat)');
  38. $stmt->bindParam(":mat", $mat);
  39. if(!$stmt->execute()){
  40. $return["error"] = "Ocurrió un error al actualizar los atributos de egreso.";
  41. $error = true;
  42. }
  43. if(!$error && isset($_POST["atributos"]) && count($_POST["atributos"])>0){
  44. $stmt = $pdo->prepare('Select * from fi_materia_atributoegreso(:plan, :id, :mat, :nivel, :orden)');
  45. $stmt->bindParam(":plan", $plan);
  46. $stmt->bindParam(":mat", $mat);
  47. $i=1;
  48. foreach($_POST["atributos"] as $atributo){
  49. if($atributo["id"]!= 0){
  50. $stmt->bindParam(":id", $atributo["id"]);
  51. $stmt->bindParam(":nivel", $atributo["nivel"]);
  52. $stmt->bindParam(":orden", $i);
  53. $i++;
  54. if(!$stmt->execute()){
  55. $return["error"] = "Ocurrió un error al insertar los atributos de egreso.";
  56. $error = true;
  57. }
  58. }
  59. }
  60. }
  61. if(!$error){
  62. $stmt = $pdo->prepare('Select * from fs_materia_atributoegreso(NULL, :mat)');
  63. $stmt->bindParam(":mat", $mat);
  64. if(!$stmt->execute()){
  65. $return["error"] .= "Ocurrió un error al leer los atributos de egreso.";
  66. }else{
  67. $rs = $stmt->fetchAll();
  68. $stmt->closeCursor();
  69. $stmt = null;
  70. $atributoArr = array();
  71. foreach($rs as $row){
  72. $atributoArr[] = array("id"=>$row["AtributoEgreso_id"] , "desc"=>substr($row["AtributoEgreso_desc"], 0, 50)."...",
  73. "nivel"=>$row["AtributoNivel_id"], "nivel_desc"=>$row["AtributoNivel_desc"],
  74. "color"=>getRGBA_color($row["AtributoEgresoGeneral_color"], $row["AtributoNivel_id"]));
  75. }
  76. $return["atributosArr"] = $atributoArr;
  77. }
  78. }
  79. if($error){
  80. $pdo->rollBack();
  81. }else{
  82. $pdo->commit();
  83. }
  84. }catch(PDOException $e) {
  85. $pdo->rollBack();
  86. $return["error"] = "Ocurrió un error al actualizar los atributos de egreso.";
  87. //print_r($e);
  88. }
  89. }
  90. $return["json"] = json_encode($return);
  91. echo json_encode($return);
  92. ?>