FactoryBot.define do
	factory :pagamento, class: 'Contabilidade::Pagamento' do
		liquidacao { Contabilidade::Liquidacao.find_or_create_by(attributes_for(:liquidacao)) }
		orcamento { Orcamento.find_or_create_by(attributes_for( :orcamento_2016 ))}
		estornado { false }
		numero_de_caixa { '12345678' }
		data_da_solicitacao { '2016-10-27' }
		data { '2016-10-30' }
		valor { 9.99 }
		status { :solicitado }
		historico { 'historico' }
		forma_de_pagamento { :cheque }
		remover_retencoes_do_pagamento { true }

		trait :com_diaria do
			data { '2016-11-27' }
			data_da_solicitacao { '2016-11-30' }
			orcamento_id {
				Orcamento.find_or_create_by!( FactoryBot.attributes_for(:orcamento_2016) ).id
			}

			liquidacao { Contabilidade::Liquidacao.find_or_create_by(attributes_for(:liquidacao_com_diaria)) }
		end

		trait :estornado do
			estornado { true }
		end

		before(:create) do |pagamento|
			create_list(:conta_bancaria_por_pagamento, 1, pagamento: pagamento)
		end

		factory :pagamento_de_pessoal do
			liquidacao { Contabilidade::Liquidacao.find_or_create_by!( FactoryBot.attributes_for(:liquidacao_001)) }
		end
		factory :pagamento_de_pessoal_sem_medicao_de_obra
		factory :pagamento_com_diaria, traits: [:com_diaria]
	end
end
