Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kontrola matičnog broja privrednog subjekta

[es] :: Access :: Kontrola matičnog broja privrednog subjekta

[ Pregleda: 2349 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mpaja
Milorad Pavlovic
Loznica

Član broj: 85296
Poruke: 110
*.dynamic.isp.telekom.rs.



Profil

icon Kontrola matičnog broja privrednog subjekta25.12.2015. u 16:31 - pre 101 meseci
Pozdrav svim članovima foruma

Možda je tema već obradjivana ali neće biti na odmet da je malo osvežimo. Problem mi je provera matičnog broja preduzeća, koji se unosi sa neke forme i smešta u bazu. Poznato je da je taj broj jedinstven u bazi APR-a, ima 8 cifara s tim da je zadnja cifra kontrolna. cifre 0-5 se dodaljuju privrednim društvima a iznad preduzetnicima.

Pokušavao sam da nadjem kako se kontroliše unos broja i našao sam da se to vrši preko modula 11, nešto sam napravio ali to ne daje rezultate kako treba. U nastavku je kod:

Public Function KontrolniMBR(ByVal inTekst As String)
Dim cifra(1 To 7), i, zbir As Integer
Dim MbrT As String

Dim Result As Variant

KontrolniMBR = False

If inTekst = "" Then Exit Function
If Not IsNumeric(inTekst) Then Exit Function
If Len(inTekst) <> 8 Then Exit Function

MbrT = Mid$(inTekst, 1, 7)

For i = 1 To 7
cifra(i) = Int(Mid$(MbrT, i, 1))
Next i

zbir = cifra(1) * 7 + cifra(2) * 6 + cifra(3) * 5 + cifra(4) * 4
zbir = zbir + cifra(5) * 3 + cifra(6) * 2 + cifra(7) * 1

Result = 11 - (zbir - (Int(zbir / 11) * 11))

If Result = Val(Right(inTekst, 1)) Then
KontrolniMBR = True
Else
KontrolniMBR = False
End If


End Function

Kada se ovo startuje ne dobijaju se vrdnosti kakve treba za matične brojeve kojie se nalaze u bazi APR-a.

Može li pomoć?

Hvala
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Kontrola matičnog broja privrednog subjekta25.12.2015. u 17:39 - pre 101 meseci
Probaj ovde: http://www.elitesecurity.org/t183658-Validacija-PIB


 
Odgovor na temu

mpaja
Milorad Pavlovic
Loznica

Član broj: 85296
Poruke: 110
*.dynamic.isp.telekom.rs.



Profil

icon Re: Kontrola matičnog broja privrednog subjekta25.12.2015. u 17:48 - pre 101 meseci
Video sam to, PIB (OIB) je duži string od stringa MBR. MBR je 8 cifara. Da li ova metoda može i da se primeni na MBR?
 
Odgovor na temu

mpaja
Milorad Pavlovic
Loznica

Član broj: 85296
Poruke: 110
*.dynamic.isp.telekom.rs.



Profil

icon Re: Kontrola matičnog broja privrednog subjekta26.12.2015. u 08:13 - pre 101 meseci
Ima li nade za ovo?

Nisam siguran da se radi ni po modulu 11. Može li bar da se "iščačka" po kom modulu se radi i algoritam?
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
37.203.100.*

Sajt: www.icentar.ba


+2 Profil

icon Re: Kontrola matičnog broja privrednog subjekta26.12.2015. u 09:58 - pre 101 meseci
Code:
Function ProvjeraB(BrojA As String) As Boolean
Dim K(8) As Integer
Dim G As Integer
Dim I As Integer

On Error GoTo Greska
If Len(BrojA) <> 8 Then
K(0) = 11
GoTo Greska
End If


For I = 1 To 8
K(I) = Mid(BrojA, I, 1)
If I < 8 Then
K(0) = K(0) + K(I) * (9 - I)
End If
Next I

K(0) = K(0) Mod 11
If K(0) < 1 Or K(0) > 11 Then GoTo Greska
K(0) = 11 - K(0)
If K(0) = 10 Then K(0) = 0
If K(0) <> K(8) Then
K(0) = 0
GoTo Greska
End If
ProvjeraB = True
Izlaz:
Exit Function
Greska:
ProvjeraB = False
GoTo Izlaz
End Function

zxz
 
Odgovor na temu

mpaja
Milorad Pavlovic
Loznica

Član broj: 85296
Poruke: 110
*.dynamic.isp.telekom.rs.



Profil

icon Re: Kontrola matičnog broja privrednog subjekta26.12.2015. u 16:10 - pre 101 meseci
Evo još jedno rešenje

Public Function ProveraMB(mb As String) As Boolean
Dim Greska As Boolean
Dim cifra As String
Dim i As Integer

If mb = "" Then Exit Function
If Not IsNumeric(mb) Then Exit Function
If Len(mb) <> 8 Then Exit Function

ProveraMB = False
Greska = False

For i = 1 To 8

cifra = Mid(mb, i, 1)
If Not IsNumeric(cifra) Then
Greska = True
End If
Next i

If Not Greska Then
If CInt(Mid$(mb, 8, 1)) = KontrolnaSuma(mb) Then
ProveraMB = True
End If
End If


End Function

Public Function KontrolnaSuma(mb As String) As Integer
Dim sum, mblen As Integer
Dim mnozilac As Integer
Dim cifra, i As Integer

sum = 0
mblen = Len(mb)
mnozilac = 2

For i = mblen - 1 To 1 Step -1

cifra = CInt(Mid$(mb, i, 1))
sum = sum + cifra * mnozilac

If mnozilac = 7 Then
mnozilac = 2
Else
mnozilac = mnozilac + 1
End If
Next i

sum = 11 - (sum Mod 11)

If sum > 9 Then
sum = 0
End If

KontrolnaSuma = sum

End Function

Rešenje je u saradnji g. N. Kneževićem, provereno za MBR iz APR RS. Radi OK!

Pozdrav svima i hvala!
 
Odgovor na temu

mpaja
Milorad Pavlovic
Loznica

Član broj: 85296
Poruke: 110
*.dynamic.isp.telekom.rs.



Profil

icon Re: Kontrola matičnog broja privrednog subjekta26.12.2015. u 16:14 - pre 101 meseci
Zaboravih, uslove:

Uslov je da maticni broj ima osam cifara (not Isnull!) i da je poslednja cifra zadovoljava formulu:

K = 11 - ((2 x (b1 + b7)
+ 3 x b6
+ 4 x b5
+ 5 x b4
+ 6 x b3
+ 7 x b2) % 11)

pri cemu ako vrednost K iznosi 10 ili 11 onda se uzima da je vrednost K jednaka 0.
Brojevi b1 do b7 su cifre maticnog broja.

Naravno sve cifre moraju biti numerici, što treba proveriti da se slučajno ne pokrade nešto drugo unutar stringa.
 
Odgovor na temu

[es] :: Access :: Kontrola matičnog broja privrednog subjekta

[ Pregleda: 2349 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.