~openerp-paraguay/openerp-paraguay/main

« back to all changes in this revision

Viewing changes to ructest.py

  • Committer: Fadel Damen
  • Date: 2011-03-16 12:34:20 UTC
  • Revision ID: fadel@fadel-20110316123420-4vkcs3s8kan025jk
testeĀ 3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: UTF-8 -*-
2
 
 
3
 
import string
4
 
 
5
 
def validaruc(ruc):
6
 
    c=str(ruc)[-1]
7
 
    retorno=ruc_py( str(ruc)[:-1] )
8
 
    if ( str(retorno)==str(c) ):
9
 
        return True
10
 
    else:
11
 
        return False
12
 
 
13
 
def ruc_py( numero ):
14
 
    numero_al=''
15
 
    for i in range( len ( numero )):
16
 
        c=numero[i]
17
 
        codigo=ord( str( c ).upper( ) )
18
 
        if not ( codigo >= 48 and codigo <= 57 ):
19
 
            numero_al += str( codigo ) 
20
 
        else:
21
 
            numero_al += numero_al.join( str( c ) )
22
 
    k=2
23
 
    total=0
24
 
    for a in str(numero_al[::-1]):
25
 
        if (k>11): k = 2
26
 
        total += ( int( a ) * k )
27
 
        k = k + 1
28
 
    resto = total % 11
29
 
    if ( resto > 1 ):
30
 
        digito = 11 - resto
31
 
    else:
32
 
        digito = 0
33
 
    return digito
34
 
 
35
 
dd=ruc_py("4576629")
36
 
print ("4576629 - 0 ", dd) 
37
 
dd =ruc_py('1235150')
38
 
print ('1235150 - 4 ',dd)
39
 
dd = ruc_py("99999901")
40
 
print ("99999901 - 0 ", dd)
41
 
 
42
 
dd = ruc_py("1589133A")
43
 
print ("1589133A - 0 ",dd)
44
 
 
45
 
dd = ruc_py("2955546")
46
 
print ("2955546 - 9 ",dd)
47
 
dd = ruc_py("2945183")
48
 
print ("2945183 - 3 ",dd)
49
 
dd = ruc_py("2867986")
50
 
print ("2867986 - 5 ",dd)
51
 
dd = ruc_py("2806897")
52
 
print ("2806897 - 1 ",dd)
53
 
dd = ruc_py("2657587")
54
 
print ("2657587 - 6 ",dd)
55
 
 
56
 
if validaruc(26575876):
57
 
    print 'valido'
58
 
 
59
 
if validaruc('33074798'):
60
 
    print "valida"
61
 
 
62
 
#(10:33:28) Derlis: 1235150 - 4                                                                          
63
 
#(10:33:38) Derlis: 99999901-0                                                                          
64
 
#(10:33:46) Derlis: 1589133A-0                                                                          
65
 
#(10:34:01) Derlis: 2955546-9                                                                          
66
 
#(10:34:10) Derlis: 2945183-3                                                                          
67
 
#(10:34:22) Derlis: 2867986-5                                                                          
68
 
#(10:34:33) Derlis: 2806897-1                                                                          
69
 
#(10:34:43) Derlis: 2657587-6                                                                          
70
 
 
71
 
 
72
 
#Function getDV(RUC As String) As String
73
 
# getDV = calcular(RUC, 11)
74
 
#End Function
75
 
#
76
 
#
77
 
#Function calcular(numero As String, basemax As Integer) As String
78
 
#Dim codigo As Long
79
 
#Dim numero_al As String
80
 
#
81
 
#Dim i
82
 
#For i = 1 To Len(numero)
83
 
#  Dim c
84
 
#  c = Mid$(numero, i, 1)
85
 
#  codigo = Asc(UCase(c))
86
 
#  If Not (codigo >= 48 And codigo <= 57) Then
87
 
#     numero_al = numero_al & codigo
88
 
#  Else
89
 
#     numero_al = numero_al & c
90
 
#  End If
91
 
#Next
92
 
#
93
 
#Dim k: Dim total
94
 
#k = 2
95
 
#total = 0
96
 
97
 
#For i = Len(numero_al) To 1 Step -1
98
 
#  If (k > basemax) Then k = 2
99
 
#  Dim numero_aux
100
 
#  numero_aux = Val(Mid(numero_al, i, 1))
101
 
#  total = total + (numero_aux * k)
102
 
#  k = k + 1
103
 
#Next
104
 
#
105
 
#
106
 
#Dim resto: Dim digito
107
 
#resto = total Mod 11
108
 
#If (resto > 1) Then
109
 
#   digito = 11 - resto
110
 
#Else
111
 
#   digito = 0
112
 
#End If
113
 
#calcular = digito
114
 
#End Function
 
 
b'\\ No newline at end of file'