module Obra
  class Obra::AditivosDoConvenioController < ApplicationController

    include ControllerConcern
    include ObraControllersConcern

    before_action :authenticate_usuario!
    before_action :autoriza_usuario!
    before_action :set_aditivo_do_convenio, only: [:show, :edit, :update, :destroy]
    before_action :set_transferencia, only: [:create, :new]

    # GET /obra/aditivos_do_convenio/1
    def show
    end

    # GET /obra/transferencias/1/aditivos_do_convenio/new
    def new
      @aditivo_do_convenio = @transferencia.aditivos_do_convenio.new
    end

    # GET /obra/aditivos_do_convenio/1/edit
    def edit
    end

    # POST /obra/transferencias/1/aditivos_do_convenio
    def create
      @aditivo_do_convenio = @transferencia.aditivos_do_convenio.new(aditivo_do_convenio_params)

      if @aditivo_do_convenio.save
        redirect_to obra_transferencia_path(@aditivo_do_convenio.transferencia), notice: 'Aditivo foi criado com sucesso.'
      else
        render :new
      end
    end

    # PATCH/PUT /obra/aditivos_do_convenio/1
    def update
      if @aditivo_do_convenio.update(aditivo_do_convenio_params)
        redirect_to obra_transferencia_path(@aditivo_do_convenio.transferencia), notice: "Aditivo foi atualizado com sucesso."
      else
        render :edit
      end
    end

    # DELETE /obra/aditivos_do_convenio/1
    def destroy
      mensagem = apaga_e_retorna_mensagem(@aditivo_do_convenio)
      redirect_to @aditivo_do_convenio.transferencia, mensagem
    end

    private
    def set_aditivo_do_convenio
      @aditivo_do_convenio = Obra::AditivoDoConvenio.find( params[:id] )
    end

    def set_transferencia
      @transferencia = Obra::Transferencia.find( params[:transferencia_id] )
    end

    # Permite apenas os parâmetros específicos
    def aditivo_do_convenio_params
      params.require(:obra_aditivo_do_convenio).permit(:transferencia_id, :data_do_aditivo, :inicio_da_vigencia, :fim_da_vigencia, :modalidade, :valor, :_destroy)
    end
  end
end
