Tag Archives: Ελεγχος Εγκυρότητας ΑΦΜ

Ελεγχος Εγκυρότητας Α.Φ.Μ. (PHP Version)

Απλώς για να υπάρχει διαθέσιμο σε όποιον το χρειαστεί, η php version του κώδικα που υπάρχει στο άρθρο Ελεγχος Εγκυρότητας Α.Φ.Μ.

<?php
    function CheckAFM($afm)
    {
        if (!preg_match('/^(EL){0,1}[0-9]{9}$/i', $afm))
            return false;
        if (strlen($afm) > 9)
            $afm = substr($afm, 2);

        $remainder = 0;
        $sum = 0;

        for ($nn = 2, $k = 7, $sum = 0; $k >= 0; $k--, $nn += $nn)
            $sum += $nn * ($afm[$k]);
        $remainder = $sum % 11;

        return ($remainder == 10) ? $afm[8] == '0'
                                  : $afm[8] == $remainder;
    }
?>

Εχει μερικές μικροδιαφορές από τις C, C# Versions, αλλά ήταν απαραίτητο αφού προοριζόταν για χρήση σε ιστοσελίδα…

Ελεγχος Εγκυρότητας Α.Φ.Μ.

Πρόσφατα χρειάστηκε να μεταφέρω δεδομένα από μια βάση δεδομένων σε μια άλλη. Φυσικά όπως θα γνωρίζουν οι περισσότεροι αυτές οι διαδικασίες ποτέ δεν είναι τόσο απλές όσο ακούγονται, ειδικά όταν πρέπει να πέσει μαγείρεμα στα δεδομένα (βλ. διαφορετικοί πίνακες, διαφορετικοί τύποι πεδίων, διαφορετικές τιμές).

Σε αυτά τα δεδομένα υπήρχε και το ΑΦΜ, και μιας και πολλές φορές γινόταν λανθασμένη καταχώρηση, ήταν ευκαιρία να γίνει ένα ξακαθάρισμα. Ψάχνοντας στο Internet για αλγόριθμους ελέγχου του ΑΦΜ βρήκα κάποιες λύσεις σε διάφορες γλώσσες, οπότε έπιασα μια που βρήκα στο digitalnews.gr (σε C# για να μην κάνω και πολλές αλλαγές – έτσι νόμιζα τουλάχιστον) και (αντ)έγραψα την δικιά μου C# function και, ιδού το αποτέλεσμα: Continue reading