Correção de horario e implantação da geração de Romaneio
This commit is contained in:
33
db/migrate/20260827000001_create_romaneios.rb
Normal file
33
db/migrate/20260827000001_create_romaneios.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
# Romaneio = UM plano do SimpliRoute importado para virar o "CONTROLE DE ENTREGA"
|
||||
# que o motorista assina ao retirar a carga.
|
||||
#
|
||||
# Chave (planned_date, operacao_tabela): o eixo de busca da API é a data, e a fonte
|
||||
# do enriquecimento (APARELHO/telefones) é exatamente UMA tabela gade_entregas_*.
|
||||
# Duas operações podem dividir a mesma data com veículos distintos, daí a dupla.
|
||||
#
|
||||
# `rotulo_plano` ("EMAD 09.2026") é APRESENTAÇÃO — sai no canto direito do PDF e o
|
||||
# operador reescreve à vontade. Por isso NÃO entra na chave: renomear o rótulo não
|
||||
# pode criar um segundo romaneio do mesmo dia.
|
||||
#
|
||||
# `operacao_tabela` é NOT NULL com default '' de propósito: no Postgres dois NULLs
|
||||
# são distintos entre si, e um índice único sobre coluna anulável deixaria passar
|
||||
# duplicata justamente no caso "romaneio sem operação escolhida".
|
||||
class CreateRomaneios < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
create_table :romaneios do |t|
|
||||
t.date :planned_date, null: false
|
||||
t.string :operacao_tabela, null: false, default: ''
|
||||
t.string :rotulo_plano, null: false, default: ''
|
||||
# 'api' (rotas do SimpliRoute) | 'espelho' (db_reem_simplerout_2026) |
|
||||
# 'planilha' (upload do .xlsx do plano)
|
||||
t.string :origem, null: false, default: 'api'
|
||||
t.datetime :importado_em
|
||||
t.references :importado_por, foreign_key: { to_table: :users }
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
add_index :romaneios, %i[planned_date operacao_tabela],
|
||||
unique: true, name: 'idx_romaneios_data_operacao_unico'
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user