expensesconcepts_controller.rb 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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" || current_user.usertype == "SS"
  17. @expensesconcepts = Expensesconcept.vigentes
  18. else
  19. @expensesconcepts = Array.new
  20. Expensesconcept.where(status: 1, 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. respond_to do |format|
  66. @expensesconcept.audit_comment = "Concepto de egreso #{@expensesconcept.name} eliminado."
  67. if @expensesconcept.update_attributes(status: 0)
  68. format.html { redirect_to expensesconcepts_url, warning: "El concepto " + @expensesconcept.name + " fue eliminado." }
  69. format.json { head :no_content }
  70. else
  71. format.html { render :edit }
  72. format.json { render json: @expensesconcept.errors, status: :unprocessable_entity }
  73. end
  74. end
  75. end
  76. private
  77. # Use callbacks to share common setup or constraints between actions.
  78. def set_expensesconcept
  79. @expensesconcept = Expensesconcept.find(params[:id])
  80. end
  81. # Never trust parameters from the scary internet, only allow the white list through.
  82. def expensesconcept_params
  83. params.require(:expensesconcept).permit(:name, :description, :allpoints, :status, pointsale_ids: [])
  84. end
  85. def get_filters
  86. @current_page =
  87. if params[:current_page].blank?
  88. 1
  89. else
  90. params[:current_page]
  91. end
  92. @filter = params[:filter]
  93. end
  94. def get_pointsales
  95. @pointsales = []
  96. unless params[:expensesconcept][:pointsale_ids].nil? && params[:expensesconcept][:pointsale_ids].empty?
  97. ## Issue arreglo primer elemento en blanco ...
  98. params[:expensesconcept][:pointsale_ids] = params[:expensesconcept][:pointsale_ids].delete_if(&:empty?)
  99. @pointsales = params[:expensesconcept][:pointsale_ids].map do |k|
  100. Pointsale.find(k)
  101. end
  102. end
  103. end
  104. end