# Release — Sprint 16 **Data:** 2026-05-19 ## Versoes | Projeto | Versao | VersionCode | |----------------|---------|-------------| | DoncMobile.App | 3.5.8 | 37 | | DoncMobile.API | 3.5.2 | — | | Admin | 3.3.3 | — | | ApiV2 | 3.0.19 | — | | Servico | 3.0.23 | — | | WebHubDonc | 2.4.8 | — | --- ## Release Notes ### DoncMobile.App — v3.5.8 - Checklist de execução agora agrupa itens por sessão configurada no Tipo de Serviço - Itens sem sessão configurada aparecem automaticamente em uma sessão virtual "Geral" - Validação por QR Code por sessão: ao iniciar sessão com validação obrigatória, app abre câmera para fotografar o QR Code do produto/categoria - QR Code implementado via foto (MediaPicker + ZXing.Net + SkiaSharp) — compatível com net10.0 ### DoncMobile.API — v3.5.2 - Recebimentos: corrigido valor exibido para tenants com comissão sobre total (Cybelar) — `ValorOS` retorna `0` quando `calcularSobreTotal && valorTerceirizado > 0` - Valor a pagar ao profissional agora exibido corretamente em OS criadas manualmente pelo Admin (montador) - Bloqueada inserção de registros de status duplicados (`PedidoStatus`) via `INSERT ... WHERE NOT EXISTS` - Sincronização: `SessaoId` propagado por `JobIten` — permite agrupamento correto no app ### Admin — v3.3.3 - Checklist: gestão de sessões por Tipo de Serviço (tipo Geral/Produto/Categoria, paginação) - Campo `Etiqueta` adicionado ao formulário de produto (carga + gravação) - Campo `GeraMontagem` adicionado ao formulário de produto - Campos de versão do app (`VersaoMinimaLoginApp`, `CodigoVersaoApp`, `AtualizacaoObrigatoria`, `MensagemAtualizacao`) agora visíveis e editáveis na tela de Saas - Histórico de leituras de QR Code por sessão exibido na tela de visualização do Pedido - Correção: `txtEtiqueta` e `ckbGeraMontagem` declarados no designer - Correção: `CarregarProdutos` nas Sessões agora usa `db.ProdutoComercials` (era `db.Produtos`) ### ApiV2 — v3.0.19 - Novo endpoint `GET /api/Produto/Categorias` — retorna `Id` e `Nome` filtrados por tenant - Suporte a `CategoriaProdutosId` na criação/atualização de produto (inline e via `POST`/`PUT /api/Produto`) - Campo `Etiqueta` persistido na criação de OS via API - Campo `GeraMontagem` persistido na criação de OS via API - `SessaoId` propagado de `TipoJobIten` para `JobIten` na criação de OS ### Servico — v3.0.23 - `SessaoId` propagado de `TipoJobIten` para `JobIten` na criação de OS (HubSoft, IXC, LojasMM, MK) - Filtro `GeraMontagem` aplicado em `CopiarPedidoItens`: copia apenas produtos com `GeraMontagem = 1` quando existirem, retrocompatível ### WebHubDonc — v2.4.8 - `SessaoId` propagado de `TipoJobIten` para `JobIten` na criação de OS - DoncCx: response agora inclui lista de estabelecimentos com `Id`, `NomeFantasia` e `DataCadastro` --- ## Guia de Testes — QA > Copie esta seção e envie para os testers. ### Ambientes | Projeto | Onde testar | |----------------|--------------------------------------| | Admin | admin.donc.com.br | | DoncMobile.API | apimobile.teste.donc.com.br | | WebHubDonc | webhub.donc.com.br | | App | APK na pasta "Apk Donc Mobile" Drive | ### DoncMobile.App - [ ] Criar OS com Tipo de Serviço que tem sessões configuradas → abrir no app e verificar que o overview exibe as sessões agrupadas - [ ] Criar OS com Tipo de Serviço que tem itens **sem** sessão → verificar que aparecem agrupados em "Geral" - [ ] Sessão com validação por QR Code: ao iniciar, app deve abrir câmera (foto) → fotografar o QR Code do produto/categoria → se leitura correta, avança; se errado, exibe erro - [ ] Sessão com validação por QR Code: botão "Pular" deve funcionar e avançar sem validar - [ ] Tela de Recebimentos (tenant Cybelar): verificar que o valor exibido não está inflado (não soma `Valor + ValorOS`) - [ ] App do montador: abrir OS criada manualmente pelo Admin → verificar que campo "Valor a Pagar ao Profissional" aparece - [ ] Executar ação no app (ex: iniciar deslocamento) duas vezes seguidas → verificar que não gera registros de status duplicados no painel ### Admin - [ ] Tipo de Serviço → Sessões: criar sessão com tipo Geral, Produto e Categoria → verificar paginação - [ ] Produto: salvar produto com campo Etiqueta preenchido → verificar que é persistido - [ ] Produto: marcar/desmarcar campo "Gera Montagem" → verificar que é persistido - [ ] Saas: editar cadastro → verificar que campos `VersaoMinimaLoginApp`, `CodigoVersaoApp`, `AtualizacaoObrigatoria`, `MensagemAtualizacao` aparecem e salvam corretamente - [ ] Pedido (View): verificar seção de histórico de leituras de QR Code por sessão ### ApiV2 - [ ] `GET /api/Produto/Categorias` → deve retornar lista de categorias do tenant autenticado - [ ] `POST /api/Produto` com `CategoriaProdutosId` → produto criado com categoria correta - [ ] `POST /api/Job/SalvarValidandoCodigoDuplicado` com produto novo incluindo `Etiqueta` → verificar que `Etiqueta` é persistida no `ProdutoComercial` - [ ] Criação de OS com Tipo de Serviço com sessões → verificar que `JobIten` retornados têm `SessaoId` preenchido ### Servico - [ ] Finalizar OS de entrega com configuração de criar OS de montagem automaticamente → verificar que apenas produtos com `GeraMontagem = 1` são copiados para a nova OS (quando existirem) - [ ] Criação de OS via integração HubSoft/IXC/LojasMM/MK → verificar que `JobIten` têm `SessaoId` preenchido ### WebHubDonc - [ ] Endpoint DoncCx → response deve conter lista de `Estabelecimentos` com `Id`, `NomeFantasia` e `DataCadastro`