class Admin::Library::HoldingsController < Admin::Library::Controller
  def create
    objects = []
    params[:number].to_i.times do
      objects << current_school.library_holdings.build(holding_params)
      @barcode += 1 if @barcode
    end

    if transactional_save(objects)
      render_success :ok
    else
      render_error :unprocessable_entity, errors: multi_errors(objects)
    end
  end

  private
    def holding_params
      params.permit(
        :bib_id,
        :location_id,
        :item_condition_id,
        :call_number,
        :cost
      ).merge(barcode: barcode)
    end

    def barcode
      @barcode ||= case params[:barcode]
      when 'next'
        current_school.library_holdings.next_barcode
      when 'starting'
        params[:barcode_number].to_i
      end
    end
end
