class FixPermissoesDeFuncoesESubfuncoes < ActiveRecord::Migration[4.2]
	def self.up
		modulo = Acesso::Modulo.find_by( nome_do_modulo: 'ppa', nome_de_exibicao:  "PPA" )

		if modulo.present?	
			controle = Acesso::Controle.find_by( nome_do_controle: 'ppa/funcoes', modulo_id: modulo.id) if modulo.present?
			Acesso::Acao.find_by( nome_da_acao: "update", controle_id: controle.id).destroy
			Acesso::Acao.find_by( nome_da_acao: "create", controle_id: controle.id).destroy
			Acesso::Acao.find_by( nome_da_acao: "destroy", controle_id: controle.id).destroy

			controle = Acesso::Controle.find_or_create_by( nome_do_controle: 'ppa/sub_funcoes', modulo_id: modulo.id)
			controle.acoes.destroy_all
			controle.destroy
		end	
	end

	def self.down
		modulo = Acesso::Modulo.find_by( nome_do_modulo: 'ppa', nome_de_exibicao:  "PPA" )

		controle = Acesso::Controle.find_or_create_by( nome_do_controle: 'ppa/funcoes', modulo_id: modulo.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "update", nome_de_exibicao: "Editar", controle_id: controle.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "create", nome_de_exibicao: "Cadastrar", controle_id: controle.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "destroy", nome_de_exibicao: "Remover", controle_id: controle.id)

		controle = Acesso::Controle.find_or_create_by( nome_do_controle: 'ppa/sub_funcoes', modulo_id: modulo.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "update", nome_de_exibicao: "Editar", controle_id: controle.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "create", nome_de_exibicao: "Cadastrar", controle_id: controle.id)
		Acesso::Acao.find_or_create_by!( nome_da_acao: "destroy", nome_de_exibicao: "Remover", controle_id: controle.id)

	end
end