Bom dia @Italo Giurizzato Junior,
Ficou muito bom, muito obrigado!
Tenho apenas algumas observações.
Não sei se isso ocorre apenas aqui na minha cidade ou se se aplica a todas.
Primeiro no arquivo Conam.GravarXml.pas
'0' e '1' não funciona nestas três propriedades, aqui está validando 'SIM' e 'NAO'
Result.AppendChild(AddNode(tcStr, '#1', 'IndConsFin', 1, 1, 1,
IfThen(IBSCBS.indFinal = ifSim, 'SIM', 'NAO'), ''));
Result.AppendChild(AddNode(tcStr, '#1', 'IndDest', 1, 1, 1,
IfThen(IBSCBS.indDest = idTomadorAdquirenteDestinatarioIguais, 'SIM', 'NAO'), ''));
Result.AppendChild(AddNode(tcStr, '#1', 'IndOpeOne', 1, 1, 1,
IfThen(IBSCBS.IndOpeOne = tiSim, 'SIM', 'NAO'), ''));
CEP tomador quando é 'CONSUMIDOR' não valida com zeros '00000000' precisa passar vazio ''
if (CpfCnpj <> 'CONSUMIDOR') and (CpfCnpj <> 'EXTERIOR') then
NFSeNode.AppendChild(AddNode(tcStr, '#1', 'CepTom', 1, 8, 1,
OnlyNumber(NFSe.Tomador.Endereco.CEP), ''))
else
NFSeNode.AppendChild(AddNode(tcStr, '#1', 'CepTom', 1, 8, 1,
'',''));
E por último neste arquivo, acho que esqueceram um "if False" aqui, só comentei
//if False then
//begin
xmlNode := GerarReg60(NFSe.IBSCBS);
NFSeNode.AppendChild(xmlNode);
//end;
Agora no arquivo Conam.Provider.pas
Quando o TipoTrib é 4, é obrigatório informa a tag RegApTribSN
if OptanteSimples = snSim then
begin
xOptante := '<TipoTrib>4</TipoTrib>' +
'<DtAdeSN>' +
FormatDateTime('dd/mm/yyyy', DataOptanteSimples) +
'</DtAdeSN>' +
'<AlqIssSN_IP>' +
Aliquota +
'</AlqIssSN_IP>'+
'<RegApTribSN>'+
RegimeApuracaoSNToStr(Nota.NFSe.RegimeApuracaoSN) +
'</RegApTribSN>';
end
Com esses pequenos ajustes, a validação ocorreu corretamente.
Inclusive, o problema que eu estava enfrentando — em que apenas notas não onerosas eram aceitas — foi resolvido.
Anexarei os dois arquivos com as alterações realizadas, bem como o manual onde consta exatamente a forma como implementei.
Mais uma vez, agradeço pela ajuda.
webservice++versao+4.0++reforma+tributaria+sobre+consumo (5).pdf
Conam.GravarXml.pas
Conam.Provider.pas