Repository navigation
Status Serialization Groups
Documentar como a entidade Status (api-platform-common) expõe campos (id, status, realStatus, color, …) via Symfony Serializer Groups quando é embutida em outros recursos (ex.: InvoiceTax).
Isso evita respostas de listagem com status/color vazios (-) no frontend.
-
CT-e (Conhecimento de Transporte eletrônico) usa o modelo de nota
invoiceModel = 57. - A listagem de CT-e consome a coleção
GET /invoice_taxes?invoiceModel=57(normalizaçãoinvoice_tax:read). -
InvoiceTax(móduloapi-platform-accounting) possui relaçãoManyToOnecomStatus. - O frontend de logística (
ui-logistic) exibe o rótulo e a cor do status na grade de CT-e.
Se os campos de Status não carregarem o grupo invoice_tax:read, o serializer omite status, realStatus e color no JSON aninhado → a UI mostra -.
Em src/Entity/Status.php os atributos abaixo passaram a incluir o grupo invoice_tax:read:
| Campo | Groups (trecho relevante) |
|---|---|
id |
invoice_tax:read, … |
status |
invoice_tax:read, … |
realStatus |
invoice_tax:read, … |
color |
invoice_tax:read, … |
Demais campos de controle (visibility, notify, system, context) seguem os grupos já existentes e não foram alterados neste fix.
Commit de referência em master: 3532f0b (fix(status): add invoice_tax:read groups for CTE list serialization).
-
Recurso principal:
InvoiceTaxnormalizationContext.groups = ['invoice_tax:read']- Campo
statusmarcado com#[Groups(['invoice_tax:read', 'invoice_tax:write'])]
-
Recurso aninhado:
Status- Para que propriedades apareçam no JSON de
InvoiceTax, elas devem declarar o mesmo grupoinvoice_tax:read.
- Para que propriedades apareçam no JSON de
Padrão geral: sempre que um recurso A embute Status (ou outra entidade compartilhada) e usa um grupo de normalização próprio (*:read), os campos de Status que a UI precisa devem listar esse mesmo grupo.
| Repositório | Papel |
|---|---|
| api-platform-common | Entidade Status e groups de serialização |
| api-platform-accounting | Entidade InvoiceTax (modelo 57 = CT-e) e endpoint de listagem |
| ui-logistic | Listagem visual de CT-e (consome o JSON com status/cor) |
-
MANAGER / logística: tela de CT-e em
ui-logistic(visão operacional de transporte). - O módulo
api-platform-commonnão implementa UI; só fornece o contrato de dados compartilhado. -
api-platform-accountingé o backend fiscal/tributário que materializaInvoiceTax.
Ao adicionar um novo grupo de leitura que embuta Status (ex.: novo foo:read):
- Inclua o grupo nos campos de
Statusque a listagem/detalhe do consumidor precisa (id,status,realStatus,colorno mínimo). - Verifique o JSON real da coleção (ou teste de serialização) antes de fechar a task.
- Atualize esta página se o caso for relevante para outro fluxo transversal.
- Issue: api-platform-common#32
- Entidade Status: src/Entity/Status.php
- Entidade InvoiceTax: src/Entity/InvoiceTax.php
- Wiki api-platform-accounting: Home
- Wiki ui-logistic: Home