expensesconcepts_controller.rb 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. class ExpensesconceptsController < ApplicationController
  2. ##--- Abilities
  3. load_and_authorize_resource
  4. ##--- Breadcrum_rails
  5. add_breadcrumb I18n.t("breadcrumbs." + controller_name), :expensesconcepts_path
  6. add_breadcrumb "Nuevo Concepto de egreso" , :new_expensesconcept_path, only: :new
  7. add_breadcrumb "Detalle del Concepto de egreso" , :expensesconcept_path, only: :show
  8. add_breadcrumb "Editar Concepto de egreso" , :edit_expensesconcept_path, only: :edit
  9. before_action :set_expensesconcept, only: [:show, :edit, :update, :destroy]
  10. before_action :get_filters, only: [:index, :show, :edit, :new]
  11. # before_action :get_pointsales, only: [:create, :update]
  12. # GET /expensesconcepts
  13. # GET /expensesconcepts.json
  14. def index
  15. @concept_purchase_payment = Expensesconcept.find_by(:expense_from_purchase => 1)
  16. if current_user.usertype == 'A'
  17. @expensesconcepts = Expensesconcept.vigentes
  18. else
  19. @expensesconcepts = Array.new
  20. Expensesconcept.where("status = 1 and allpoints = 'true'").each do |expense|
  21. @expensesconcepts << expense
  22. end
  23. Pointsale.find(current_user.pointsale_id).expensesconcepts.activos.each do |expense|
  24. @expensesconcepts << expense
  25. end
  26. @expensesconcepts.uniq!
  27. end
  28. end
  29. # GET /expensesconcepts/new
  30. def new
  31. @expensesconcept = Expensesconcept.new
  32. end
  33. def create
  34. @expensesconcept = Expensesconcept.new(expensesconcept_params)
  35. respond_to do |format|
  36. @expensesconcept.audit_comment = "Concepto de egreso #{@expensesconcept.name} creado."
  37. if @expensesconcept.save
  38. # @expensesconcept.pointsales = @pointsales
  39. format.html { redirect_to expensesconcepts_url, success: 'El concepto ' + @expensesconcept.name + ' fue creado.' }
  40. format.json { render :show, status: :created, location: @expensesconcept }
  41. else
  42. format.html { render :new }
  43. format.json { render json: @expensesconcept.errors, status: :unprocessable_entity }
  44. end
  45. end
  46. end
  47. # PATCH/PUT /expensesconcepts/1
  48. # PATCH/PUT /expensesconcepts/1.json
  49. def update
  50. respond_to do |format|
  51. @expensesconcept.audit_comment = "Concepto de egreso #{@expensesconcept.name} modificado."
  52. if @expensesconcept.update(expensesconcept_params)
  53. # @expensesconcept.pointsales = @pointsales
  54. format.html { redirect_to expensesconcepts_url, success: 'El concepto ' + @expensesconcept.name + ' fue modificado.' }
  55. format.json { render :show, status: :ok, location: @expensesconcept }
  56. else
  57. format.html { render :edit }
  58. format.json { render json: @expensesconcept.errors, status: :unprocessable_entity }
  59. end
  60. end
  61. end
  62. # DELETE /expensesconcepts/1
  63. # DELETE /expensesconcepts/1.json
  64. def destroy
  65. #@expensesconcept.destroy
  66. respond_to do |format|
  67. @expensesconcept.audit_comment = "Concepto de egreso #{@expensesconcept.name} eliminado."
  68. if @expensesconcept.update_attributes(:status => 0)
  69. format.html { redirect_to expensesconcepts_url, warning: "El concepto " + @expensesconcept.name + " fue eliminado." }
  70. format.json { head :no_content }
  71. else
  72. format.html { render :edit }
  73. format.json { render json: @expensesconcept.errors, status: :unprocessable_entity }
  74. end
  75. end
  76. end
  77. private
  78. # Use callbacks to share common setup or constraints between actions.
  79. def set_expensesconcept
  80. @expensesconcept = Expensesconcept.find(params[:id])
  81. end
  82. # Never trust parameters from the scary internet, only allow the white list through.
  83. def expensesconcept_params
  84. params.require(:expensesconcept).permit(:name, :description, :allpoints, :status, :pointsale_ids => [])
  85. end
  86. def get_filters
  87. if params[:current_page].blank?
  88. @current_page = 1
  89. else
  90. @current_page = params[:current_page]
  91. end
  92. @filter = params[:filter]
  93. end
  94. def get_pointsales
  95. unless params[:expensesconcept][:pointsale_ids].nil? && params[:expensesconcept][:pointsale_ids].empty?
  96. ## Issue arreglo primer elemento en blanco ...
  97. params[:expensesconcept][:pointsale_ids] = params[:expensesconcept][:pointsale_ids].delete_if{ |x| x.empty? }
  98. @pointsales = params[:expensesconcept][:pointsale_ids].map do |k|
  99. Pointsale.find(k)
  100. end
  101. else
  102. @pointsales = []
  103. end
  104. end
  105. end