Модуларна контрола на ЕМБГ, ЕДБ, ДБС, итн..

Дискусија во форумот 'Visual Basic' започната од marv, 6 Април 2010.

  1. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    Ми треба алгоритам или упатство за проверка на тчноста на внесениот ЕМБГ (матчен број), даначен број (ЕДБ), деловен број ДБС, жиро-сметка и сл. работи што требаат кај нас. Поготово за ЕМБГ и ЕДБ ми треба под итно.
     
  2. 386ka

    386ka
    Gaining Experience

    2,360
    189
    22 Декември 2007
    Извини, а не треба дозвола од министерство за ракување и проверка со такви податоци? Во кој смисол треба да се проверуваат? Преку офлајн програма? База?
     
  3. maximilian

    maximilian
    Gaining Experience

    1,064
    74
    26 Март 2008
    @386ka

    ЕМБГ се дефинира кај секоја личност по одредени правила. Не ти треба да проверуваш база на министерство или сл. за да провериш дали е точен или не. Се’ што треба е алгоритамот, за што не ти треба некаква дозвола за проверка. И мене ова прашање ме интересира, пошто не знам точно како се определува еден ЕМБГ кај МК граѓанин.

    Е сеа, за даночен број и број на сметка не знам како се одвиваат тие работи. Барем за број на сметка би требало секоја банка да си е приказна за себе според мене.
     
  4. 386ka

    386ka
    Gaining Experience

    2,360
    189
    22 Декември 2007
    Да да, повеќе ме засегаше даночен број, деловен број итн, бидејќи кај нив мислам дека не е по никаков алгоритам, туку е поврзано со база. Како и да е, ЕМБГ се пресметува по алгоритам (дата на раѓање + број за машко/женско + уникатен број). Последното не знам од каде доаѓа.
     
  5. maximilian

    maximilian
    Gaining Experience

    1,064
    74
    26 Март 2008
    EDIT:

    @marv

    Ова би требало да ти го реши проблемот за ЕМБГ ;)
     
    2 « број на членови на кои им се допаѓа ова.
  6. Новица

    Новица
    Intern

    223
    19
    7 Јануари 2009
    ЕДБ е регулиран со закон за даночен број (сл. весник на РМ бр. 26/96)

    ЕМБС (7 цифрениот што го дава ЦРМ) сосема е можно да е број што се дава по ред за секоја новоформирана компанија.

    За жиросметките секоја банка почнува со свој префикс: 100 е НБРМ, 200 е Ст.Б. 300 е КБ, 210 е НЛБ итн.
     
  7. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    Да не го имаш случајно, баш да видам како е дефиниран.

    Не е ништо по ред. Сите овие броеви се прават по алгоритми, за да не се случи дуплицирање, грешно внесување итн...

    Тое е само за префиксот. Иначе целната жиросметка се генерира во матичната банка но мора да задоволува одредени стандарди. Го најдов за чиро сметки, гоима на страната НБРМ. Неможе било која комбинација да е жиросметка. последните две бројки се контрлни по модул(97-10).

    Е сега мене ми требаат за другиве броеви.

    Најдов и нешто за ЕМБГ и ЕДБС од една хрватска страна. Го прбав алгоритмот изгледа работи и кај нас, т.е. точно ми детектира да речеме грешна цифра внесена у ЕМБГ. Изгледа сите сме наследиле се од бифша YU :D

    @386ка Не се секирај ми треба за програм што го права, да може да проверувам дали одреден ЕМБГ или жиро-сметка е правилно внесена (т.е. дали има грешка во внес) а не да пребарувам некои бази на МВР.
     
  8. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    Фала баш тоа ми требаше.
     
  9. Новица

    Новица
    Intern

    223
    19
    7 Јануари 2009
    сл. весник - Правилник за постапката, начинот и роковите за доделување на единствен даночен број, содржината и начинот на водење на единствениот регистар на даночни обврзници, содржината и формата на пријавата за регистрација, како и постапката за бришење од регистрацијата

    долго пдф гугл урл Закон за ЕДБ

    сл весник закон за едношалтерски систем - за ембс
     
  10. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    За типот и начинот на генерирање на ЕДБ нема ништо, само дека ке се додели автоматски :D Али се снајдов веке, истито алгоритам е со ЕМБГ

    ЗА ЕМБС бар написале дека е 7 цифрен број с контрола по модул 11. Ама нацинот на пресметка не е објаснет а не е најпростиот што се претпоставува. Ама и за ова се снајдов од еден хрватски сајт.

    http://www.regos.hr/UserDocsImages/downloads/algoritmiobrazacr-s.pdf
     
  11. gocheski

    gocheski
    Intern

    1
    0
    19 Март 2010
    eve vi vo T-SQL prevedete si go i prijatna rabota :))

    define sum INTEGER;
    define ost INTEGER;
    define cifra INTEGER;
    define ctrl CHAR(1);

    LET sum =0;
    LET sum = sum + edb[1,1]*7 + edb[2,2]*6 + edb[3,3]*5 + edb[4,4]*4 + edb[5,5]*3;
    LET sum = sum + edb[6,6]*2 + edb[7,7]*7 + edb[8,8]*6 + edb[9,9]*5 ;
    LET sum = sum + edb[10,10]*4 + edb[11,11]*3 + edb[12,12]*2 ;

    LET ost = sum / 11;
    LET ost = sum - ost*11;
    IF ost = 0 or ost = 1 THEN
    LET cifra = 0;
    ELSE
    LET cifra = 11 - ost;
    END IF;
    LET ctrl=cifra;
    RETURN ctrl;
    END PROCEDURE;
     
  12. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    Да да. Заврсив работа одамна. Сепак Фала.
     
  13. Stru4nak

    Stru4nak
    Gaining Experience

    408
    150
    16 Април 2007
    Е па постави нешто за на некој што му треба на пример мене да видам како испадна позз.
     
  14. marv

    marv
    Gaining Experience

    1,043
    409
    5 oктомври 2007
    Машко
    Поставив јас уште одма. Погледни подоле.... Ама ај да не се мачиш еве пак

    http://www.regos.hr/UserDocsImages/downloads/algoritmiobrazacr-s.pdf

    За жиросметка се генерира во матичната банка но мора да задоволува одредени стандарди. Има на страната НБРМ. Неможе било која комбинација да е жиросметка. последните две бројки се контрлни по модул(97-10).

    Ете имаш и 2 поса поделе и код од Гочевски во SQL.
     
  15. and_2009

    and_2009
    Intern

    8
    0
    3 Јули 2007
    Eve Vi modul za Kontrola na EMBG vo Visual Basic:

    ''*****************************************************************
    '' Íàìåíà: Ìîäóë çà Ïðîâåðêà íà Èñïðàâíîñòà íà ÅÌÁà ( Åäèíñòâåí Ìàòè÷åí Áðî¼ íà Ãðàƒàíèíîò )
    ''
    '' Èçãîòâèë: Àíäðå¼ Íèêîëîâñêè E-mail: andrejnikolovski@gmail.com
    ''*****************************************************************

    Public Function Proveri_EMBG(EMBG As String) As String
    '
    ' Ôóíêöè¼àòà âðàà Òåêñò ñî îïèñ íà èñïðàâíîñòà íà ÅÌÁÃ
    '
    ' Óïîòðåáà: Proveri_EMBG(String)

    ' init ïðîìåíëèâè
    Dim dolzina As Integer, zbir As Integer
    Dim cifra(1 To 13) As Integer, I As Integer
    Dim den As Integer, mesec As Integer, Godina As String

    ' init êîíñòàíòè; Èçìåíåòå ãè ïî Âàøà æåëáà
    Const ERR_den = "ÍÅÈÑÏÐÀÂÅÍ ÌÀÒÈ×ÅÍ ÁÐΣ: Ãðøêà âî Äàòóì íà Ðàƒàœå!"
    Const ERR_mesec = "ÍÅÈÑÏÐÀÂÅÍ ÌÀÒÈ×ÅÍ ÁÐΣ: Ãðøêà âî Ìåñåö íà Ðàƒàœå!"
    Const ERR_godina = "ÍÅÈÑÏÐÀÂÅÍ ÌÀÒÈ×ÅÍ ÁÐΣ: Ãðøêà âî Ãîäèíà íà Ðàƒàœå!"
    Const ERR_dolzina = "ÍÅÈÑÏÐÀÂÅÍ ÌÀÒÈ×ÅÍ ÁÐΣ: Äîëæèíàòà íà Ìàòè÷íèîò áðî¼ ìîðà äà áèäå 13!"
    Const ERR_kont = "ÍÅÈÑÏÐÀÂÅÍ ÌÀÒÈ×ÅÍ ÁÐΣ: Ãðåøêà âî Êîíòðîëåí Áðî¼ èëè Äàòóì"
    Const OK_EMBG = "-1"

    On Error GoTo greska
    ' ïðåçåìàœå íà âëåçíèòå âðåäíîñòè
    dolzina = Len(EMBG)
    den = Int(Left(EMBG, 2))
    mesec = Int(Mid$(EMBG, 3, 2))
    Godina = Mid$(EMBG, 5, 3)

    ' ïðîâåðêà íà äîëæèíàòà íà ÅÌÁÃ - Ìîðà äà áèäå 13 êàðàêòåðè
    If (dolzina <> 13) Then
    MsgBox ERR_dolzina
    Exit Function
    End If

    ' Ïðîâåðêà íà Äàòóìîò
    If den < 1 Then
    MsgBox ERR_den
    Exit Function
    End If

    'Ïðîâåðêà íà Ìåñåöîò è Äåíîò âî Ìåñåöîò
    Select Case mesec
    ' Çà ìåñåöèòå êîè èìààò 31 äåí
    Case 1, 3, 5, 7, 8, 10, 12
    If den > 31 Then
    MsgBox ERR_den
    Exit Function
    End If
    ' Çà ìåñåöèòå êîè èìààò 30 äåíîâè
    Case 4, 6, 9, 11
    If den > 30 Then
    MsgBox ERR_den
    Exit Function
    End If
    Case 2
    ' Çà ìåñåö - Ôåâðóàðè àêî èìà 29 äåíîâè - Ïðåñòàïíè Ãîäèíè(íà ñåêîè 4 ãîäèíè) èëè 28 äåíîâè
    If ((Godina Mod 4 = 0) And den > 29) Or _
    ((Godina Mod 4 <> 0) And den > 28) Then
    MsgBox ERR_den
    Exit Function
    End If
    Case Else
    MsgBox ERR_mesec
    Exit Function
    End Select

    ' Ïðîâåðêà íà Ãîäèíàòà: Èñïðàâíè ñå îä 1899 ãîäèíà äî Òåêîâíàòà Ãîäèíà
    If (Godina > Right(str(Year(Now)), 3)) And (Godina < "899") Then
    MsgBox ERR_godina
    Exit Function
    End If

    ' Ïðîâåðêà íà Êîíòðîëíèîò Áðî¼ - Ïîñëåäíèîò Áðî¼ îä ÅÌÁÃ
    For I = 1 To 13
    cifra(I) = Int(Mid$(EMBG, I, 1))
    Next I

    ' D D M M G G G R R S S S K - Êîíòðîëåí Áðî¼
    ' 7 6 5 4 3 2 7 6 5 4 3 2

    'Ãè ìíîæèìå ãîðíèòå áðîåâè ñî äîëíèòå è ãè ñîáèðàìå.
    'Äà ãî íàðå÷åìå äîáèåíèîò çáèð ZZZ.
    'Öåëèîò Áðî¼ (ñî îñòàòîêîò) ãî äåëèìå ZZZ ñî 11.
    'Äà ãî íàðå÷åìå äîáèåíèîò îñòàòîê OST.
    'Ãî îäçåìàìå OST îä 11 è äîáèåíàòà ðàçëèêà äà ¼à íàðå÷åìå RAZ (RAZ=11-OST).
    '• Àêî îñòàòîêîò å 1 (OST=1, RAZ=10) ìàòè÷íèîò áðî¼ å ïîãðåøåí
    '• Àêî îñòàòîêîò å 0 (OST=0 ò.å. áðî¼îò ZZZ å äåëèâ ñî 11 áåç îñòàòîê) êîíòðîëíèîò áðî¼ K å 0
    '(K=0)
    '• Àêî îñòàòîêîò å áðî¼ ïîìåƒó 1 è 11 (1<OST<11) Êîíòðîëíèîò Áðî¼ K å ðàçëèêà ïîìåƒó 11 è
    'îñòàòîêîò (K = RAZ)
    '• àêî å K ðàçëè÷íî îä RAZ ìàòè÷íèîò áðî¼ å ïîãðåøåí


    zbir = cifra(13) + cifra(1) * 7 + cifra(2) * 6 + cifra(3) * 5 + cifra(4) * 4
    zbir = zbir + cifra(5) * 3 + cifra(6) * 2 + cifra(7) * 7 + cifra(8) * 6
    zbir = zbir + cifra(9) * 5 + cifra(10) * 4 + cifra(11) * 3 + cifra(12) * 2

    If (zbir Mod 11) <> 0 Then
    MsgBox ERR_kont
    Exit Function
    Else
    MsgBox OK_EMBG
    Exit Function
    End If

    greska:
    MsgBox ERR_kont
    End Function
     
  16. nAPL_MKD

    nAPL_MKD
    Intern

    12
    0
    11 Септември 2013
    Машко
    Dali ima nekoj, vakva kontrola vo java script ?
     
  17. nAPL_MKD

    nAPL_MKD
    Intern

    12
    0
    11 Септември 2013
    Машко
    Еве скрипта за во JS за проверка на ЕМБГ.

    <script>
    function myFunction() {
    var i, sum,rez, rez2, res;
    var embg =document.getElementById("myNumber").value;
    var n = document.getElementById("myNumber").value.length;
    sum;
    res=1;
    sum =
    embg.charAt(0)*7+
    embg.charAt(1)*6+
    embg.charAt(2)*5+
    embg.charAt(3)*4+
    embg.charAt(4)*3+
    embg.charAt(5)*2+
    embg.charAt(6)*7+
    embg.charAt(7)*6+
    embg.charAt(8)*5+
    embg.charAt(9)*4+
    embg.charAt(10)*3+
    embg.charAt(11)*2;



    rez = sum%11;

    if(rez % 11 < 2) {rez = 11; } else { rez = rez % 11 ;}

    rez2 = 11 - rez;
    if(rez2 != embg.charAt(12)){res = 0; alert("EMBG is not valid"); return false; }

    }
    </script>
     
Слични теми
  1. pande2007
    Одговори:
    5
    Прегледи:
    1,458
  2. angel485mk
    Одговори:
    5
    Прегледи:
    839
  3. HijackHacker
    Одговори:
    0
    Прегледи:
    847
  4. NecrotoX
    Одговори:
    3
    Прегледи:
    527
Вчитување...

Сподели