# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
#   Mayor.create(name: 'Emanuel', city: cities.first)

# Regra padrão para Administrador
perfil_admin = Perfil.find_or_create_by!( nome: 'Administrador' )

if perfil_admin.persisted?
	Acesso::Permissao.all.each do |acesso_permissao|
		acesso_permissao.update_column(:permitido, true)
	end
end

# Criar Usuário Inicial

case Rails.env

when 'development' || 'production'
	usuario = Usuario.create(
		nome_completo: "Administrador",
		nome_de_usuario: "admin",
		email: "gerencial.intersol@gmail.com",
		password: ENV['senha_admin'],
		password_confirmation: ENV['senha_admin'],
		perfil_id: perfil_admin.id,
		nivel_de_permissao_a_unidades: "todas_as_unidades",
		master: true,
		aprovado: true,
		cpf: "29026192002",
		desenvolvedor: true
	) unless Usuario.find_by( email: 'gerencial.intersol@gmail.com' )
end

if Configuracao.count.zero?
	Configuracao.create!(
		permite_lancamentos_no_sabado: true,
		permite_lancamentos_no_domingo: false,
		permite_lancamentos_em_feriados: false,
		permite_saldo_das_contas_do_plano_de_contas_vire: true
	)
end

[
	{ descricao: 'unidade' },
	{ descricao: '%' },
	{ descricao: '1/1000' },
	{ descricao: 'milheiro' },
	{ descricao: 'milímetro' },
	{ descricao: 'serviço' },
	{ descricao: 'mês' },
	{ descricao: 'quilômetro' },
	{ descricao: 'caixa' },
	{ descricao: 'litro' },
	{ descricao: 'frasco' },
	{ descricao: 'pacote' },
	{ descricao: 'quilo' },
	{ descricao: 'rolo' },
	{ descricao: 'garrafão' },
	{ descricao: 'bloco' },
	{ descricao: 'cento' },
	{ descricao: 'metro quadrado' },
	{ descricao: 'resma' },
	{ descricao: 'peça' },
	{ descricao: 'jogo' },
	{ descricao: 'botijão' },
	{ descricao: 'grama' },
	{ descricao: 'carrada' },
	{ descricao: 'hora' },
	{ descricao: 'par' },
	{ descricao: 'lata' },
	{ descricao: 'pote' },
	{ descricao: 'bandeja' },
	{ descricao: 'garrafa' },
	{ descricao: 'centímetro' },
	{ descricao: 'metro' },
	{ descricao: 'dia' },
	{ descricao: 'vara' },
	{ descricao: 'conjunto' },
	{ descricao: 'folha' },
	{ descricao: 'galão' },
	{ descricao: 'latão' },
	{ descricao: 'tubo' },
	{ descricao: 'tonelada' },
	{ descricao: 'metro cúbico' },
	{ descricao: 'ampola' },
	{ descricao: 'bisgana' },
	{ descricao: 'comprimido' },
	{ descricao: 'bolsa' },
	{ descricao: 'capsula' },
	{ descricao: 'envelope' },
	{ descricao: 'kit' },
	{ descricao: 'tablete' },
	{ descricao: 'saco' },
	{ descricao: 'balde' },
	{ descricao: 'alqueire' },
	{ descricao: 'embalagem' },
	{ descricao: 'fardo' },
	{ descricao: 'vidro' },
	{ descricao: 'estojo' },
	{ descricao: 'bobina' },
	{ descricao: 'volume' },
	{ descricao: 'maços' }
].each { |dados_unidades_de_medida| UnidadeDeMedida.find_or_create_by!( dados_unidades_de_medida ) }

load File.expand_path('seed_ppa.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_cidades_estados.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_bancos.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_tipos_de_transferencia.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_tipos_de_pessoa.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_estados_civis.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_municipios_sim.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_ncms.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_aliquotas_do_imposto_de_renda.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_aliquotas_do_inss_pf.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_loa.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_niveis_opcionais_stn.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_cnaes.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_perfis.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_naturezas_da_despesa.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_categorias.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_itens.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_legislacoes.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_parametrizacao_modulos.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_maos_de_obra_e_equipamentos.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_menu_portal.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_codigos_ibge.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_feriados_nacionais.rb', Rails.root.to_s + '/db')
load File.expand_path('seed_feriados_ceara.rb', Rails.root.to_s + '/db')

#load File.expand_path('seed_acoes_do_sistema.rb', Rails.root.to_s + '/db')
#load File.expand_path('seed_permissoes.rb', Rails.root.to_s + '/db') # MODELO DE PERMISSÃO FOI ALTERADO
#load File.expand_path('seed_permissoes_dos_perfis.rb', Rails.root.to_s + '/db') # MODELO DE PERMISSÃO FOI ALTERADO

# CRIAR PPA VAZIO PARA PERMITIR CADASTRAR ORÇAMENTO INICIAL
if Ppa::Ppa.all.size == 0
	if Time.now.year <= 2025
		exercicio_final = 2025
	else
		offset = (Time.now.year - 2026) % 4
		if offset < 2
			Time.now.year + (3 - offset)
		else
			Time.now.year + (3 - offset)
		end
	end
	exercicio_inicial = exercicio_final - 3

	ppa = Ppa::Ppa.new(
		exercicio_inicial: exercicio_inicial,
		exercicio_final: exercicio_final
	)

	ppa.save(validate: false)
end

ParametrizacaoModulo.all.each do |parametracao_modulo|
	parametracao_modulo.update_column(:permite_uso_do_modulo, true)
end