Hola invitado         02 Sep, 2010 - 04:36
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Resolución General 1702 de la AFIP (Argentina) lecturas 17008
 Enviado por Luis María Guayán en Viernes, 21 Enero, 2005
Informes La Resolución General 1702 de la AFIP (Administración Federal de Ingresos Públicos de Argentina), establece el uso del código de barras Interleaved 2 de 5 para algunos tipos de comprobantes. Esto lo podemos realizar con informes de VFP y fuentes True Type.

Resolución General 1702 de la AFIP (Argentina)

Luis María Guayán Por Luis María Guayán, Tucumán, Argentina


La Resolución General 1702 de la AFIP (Argentina) entrará en vigencia a principios del año 2005, por lo que en muchos foros de desarrolladores en Visual FoxPro se planteó la inquietud de que si con informes de Visual FoxPro y las rutinas y fuentes True Type del artículo de PortalFox "Codigos de barras en reportes de VFP" se puede cumplimentar ésta resolución.

La respuesta es SI. Solo se debe modificar ligeramente la rutina correspondiente al código de barra "Interleaved 2 of 5" para que ésta retorne la cadena codificada lista para imprimir con la tipografía elegida, el dígito verificador y la cadena apta para la lectura humana. De todos modos existe en el artículo mencionado la fuente "PF Interleavev 2 of 5 Text" que contiene la cadena con lectura humana en su parte inferior.

Para el retorno de estos valores, lo mejor es crear una clase que llene los valores correspondientes en propiedades para poder ser utilizados. Para ello, la clase tiene las siguientes 3 propiedades:

  • DigitoVerificador: El dígito verificador de la cadena generada.
  • CodigoBarra: La cadena codificada lista para imprimir con la fuente True Type "PF Interleaved 2 of 5".
  • LecturaHumana: La cadena apta para la lectura humana.

La clase y un simple ejemplo de como utilizarla es el siguiente:

LOCAL lo
lo = CREATEOBJECT("I2of5")
lo.Codificar("201688627180100011234567890123420041231")
? SPACE(1) + lo.DigitoVerificador
? SPACE(1) + lo.CodigoBarra FONT "PF Interleavev 2 of 5 Text",36
? SPACE(4) + lo.CodigoBarra FONT "PF Interleaved 2 of 5",36
? SPACE(12) + lo.LecturaHumana FONT "Arial",13
lo = Null

*------------------------------------------------------------
* CLASS I2of5 AS CUSTOM 
*------------------------------------------------------------
* Clase que codifica una cadena a INTERLEAVED 2 OF 5
* METODOS: Codificar(tcTexto)
* PROPIEDADES: 
*   CodigoBarra: Texto para se impreso con fuente True Type 
*     "PF Interleaved 2 of 5" ó "PF Interleavev 2 of 5 Text"
*   DigitoVerificador = Digito verificador
*   LecturaHumana = Texto para Lectura Humana
* USO: 
*   lo = CREATEOBJECT("I2of5")
*   lo.Codificar("201688627180100011234567890123420041231")
*   ? lo.DigitoVerificador
*   ? lo.CodigoBarra FONT "PF Interleavev 2 of 5 Text",36
*   ? lo.CodigoBarra FONT "PF Interleaved 2 of 5",36
*   ? lo.LecturaHumana FONT "Arial", 13
*   lo = Null
*   RELEASE lo 
*------------------------------------------------------------
DEFINE CLASS I2of5 AS CUSTOM
  CodigoBarra = ""
  DigitoVerificador = ""
  LecturaHumana = ""
  PROCEDURE Codificar(tcTexto)
    LOCAL lcStart, lcStop, lcLH, lcCB, ;
      lnLong, lnI, lnCont, lnSum, lnAux
    lcStart = CHR(40)
    lcStop = CHR(41)
    lcLH = ALLTRIM(tcTexto)
    *--- Genero dígito de control
    lnLong = LEN(lcLH)
    lnSum = 0
    lnCont = 1
    FOR lnI = lnLong TO 1 STEP -1
      lnSum = lnSum + VAL(SUBSTR(lcLH,lnI,1)) * ;
        IIF(MOD(lnCont,2) = 0,1,3)
      lnCont = lnCont + 1
    ENDFOR
    lnAux = MOD(lnSum,10)
    lcDV = ALLTRIM(STR(IIF(lnAux = 0,0,10 - lnAux)))
    lcLH = lcLH + lcDV
    lnLong = LEN(lcLH)
    *--- La longitud debe ser par
    IF MOD(lnLong,2) # 0
      lcLH = '0' + lcLH
      lnLong = LEN(lcLH)
    ENDIF
    *--- Convierto los pares a caracteres
    lcCB = ''
    FOR lnI = 1 TO lnLong STEP 2
      IF VAL(SUBS(lcLH,lnI,2)) < 50
        lcCB = lcCB + CHR(VAL(SUBS(lcLH,lnI,2)) + 48)
      ELSE
        lcCB = lcCB + CHR(VAL(SUBS(lcLH,lnI,2)) + 142)
      ENDIF
    ENDFOR
    THIS.DigitoVerificador = lcDV
    THIS.LecturaHumana = lcLH
    THIS.CodigoBarra = lcStart + lcCB + lcStop
  ENDPROC
