Modelo 347 NAV - Caracteres especiales

Según el AEAT, no es posible reportar caracteres especiales como por ejemplo paréntesis, pero no se pueden sustituir por espacios en blanco.

Por ejemplo, si tenemos un cliente con nombre:

Test (Test1

Hay que reportarlo como:

TEST TEST(Sólo un espacio entre TEST Y TEST1)

 

Actualmente, el informe 347 exporta este nombre con dos espacios:

TEST TEST1 (Dos espacios entre TEST y TEST1)

Para solucionar esto, se pueden escribir lo siguiente en código:

En el report 1070

Trigger
FormatTextName(NameString : Text[50]) Result : Text[50]

….

TempString := CONVERTSTR(UPPERCASE(NameString),'ÀÁÂÃÄÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝØÑǺª','AAAAAEEEEIIIIOOOOOUUUUYOÐÃ');

IF (STRLEN(TempString) > 0) THEN

REPEAT

TempString1 := COPYSTR(TempString,1,1);

IF TempString1 IN ['A'..'Z','0'..'9','Ð','Ã'] THEN
Result := Result + TempString1

ELSE

IF NOT(TempString1 IN ['(',')') THEN //NEW LINE       
Result := Result + ' '; //line indented

TempString := DELSTR(TempString,1,1);

UNTIL STRLEN(TempString) = 0;

…..

 

En la nueva linea se pueden añadir todos los caracteres especiales que no puedan ser exportados, en este caso el código borrará el caracter especial e importará el nombre correcto que sí sea aceptado por AEAT.

Alessandro Vannini

Microsoft Dynamics

Escalation Engineer