diff options
author | Karl Berry <karl@freefriends.org> | 2012-05-06 23:28:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-05-06 23:28:08 +0000 |
commit | 821ed061f8505099e7c751f71b757deeebd86dbd (patch) | |
tree | 727137f487c7bfda7ed759b542b0c17799cf3ef5 /Master/texmf-dist/tex/latex/codicefiscaleitaliano | |
parent | 8a3c9c21bbf647bc520eacd604fd4373a6e1c2e2 (diff) |
codicefiscaleitaliano
git-svn-id: svn://tug.org/texlive/trunk@26234 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/codicefiscaleitaliano')
-rw-r--r-- | Master/texmf-dist/tex/latex/codicefiscaleitaliano/codicefiscaleitaliano.sty | 56 |
1 files changed, 48 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/codicefiscaleitaliano/codicefiscaleitaliano.sty b/Master/texmf-dist/tex/latex/codicefiscaleitaliano/codicefiscaleitaliano.sty index 756f756b555..6d59f18a97f 100644 --- a/Master/texmf-dist/tex/latex/codicefiscaleitaliano/codicefiscaleitaliano.sty +++ b/Master/texmf-dist/tex/latex/codicefiscaleitaliano/codicefiscaleitaliano.sty @@ -18,8 +18,11 @@ %% \NeedsTeXFormat{LaTeX2e}[2011/06/20] \ProvidesPackage{codicefiscaleitaliano}% - [2012/05/03 v.1.1 Controlla il codice fiscale italiano] -\def\getCFletter#1#2!{\Letter=`#1\def\CFisc{#2}} + [2012/05/06 v.1.2 Controlla il codice fiscale italiano] +\newif\ifcontrollo \controllotrue +\newif\ifstampacodice \stampacodicefalse +\def\getCFletter#1#2!{\ifx#1\space\getCFLetter#2!\else +\Letter=`#1\def\CFisc{#2}\fi} \def\getOddValore{% \ifnum\Letter<\A \valore=\expandafter\ifcase\numexpr\Letter-\zero\relax @@ -37,7 +40,10 @@ \else \valore=\numexpr\Letter-\A\relax \fi} -\newcommand\codicefiscaleitaliano[1]{\edef\CFisc{#1}% +\newcommand*\codicefiscaleitaliano{% +\@ifstar{\c@dfiscit[\stampacodicetrue]}{\c@dfiscit}} +\newcommand*\c@dfiscit[2][\stampacodicefalse]{#1\edef\CFisc{#2}% +\let\codfisc\CFisc \begingroup \countdef\cifra=256 \cifra=\z@ \countdef\A=258\A=`\A @@ -46,6 +52,21 @@ \countdef\valore=264 \countdef\somma=266 \somma=\z@ \@whilenum\cifra<16\do{\advance\cifra\@ne +\ifx\CFisc\@empty +\cifra=16\controllofalse +\PackageError{codicefiscaleitaliano}{% +\MessageBreak +************************************** +\MessageBreak +Il codice fiscale #2\MessageBreak +non ha 16 caratteri. +\MessageBreak +L'esecuzione della verifica viene\MessageBreak +interrotta. +\MessageBreak +************************************** +}{Premere <invio> per continuare}% +\else \expandafter\getCFletter\CFisc!\relax \ifodd\cifra \getOddValore% @@ -53,7 +74,24 @@ \getEvenValore% \fi \advance\somma\valore -}\advance\somma-\valore +\fi}\unless\ifx\CFisc\@empty\controllofalse +\PackageError{codicefiscaleitaliano}{% +\MessageBreak +************************************** +\MessageBreak +Il codice immesso #2\MessageBreak +contiene piu' di 16 caratteri. +\MessageBreak +L'esecuzione della verifica viene\MessageBreak +interrotta. +\MessageBreak +************************************** +}{% +Premere <invio> per continuare. +}% +\else +\ifcontrollo +\advance\somma-\valore \Letter\somma \divide\Letter by 26\relax \somma=\numexpr\somma - 26*\Letter\relax @@ -61,15 +99,17 @@ \PackageInfo{codicefiscaleitaliano}{\MessageBreak Codice fiscale OK} \else +\controllofalse \PackageError{codicefiscaleitaliano}{\MessageBreak -********************\MessageBreak -Codice fiscale #1 errato\MessageBreak -********************}{% +***************************************\MessageBreak +Codice fiscale #2 errato\MessageBreak +***************************************}{% Premi S oppure Q oppure <invio>; il file verra' elaborato lo stesso ma il codice fiscale deve venire ricontrollato!} \fi -\endgroup} +\fi +\fi\ifcontrollo\ifstampacodice\codfisc\fi\fi\endgroup} %% %% Copyright 2012 Claudio Beccari |