Ola, segue algumas modificações efetuadas para envio/cancelamento de NFSe para o Provedor Publica testadas para a prefeitura de Caçador.
[ pnfsNFSeW_ABRASFv1.pas ]
Situação: Informação da aliquota deve ser dividida por 100 como o GINFES
Linha: 280
proGINFES,
proPublica: Gerador.wCampoNFSe(tcDe4, '#25', 'Aliquota', 01, 05, 0, (NFSe.Servico.Valores.Aliquota / 100), '');
[ pnfsNFSeG.pas ]
Situação: Quando o código de cancelamento for 'C999' é necessario informar o Motivo.
Linha: 1271
** Adicionado abaixo da linha 1271 **
if (Provedor in [proPublica]) and (CodigoCanc = 'C999') then
Gerador.wCampoNFSe(tcStr, '#1', 'MotivoCancelamento', 01, 255, 1, MotivoCanc, '');
[ pnfsConversao.pas ]
Situação: Função "StrToNaturezaOperacao" foi modificada, função "NaturezaOperacaoToStr" não foi.
Linha: 257
['1', '2', '3', '4', '5', '6', '7', '9',
Linha: 264
[no1, no2, no3, no4, no5, no6, no7, no9,
não sei se foi a melhor abordagem, mas com essas modificações consegui transmitir a NFSe, espero estar contribuindo. Se for possível analisar, melhorar e incluir as modificações.
Obrigado.