diff --git a/lib/tasks/diagnostico.rake b/lib/tasks/diagnostico.rake index b286367..760d1bc 100644 --- a/lib/tasks/diagnostico.rake +++ b/lib/tasks/diagnostico.rake @@ -15,12 +15,24 @@ namespace :reem do puts "account_ids presentes na tabela:" Entrega.group(:account_id).count.each { |acc, qtd| puts " account_id=#{acc.inspect} → #{qtd} linhas" } puts "-------------------------------------------------" + puts "status presentes na tabela:" + Entrega.group(:status).count.each { |st, qtd| puts " status=#{st.inspect} → #{qtd} linhas" } + puts "-------------------------------------------------" + no_periodo = Entrega.no_periodo(ini, fim) + puts "No período (sem filtro de conta):" + puts " total: #{no_periodo.count}" + puts " status='completed': #{no_periodo.where(status: 'completed').count}" + puts " checkin preenchido: #{no_periodo.where.not(checkin: nil).count}" + puts " checkout preenchido: #{no_periodo.where.not(checkout: nil).count}" + puts " .pagas (completed + checkin): #{no_periodo.pagas.count}" + puts "-------------------------------------------------" puts "planned_date mais antiga: #{Entrega.minimum(:planned_date)}" puts "planned_date mais recente: #{Entrega.maximum(:planned_date)}" puts "=================================================" puts "Leitura:" - puts " • 'SEM filtro' > 0 e 'com filtro Gade' = 0 → ajuste DB_EXISTING_ACCOUNT_ID no .env" - puts " • ambos = 0 → não há dados nesse período (use as datas acima)" + puts " • 'SEM filtro' > 0 e 'com filtro Gade' = 0 → ajuste DB_EXISTING_ACCOUNT_ID no .env" + puts " • total > 0 mas '.pagas' = 0 (checkin vazio) → regra de pagamento deveria usar checkout" + puts " • tudo 0 → não há dados nesse período (veja datas acima)" rescue => e warn "[diagnostico] Falha: #{e.class} - #{e.message}" raise