FactoryBot.define do
	factory :calculo_do_exercicio_de_2016, class: 'Projecao::CalculoPorExercicio' do
		exercicio {2016}
		total {9.99}

		trait :receita do
			receita_id {
					Projecao::Receita.find_or_create_by(FactoryBot.attributes_for(:receita)).id
			}

			tipo {'realizado'}
		end

		trait :receita_do_calculo_de_projecao do
			receita_do_calculo_de_projecao_id {
				FactoryBot.create(:calculo_do_exercicio_de_2016, :receita, tipo: "revisado", exercicio: 2016)
				Projecao::ReceitaDoCalculoDeProjecao.find_or_create_by!( FactoryBot.attributes_for( :projecao_receita_do_calculo_de_projecao ) ).id
			}

			tipo {'projetado'}
		end
	end

	factory :calculo_do_exercicio_para_ppa_criado, class: 'Projecao::CalculoPorExercicio' do
		exercicio {
			Ppa::Ppa.first.exercicio_inicial
		}
		total {9.99}

		trait :receita_de_convenio do
			receita_id {
				Projecao::Receita.find_or_create_by(FactoryBot.attributes_for(:receita, projecao_de_receita_id: Ppa::Ppa.first.projecao_de_receita.id, de_convenio: true)).id
			}

			tipo {'convenio'}
		end


		trait :receita do
			receita_id {
				Projecao::Receita.find_or_create_by(FactoryBot.attributes_for(:receita, projecao_de_receita_id: Ppa::Ppa.first.projecao_de_receita.id)).id
			}

			tipo {'realizado'}
		end

		trait :receita_do_calculo_de_projecao do
			receita_do_calculo_de_projecao_id {
				Projecao::ReceitaDoCalculoDeProjecao.find_or_create_by!( FactoryBot.attributes_for( :projecao_receita_do_calculo_de_projecao_para_ppa_atual ) ).id
			}

			tipo {'projetado'}
		end
	end
end
