FactoryBot.define do
	factory :elemento_de_despesa_material_de_consumo, class: 'Base::ElementoDeDespesa' do
		codigo {'33903000'}
		descricao {'Material de Consumo'}
		folha_de_pagamento { 0 }
		despesa_financeira { 0 }
		compoe_obras { 0 }
		despesa_pessoal { 0 }
		deducao_despesa_pessoal { 0 }
		transferencia_intraorcamentaria { 0 }
		contabil_obrigatorio { 0 }
		padrao_rpps { 0 }
		deducao_pasep { 0 }
		preferencialmente_pessoa_juridica { 0 }
		preferencialmente_pessoa_fisica { 0 }

		elemento_de_gasto {
			NaturezaDaDespesa::ElementoDeDespesa.find_or_create_by(codigo: "30", descricao: 'Material de Consumo')
		}

		trait :com_modalidade_de_aplicacao do
			codigo {'33903000'}
			modalidade_de_aplicacao_id {
				Base::ModalidadeDeAplicacao.find_or_create_by!(FactoryBot.attributes_for(:aplicacoes_diretas)).id
			}
		end

		trait :sem_validacao do
			to_create {|elemento| elemento.save(validate: false) }
		end

		trait :com_modalidade_de_aplicacao_intra_orcamentaria do
			codigo {'33913000'}
			descricao {"Material de Consumo"}
			modalidade_de_aplicacao_id {
				Base::ModalidadeDeAplicacao.find_or_create_by!(FactoryBot.attributes_for(:aplicacoes_diretas, codigo: 33910000, descricao: descricao)).id
			}

			elemento_de_gasto {
				NaturezaDaDespesa::ElementoDeDespesa.find_or_create_by(codigo: "30", descricao: 'Material de Consumo')
			}
		end
	end

	factory :elemento_de_despesa_material_permanente, class: 'Base::ElementoDeDespesa' do
		codigo {'44905200'}
		descricao {'Equipamentos e Material Permanente'}
		folha_de_pagamento { 0 }
		despesa_financeira { 0 }
		compoe_obras { 0 }
		despesa_pessoal { 0 }
		deducao_despesa_pessoal { 0 }
		transferencia_intraorcamentaria { 0 }
		contabil_obrigatorio { 0 }
		padrao_rpps { 0 }
		deducao_pasep { 0 }
		preferencialmente_pessoa_juridica { 0 }
		preferencialmente_pessoa_fisica { 0 }

		elemento_de_gasto {
			NaturezaDaDespesa::ElementoDeDespesa.find_or_create_by(codigo: "52", descricao: 'Equipamentos e Material Permanente')
		}
	end
end
