warehouses_controller.rb 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. class WarehousesController < ApplicationController
  2. ##--- Abilities
  3. load_and_authorize_resource
  4. ##--- Breadcrum_rails
  5. add_breadcrumb I18n.t("breadcrumbs." + controller_name), :warehouses_path
  6. add_breadcrumb "Nuevo Almacén ", :new_warehouse_path, only: :new
  7. add_breadcrumb "Editar Almacén", :edit_warehouse_path, only: :edit
  8. before_action :set_warehouse, only: [:show, :edit, :update, :destroy]
  9. before_action :get_filters, only: [:index, :show, :edit, :new]
  10. # GET /warehouses
  11. # GET /warehouses.json
  12. def index
  13. @warehouses = Warehouse.all
  14. end
  15. # GET /warehouses/1
  16. # GET /warehouses/1.json
  17. def show; end
  18. # GET /warehouses/new
  19. def new
  20. @warehouse = Warehouse.new
  21. end
  22. # GET /warehouses/1/edit
  23. def edit; end
  24. # POST /warehouses
  25. # POST /warehouses.json
  26. def create
  27. @warehouse = Warehouse.new(warehouse_params)
  28. @warehouse.prefix.upcase!
  29. respond_to do |format|
  30. message = "Almacén #{@warehouse.name} creado."
  31. @warehouse.audit_comment = message
  32. if @warehouse.save
  33. format.js
  34. else
  35. format.html { render :new }
  36. format.js
  37. format.json { render json: @warehouse.errors, status: :unprocessable_entity }
  38. end
  39. end
  40. end
  41. # PATCH/PUT /warehouses/1
  42. # PATCH/PUT /warehouses/1.json
  43. def update
  44. respond_to do |format|
  45. message = "Almacén #{@warehouse.name} modificado."
  46. @warehouse.audit_comment = message
  47. if @warehouse.update(warehouse_params)
  48. format.js
  49. else
  50. format.html { render :edit }
  51. format.js
  52. format.json { render json: @warehouse.errors, status: :unprocessable_entity }
  53. end
  54. end
  55. end
  56. # DELETE /warehouses/1
  57. # DELETE /warehouses/1.json
  58. def destroy
  59. message = "Almacén #{@warehouse.name} eliminado."
  60. @warehouse.audit_comment = message
  61. @warehouse.destroy
  62. respond_to do |format|
  63. format.html { redirect_to warehouses_url, notice: message }
  64. format.json { head :no_content }
  65. end
  66. end
  67. def update_status
  68. warehouse = Warehouse.find(params[:warehouse_id])
  69. warehouse.status =
  70. if warehouse.active?
  71. "inactive"
  72. elsif warehouse.inactive?
  73. "active"
  74. end
  75. respond_to do |format|
  76. message = "El almacen " + warehouse.name + " fue " + (warehouse.active? ? "activado" : "desactivado") + "."
  77. warehouse.audit_comment = message
  78. if warehouse.save(validate: false)
  79. format.html { redirect_to warehouses_path, warning: message }
  80. format.json { head :no_content }
  81. else
  82. format.html { redirect_to warehouses_path }
  83. format.json { render json: warehouse.errors, status: :unprocessable_entity }
  84. end
  85. end
  86. end
  87. private
  88. # Use callbacks to share common setup or constraints between actions.
  89. def set_warehouse
  90. @warehouse = Warehouse.find(params[:id])
  91. end
  92. def get_filters
  93. @current_page =
  94. if params[:current_page].blank?
  95. 1
  96. else
  97. params[:current_page]
  98. end
  99. @filter = params[:filter]
  100. end
  101. # Never trust parameters from the scary internet, only allow the white list through.
  102. def warehouse_params
  103. params.require(:warehouse).permit(:name, :status, :prefix)
  104. end
  105. end