ENDDEFINE
*------------------------------------------------------------

NOTA: Recordar que las fuentes True Type deben estár instaladas en la PC para que los ejemplos funcionen correctamente. Las fuentes "PF Interleaved 2 de 5" se pueden descargar de: FuentesI2OF5.ZIP (17,10 KB)

La Resolución General 1702 de la AFIP (Argentina), (que se puede leer desde el sitio de la AFIP http://www.afip.gov.ar/afip/resol170204.html), establece que los datos que debe contener la cadena que debe ser impresa en los distintos tipos de comprobantes son:

  • C.U.I.T. (Clave Unica de Identificación Tributaria) del emisor (11 caracteres).
  • Código de tipo de comprobante (2 caracteres).
  • Punto de venta (4 caracteres).
  • C.A.I. (Código de Autorización de Impresión) (14 caracteres).
  • Fecha de vencimiento (8 caracteres).
  • Dígito verificador (1 caracter).

Esta cadena debe estar codificada con el código de barras Interleaved 2 of 5 (Entrelazado 2 de 5) y debe contener en la parte inferior la cadena completa y apta para lectura humana.

Un proyecto de ejemplo en VFP, con un formulario con el ingreso de los datos, un informe y la clase arriba descripta lo pueden descargar de RG1702.ZIP (10,10 KB)

Estas son las imágenes del proyecto de ejemplo de la descarga:

Espero que este ejemplo haya sido ilustrativo y útil para cumplimentar la R.G.1702 con un informe en Visual FoxPro. Si necesita mas información sobre códigos de barras en informes de VFP puede acceder al siguiente artículo: Codigos de barras en reportes de VFP

Hasta la próxima.

Luis María

Nota del editor: También podemos generar códigos de barras Interleaved 2of5 y copiarlos en el portapapeles para crear una imagen BMP con dicho código. Para ello los invito a leer el siguiente artículo de PortalFox:

Códigos de barra Interleaved 2 de 5 en el portapapeles

 Versión imprimible  
Resolución General 1702 de la AFIP (Argentina) | Entrar/Crear una cuenta | 5 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.

Re: Resolución General 1702 de la AFIP (Argentina)


por gustavomolina en 22 Ene, 2005 - 08:23
(Información del usuario  | Enviar un mensaje http://www.tucuman.com)
Luis Maria, Exelente articulo, lo que me faltaria en mi es caso como puedo enviar el codigo de barra ya generado a un archivo tipo .bmp


Re: Resolución General 1702 de la AFIP (Argentina)


por guillermomelo en 24 Ene, 2005 - 10:42
(Información del usuario  | Enviar un mensaje 
LUIS, EXCELENTE LO TUYO, COMO DE COSTUMBRE.
EXITOS...

Re: Resolución General 1702 de la AFIP (Argentina)


por me_quiero_morir en 01 Feb, 2005 - 04:00
(Información del usuario  | Enviar un mensaje http://)
Hola Luis María, leí tus artículos de códigos de barras en los reportes y me parecen muy vacanos, pero me puedes indicar la forma para leer los códigos de barras a través de VFP o algún link donde pueda hallar algo de documentación.

Muchas gracias

FR




Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.