Jest jednak na to rada. W DAX istnieje klasa o nazwie TaxVATNumValidate, która posiada klasy potomne dla poszczególnych krajów (Polski brak). W celu zlokalizowania weryfikatora należy utworzyć klasę TaxVATNumValidatePL:
class TaxVATNumValidatePL extends TaxVATNumValidate { }
następnie przeciążyć metodę validateVATNum:
// implementacja w x++ wg ogolnodostepnych algorytmow boolean validateVATNum(VATNum _VATNum) { int idx; int w[9]; int wk; int i; int k; int len = strlen(VATNum); ; if (len && !(len < 10 || len > 13)) { while(strfind(_VATNum, '-', 1, strlen(_VATNum))) { idx = strfind(_VATNum, '-', 1, strlen(_VATNum)); nip = strdel(_VATNum, idx, 1); } if(_VATNum == "") return false; //obliczamy sume kontrolna w[1] = 6; w[2] = 5; w[3] = 7; w[4] = 2; w[5] = 3; w[6] = 4; w[7] = 5; w[8] = 6; w[9] = 7; wk = 0; for (i = 1; i <= 9; i++) { wk = (wk + str2int(substr(_VATNum, i, 1)) * w[i]) mod 11; } k = wk mod 11; if (str2int(substr(_VATNum, 10, 1)) == k) return true; } return false; }
Metoda walidująca już jest. Teraz trzeba spowodować, żeby była wykorzystywana przez Dynamicsa. W tym celu zaingerujemy w klasę bazową TaxVATNumValidate i metodę construct. Należy tam dodać wywołanie nowo stworzonej klasy, kiedy krajem walidacji będzie Polska:
// ... case #isoPL : taxVATNumValidate = new TaxVATnumValidatePL(); break; // ...
Ostatnim etapem jest włączenie walidacji. Należy wejść w Podstawowe => Ustawienia => Adresy => Kraj / Region, wybrać kraj PL i na zakładce Ogólne zaznaczyć opcję "Sprawdź numer identyfikacji podatkowej":
Od tego momentu możemy się cieszyć sprawdzaniem numeru NIP w "polskich warunkach" :)
Brak komentarzy:
Prześlij komentarz