Implantação da criação de romaneios
This commit is contained in:
@@ -121,6 +121,14 @@ class Operacao
|
||||
}
|
||||
end
|
||||
|
||||
# Número do mês a partir de um token do nome ("ago", "agosto", "AGOSTO").
|
||||
# Público de propósito: Romaneios::CasadorDeOperacao precisa da MESMA tabela de
|
||||
# meses para casar o nome do plano do SimpliRoute com a tabela da operação, e
|
||||
# duplicar esse mapa seria criar uma segunda verdade que sai de sincronia.
|
||||
def mes_numero(token)
|
||||
MESES[token.to_s.downcase]&.first
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Extrai { titulo:, item:, ordem: } do nome da tabela.
|
||||
|
||||
@@ -45,6 +45,23 @@ class Romaneio < ApplicationRecord
|
||||
@contagem_por_veiculo ||= linhas_vigentes.reorder(nil).group(:veiculo).count
|
||||
end
|
||||
|
||||
# { novos: 184, recorrentes: 1863 } — quantos pacientes recebem APARELHO.
|
||||
#
|
||||
# POR QUE APARECE NA TELA: é a conferência que o programa antigo fazia com uma
|
||||
# caixa de diálogo ("184 entrega(s) marcada(s) como NOVO") logo depois de
|
||||
# carregar o status. Sem esse número, um romaneio importado SEM operação
|
||||
# vinculada — em que ninguém é marcado como novo — parece idêntico a um
|
||||
# importado certo, e o erro só aparece no papel, com aparelho não entregue.
|
||||
# "0 novos" na tela é a pergunta que o operador precisa se fazer.
|
||||
def contagem_aparelho
|
||||
@contagem_aparelho ||= begin
|
||||
grupos = linhas_vigentes.reorder(nil).group(:aparelho).count
|
||||
total = grupos.values.sum
|
||||
novos = grupos.sum { |valor, qtd| valor.to_s.strip.casecmp('SIM').zero? ? qtd : 0 }
|
||||
{ novos: novos, recorrentes: total - novos }
|
||||
end
|
||||
end
|
||||
|
||||
def folhas_de(veiculo)
|
||||
total = contagem_por_veiculo[veiculo].to_i
|
||||
return 1 if total.zero?
|
||||
|
||||
Reference in New Issue
Block a user