דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. JS - אימות מספר חשבון ישראלי

JS - אימות מספר חשבון ישראלי

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 5 כותבים 341 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #1

    כתבתי פונקציה לוידוא מספר חשבון ישראלי לפי המסמך הזה,
    אני משתף אתכם שתוכלו להשתמש אבל גם בשביל תיקוני באגים (היה לי הרבה... הקוד גם לא כתוב כ"כ אלגנטי עמכם הסליחה).

    להלן הפונקציה עם ממשק קטן עם אנגולר לקלות הבדיקה:
    https://stackblitz.com/edit/js-tmsgcv?file=index.js

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    9
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      כעת שמתי לב שהמסמך שלפיו עבדתי הוא ישן - אין בו בכלל את בנק ירושלים 54.
      אשמח אם למישהו יש מידע עדכני יותר, ועכ"פ איך לוודא חוקיות של בנק זה.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      clickoneC תגובה 1 תגובה אחרונה
      0
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        השיב לdovid ב נערך לאחרונה על ידי clickone
        #3

        @dovid
        זה המסמך המעודכן
        https://masav.co.il/media/1982/bdikat_hukiot_heshbon_msv.pdf
        עריכה: כעת אני רואה שזה המסמך שהבאת. והוא המעודכן לפי ידיעתי

        למיטב זכרוני, בבנק ירושלים אין חוקיות, וכל מספר ולידי

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        dovidD A 2 תגובות תגובה אחרונה
        1
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לclickone ב נערך לאחרונה על ידי
          #4

          @clickone תודה! אז בינתיים זה נראה תקין.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          ח תגובה 1 תגובה אחרונה
          1
          • ח מנותק
            ח מנותק
            חוקר
            השיב לdovid ב נערך לאחרונה על ידי
            #5

            @dovid
            כעת יצא לי שאני צריך פונקציית אימות פרטי חשבון.
            ראשית כל תודה על המוצר המוכן!
            אני צריך את זה בPHP, ולכן המרתי את הקוד ל PHP.
            תיקון אחד שמצאתי (שגיאה שקיבלתי בPHP), בפרטי חשבון בנק בפאג"י, לאחר הסרת הקידומת של קוד העו"ש.
            בלינק הנ"ל https://stackblitz.com/edit/js-tmsgcv?file=index.js
            שורה 114
            שורה לפני כן הסרת את 3 התווים הראשונים, וא"כ נשארו 6 תווים, לאחר מכן בלולאה בשורה 114 אנו אמורים להריץ את הלולאה רק 6 פעמים במקום 9 פעמים.
            שורות 112-115

                r = account.substr(3);
            
                for (var i = 0, mul = 9; i < 9; i++ , mul--)
                  counter += +(r[i]) * mul;
            

            אמורות להיות

                r = account.substr(3);
            
                for (var i = 0, mul = 6; i < 6; i++ , mul--)
                  counter += +(r[i]) * mul;
            

            תודה, מקווה שלא אמצא בעיות נוספות (יותר נכון: מקווה שאין בעיות נוספות, ואם יש אז שכן אמצא)..

            תגובה 1 תגובה אחרונה
            3
            • ח מנותק
              ח מנותק
              חוקר
              כתב ב נערך לאחרונה על ידי
              #6

              ואגב להלן הקוד הנוכחי שלי ב PHP.
              אם יש כאן מה לתקן, אשמח..

              <?php
              
              var_dump(accountValidation(52, 177, 111111));
              
              function accountValidation($bank, $branch, $account): bool
              {
              
                  $bank = str_pad((string)($bank ?? 0), 2, '0', STR_PAD_LEFT);
                  $branch = str_pad((string)($branch ?? 0), 3, '0', STR_PAD_LEFT);
                  $account = (string)($account ?? 0);
              
                  if (strlen($branch) > 3 || strlen($bank) > 2) return false;
              
                  if ($bank == 10 || $bank == 13 || $bank == 34) {
                      $maxLen = 8;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
              
                      $counter = (int)(substr($account, 6, 2));
              
                      $r = $branch . $account;
              
                      for ($i = 0, $mul = 10; $i < 9; $i++ , $mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $result = $counter % 100;
                  return $result == 90 || $result == 72 || $result == 70 || $result == 60 || $result == 20;
              
                } else if ($bank == 12) {
                      $maxLen = 6;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $branch . $account;
              
                      for ($i = 0,$mul = 9;$i < 9; $i++ , $mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  return $div == 0 || $div == 2 || $div == 4 || $div == 6;
                } else if ($bank == 4) {
                      $maxLen = 6;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $branch . $account;
              
                      for ($i = 0,$mul = 9;$i < 9; $i++ , $mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  return $div == 0 || $div == 2;
                } else if ($bank == 11 || $bank == 17) {
                      $maxLen = 9;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $account;
              
                      for ($i = 0,$mul = 9;$i < 9; $i++ , $mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  return$div == 0 ||$div == 2 ||$div == 4;
                } else if ($bank == 20) {
                      $maxLen = 6;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      if ((int)$branch > 400) $branch = str_pad((string)((int)$branch - 400), 3, '0', STR_PAD_LEFT);
              
                      $r = $branch . $account;
              
                      for ($i = 0,$mul = 9;$i < 9; $i++ , $mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  return $div == 0 ||$div == 2 ||$div == 4 ||$div == 6;
                } else if ($bank == 31 || $bank == 52) {
                      $maxLen = 9;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $account;
              
                      for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  if ($div == 0 ||$div == 6) return true;
                  $counter = 0;
                  $r = substr($account, 3);
              
                  for ($i = 0,$mul = 6;$i < 6;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
                 $div = $counter % 11;
                  return $div == 0 || $div == 6;
                } else if ($bank == 9) {
                      $maxLen = 9;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $account;
              
                      for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  return ($counter % 10) == 0;
                } else if ($bank == 22) {
                      $maxLen = 9;
                      if (strlen($account) > $maxLen) return false;
                      $account = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $account;
                      $counter += (int)($r[0]) * 3;
                      $counter += (int)($r[1]) * 2;
              
                      for ($i = 2,$mul = 7;$i < 8;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  return (11 - ($counter % 11)) == $r[8];
                } else if ($bank == 46) {
                      $maxLen = 6;
              
                      $account1 = $account;
                      if(strlen($account1) > $maxLen)
                          $account1 = substr($account, strlen($account) - $maxLen);
                      $account1 = str_pad($account1, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $branch  . $account1;
              
                      for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  $special = [ 192, 191, 183 ,181, 178, 166, 154, 539, 527, 516, 515, 507, 505, 503  ];
              
                  if ($div == 0 || ($div == 2 && in_array($branch, $special))) return true;
              
                  $maxLen = 9;
                  if (strlen($account) > $maxLen) return false;
                      $account2 = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
              
                  $counter = 0;
                  $r = $account2;
              
                  for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  if(($counter % 11) == 0) return true;
              
                  $account3 = substr($account, 3);
              
                  $counter = 0;
                  $r = $account3;
              
                  for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  return ($counter % 11) == 0;
                } else if ($bank == 14) {
                      $maxLen = 6;
                      $account1 = $account;
                      if(strlen($account1) > $maxLen)
                          $account1 = substr($account, strlen($account) - $maxLen);
                      $account1 = str_pad($account1, $maxLen, '0', STR_PAD_LEFT);
                      $counter = 0;
              
                      $r = $branch . $account1  ;
              
                      for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  $div = $counter % 11;
              
                  $specialA = [  385, 384 , 365, 347 ];
                  $specialB = [ 361 ,362 ,363 ];
              
                  if($div  == 0) return true;
                  if(in_array($branch, $specialA) && ($div == 0 ||$div == 2)) return true;
                  if(in_array($branch, $specialB) && ($div == 0 ||$div == 2 ||$div == 4)) return true;
              
                  $maxLen = 9;
                  if (strlen($account) > $maxLen) return false;
                      $account2 = str_pad($account, $maxLen, '0', STR_PAD_LEFT);
              
                  $counter = 0;
                  $r = $account2;
              
                  for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  if(($counter % 11) == 0) return true;
              
                  $account3 = substr($account, 3);
              
                  $counter = 0;
                  $r = $account3;
              
                  for ($i = 0,$mul = 9;$i < 9;$i++ ,$mul--)
                    $counter += (int)($r[$i]) * $mul;
              
                  return ($counter % 11) == 0;
                }
              
                  return false;
              
              }
              תגובה 1 תגובה אחרונה
              5
              • A מנותק
                A מנותק
                avi rz
                השיב לclickone ב נערך לאחרונה על ידי
                #7

                @clickone אמר בJS - אימות מספר חשבון ישראלי:

                עריכה: כעת אני רואה שזה המסמך שהבאת. והוא המעודכן לפי ידיעתי

                יש קוד כזה בvba שכתוב לפי המסמך הנ"ל והוא ממש לא תקין,
                יש כאלו שלא עברו שם(ובדקתי אז לפי המסמך הנ"ל - שבאמת לא היו אמורים לעבוד - כלומר: לא הייתה בעיה בקוד), למרות שהם עברו באתרים,
                אין לי כרגע(זה היה בפרוג והוא עכשיו לא פעיל - יש תקלה כלשהי) אבל, אבדוק את זה בהמשך.

                איש ימיניא תגובה 1 תגובה אחרונה
                0
                • איש ימיניא מנותק
                  איש ימיניא מנותק
                  איש ימיני
                  השיב לavi rz ב נערך לאחרונה על ידי
                  #8

                  @avi-rz
                  זה הקוד ב-vba מפרוג.

                  Public Function fValidateBankAccount(lngBankNumber As Long, _
                                                            lngBranch As Long, _
                                                            lngAccount As Long) As Boolean
                  
                     On Error GoTo fValidateBankAccount_Error
                  
                      Dim lngRequiredAccountLength As Long
                      Dim lngTotal As Long
                  
                      Dim strArrayAccount() As String
                      Dim strArrayBranch() As String
                  
                      Dim strAccount As String
                      Dim strBranch As String
                  
                      If lngBankNumber = 0 Or lngBranch = 0 Or lngAccount = 0 Then Exit Function
                  
                      Select Case lngBankNumber
                          Case 10, 13, 34
                              lngRequiredAccountLength = 8
                          Case 12, 4
                              lngRequiredAccountLength = 6
                          Case 11, 17
                              lngRequiredAccountLength = 9
                          Case 20
                              lngRequiredAccountLength = 6
                          Case 31, 52
                              lngRequiredAccountLength = 9
                          Case 9
                              lngRequiredAccountLength = 9
                          Case 22
                              lngRequiredAccountLength = 9
                          Case 46
                              lngRequiredAccountLength = 9
                          Case 14
                              lngRequiredAccountLength = 9
                          Case 54
                              lngRequiredAccountLength = 9
                      End Select
                  
                      strBranch = lngBranch
                      strAccount = String(lngRequiredAccountLength - Len(CStr(lngAccount)), "0") & CStr(lngAccount)
                      strAccount = StrConv(strAccount, vbUnicode)
                      strArrayAccount = Split(strAccount, vbNullChar)
                  
                      If lngBankNumber = 20 And lngBranch > 400 Then     ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400
                          strBranch = CStr(lngBranch - 400)              ' לפני החישובים יש להפחית 400
                      Else                                               ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400
                          strBranch = CStr(lngBranch)                    ' לפני החישובים אל תבצע כלום
                      End If
                      
                      If lngBankNumber = 12 Or lngBankNumber = 4 Then
                          strBranch = lngBranch
                      End If
                  
                      If Len(strBranch) < 3 Then
                          strBranch = String(3 - Len(strBranch), "0") & strBranch    ' מוסיף אפסים להשלים ל3 ספרות
                      End If
                  
                      strBranch = StrConv(strBranch, vbUnicode)
                      strArrayBranch = Split(strBranch, vbNullChar)
                  
                      Select Case lngBankNumber
                          Case 10, 13, 34
                              lngTotal = CLng(strArrayBranch(0)) * 10 + _
                                         CLng(strArrayBranch(1)) * 9 + _
                                         CLng(strArrayBranch(2)) * 8 + _
                                         CLng(strArrayAccount(0)) * 7 + _
                                         CLng(strArrayAccount(1)) * 6 + _
                                         CLng(strArrayAccount(2)) * 5 + _
                                         CLng(strArrayAccount(3)) * 4 + _
                                         CLng(strArrayAccount(4)) * 3 + _
                                         CLng(strArrayAccount(5)) * 2 + _
                                         Right(lngAccount, 2)
                              Select Case Right(lngTotal, 2)
                                  Case 90, 72, 70, 60, 20
                                      fValidateBankAccount = True
                                  Case Else
                                      fValidateBankAccount = False
                              End Select
                          Case 12
                              lngTotal = CLng(strArrayBranch(0)) * 9 + _
                                         CLng(strArrayBranch(1)) * 8 + _
                                         CLng(strArrayBranch(2)) * 7 + _
                                         CLng(strArrayAccount(0)) * 6 + _
                                         CLng(strArrayAccount(1)) * 5 + _
                                         CLng(strArrayAccount(2)) * 4 + _
                                         CLng(strArrayAccount(3)) * 3 + _
                                         CLng(strArrayAccount(4)) * 2 + _
                                         CLng(strArrayAccount(5)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0, 2, 4, 6
                                      fValidateBankAccount = True
                                  Case Else
                                      fValidateBankAccount = False
                              End Select
                          Case 4
                              lngTotal = CLng(strArrayBranch(0)) * 9 + _
                                         CLng(strArrayBranch(1)) * 8 + _
                                         CLng(strArrayBranch(2)) * 7 + _
                                         CLng(strArrayAccount(0)) * 6 + _
                                         CLng(strArrayAccount(1)) * 5 + _
                                         CLng(strArrayAccount(2)) * 4 + _
                                         CLng(strArrayAccount(3)) * 3 + _
                                         CLng(strArrayAccount(4)) * 2 + _
                                         CLng(strArrayAccount(5)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0, 2
                                      fValidateBankAccount = True
                                  Case Else
                                      fValidateBankAccount = False
                              End Select
                          Case 11, 17
                              lngTotal = CLng(strArrayAccount(0)) * 9 + _
                                         CLng(strArrayAccount(1)) * 8 + _
                                         CLng(strArrayAccount(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2 + _
                                         CLng(strArrayAccount(8)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0, 2, 4
                                      fValidateBankAccount = True
                                  Case Else
                                      fValidateBankAccount = False
                              End Select
                          Case 20
                              lngTotal = CLng(strArrayBranch(0)) * 9 + _
                                         CLng(strArrayBranch(1)) * 8 + _
                                         CLng(strArrayBranch(2)) * 7 + _
                                         CLng(strArrayAccount(0)) * 6 + _
                                         CLng(strArrayAccount(1)) * 5 + _
                                         CLng(strArrayAccount(2)) * 4 + _
                                         CLng(strArrayAccount(3)) * 3 + _
                                         CLng(strArrayAccount(4)) * 2 + _
                                         CLng(strArrayAccount(5)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0, 2, 4
                                      fValidateBankAccount = True
                              End Select
                          Case 31, 52
                              lngTotal = CLng(strArrayAccount(0)) * 9 + _
                                         CLng(strArrayAccount(1)) * 8 + _
                                         CLng(strArrayAccount(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2 + _
                                         CLng(strArrayAccount(8)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0, 6
                                      fValidateBankAccount = True
                                  Case Else
                                      lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                                 CLng(strArrayAccount(4)) * 5 + _
                                                 CLng(strArrayAccount(5)) * 4 + _
                                                 CLng(strArrayAccount(6)) * 3 + _
                                                 CLng(strArrayAccount(7)) * 2 + _
                                                 CLng(strArrayAccount(8)) * 1
                                      Select Case lngTotal Mod 11
                                          Case 0, 6
                                              fValidateBankAccount = True
                                          Case Else
                                              fValidateBankAccount = False
                                      End Select
                              End Select
                          Case 9
                              lngTotal = CLng(strArrayAccount(0)) * 9 + _
                                         CLng(strArrayAccount(1)) * 8 + _
                                         CLng(strArrayAccount(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2 + _
                                         CLng(strArrayAccount(8)) * 1
                              If lngTotal Mod 10 = 0 Then
                                  fValidateBankAccount = True
                              Else
                                  fValidateBankAccount = False
                              End If
                          Case 54
                              fValidateBankAccount = True
                          Case 22
                              lngTotal = CLng(strArrayAccount(0)) * 3 + _
                                         CLng(strArrayAccount(1)) * 2 + _
                                         CLng(strArrayAccount(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2
                              If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then
                                  fValidateBankAccount = True
                              Else
                                  fValidateBankAccount = False
                              End If
                          Case 46
                              lngTotal = CLng(strArrayBranch(0)) * 9 + _
                                         CLng(strArrayBranch(1)) * 8 + _
                                         CLng(strArrayBranch(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2 + _
                                         CLng(strArrayAccount(8)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0
                                      fValidateBankAccount = True
                                  Case 2
                                      Select Case strBranch
                                          Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539
                                              fValidateBankAccount = True
                                          Case Else
                                              fValidateBankAccount = False
                                      End Select
                                  Case Else
                                      lngTotal = CLng(strArrayAccount(0)) * 9 + _
                                                 CLng(strArrayAccount(1)) * 8 + _
                                                 CLng(strArrayAccount(2)) * 7 + _
                                                 CLng(strArrayAccount(3)) * 6 + _
                                                 CLng(strArrayAccount(4)) * 5 + _
                                                 CLng(strArrayAccount(5)) * 4 + _
                                                 CLng(strArrayAccount(6)) * 3 + _
                                                 CLng(strArrayAccount(7)) * 2 + _
                                                 CLng(strArrayAccount(8)) * 1
                                      If lngTotal Mod 11 = 0 Then
                                          fValidateBankAccount = True
                                      Else
                                          lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                                     CLng(strArrayAccount(4)) * 5 + _
                                                     CLng(strArrayAccount(5)) * 4 + _
                                                     CLng(strArrayAccount(6)) * 3 + _
                                                     CLng(strArrayAccount(7)) * 2 + _
                                                     CLng(strArrayAccount(8)) * 1
                                          If lngTotal Mod 11 = 0 Then
                                              fValidateBankAccount = True
                                          Else
                                              fValidateBankAccount = False
                                          End If
                                      End If
                              End Select
                          Case 14
                              lngTotal = CLng(strArrayBranch(0)) * 9 + _
                                         CLng(strArrayBranch(1)) * 8 + _
                                         CLng(strArrayBranch(2)) * 7 + _
                                         CLng(strArrayAccount(3)) * 6 + _
                                         CLng(strArrayAccount(4)) * 5 + _
                                         CLng(strArrayAccount(5)) * 4 + _
                                         CLng(strArrayAccount(6)) * 3 + _
                                         CLng(strArrayAccount(7)) * 2 + _
                                         CLng(strArrayAccount(8)) * 1
                              Select Case lngTotal Mod 11
                                  Case 0
                                      fValidateBankAccount = True
                                  Case 2
                                      Select Case strBranch
                                          Case 347, 361, 362, 363, 365, 385
                                              fValidateBankAccount = True
                                          Case Else
                                              fValidateBankAccount = False
                                      End Select
                                  Case 4
                                      Select Case strBranch
                                          Case 361, 362, 363
                                              fValidateBankAccount = True
                                          Case Else
                                              fValidateBankAccount = False
                                      End Select
                                  Case Else
                                      lngTotal = CLng(strArrayAccount(0)) * 9 + _
                                                 CLng(strArrayAccount(1)) * 8 + _
                                                 CLng(strArrayAccount(2)) * 7 + _
                                                 CLng(strArrayAccount(3)) * 6 + _
                                                 CLng(strArrayAccount(4)) * 5 + _
                                                 CLng(strArrayAccount(5)) * 4 + _
                                                 CLng(strArrayAccount(6)) * 3 + _
                                                 CLng(strArrayAccount(7)) * 2 + _
                                                 CLng(strArrayAccount(8)) * 1
                                      If lngTotal Mod 11 = 0 Then
                                          fValidateBankAccount = True
                                      Else
                                          lngTotal = CLng(strArrayAccount(3)) * 6 + _
                                                     CLng(strArrayAccount(4)) * 5 + _
                                                     CLng(strArrayAccount(5)) * 4 + _
                                                     CLng(strArrayAccount(6)) * 3 + _
                                                     CLng(strArrayAccount(7)) * 2 + _
                                                     CLng(strArrayAccount(8)) * 1
                                          If lngTotal Mod 11 = 0 Then
                                              fValidateBankAccount = True
                                          End If
                                      End If
                              End Select
                      End Select
                  
                  
                     On Error GoTo 0
                     Exit Function
                  
                  fValidateBankAccount_Error:
                      fValidateBankAccount = False
                      MsgBox "Error " & err.Number & " (" & err.Description & ") in procedure fValidateBankAccount of Function mdlValidations"
                  
                  End Function
                  
                  תגובה 1 תגובה אחרונה
                  1

                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

                  • התחברו או הירשמו כדי לחפש.
                  • פוסט ראשון
                    פוסט אחרון
                  0
                  • דף הבית
                  • קטגוריות
                  • פוסטים אחרונים
                  • משתמשים
                  • חיפוש
                  • חוקי הפורום