Guest User

Untitled

a guest
Jan 18th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.38 KB | None | 0 0
  1. function recuperaDatos(){
  2.  
  3. var elForm = document.querySelector("#form1"), //O simplemente 'form1'
  4. valores = []; //Array en el que se guardarán los valores
  5.  
  6. [].forEach.call(elForm.elements, function(elemento){ //Recorro el conjunto de elementos
  7. if (elemento.value == " " || elemento.value == null) {
  8.  
  9. }
  10. valores.push(elemento.value); //Guardo el valor de cada elemento en el array
  11. });
  12.  
  13. //Guardo todo de manera local
  14. datosLocal += localStorage.form1 = JSON.stringify({
  15. elementos: elForm.innerHTML, //Los elementos del formulario
  16. id: elForm.id || "", //El 'id' del formulario o una cadena vacía
  17. method: "POST", //El método establecido o "GET"
  18. //action: "add", //La dirección hacia la que se enviarán los datos o una cadena vacía
  19. enctype: elForm.enctype || "", //El tipo de contenido del formulario o una cadena vacía
  20. datos: valores //El array con los valores de los elementos del formulario
  21. });
  22.  
  23. }
  24.  
  25. function enviaPost(){
  26. var caed = '/caed';
  27. if ( window.location.host != 'nodo.pw' || window.location.host != 'elmaguire.local:5757' ) {
  28. caed = '';
  29. }
  30. var guardado = JSON.parse(datosLocal);
  31. console.log(guardado['datos']);
  32.  
  33. $.ajax({
  34. type:"POST",
  35. url: url+ "/users/add",
  36. dataType: 'JSON',
  37. data: JSON.stringify(guardado['datos']),
  38. success: function (data) {
  39. console.log('Sin conexion a internet. Los datos se gusrdaran localmente para enviarlos al restablecer la conexion a internet');
  40. console.log(data);
  41. },
  42. error: function(e) {
  43. console.log( 'error add - not found'+e);
  44. }
  45. });
  46.  
  47.  
  48. }
  49.  
  50. public function add($type_user = '')
  51. {
  52.  
  53. $idLoggedUser = $this->Auth->user('id');
  54. $role = $this->Auth->user('role');
  55. $cnterUsrLogged = $this->Auth->user('center_id');
  56.  
  57. $user_id = '';
  58. $errors = [];
  59. date_default_timezone_set('America/Mexico_City');
  60. $date = date('Y-m-d');
  61.  
  62.  
  63. $roles = $this->Users->Roles->find('Roles',[
  64. 'profile' =>$role,
  65. 'idLoggedUser'=>$idLoggedUser,
  66. 'idUserEdit'=>''
  67. ])->combine('name', 'full_name');
  68.  
  69. $centros = $this->Users->Centers->find('Centers',[
  70. 'profile' =>$role,
  71. 'center_id' => $cnterUsrLogged
  72. ]);
  73. $centers = $centros->combine('id', 'plantel'); //para select
  74.  
  75.  
  76. $estados = $this->Users->States->find();
  77. $states = $estados->combine('id', 'name'); //para select
  78.  
  79. $discapacidades = $this->Users->Disabilities->find();
  80. $disabilities = $discapacidades->combine('id', 'nombre'); //para select
  81.  
  82. $discapEspecificas = $this->Users->Specificdisabilities->find();
  83. $specificdisabilities= $discapEspecificas->combine('id', 'nombre'); //para select
  84.  
  85.  
  86. //Inicia manejo de datos del formulario
  87. $user = $this->Users->newEntity();
  88.  
  89.  
  90. if ($this->request->is('post')) {
  91.  
  92. $this->request->data['owners'][0]['id'] = $this->Auth->user('id');
  93. $this->request->data['owners'][0]['_joinData']['notification_id'] = '1';
  94. $this->request->data['owners'][0]['_joinData']['date'] = date('Y-m-d');
  95.  
  96. if($role == 'auxiliar'){
  97. $this->request->data['owners'][1]['id'] = $this->Auth->user('user_created_id');;
  98. $this->request->data['owners'][1]['_joinData']['notification_id'] = '1';
  99. $this->request->data['owners'][1]['_joinData']['date'] = date('Y-m-d');
  100. }
  101.  
  102. $user = $this->Users->patchEntity($user, $this->request->getData(),['associated' => ['Owners._joinData']]);
  103.  
  104. //$this->request->data['foto'] = $this->request->data['fotousuario'];
  105. //$this->request->data['firma'] = $this->request->data['firmausuario'];
  106.  
  107. $user->fecha_inscripcion = $date;
  108. $user->full_name = $user->nombre .' '.$user->ap_paterno.' '.$user->ap_materno;
  109. $user->user_created_id = $this->Auth->user('id');
  110. $user->categoria = 'Activo';
  111. if($role == 'auxiliar'){
  112. $user->role = 'estudiante';
  113. $user->center_id = $cnterUsrLogged;
  114. }
  115.  
  116. // debug( $user); exit;
  117. //Para generar la matricula
  118. if ( $user->role == 'estudiante') {
  119. $matricula = $this->matricula($estados, $user->state_id, $discapacidades , $user->disability_id, $discapEspecificas, $user->specificdisability_id, $user->center_id);
  120. $user->matricula = $matricula;
  121. }
  122.  
  123. //cargar Imagen
  124. if(!$user->errors() && $this->request->data['foto']['error'] != 4){
  125. $fileOK = $this->uploadFiles('files'.DS.'Users', $this->request->data['foto'], $user->curp,'foto');
  126. if(array_key_exists('filename', $fileOK)) {
  127. $user->foto = $fileOK['filename'];
  128. $user->alt = $fileOK['alt'];
  129. $user->dir = $fileOK['dir'];
  130. }
  131. }
  132. //carga firma
  133.  
  134. if(!$user->errors() && $this->request->data['firma']['error'] != 4){
  135. //debug($this->request->data['firma']); exit;
  136. $file_ok = $this->uploadFiles('files'.DS.'Users', $this->request->data['firma'], $user->curp,'firma');
  137. if(array_key_exists('filename', $file_ok)) {
  138. $user->firma = $file_ok['filename'];
  139. $user->alt_firma = $file_ok['alt'];
  140. $user->dir_firma = $file_ok['dir'];
  141. }
  142. }
  143. //debug($this->request->data);
  144.  
  145. $errors = $user->errors();
  146.  
  147.  
  148.  
  149. if ($this->Users->save($user, ['associated' => ['Owners._joinData']])) {
  150.  
  151. //Guarda la notificacion para el id del nuevo usuario
  152. $notificationsUsers = TableRegistry::get('notificationsUsers');
  153. $notifUsr = $notificationsUsers->newEntity();
  154. $notifUsr->date = date('Y-m-d');
  155. $notifUsr->owner_id = $user->id;
  156. $notifUsr->user_id = $user->id;
  157. $notifUsr->notification_id = 1;
  158. $notificationsUsers->save( $notifUsr);
  159.  
  160. //send email
  161. $content_notif = $this->Users->Notifications->find('all', ['conditions' => ['type' => 'registro'] ])
  162. ->first()->toArray() ;
  163.  
  164. $user['notifications_data'] = $content_notif;
  165. $this->getMailer('User')->send('generic_email', [$user]);
  166.  
  167. if(!$this->request->is('ajax')){
  168. return $this->redirect(['action' => 'edit'.'/'.$user->id.'/successadd']);
  169. }else{
  170. echo "ok-ajax";
  171. }
  172. }else if($this->request->is('ajax')){
  173. print_r($errors);
  174. // guardar estos errores en una variable de sesion o en algun lugar;
  175. exit;
  176. }
  177. // $this->Flash->error(__('El usuario no se guardó. Por favor, intente nuevamente.'));
  178. }
  179.  
  180. // model y action variables para pasar al elemento lwsuccesUsers - muestra una ventana de notificacion
  181. $model = 'users';
  182. $action = 'edit'; // para que despues de darlo de alta regrese a la pantalla edit
  183.  
  184. $this->set(compact('user','centers','roles','specificdisabilities','disabilities','date','cnterUsrLogged','states','type_user','user_id','errors','model','action','role'));
  185. $this->set('_serialize', ['user']);
  186. }
Add Comment
Please, Sign In to add comment