class UnitsController < ApplicationController
	##--- Abilities
	load_and_authorize_resource

  before_action :set_unit, only: [:edit, :update, :update_status]

	##--- Breadcrum_rails
	add_breadcrumb I18n.t("breadcrumbs." + controller_name), :units_path

	## /**Creamos el listado de las unidades de medida, esta lista es de las propuestas por SAT,  por ello se hace solo la lista no CRUD**/
	def index
		@units = Unit.all.order(unit: :asc)
	end

  def new
    @unit = Unit.new
  end

  def edit; end

  def create
    @unit = Unit.new(unit_params)
    @unit.status = :active
    respond_to do |format|
      message = "Unidad de medida #{@unit.unit} creada."
      @unit.audit_comment = message
      if @unit.save
        format.js
      else
        format.html { render :new }
        format.js
        format.json { render json: @unit.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    respond_to do |format|
      message = "Unidad de medida #{@unit.unit} modificada."
      @unit.audit_comment = message
      if @unit.update(unit_params)
        format.js
      else
        format.html { render :edit }
        format.js
        format.json { render json: @unit.errors, status: :unprocessable_entity }
      end
    end
  end

  def update_status
    @unit.status =
      if @unit.active?
        0
      else
        1
      end
    respond_to do |format|
      message = "Se actualizó el status de la unidad de medida #{@unit.unit}."
      @unit.audit_comment = message
      if @unit.save
        format.html { redirect_to units_path, success: message }
        format.json { head :no_content }
      else
        format.html { redirect_to units_path }
        format.json { render json: @unit.errors, status: :unprocessable_entity }
      end
    end
  end

  private

  def set_unit
    @unit = Unit.find(params[:id])
  end

  def unit_params
    params.require(:unit).permit(:unit, :status)
  end
end
