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