Funkcja walidująca numer NIP w c# wraz z formatowaniem.
/// <summary>
/// Walidacja NIP
/// </summary>
/// <param name="szNIP"></param>
/// <param name="retFormated"> Zwracany NIP jest w postaci sformatowanej</param>
/// <returns>zwraca true/false</returns>
public static bool ValidateNIP(ref string szNIP, bool retFormated = true)
{
byte[] tab = new byte[9] { 6, 5, 7, 2, 3, 4, 5, 6, 7 };
byte[] tablicz = new byte[] { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
bool bResult = false;
int suma = 0;
int sumcontrol = 0;
szNIP = szNIP.Replace("-", "");
szNIP = szNIP.Trim();
if (szNIP.Length == 10)
{
foreach (char l in szNIP)
{
byte b = Convert.ToByte(l);
if (Array.IndexOf(tablicz, Convert.ToByte(l)) == -1) return false;
}
sumcontrol = Convert.ToInt32(szNIP[9].ToString());
for (int i = 0; i < 9; i++)
{
suma += tab[i] * Convert.ToInt32(szNIP[i].ToString());
}
bResult = ((suma % 11) == sumcontrol);
}
else return false;
if (bResult && retFormated)
{
szNIP = szNIP.Insert(8, "-")
.Insert(6, "-")
.Insert(3, "-");
}
return bResult;
}
Brak komentarzy:
Prześlij komentarz