lucascanalla / pyafipws

Automatically exported from code.google.com/p/pyafipws
0 stars 0 forks source link

Programa en VB6 para calcular el dígito verificador del código de barras de las facturas de la AFIP #34

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Hola a todos, comparto con uds. un programita hecho en vb6 con el cual se puede 
calcular el dígito verificador del string que es utilizado para generar el 
código de barras que figura en las facturas de la Afip. La aplicación directa 
es poder incluirlo en las facturas electronicas que se pueden emitir con la 
aplicación pyafipws.
Cada campo de texto tiene sus tooltips, faltan hacer las validaciones de cada 
campo, pero sirve.
Espero que les sea util.
Saludos

Original issue reported on code.google.com by marcelor...@gmail.com on 21 Feb 2011 at 12:49

Attachments:

GoogleCodeExporter commented 8 years ago

Original comment by gerardoa...@gmail.com on 28 Mar 2011 at 6:42

GoogleCodeExporter commented 8 years ago
En la línea:
Me.TxtDigito.Text = 10 - (CLng(Me.TxtTotal.Text) Mod 10)

Ricardo Lemos sugirió que en el caso que (CLng(Me.TxtTotal.Text) Mod 10) de un 
valor =0 entonces el dígito verificador daría como resultado = 10. En el 
resto de los casos, el dígito verificador daría entre 1 y 9. Por lo tanto se 
podría reemplazar esa línea de código con la siguiente lógica:

If CLng(Me.TxtTotal.Text) Mod 10 = 0 Then
    Me.TxtDigito.Text = 0
Else
    Me.TxtDigito.Text = 10 - (CLng(Me.TxtTotal.Text) Mod 10)
End If

Original comment by marcelor...@gmail.com on 28 Mar 2011 at 7:17

GoogleCodeExporter commented 8 years ago
Aca paso el mismo ejemplo traducido para Delphi:

var
  i: integer;
  Impares, Pares, Total : Integer;
  Codigo, Digito : String;
  sCUIT, sCODComp, sPtoVta, sCAE, sVtoCAE : String;
begin

  sCUIT    := '';
  sCODComp := '';
  sPtoVta  := '';
  sCAE     := '';
  sVtoCAE  := '';

  Codigo := sCUIT + sCODComp + sPtoVta + sCAE + sVtoCAE;

  Pares   := 0;
  Impares := 0;

  for i := 1 to Length(Codigo) do
  begin
    if (i mod 2) = 0 Then
        Pares := Pares + StrToInt(Copy(Codigo, I, 1))
    else
        Impares := Impares + StrToInt(Copy(Codigo, I, 1));

  end;

  Digito := IntToStr(10 - ((Pares + (3 * Impares)) Mod 10));

  if Digito = 10 then
    Digito := 0;

  Result := Codigo + Digito;

Original comment by bare...@gmail.com on 18 Apr 2011 at 3:16

GoogleCodeExporter commented 8 years ago

Original comment by gerardoa...@gmail.com on 1 May 2011 at 2:09