@Italo Giurizzato Junior
Anterior NFS-e, atender abrasf2:
function ResponsavelRetencaoToStr(const t: TnfseResponsavelRetencao): String;
begin
result := EnumeradoToStr(t,
['1', '2'],
[ptTomador, rtPrestador]);
end;
function StrToResponsavelRetencao(out ok: boolean; const s: String): TnfseResponsavelRetencao;
begin
result := StrToEnumerado(ok, s,
['1', '2', ''],
[ptTomador, rtPrestador, rtPrestador]);
end;
-----------------------------------------------------------------
Na NFS-eX:
function TACBrNFSeXProvider.ResponsavelRetencaoToStr(
const t: TnfseResponsavelRetencao): string;
begin
Result := EnumeradoToStr(t,
['1', '', '2', ''],
[rtTomador, rtPrestador, rtIntermediario, rtNenhum]);
end;
function TACBrNFSeXProvider.StrToResponsavelRetencao(out ok: boolean;
const s: string): TnfseResponsavelRetencao;
begin
Result := StrToEnumerado(ok, s,
['1', '', '2', ''],
[rtTomador, rtPrestador, rtIntermediario, rtNenhum]);
end;
function TACBrNFSeXProvider.ResponsavelRetencaoDescricao(
const t: TnfseResponsavelRetencao): String;
begin
case t of
rtTomador : Result := '1 - Tomador';
rtIntermediario : Result := '2 - Intermediário';
rtPrestador : Result := '3 - Prestador';
else
Result := '';
end;
end;
Como prestador, anterior ia 2 agora está ficando vazio no xml.
Tem como corrigir, ou eu estender essa função, para atender ao provedor, está dando problema no schema:
X800-Erro de Validação: --> 1824 - Element '{http://nfe.uba.mg.gov.br/schema/nfse_v201.xsd}ResponsavelRetencao': '' is not a valid value of the atomic type '{http://nfe.uba.mg.gov.br/schema/nfse_v201.xsd}tsResponsavelRetencao'.
no schema:
<xsd:simpleType name="tsResponsavelRetencao">
<xsd:restriction base="xsd:byte">
<xsd:pattern value="1|2" />
</xsd:restriction>
</xsd:simpleType>