Skip to content

Instantly share code, notes, and snippets.

@denoww
Last active April 3, 2017 11:21
Show Gist options
  • Save denoww/a45f639238b26b9bb659930659328c35 to your computer and use it in GitHub Desktop.
Save denoww/a45f639238b26b9bb659930659328c35 to your computer and use it in GitHub Desktop.

Para simular o erro utilize os dados que estão dando erro em produção

cobrança - Repare que a cobrança tem vencimento, vencimento original e mes_referencia, de 11 anos atŕas (2008 - ano bissexto - 29 de fevereiro)

#<Financeiro::Cobranca:0x00000015705778
 id: 8329,
 titulo: "TAXA DE MANUTENÇÃO",
 cliente_id: 441,
 pagador_id: 1655,
 unidade_id: 59142,
 destino: "proprietario",
 vencimento: Sun, 30 Mar 2008,
 mes_referencia: Fri, 01 Feb 2008,
 pagamento_antecipado_data: nil,
 pagamento_antecipado_valor: #<BigDecimal:e0c73e0,'0.0',9(18)>,
 pagamento_antecipado_percentual: true,
 multa: #<BigDecimal:15747650,'0.0',9(18)>,
 multa_percentual: true,
 juros: #<BigDecimal:1574e608,'0.0',9(18)>,
 juros_percentual: true,
 prazo_cobranca_juridica: nil,
 multa_juridica: #<BigDecimal:15763148,'0.0',9(18)>,
 multa_juridica_percentual: true,
 juros_juridico: #<BigDecimal:1576a1a0,'0.0',9(18)>,
 juros_juridico_percentual: true,
 created_at: Fri, 31 Mar 2017 21:42:04 BRT -03:00,
 updated_at: Fri, 31 Mar 2017 21:42:04 BRT -03:00,
 juros_simples: true,
 juros_periodo: "am",
 juros_juridico_simples: true,
 juros_juridico_periodo: "ad",
 origem: "molde_repeticao",
 codigo: 86,
 vencimento_original: Sun, 30 Mar 2008,
 payment_access: "8b96745b-86-441",
 valor: #<BigDecimal:157a1a60,'0.75E2',9(18)>,
 quitada_em: nil,
 cancelada_em: nil,
 parcela: nil,
 repeticao_id: 464,
 parcela_qtd: nil,
 divida_recebida: {},
 cobrar_antes_vencer_em: 5,
 observacoes: nil>

repetição

#<Financeiro::CobrancaRepeticao:0x000000158115b8
 id: 464,
 cliente_id: 441,
 cobranca_molde_id: 8329,
 repetir_a_cada: "each 1 month 7 times",
 repetir_exceto: [],
 created_at: Fri, 31 Mar 2017 21:42:04 BRT -03:00,
 updated_at: Fri, 31 Mar 2017 21:42:04 BRT -03:00>

Erro ao rodar comando

Financeiro::Cobranca.where(id: 8329).load_repeticao.first

Dá um erro dizendo que 30 de feveiro é uma data inválida.

Financeiro::CobrancaRepeticao Load (2.9ms)  SELECT "financeiro_cobranca_repeticoes".* FROM "financeiro_cobranca_repeticoes" WHERE "financeiro_cobranca_repeticoes"."id" IN (464)
  Financeiro::Cobranca Load (2.6ms)  SELECT "financeiro_cobrancas".* FROM "financeiro_cobrancas" WHERE "financeiro_cobrancas"."id" IN (8329)
  Financeiro::Cobranca Load (2.8ms)  SELECT  "financeiro_cobrancas".* FROM "financeiro_cobrancas" WHERE "financeiro_cobrancas"."id" = $1  ORDER BY "financeiro_cobrancas"."vencimento" ASC LIMIT 1  [["id", 8329]]
  Financeiro::Cobranca Load (3.3ms)  SELECT  "financeiro_cobrancas".* FROM "financeiro_cobrancas" WHERE "financeiro_cobrancas"."id" = $1  ORDER BY "financeiro_cobrancas"."vencimento" DESC LIMIT 1  [["id", 8329]]
  Financeiro::Cobranca Load (10.1ms)  SELECT  "financeiro_cobrancas".* FROM simular_repeticoes('{8329}', 'vencimento', '2008-03-30', '2008-09-30') financeiro_cobrancas WHERE "financeiro_cobrancas"."id" = $1  ORDER BY "financeiro_cobrancas"."id" ASC LIMIT 1  [["id", 8329]]
ActiveRecord::StatementInvalid: PG::DatetimeFieldOverflow: ERROR:  date/time field value out of range: "2008-02-30"
CONTEXT:  PL/pgSQL function simular_repeticoes(integer[],text,timestamp without time zone,timestamp without time zone) line 84 at assignment
: SELECT  "financeiro_cobrancas".* FROM simular_repeticoes('{8329}', 'vencimento', '2008-03-30', '2008-09-30') financeiro_cobrancas WHERE "financeiro_cobrancas"."id" = $1  ORDER BY "financeiro_cobrancas"."id" ASC LIMIT 1
from /var/deploy/seucondominio-new/web_head/shared/bundle/ruby/2.3.0/gems/activerecord-4.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:602:in `exec_prepared'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment