Guest User

Untitled

a guest
Dec 7th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.64 KB | None | 0 0
  1. class UsersController < ApplicationController
  2. # Be sure to include AuthenticationSystem in Application Controller instead
  3. layout "o2club", :except => ["getsocio"]
  4.  
  5. before_filter :login_required, :except => ["new","create","forgot","reset","show","index","tests","trainer","calendar"]
  6.  
  7.  
  8. # render new.rhtml
  9. def new
  10. @user = User.new
  11. end
  12.  
  13.  
  14. def index
  15. #@users = User.paginate :page => params[:page], :per_page => 14, :order => "last_name ASC"
  16. end
  17.  
  18. def claves
  19. if params[:var].nil? or params[:var].blank?
  20. @order = "apellido_asc"
  21. order = "last_name ASC"
  22. elsif params[:var] == "apellido_asc"
  23. @order = "apellido_asc"
  24. order = "last_name ASC"
  25. elsif params[:var] == "apellido_desc"
  26. @order = "apellido_desc"
  27. order = "last_name DESC"
  28. elsif params[:var] == "nombre_desc"
  29. @order = "nombre_desc"
  30. order = "name DESC"
  31. elsif params[:var] == "nombre_asc"
  32. @order = "nombre_asc"
  33. order = "name ASC"
  34. elsif params[:var] == "codigo_desc"
  35. @order = "codigo_desc"
  36. order = "system_id DESC"
  37. elsif params[:var] == "codigo_asc"
  38. @order = "codigo_asc"
  39. order = "system_id ASC"
  40. end
  41. unless params[:q].nil? or params[:q].blank?
  42. cond = ["system_id = ?", params[:q]]
  43. else
  44. cond = ""
  45. end
  46. @users = User.find(:all, :conditions => cond, :order => order).paginate(:per_page => 25, :page => params[:page])
  47. end
  48.  
  49. def show
  50. @user = User.find_by_system_id(params[:id])
  51. @events = @user.favorites
  52. @last_call_logs = Calllog.find(:all,:limit =>5, :conditions => "user_id = #{@user.id}" , :order => 'created_at DESC' )
  53.  
  54. end
  55.  
  56. def trainer
  57. @consultation = Consultation.new
  58. @user = User.find_by_system_id(params[:id])
  59. @item = User.find_by_system_id(@user.trainer_id)
  60.  
  61. unless @item.nil?
  62.  
  63. @consultas_recibidas = Consultation.all(:conditions => ['(to_id = ? AND from_id = ?) OR (from_id = ? AND to_id = ?)',
  64. current_user.system_id, @item.system_id, @item.system_id, @item.system_id],
  65.  
  66. :order => "created_at DESC").paginate :page => params[:page]
  67.  
  68. end
  69. end
  70.  
  71. def geriatra
  72. @consultation = Consultation.new
  73. @user = User.find_by_system_id(params[:id])
  74.  
  75. @geriatra = Userprogramsupervisor.first(:conditions => ["user_id = #{current_user.system_id}
  76. AND program_id = 1"])
  77.  
  78. unless @geriatra.nil?
  79. @item = User.find_by_system_id(@geriatra.supervisor_id)
  80. end
  81.  
  82. unless @item.nil?
  83.  
  84. @consultas_recibidas = Consultation.all(:conditions => ['(from_id = ? AND to_id = ?)
  85. AND answer IS NULL',
  86. @item.system_id,current_user.system_id],
  87. :order => "created_at DESC").paginate :page => params[:page],
  88. :per_page => 8
  89. end
  90. end
  91.  
  92. def doctor_uc
  93. @consultation = Consultation.new
  94. @user = User.find_by_system_id(params[:id])
  95.  
  96. @doctor = Userprogramsupervisor.first(:conditions => ["user_id = #{current_user.system_id}
  97. AND program_id = 2"])
  98.  
  99. unless @doctor.nil?
  100. @item = User.find_by_system_id(@doctor.supervisor_id)
  101. end
  102.  
  103. unless @item.nil?
  104. @consultas_recibidas = Consultation.all(:conditions => ['(from_id = ? AND to_id = ?)
  105. AND answer IS NULL',
  106. @item.system_id,current_user.system_id],
  107. :order => "created_at DESC").paginate :page => params[:page],
  108. :per_page => 8
  109. end
  110. end
  111.  
  112. def consultas_enviadas
  113. @consultation = Consultation.new
  114. @user = User.find_by_system_id(params[:user_id])
  115.  
  116. @item = User.find_by_system_id(@user.trainer_id)
  117.  
  118. unless @item.nil?
  119. @consultas_enviadas = Consultation.all(:conditions => ["
  120. (from_id = ? AND to_id = ? ) AND
  121. answer IS NULL",
  122. current_user.system_id, @item.system_id],
  123. :order => "created_at DESC")
  124. end
  125. end
  126.  
  127. #esto se hizo temporalmente, debe ser solo una funcion
  128. def consultas_enviadas_al_doctor
  129. @consultation = Consultation.new
  130. @user = User.find_by_system_id(params[:user_id])
  131.  
  132.  
  133. @item = @user.user_doctor
  134.  
  135. unless @item.nil?
  136. @consultas_enviadas = Consultation.all(:conditions => ["
  137. (from_id = ? AND to_id = ?) AND
  138. answer IS NULL",
  139. current_user.system_id, @item.system_id],
  140. :order => "created_at DESC")
  141. end
  142. end
  143.  
  144. #esto se hizo temporalmente, debe ser solo una funcion
  145. def consultas_enviadas_al_geriatra
  146. @consultation = Consultation.new
  147. @user = User.find_by_system_id(params[:user_id])
  148.  
  149.  
  150. @item = @user.user_geriatra
  151.  
  152. unless @item.nil?
  153. @consultas_enviadas = Consultation.all(:conditions => ["
  154. (from_id = ? AND to_id = ?) AND
  155. answer IS NULL",
  156. current_user.system_id, @item.system_id],
  157. :order => "created_at DESC")
  158. end
  159. end
  160.  
  161.  
  162.  
  163. def getsocio
  164. @survey = TrainerUserSurvey.find(:first, :conditions => ["survey_id = 1 and system_id = ?",params[:system_id]])
  165. if @survey.nil?
  166. @survey = {:user_exist => !User.find_by_system_id(params[:system_id]).nil?}
  167. else
  168. @survey = {:survey_status => @survey.status}
  169. end
  170. render :text => (@survey).to_json
  171. end
  172.  
  173.  
  174. ##Metodo Alumnos
  175. def alumnos
  176.  
  177.  
  178. @programs = Program.all
  179.  
  180. # puts "PROGRAMAS #{@programs.inspect}"
  181. # puts "LOOOOOOOO #{params.inspect}"
  182.  
  183. if params[:var].nil? or params[:var].blank?
  184. @order = "apellido_asc"
  185. order = "last_name ASC"
  186. elsif params[:var] == "apellido_asc"
  187. @order = "apellido_asc"
  188. order = "last_name ASC"
  189. elsif params[:var] == "apellido_desc"
  190. @order = "apellido_desc"
  191. order = "last_name DESC"
  192. elsif params[:var] == "nombre_desc"
  193. @order = "nombre_desc"
  194. order = "name DESC"
  195. elsif params[:var] == "nombre_asc"
  196. @order = "nombre_asc"
  197. order = "name ASC"
  198. elsif params[:var] == "codigo_desc"
  199. @order = "codigo_desc"
  200. order = "system_id DESC"
  201. elsif params[:var] == "codigo_asc"
  202. @order = "codigo_asc"
  203. order = "system_id ASC"
  204. elsif params[:var] == "sede_asc"
  205. @order = "sede_asc"
  206. order = "sede ASC"
  207. elsif params[:var] == "sede_desc"
  208. @order = "sede_desc"
  209. order = "sede DESC"
  210. end
  211.  
  212. @venues_a = Venue.find(:all, :order => "name ASC")
  213.  
  214. cond_tmp = " AND current_date() <= users.vcto_at" #+ cond_program
  215.  
  216. #Alumnos en rol rack
  217. if current_user.has_role?("rack")
  218.  
  219. unless params[:q].nil? or params[:q].blank?
  220. cond = ["name like :q or last_name like :q #{cond_tmp}", {:q => "%#{params[:q]}%"}]
  221. else
  222. cond = ["current_date() <= users.vcto_at"]
  223. end
  224. @users = User.find(:all, :conditions => cond , :order => order)
  225.  
  226.  
  227. unless params[:q].nil? or params[:q].blank?
  228.  
  229. cond = ["trainer_user_surveys.survey_id = 11
  230. name like :q or last_name like :q and
  231. datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",{:q => "%#{params[:q]}%"}]
  232. else
  233. cond = ["trainer_user_surveys.survey_id = 1 and
  234. datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
  235. end
  236.  
  237. @users = User.find(:all,
  238. :joins => "INNER JOIN trainer_user_surveys on
  239. trainer_user_surveys.system_id = users.system_id ",
  240. :conditions => cond, :order => order)
  241.  
  242.  
  243. unless params[:venue_id].nil? or params[:venue_id].blank?
  244. venue = Venue.find_by_id(params[:venue_id])
  245.  
  246. if venue.id == 1
  247. @venue = "O2K"
  248. elsif venue.id == 2
  249. @venue = "O2T"
  250. elsif venue.id == 3
  251. @venue = "O2G"
  252. end
  253.  
  254. else
  255. @venue = nil
  256.  
  257. end
  258.  
  259. @users_count = @users.length
  260. @users = @users.paginate(:per_page => 25, :page => params[:page])
  261. else #end rol rack
  262.  
  263.  
  264.  
  265. if current_user.has_role?("trainer") or current_user.has_role?("supervisor")
  266.  
  267. unless params[:q].nil? or params[:q].blank?
  268.  
  269. if params[:activos] == "0"
  270.  
  271. cond = " trainer_id = #{current_user.system_id} AND sede = '#{current_user.sede}' AND (name like '%#{params[:q]}%' or last_name like '%#{params[:q]}%') #{cond_tmp}"
  272.  
  273. #puts cond.inspect
  274. #cond = ["trainer_id = #{current_user.system_id}"]
  275. @users = User.find(:all, :conditions => cond, :order => order)
  276.  
  277.  
  278. else
  279.  
  280. cond = [" users.trainer_id = #{current_user.system_id} AND users.sede = '#{current_user.sede}' AND
  281. (users.name like '%#{params[:q]}%' or users.last_name like '%#{params[:q]}%')"]
  282.  
  283. @users = User.find(:all,
  284. :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
  285. AND userprograms.program_id = #{params[:activos].to_i}
  286. AND #{cond} #{cond_tmp} AND users.trainer_id = #{current_user.system_id}"],
  287. :order => order)
  288. @selected = params[:programa_find].to_i
  289. @users.paginate(:per_page => 25, :page => params[:page])
  290. end
  291.  
  292. else
  293. cond = ["trainer_id = #{current_user.system_id} and sede = '#{current_user.sede}' #{cond_tmp}"]
  294. @users = User.find(:all, :conditions => cond , :order => order)
  295. end
  296.  
  297.  
  298.  
  299. if params.has_key?("programs")
  300. if params[:programs].has_key?("activos");
  301. unless params[:programs][:activos] == "0"
  302. @users = User.find(:all,
  303. :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
  304. AND userprograms.program_id = #{params[:programs][:activos].to_i}
  305. AND #{cond} AND users.trainer_id = #{current_user.system_id}"],
  306. :order => order)
  307. @users.paginate(:per_page => 25, :page => params[:page])
  308. @selected = params[:programs][:activos].to_i
  309. else
  310. @users = User.find(:all, :conditions => cond , :order => order)
  311. end
  312. end
  313. end
  314.  
  315. if params.has_key?("programa")
  316. @users = User.find(:all,
  317. :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
  318. AND userprograms.program_id = #{params[:programa].to_i}
  319. AND #{cond} AND users.trainer_id = #{current_user.system_id}"],
  320. :order => order)
  321. @users.paginate(:per_page => 25, :page => params[:page])
  322. @selected = params[:programa].to_i
  323. end
  324.  
  325. else
  326.  
  327. unless params[:q].nil? or params[:q].blank?
  328. cond = ["trainer_user_surveys.survey_id = 11 sede = '#{current_user.sede}' and
  329. (name like :q or last_name like :q) and
  330. datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",{:q => "%#{params[:q]}%"}]
  331. else
  332. cond = ["trainer_user_surveys.survey_id = 1 sede = '#{current_user.sede}' and
  333. datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
  334. end
  335. @users = User.find(:all,
  336. :joins => "INNER JOIN trainer_user_surveys on
  337. trainer_user_surveys.system_id = users.system_id",
  338. :conditions => cond, :order => order)
  339. end #end if trainer y supervisor
  340.  
  341. unless params[:venue_id].nil? or params[:venue_id].blank?
  342.  
  343. venue = Venue.find_by_id(params[:venue_id])
  344.  
  345. if venue.id == 1
  346. @venue = "O2K"
  347. elsif venue.id == 2
  348. @venue = "O2T"
  349. elsif venue.id == 3
  350. @venue = "O2G"
  351. end
  352.  
  353. else
  354. @venue = nil
  355. end
  356.  
  357. @users_count = @users.length
  358. @users = @users.paginate(:per_page => 25, :page => params[:page])
  359.  
  360. end #end current_user.has_role?("rack")
  361.  
  362.  
  363. end #en def alumnos
  364.  
  365.  
  366.  
  367.  
  368.  
  369. #exalumnos
  370.  
  371. def exalumnos
  372.  
  373. #puts "LOOOOOOOO #{params.inspect}"
  374.  
  375. @programs = Program.all
  376.  
  377. if params[:var].nil? or params[:var].blank?
  378. @order = "apellido_asc"
  379. order = "last_name ASC"
  380. elsif params[:var] == "apellido_asc"
  381. @order = "apellido_asc"
  382. order = "last_name ASC"
  383. elsif params[:var] == "apellido_desc"
  384. @order = "apellido_desc"
  385. order = "last_name DESC"
  386. elsif params[:var] == "nombre_desc"
  387. @order = "nombre_desc"
  388. order = "name DESC"
  389. elsif params[:var] == "nombre_asc"
  390. @order = "nombre_asc"
  391. order = "name ASC"
  392. elsif params[:var] == "codigo_desc"
  393. @order = "codigo_desc"
  394. order = "system_id DESC"
  395. elsif params[:var] == "codigo_asc"
  396. @order = "codigo_asc"
  397. order = "system_id ASC"
  398. end
  399.  
  400. @venues_a = Venue.find(:all, :order => "name ASC")
  401. cond_tmp = " AND (current_date() > users.vcto_at or users.vcto_at IS NULL)"
  402. #Muestra el mismo filtro para rack y trainer
  403.  
  404. if current_user.has_role?("rack") or current_user.has_role?("trainer") or current_user.has_role?("supervisor")
  405.  
  406. unless params[:q].nil? or params[:q].blank?
  407. cond = ["users.trainer_id = #{current_user.system_id}
  408. AND (name like :q or last_name like :q) #{cond_tmp}", {:q => "%#{params[:q]}%"}]
  409. else
  410. cond = ["users.trainer_id = #{current_user.system_id} #{cond_tmp}"]
  411. end
  412. @users = User.find(:all, :conditions => cond, :order => order)
  413.  
  414.  
  415. if params.has_key?("programs")
  416. unless params[:programs][:inactivos] == "0"
  417. @users = User.find(:all,
  418. :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
  419. AND userprograms.program_id = #{params[:programs][:inactivos].to_i}
  420. AND users.trainer_id = #{current_user.system_id}
  421. AND (current_date() > users.vcto_at or users.vcto_at IS NULL)
  422.  
  423. "],
  424. :order => order)
  425. @selected = params[:programs][:inactivos].to_i
  426. else
  427. @users = User.find(:all,
  428. :joins => "INNER JOIN trainer_user_surveys
  429. ON trainer_user_surveys.system_id = users.system_id #{cond_tmp}",
  430. :conditions => cond, :order => order)
  431.  
  432. end
  433.  
  434. else
  435.  
  436. unless params[:q].nil? or params[:q].blank?
  437. cond = ["trainer_user_surveys.survey_id = 1
  438. AND (name like :q or last_name like :q)
  439. AND datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",
  440. {:q => "%#{params[:q]}%"}]
  441. else
  442. cond = ["trainer_user_surveys.survey_id = 1
  443. AND datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
  444. end
  445.  
  446. @users = User.find(:all,
  447. :joins => "INNER JOIN trainer_user_surveys
  448. ON trainer_user_surveys.system_id = users.system_id #{cond_tmp}",
  449. :conditions => cond, :order => order)
  450.  
  451.  
  452. end
  453. if params.has_key?("programa")
  454. @users = User.find(:all,
  455. :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
  456. AND userprograms.program_id = #{params[:programa].to_i}
  457. AND users.trainer_id = #{current_user.system_id}
  458. AND (current_date() > users.vcto_at or users.vcto_at IS NULL)
  459.  
  460. "],
  461. :order => order)
  462. @selected = params[:programa].to_i
  463. end
  464.  
  465. end
  466.  
  467. unless params[:venue_id].nil? or params[:venue_id].blank?
  468. venue = Venue.find_by_id(params[:venue_id])
  469.  
  470. if venue.id == 1
  471. @venue = "O2K"
  472. elsif venue.id == 2
  473. @venue = "O2T"
  474. elsif venue.id == 3
  475. @venue = "O2G"
  476. end
  477. else
  478. @venue = nil
  479. end
  480.  
  481. # paginación de alumnos
  482. @users_count = @users.length
  483. @users = @users.paginate(:per_page => 25, :page => params[:page])
  484.  
  485. end
  486.  
  487.  
  488. def alumnosfinalizadas
  489. @order = "last_name ASC" unless params.has_key?(:defined)
  490.  
  491.  
  492. unless current_user.has_role?("rack")
  493. @users = User.find(:all, :conditions => ["trainer_id = ?", current_user.system_id], :order => @order)
  494. else
  495. @users = User.find(:all, :joins => "inner join trainer_user_surveys on trainer_user_surveys.system_id = users.system_id", :conditions => ["trainer_user_surveys.survey_id = 2 and status = 'finalizada'"], :order => "users.last_name ASC")
  496. end
  497. end
  498.  
  499. def entrenadores
  500. if !params.has_key?(:var)
  501. @order = "last_name ASC" #ordenar por nombre
  502. else
  503. @order = params[:var]
  504. end
  505.  
  506. if current_user.has_role?("administrator-o2")
  507. @users = User.find(:all, :joins => "INNER JOIN permissions ON permissions.user_id = users.id
  508. INNER JOIN roles On roles.id = permissions.role_id",
  509. :conditions => ["roles.rolename = 'trainer'"],:order => "users.#{sorter(@order)}")
  510. else
  511. @users = User.find(:all, :joins => "INNER JOIN permissions ON permissions.user_id = users.id
  512. INNER JOIN roles ON roles.id = permissions.role_id",
  513. :conditions => ["users.sede = ? AND
  514. roles.rolename = 'trainer'", current_user.sede],
  515. :order => "users.#{sorter(@order)}")
  516. end
  517.  
  518. @users = @users.paginate(:per_page => 10, :page => params[:page])
  519. end
  520.  
  521. def entrenador_encuestas
  522. if params[:var].nil? or params[:var].blank?
  523. @order = "apellido_asc"
  524. order = "last_name ASC"
  525. elsif params[:var] == "apellido_asc"
  526. @order = "apellido_asc"
  527. order = "last_name ASC"
  528. elsif params[:var] == "apellido_desc"
  529. @order = "apellido_desc"
  530. order = "last_name DESC"
  531. elsif params[:var] == "nombre_desc"
  532. @order = "nombre_desc"
  533. order = "name DESC"
  534. elsif params[:var] == "nombre_asc"
  535. @order = "nombre_asc"
  536. order = "name ASC"
  537. elsif params[:var] == "sede_desc"
  538. @order = "sede_desc"
  539. order = "sede DESC"
  540. elsif params[:var] == "sede_asc"
  541. @order = "sede_asc"
  542. order = "sede ASC"
  543. end
  544. @user = User.find_by_id(params[:id])
  545.  
  546. conds = {:trainer_id => @user.system_id}
  547.  
  548. conds[:sede] = params[:sede] if params.has_key?(:sede)
  549.  
  550. al = User.all(:conditions => conds, :order => order)
  551.  
  552.  
  553.  
  554. @alumnos = []
  555. al.each do |i|
  556. if params.has_key?(:status)
  557.  
  558. if params[:status] == "no"
  559. @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and (status <> 'pendiente' or status <> 'finalizada') and survey_id = 1 ")
  560.  
  561. @alumnos << i if @sut.blank?
  562. puts "SIN REALIZAR #{@alumnos.length.inspect}"
  563. end
  564.  
  565. if params[:status] == "pending"
  566. @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and status = 'pendiente' and survey_id = 1 ")
  567. @alumnos << i unless @sut.blank?
  568. # @alumnos << i if !i.first_survey.nil? && i.first_survey.status == "pendiente"
  569. end
  570.  
  571. if params[:status] == "finished"
  572. @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and status = 'finalizada' and survey_id = 1 ")
  573. @alumnos << i unless @sut.blank?
  574. #@alumnos << i if !i.first_survey.nil? && i.first_survey.status == "finalizada"
  575. end
  576. else
  577. @alumnos << i
  578. end
  579.  
  580. end
  581. @alumnos = @alumnos.paginate(:per_page => 10, :page => params[:page])
  582.  
  583. end
  584.  
  585. def entrenador_consultas
  586.  
  587. if params[:var].nil? or params[:var].blank?
  588. @order = "apellido_asc"
  589. order = "last_name ASC"
  590. elsif params[:var] == "apellido_asc"
  591. @order = "apellido_asc"
  592. order = "last_name ASC"
  593. elsif params[:var] == "apellido_desc"
  594. @order = "apellido_desc"
  595. order = "last_name DESC"
  596. elsif params[:var] == "nombre_desc"
  597. @order = "nombre_desc"
  598. order = "name DESC"
  599. elsif params[:var] == "nombre_asc"
  600. @order = "nombre_asc"
  601. order = "name ASC"
  602. elsif params[:var] == "sede_desc"
  603. @order = "sede_desc"
  604. order = "sede DESC"
  605. elsif params[:var] == "sede_asc"
  606. @order = "sede_asc"
  607. order = "sede ASC"
  608. end
  609.  
  610. @user = User.find_by_system_id(params[:id])
  611. @alumnos = User.all(:conditions => ["trainer_id = ?", params[:id]]).paginate :page => params[:page],
  612. :per_page => 10,
  613. :order => order
  614. # puts "ALUMNOS #{@alumnos.inspect}"
  615.  
  616. end
  617.  
  618. def logins
  619. @logins = Login.find(:all, :order => "time DESC")
  620.  
  621. headers['Content-Type'] = "application/vnd.ms-excel"
  622. headers['Content-Disposition'] = 'attachment; filename="o2club_historia_ingreso.xls"'
  623. headers['Cache-Control'] = ''
  624. render :action => "logins", :layout=> false
  625. end
  626.  
  627. def actives
  628. previous_date = Time.new
  629.  
  630. #######
  631. now = Time.now
  632.  
  633. if now.day > 15
  634. # Si el día actual es mayor a 14
  635. day = now.day - 14
  636. month = now.month
  637. year = now.year
  638. t = Time.utc(year,month,day)
  639. else
  640. # El día actual no es mayor a 14
  641. if now.month == 1
  642. day = (31-((now.day-14)*(-1)))
  643. month = 12
  644. year = (now.year-1)
  645. t = Time.utc(year,month,day)
  646.  
  647. elsif now.month == 3
  648. day = (28-((now.day-14)*(-1)))
  649. month = now.month-1
  650. year = now.year
  651. t = Time.utc(year,month,day)
  652.  
  653. elsif now.month == 4 || now.month == 6 || now.month == 9 || now.month == 11
  654. day = (30-((now.day-14)*(-1)))
  655. month = (now.month-1)
  656. year = now.year
  657. t = Time.utc(year,month,day)
  658.  
  659. else
  660. day = (31-((now.day-14)*(-1)))
  661. month = (now.month-1)
  662. year = now.year
  663. t = Time.utc(year,month,day)
  664. end
  665. end
  666. #############
  667.  
  668. puts "Hace dos semanas #{t.strftime('%Y-%m-%d')}"
  669. @users = User.find(:all, :conditions => ["last_login is not null and CAST(last_login AS DATE) > '#{t.strftime('%Y-%m-%d')}' "], :order => "last_login DESC")
  670.  
  671. headers['Content-Type'] = "application/vnd.ms-excel"
  672. headers['Content-Disposition'] = 'attachment; filename="o2club_usuarios_activos.xls"'
  673. headers['Cache-Control'] = ''
  674. render :action => "actives", :layout=> false
  675. end
  676.  
  677. def inactives
  678. previous_date = Time.new
  679.  
  680. #######
  681. now = Time.now
  682.  
  683. if now.day > 15
  684. # Si el día actual es mayor a 14
  685. day = now.day - 14
  686. month = now.month
  687. year = now.year
  688. t = Time.utc(year,month,day)
  689. else
  690. # El día actual no es mayor a 14
  691. if now.month == 1
  692. day = (31-((now.day-14)*(-1)))
  693. month = 12
  694. year = (now.year-1)
  695. t = Time.utc(year,month,day)
  696.  
  697. elsif now.month == 3
  698. day = (28-((now.day-14)*(-1)))
  699. month = now.month-1
  700. year = now.year
  701. t = Time.utc(year,month,day)
  702.  
  703. elsif now.month == 4 || now.month == 6 || now.month == 9 || now.month == 11
  704. day = (30-((now.day-14)*(-1)))
  705. month = (now.month-1)
  706. year = now.year
  707. t = Time.utc(year,month,day)
  708.  
  709. else
  710. day = (31-((now.day-14)*(-1)))
  711. month = (now.month-1)
  712. year = now.year
  713. t = Time.utc(year,month,day)
  714. end
  715. end
  716. #############
  717.  
  718. puts "Hace dos semanas #{t.strftime('%Y-%m-%d')}"
  719. @users = User.find(:all, :conditions => ["last_login is not null and CAST(last_login AS DATE) < '#{t.strftime('%Y-%m-%d')}' "], :order => "last_login DESC")
  720.  
  721. headers['Content-Type'] = "application/vnd.ms-excel"
  722. headers['Content-Disposition'] = 'attachment; filename="o2club_usuarios_de_baja.xls"'
  723. headers['Cache-Control'] = ''
  724. render :action => "actives", :layout=> false
  725. end
  726.  
  727.  
  728. def questions
  729.  
  730. @users = User.find(:all, :conditions => ["
  731. trainer_id = ? and
  732. sede = ?",
  733. @current_user.system_id,
  734. @current_user.sede
  735. ],
  736. :order => "name asc")
  737.  
  738. @comments = Comment.paginate :page => params[:page],
  739. :order => "created_at DESC",
  740. :per_page => 20,
  741. :conditions => ["
  742. (commentable_id = ? or user_id = ?) and
  743. (status = 'pending' OR status = 'answered')",
  744. current_user.system_id,
  745. current_user.id
  746. ]
  747.  
  748. #sandro modificando esto
  749. @ttal_q = Comment.all(:conditions=>["(user_id = ? AND status = 'pending')",current_user.id]).size
  750.  
  751. end
  752.  
  753. def sendquestions
  754. @users = User.find(:all, :conditions => ["trainer_id = ?",@current_user.system_id],:order => "name asc")
  755. @comments = Comment.paginate :page => params[:page], :order => "created_at DESC", :per_page => 20, :conditions => ["user_id = ? and (status = 'pending' or status = 'answered')", current_user.id]
  756.  
  757. end
  758.  
  759. def calendar
  760. @user = User.find_by_system_id(params[:id])
  761.  
  762. unless params[:date].nil?
  763. @events = Article.find(:all, :conditions => ["activity_at IS NOT NULL and activity_at like :q",{:q => "%#{params[:date]}%"}], :order => "activity_at ASC")
  764. else
  765. unless params[:mes].nil?
  766. @date_start = Time.gm(Time.now.year,params[:mes].to_i,1,0,0,0)
  767. if params[:mes].to_i == 12
  768. m = 1
  769. y = Time.now.year + 1
  770. else
  771. m = params[:mes].to_i + 1
  772. y = Time.now.year
  773. end
  774. @date_end = Time.gm(y,m,1,0,0,0)
  775. @events = Article.find(:all, :conditions => ["activity_at < ? AND activity_at >= ?",@date_end,@date_start])
  776. else
  777. @date_start = Time.gm(Time.now.year,Time.now.mon.to_i,1,0,0,0)
  778. if Time.now.mon == 12
  779. m = 1
  780. y = Time.now.year + 1
  781. else
  782. m = Time.now.mon + 1
  783. y = Time.now.year
  784. end
  785. @date_end = Time.gm(y,m,1,0,0,0)
  786. @events = Article.find(:all, :conditions => ["activity_at < ? AND activity_at >= ?",@date_end,@date_start])
  787. end
  788. end
  789.  
  790. @activities = Article.find(:all,:select => "activity_at", :conditions => ["activity_at IS NOT NULL"], :order => "activity_at ASC", :group => "activity_at")
  791. @act = Array.new
  792. for a in @activities
  793. @act << a.activity_at.to_formatted_s(:db)[0..9].to_date
  794. end
  795.  
  796. if params[:mes].nil?
  797. @calendar_month = Time.now.mon
  798. else
  799. @calendar_month = params[:mes].to_i
  800. end
  801. end
  802.  
  803. def tests
  804. @user = User.find_by_system_id(params[:id])
  805. @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date DESC")
  806. @bodies = Bodycomposition.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date DESC")
  807. end
  808.  
  809. def test
  810. @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date ASC")
  811. @user = User.find_by_system_id(params[:id])
  812. @wk = Array.new()
  813. i = 0
  814. for wk in @aeros
  815. @wk[i] = Hash.new
  816. @wk[i][:test_date] = string_to_date(wk.test_date).nil? ? wk.test_date : string_to_date(wk.test_date).strftime("%d-%m-%Y")
  817. @wk[i][:vo2max] = wk.vo2max
  818. i += 1
  819. end
  820.  
  821. respond_to do |format|
  822. format.html { redirect_to user_path(@user.system_id) }
  823. format.csv { render :layout => false }
  824. format.xml { render :layout => false }
  825. end
  826. end
  827.  
  828. def tests_resultados
  829. @user = User.find_by_system_id(params[:id])
  830. @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date ASC")
  831. respond_to do |format|
  832. format.html { redirect_to user_path(@user.system_id) }
  833. format.csv { render :layout => false }
  834. #format.xml { render :layout => false }
  835. end
  836. end
  837.  
  838. def create
  839. logout_keeping_session!
  840. @user = User.new(params[:user])
  841.  
  842. success = @user && @user.save
  843. if success && @user.errors.empty?
  844. # Protects against session fixation attacks, causes request forgery
  845. # protection if visitor resubmits an earlier form using back
  846. # button. Uncomment if you understand the tradeoffs.
  847. # reset session
  848. self.current_user = @user # !! now logged in
  849. redirect_back_or_default('/')
  850. flash[:notice] = "Gracias por registrarte. Revisa tu correo para activar tu cuenta."
  851. else
  852. flash[:error] = "Ha ocurrido un error."
  853. @rooms = Room.find(:all,:order => "name ASC")
  854. render :action => 'new'
  855. end
  856. end
  857.  
  858.  
  859. def avatar
  860. @user = self.current_user
  861. @avatar = current_user.avatar if current_user.avatar
  862.  
  863. case request.method
  864. when :put
  865. avatar_crop
  866. when :post
  867. avatar_upload
  868. end
  869. end
  870.  
  871. def edit
  872. @user = current_user
  873. @rooms = Room.find(:all,:order => "name ASC")
  874. end
  875.  
  876. def edit_notifications
  877. @user = current_user
  878. @ttal_q = Comment.all(:conditions=>["(user_id = ? OR commentable_id = ?) AND status = 'pending'",current_user.id, current_user.system_id]).size
  879. end
  880.  
  881. def update
  882.  
  883. unless params[:user][:notification].blank? or params[:user][:email].blank?
  884. current_user.notification = params[:user][:notification]
  885. current_user.email = params[:user][:email]
  886. unless params[:user][:birthday].blank?
  887. current_user.birthday = params[:user][:birthday]
  888. current_user.birthday_setted = true
  889. current_user.birthday_setbox_closed = true
  890. end
  891. current_user.save(false)
  892. flash[:notice] = 'Email configurado Exitosamente'
  893. end
  894. if params[:user][:email].blank?
  895. flash[:error] = 'No Puedes Eliminar tu email, si no quieres recibir notificaciones, desactiva la opción, luego actualiza tus datos.'
  896. redirect_to "/socio/#{current_user.system_id}/edit_notifications"
  897. elsif params[:user][:password] == params[:user][:password_confirmation]
  898. current_user.password = current_user.password_confirmation = params[:user][:password]
  899. current_user.save(false)
  900. flash[:notice] = 'Tus Datos han sido actualizados'
  901. redirect_to user_path(current_user.system_id)
  902. elsif current_user.update_attributes(params[:user])
  903. flash[:notice] = 'Tus datos han sido actualizados.'
  904. redirect_to user_path(current_user.system_id)
  905. else
  906. flash[:notice] = 'Ha ocurrido un problema y tus datos no fueron guardados'
  907. redirect_to edit_user_path(current_user.system_id)
  908. end
  909. end
  910. def close_setbox
  911. current_user.birthday_setbox_closed = true
  912. current_user.save(false)
  913. end
  914.  
  915.  
  916.  
  917. def activate
  918. logout_keeping_session!
  919. user = User.find_by_activation_code(params[:activation_code]) unless params[:activation_code].blank?
  920. case
  921. when (!params[:activation_code].blank?) && user && !user.active?
  922. user.activate!
  923. flash[:notice] = "¡Listo! Ya eres parte de Ciudad UDP."
  924. self.current_user = user
  925. redirect_to '/'
  926. when params[:activation_code].blank?
  927. flash[:error] = "El código se perdió. Por favor, sigue el link que te enviamos en el correo."
  928. redirect_back_or_default('/')
  929. else
  930. flash[:error] = "No pudimos encontrar un usuario para ese código. Tal vez ya activaste tu cuenta. Intenta ingresar al sitio."
  931. redirect_back_or_default('/')
  932. end
  933. end
  934.  
  935.  
  936. def forgot
  937. if request.post?
  938. user = User.find(:first,:conditions => ["email = ?",params[:user][:email]])
  939. if user && !params[:user][:email].blank?
  940. user.create_reset_code
  941. flash[:notice] = "Revisa tu correo #{user.email} para cambiar tu contraseña."
  942. redirect_back_or_default('/')
  943. else
  944. flash[:error] = "El correo #{params[:user][:email]} no existe en nuestro sistema. Por favor, revísalo."
  945. end
  946.  
  947. end
  948. end
  949.  
  950. def reset
  951. @user = User.find_by_reset_code(params[:reset_code]) unless params[:reset_code].nil?
  952. if request.post?
  953.  
  954. #if @user.update_attributes!(:password => params[:user][:password], :password_confirmation => params[:user][:password_confirmation])
  955. =begin
  956. #esto fue comentado para que al perder la contraseña no se
  957. #pida reingresar una nueva. Se envia directamente por email el System_id
  958.  
  959. if @user.password = params[:user][:password] == params[:user][:password_confirmation]
  960. @user.password = params[:user][:password]
  961. if @user.save(false)
  962. self.current_user = @user
  963. @user.delete_reset_code
  964. flash[:notice] = "La contraseña de #{@user.email} ha sido cambiada con éxito."
  965. redirect_back_or_default('/')
  966. else
  967. render :action => :reset
  968. end
  969. =end
  970.  
  971. if params[:commit] == "Enviar"
  972.  
  973. if UserMailer.deliver_reset_notification_system_id(@user.email.to_s, @user.system_id.to_s)
  974. self.current_user = @user
  975. @user.delete_reset_code
  976. flash[:notice] = "La contraseña de #{@user.email} ha sido enviada Exitosamente."
  977. redirect_back_or_default('/')
  978. end
  979.  
  980. else if params[:commit] == "Cancelar"
  981. flash[:notice] = "El envio de la contraseña de #{@user.email} ha sido cancelado."
  982. redirect_back_or_default('/')
  983. #render :action => :reset
  984. end
  985. end
  986. end
  987. end
  988.  
  989.  
  990. protected
  991.  
  992. def avatar_crop
  993. @avatar.crop!(params[:x], params[:y], params[:size])
  994. flash[:notice] = 'Tu avatar fue cortado con éxito.'
  995. end
  996.  
  997. def avatar_upload
  998. old = @avatar
  999. @avatar = Avatar.new(params[:avatar])
  1000. @avatar.user_id = current_user.id
  1001. if @avatar.save
  1002. old.destroy unless old.nil?
  1003. flash[:notice] = 'Que buena foto has escogido de avatar.'
  1004. @avatar.crop_centered!
  1005. else
  1006. Rails.logger.add 100, @avatar.errors.to_xml
  1007.  
  1008. @avatar = old
  1009. flash[:error] = 'No pudimos guardar tu avatar. Por favor, inténtalo de nuevo.'
  1010. end
  1011. end
  1012.  
  1013. def sorter(type)
  1014. strs = type.split("_")
  1015.  
  1016. return type if strs.length == 0 || !params.has_key?(:var)
  1017.  
  1018. strs[0] = "last_name" if strs[0] == "nombre"
  1019.  
  1020. return "#{strs[0]} #{strs[1]}"
  1021. end
  1022.  
  1023.  
  1024. end
Add Comment
Please, Sign In to add comment