feat(web+api): cockpit rep — novo pedido v2, endereço de entrega e cancelamento de orçamento
- NewOrderPage: etapas 1-5 — merge de cards, busca de produto melhorada (autocomplete com estoque + modal catálogo), responsividade mobile (tabela → cards, footer compacto), histórico de compras do cliente e campo de endereço de entrega (cadastrado vs livre) - endEntrega: campo TEXT adicionado em sar.pedidos; contrato CreatePedidoSchema e PedidoDetailSchema atualizados; aparece no detalhe (OrderDetailPage, OrderDetailModal) e no PDF (OrderPrintPage) - Cancelamento de orçamento: PATCH /orders/:id/cancel — rep cancela seu próprio orçamento (situa 0); histórico registrado; UI com Modal.confirm substituindo alert() em OrderActionsMenu - Fix: useClientDetail chamado para cliente selecionado manualmente, garantindo que clientEndStr seja preenchido mesmo sem clientIdParam na URL Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -115,6 +115,7 @@ export type ContatoResult = z.infer<typeof ContatoResultSchema>;
|
||||
|
||||
export const TopProdutoSchema = z.object({
|
||||
idProduto: z.number().int(),
|
||||
codProduto: z.string(),
|
||||
descricao: z.string(),
|
||||
unidade: z.string().nullable(),
|
||||
qtdTotal: z.number(),
|
||||
|
||||
@@ -88,6 +88,7 @@ export const PedidoDetailSchema = PedidoSummarySchema.extend({
|
||||
comissao: z.string(),
|
||||
pedFlex: z.string(),
|
||||
formaPagamento: z.string().nullable().optional(),
|
||||
endEntrega: z.string().nullable().optional(),
|
||||
aprovadoPor: z.number().int().nullable(),
|
||||
aprovadoEm: z.iso.datetime().nullable(),
|
||||
motivoRecusa: z.string().nullable(),
|
||||
@@ -138,6 +139,7 @@ export const CreatePedidoSchema = z.object({
|
||||
idPauta: z.number().int().optional(),
|
||||
codFormapag: z.number().int().optional(),
|
||||
obs: z.string().optional(),
|
||||
endEntrega: z.string().optional(),
|
||||
idempotencyKey: z.string().optional(),
|
||||
itens: z.array(CreatePedidoItemSchema).min(1),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user