3.5 KiB
Oficina — relatório por abertura de ordens
10/11/2026. Entregue na mesma8085: Oficinas → Relatórios, escolha explícita de datas de abertura, pesquisa/estado, páginas25/100 e CSV da página efectivamente consultada. Reutiliza /api/workshop/orders, workshop.view e a atribuição actual ao técnico. Nenhum novo direito, esquema ou comando de negócio.
O intervalo usa o dia local já definido pela Oficina, Africa/Johannesburg: início incluído, meia-noite seguinte ao último dia excluída. A resposta identifica o intervalo UTC exacto. O filtro incide sobre wo_orders.created_at na SQL, antes de contar/paginar. Não corta os apontamentos pela data: mostra identificação, responsável e apontamentos actuais das ordens abertas no período. Não é fecho diário, relatório histórico de produção, entrega, facturação ou pagamento.
O modo Relatórios inicia sem datas e exige ambas antes da consulta. Painel/equipa conservam a lista sem corte, podendo indicar datas. Alterar filtros sem pesquisar não muda os dados exportados: o CSV usa o pedido aplicado e a página devolvida, inclui instante de observação, zona, total de ordens do filtro e os minutos/apontamentos dessa página. Não soma materiais, custos ou tempos do universo. Textos livres são protegidos contra fórmulas e escapados com aspas/quebras de linha. Resposta atrasada ou período/página incompatíveis não são aceites como o relatório pedido.
Provas e preservação
-21 verificações dirigidas na regressão:30 ordens SQL apenas de leitura de relatório, fronteiras de meia-noite/microssegundos,25+3/100, ordenação, combinação de estado/pesquisa, intervalo alargado/vazio, datas inválidas/invertidas/incompletas, atribuição do técnico e módulo recusado. Todas as fixtures revertidas, cinco conjuntos originais comparados. Não são ordens criadas pelo workflow. -13 de apresentação/contrato/CSV: datas obrigatórias só no relatório, ausência de indicadores inventados, resposta com período/página errados recusada, fonte efectiva, limite de página e escapagem. Renderização simulada não constitui revisão visual. -15 HTTP8085: dia local de uma ordem efectivamente existente, paridade com a lista anterior,25/100, pesquisa/estado, páginas vazias, argumentos/contexto recusados, atribuição e CSV. Ficheiros JS principal/lazy realmente servidos com MIME e SHA iguais aos instalados. -48 conjuntos actuais idênticos antes/depois, incluindo condições de vencimento/recibos recentes, artigos, permissões, ordens e diário; binding intacto. Diário27, Caixa950, cinco cálculos e todas as operações anteriores conservados. Zero comandos de negócio ou concessões na8085; seis registos e cache não foram alvo de comandos.
São49 verificações dirigidas, sem repetir as suites de emissão, recebimentos, Stock, Caixa, vencimentos ou lançamentos. Índice das provas. Código compilado em privado, ficheiros anteriores conservados; nenhuma limpeza de cache/reinício, demonstração, SGC, publicação, candidata de Compras, aceitação ou checkpoint.
O leitor continua sem mutex de escrita da empresa. A prova anterior desse comportamento foi reutilizada, não repetida nem apresentada como nova medição de carga. Carga sustentada, revisão visual e implantação permanecem separadas. Não entrega corte histórico, fecho diário imutável, PDF arquivado, períodos contabilísticos ou relatórios legais. Datas/valores são os das fontes QA existentes; esta entrega não declara o produto completo.