require 'rails_helper'

RSpec.describe ImportacaoTcm::ContabilidadeTalaoDeReceita, type: :model do
	let(:dados_orcamento) {
		{
			"codigo_municipio" => "057",
			"exercicio_orcamento" => "201600",
			"nu_lei_orcamento" => "0000010435",
			"valor_total_fixado_orcamento" => "7272573519.0000",
			"numero_perc_sup_orcamento" => "25",
			"valor_total_supl_orcamento" => "1818143379.7500",
			"data_envio_loa" => "2015-10-14 00:00:00",
			"data_aprov_loa" => "2015-12-17 00:00:00",
			"data_public_loa" => "2015-12-28 00:00:00"
		}
	}

	let(:dados_orgaos) {
    [
      {
        "codigo_municipio" => "057",
        "exercicio_orcamento" => "201600",
        "codigo_orgao" => "01",
        "codigo_tipo_unidade" => "02",
        "nome_orgao" => "CAMARA MUNICIPAL DE FORTALEZA",
        "cgc_orgao" => "06621791000153"
      },
      {
        "codigo_municipio" => "057",
        "exercicio_orcamento" => "201600",
        "codigo_orgao" => "11",
        "codigo_tipo_unidade" => "01",
        "nome_orgao" => "GABINETE DO PREFEITO",
        "cgc_orgao" => "07954605000160"
      },
      {
        "codigo_municipio" => "057",
        "exercicio_orcamento" => "201600",
        "codigo_orgao" => "12",
        "codigo_tipo_unidade" => "04",
        "nome_orgao" => "GABINETE DO VICE-PREFEITO",
        "cgc_orgao" => "05329423000173"
      }
    ]
  }

	let(:dados_taloes_de_receitas) {
		[
			{
				"codigo_municipio" => "099",
				"exercicio_orcamento" => "201600",
				"codigo_orgao" => "10",
				"codigo_unidade" => "10  ",
				"codigo_rubrica" => "132501990000000",
				"tipo_fonte" => "2",
				"codigo_fonte" => "18 ",
				"numero_talao_receita" => "01020110",
				"data_talao_receita" => "2016-02-01 00:00:00",
				"data_referencia" => "201602",
				"valor_receita" => "3140.0100",
				"historico_receita" => "Rendimentos de aplicacao financeira.",
				"tipo_doc_contribuinte" => "1",
				"numero_doc_contribuinte" => "00360305196173",
				"nome_razao_social_contribuinte" => "CAIXA ECONOMICA FEDERAL",
				"numero_banco" => "0104",
				"numero_agencia_bancaria" => "001961",
				"numero_conta_corrente" => "0006470260",
				"numero_doc_credito" => "01020110",
				"dt_credito_tr" => "2016-02-01 00:00:00",
				"tipo_doc_credito" => "2"
			},
			{
				"codigo_municipio" => "099",
				"exercicio_orcamento" => "201600",
				"codigo_orgao" => "10",
				"codigo_unidade" => "10  ",
				"codigo_rubrica" => "132501990000000",
				"tipo_fonte" => "2",
				"codigo_fonte" => "18 ",
				"numero_talao_receita" => "01040028",
				"data_talao_receita" => "2016-04-01 00:00:00",
				"data_referencia" => "201604",
				"valor_receita" => "3606.9100",
				"historico_receita" => "Rendimentos de aplicacao financeira.",
				"tipo_doc_contribuinte" => "1",
				"numero_doc_contribuinte" => "00360305196173",
				"nome_razao_social_contribuinte" => "CAIXA ECONOMICA FEDERAL",
				"numero_banco" => "0104",
				"numero_agencia_bancaria" => "001961",
				"numero_conta_corrente" => "0006470260",
				"numero_doc_credito" => "01040028",
				"dt_credito_tr" => "2016-04-01 00:00:00",
				"tipo_doc_credito" => "2"
			}
		]
	}

	describe "Importa os dados de contas bancárias da API do TCM" do

		xit ".criar_taloes_de_receita" do
			orcamento = ImportacaoTcm::Loa.criar_orcamento(dados_orcamento)
			ImportacaoTcm::Loa.criar_orgaos(dados_orgaos, orcamento)
			ImportacaoTcm::ContabilidadeTalaoDeReceita.criar_taloes_de_receita(dados_taloes_de_receitas, orcamento, 1)

			dados_taloes_de_receitas.each do |talao_de_receita_tcm|
				expect(Contabilidade::TalaoDeReceita.find_by(
					numero_do_talao: talao_de_receita_tcm['numero_talao_receita'],
					data_do_talao: talao_de_receita_tcm['data_talao_receita'],
					documento_de_credito: talao_de_receita_tcm['numero_doc_credito'])
				).not_to be_nil
			end
		end

	end
end
