module Base::FontesDeRecursos
	class FonteTCE < Base::FonteDeRecursos
		belongs_to :fonte_stn, class_name: 'Base::FontesDeRecursos::FonteStn'

		validates_presence_of :fonte_stn_id

		default_scope { includes(:fonte_stn).order("base_fontes_stn.codigo_tipo_exercicio, base_fontes_stn.codigo_principal, base_fontes_stn.detalhamento_sintetico", :codigo) }

		def codigo_completo
			"#{fonte_stn.try(:codigo_completo)}#{codigo}"
		end

		def codigo_e_descricao
			"#{codigo_completo} - #{descricao}"
		end

		def self.recursos_ordinarios # correspondente a fonte 101
			joins(:fonte_stn).find_by(base_fontes_stn: {codigo_principal: "001", codigo_tipo_exercicio: 1})
		end

		def self.recursos_de_educacao # correspondente a fonte 102
			joins(:fonte_stn).find_by(base_fontes_stn: {codigo_principal: "111", codigo_tipo_exercicio: 1})
		end
		def self.recursos_de_saude # correspondente a fonte 103
			joins(:fonte_stn).find_by(base_fontes_stn: {codigo_principal: "211", codigo_tipo_exercicio: 1})
		end

		def fonte_de_recurso_do_orcamento?(orcamento)
			modulo_type == orcamento.class.name && modulo_id == orcamento.id
		end
	end
end
