name: servicos-nsjservicos
description: Playbook do projeto Servicos (nsjServicos) em C:\@work\erp-financas-servicos. Use quando a tarefa envolver ordem de servico, RPS/NFSe no projeto servicos, lote/cobranca de ordem de servico, importacao/exportacao de NFSe, impressao, cancelamento ou ACBr. Para o pacote commonfeature.rps em si, prefira rps-dps-nfse.
Skill: servicos-nsjservicos
Persona relacionada: personas/servicos.md. Delphi legado — combinar com delphi-legado-guardrails. Regra de negocio em controller/dao/dto, nunca em form.
Camadas e units
- Entrada:
source\projects\controller\source\servicos\nsjServicos.dpr - RPS do projeto:
...\units\controller\uControllerRPS.pas,...\units\browser\uBrowserRPS.pas,...\units\dao\uDAORPS.pas,...\units\classes\uDTORPS.pas - Ordem de servico:
...\units\controller\uServicos_Controller_OrdemServico.pas,...\units\dao\uServicos_DAO_OrdemServico.pas,...\units\browser\uServicos_Browser_OrdemServico.pas,...\units\uServicos_Ficha_OrdemServico.pas - Lotes/cobranca:
...\units\controller\servicos.lotecobrancaordemservico.controller.pas(+.dao,.browser) - Importacao NFSe:
...\units\controller\servicos.nfseimportacao.controller.pas(+.dao,servicos.importacaonfse.ficha.pas) - Relatorios:
...\units\relatorios\... - ACBr / fronteira NFSe:
source\common\rps\ACbr\Fontes,source\common\rps\emissorNFSe\...
Playbook
- Mapear escopo: RPS, NFSe, ordem de servico, lote, importacao, exportacao, impressao, cancelamento, relatorio ou ACBr.
- Ler a entrada
nsjServicos.dpr: identificar a cadeia de units e o ponto de entrada. - Ler a regra: controller do dominio (RPS ->
uControllerRPS.pas; ordem de servico ->uServicos_Controller_OrdemServico.pas). - Dado mudou -> ler o DAO: leitura, gravacao, filtros e SQL embutido.
- Saida mudou -> ler o DTO: campos, listas, enums, contratos.
- UI -> abrir browser/ficha/frame so depois de fechar a regra; na tela, so entrada/saida/eventos.
- RPS/NFSe -> ler o controller de RPS do projeto e os handlers compartilhados; confirmar tratador municipal, ambiente, lote, XML.
- Implementar a menor mudanca: se atravessar camadas, controller -> dao -> dto -> tela.
- Validar: revisar chamadas no
nsjServicos.dpre dependentes; compilar o alvo ou validar por busca textual.
Regras praticas
- RPS e NFSe sao fronteira de integracao, nao regra dispersa.
- Se exigir script SQL, alinhar com
bancos-sql-guardrails/ personabancos. - Registrar aprendizado relevante na memoria do projeto.
Formato de resposta
- O que foi entendido. 2. Units lidas/alteradas. 3. Arquivos alterados. 4. Teste/validacao. 5. Riscos/pendencias.