FactoryBot.define do
	factory :despesa_extra_orcamentaria, class: 'Contabilidade::DespesaExtraOrcamentaria' do
		orcamento_id {
			Orcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_2016 ) ).id
		}

		data_de_emissao {"2017-02-14"}

		unidade_orcamentaria_id {
			Loa::UnidadeOrcamentaria.find_or_create_by!(FactoryBot.attributes_for(:loa_hgf, :orcamento_2016)).id
		}

		conta_bancaria_por_unidade_orcamentaria_id {
			Base::ContaBancariaPorUnidadeOrcamentaria.find_or_create_by!( FactoryBot.attributes_for(:conta_bancaria_por_unidade_orcamentaria) ).id
		}

		conta_extra_orcamentaria_id {
			Contabilidade::ContaExtraOrcamentaria.find_or_create_by!( FactoryBot.attributes_for( :conta_extra_orcamentaria ) ).id
		}


		numero_de_caixa {"12345678"}

		credor_id {
			Base::Pessoa.find_or_create_by!( FactoryBot.attributes_for( :pessoa_fisica ) ).id
		}

		tipo_de_documento {1}

		numero_do_documento {"01234567"}
		valor_da_despesa {5.00}

		before(:create) do |despesa|
			lancamento = FactoryBot.create(:contabilidade_lancamento_extraorcamentario_receita, conta_extra_orcamentaria_id: despesa.conta_extra_orcamentaria_id)
			lancamento.modulo.update_attribute(:unidade_orcamentaria_id, despesa.unidade_orcamentaria_id)
		end

		after(:build) do |despesa|
			lancamento = FactoryBot.create(:contabilidade_lancamento_extraorcamentario_receita, conta_extra_orcamentaria_id: despesa.conta_extra_orcamentaria_id)
			lancamento.modulo.update_attribute(:unidade_orcamentaria_id, despesa.unidade_orcamentaria_id)
		end
	end
end
