ÿþ/ * * 
     * 
   *   P R O T Ó T I P O S : 
   *   m é t o d o   S t r i n g . l p a d ( i n t   p S i z e ,   c h a r   p C h a r P a d ) 
   *   m é t o d o   S t r i n g . t r i m ( ) 
   * 
   *   S t r i n g   u n f o r m a t N u m b e r ( S t r i n g   p N u m ) 
   *   S t r i n g   f o r m a t C p f C n p j ( S t r i n g   p C p f C n p j ,   b o o l e a n   p U s e S e p a r ,   b o o l e a n   p I s C n p j ) 
   *   S t r i n g   d v C p f C n p j ( S t r i n g   p E f e t i v o ,   b o o l e a n   p I s C n p j ) 
   *   b o o l e a n   i s C p f ( S t r i n g   p C p f ) 
   *   b o o l e a n   i s C n p j ( S t r i n g   p C n p j ) 
   *   b o o l e a n   i s C p f C n p j ( S t r i n g   p C p f C n p j ) 
   * / 
 
 
 N U M _ D I G I T O S _ C P F     =   1 1 ; 
 N U M _ D I G I T O S _ C N P J   =   1 4 ; 
 N U M _ D G T _ C N P J _ B A S E   =   8 ; 
 
 
 / * * 
   *   A d i c i o n a   m é t o d o   l p a d ( )   à   c l a s s e   S t r i n g . 
   *   P r e e n c h e   a   S t r i n g   à   e s q u e r d a   c o m   o   c a r a c t e r e   f o r n e c i d o , 
   *   a t é   q u e   e l a   a t i n j a   o   t a m a n h o   e s p e c i f i c a d o . 
   * / 
 S t r i n g . p r o t o t y p e . l p a d   =   f u n c t i o n ( p S i z e ,   p C h a r P a d ) 
 { 
 	 v a r   s t r   =   t h i s ; 
 	 v a r   d i f   =   p S i z e   -   s t r . l e n g t h ; 
 	 v a r   c h   =   S t r i n g ( p C h a r P a d ) . c h a r A t ( 0 ) ; 
 	 f o r   ( ;   d i f > 0 ;   d i f - - )   s t r   =   c h   +   s t r ; 
 	 r e t u r n   ( s t r ) ; 
 }   / / S t r i n g . l p a d 
 
 
 / * * 
   *   A d i c i o n a   m é t o d o   t r i m ( )   à   c l a s s e   S t r i n g . 
   *   E l i m i n a   b r a n c o s   n o   i n í c i o   e   f i m   d a   S t r i n g . 
   * / 
 S t r i n g . p r o t o t y p e . t r i m   =   f u n c t i o n ( ) 
 { 
 	 r e t u r n   t h i s . r e p l a c e ( / ^ \ s * / ,   " " ) . r e p l a c e ( / \ s * $ / ,   " " ) ; 
 }   / / S t r i n g . t r i m 
 
 
 / * * 
   *   E l i m i n a   c a r a c t e r e s   d e   f o r m a t a ç ã o   e   z e r o s   à   e s q u e r d a   d a   s t r i n g 
   *   d e   n ú m e r o   f o r n e c i d a . 
   *   @ p a r a m   S t r i n g   p N u m 
   *   	 S t r i n g   d e   n ú m e r o   f o r n e c i d a   p a r a   s e r   d e s f o r m a t a d a . 
   *   @ r e t u r n   S t r i n g   d e   n ú m e r o   d e s f o r m a t a d a . 
   * / 
 f u n c t i o n   u n f o r m a t N u m b e r ( p N u m ) 
 { 
 	 r e t u r n   S t r i n g ( p N u m ) . r e p l a c e ( / \ D / g ,   " " ) . r e p l a c e ( / ^ 0 + / ,   " " ) ; 
 }   / / u n f o r m a t N u m b e r 
 
 
 / * * 
   *   F o r m a t a   a   s t r i n g   f o r n e c i d a   c o m o   C N P J   o u   C P F ,   a d i c i o n a n d o   z e r o s 
   *   à   e s q u e r d a   s e   n e c e s s á r i o   e   c a r a c t e r e s   s e p a r a d o r e s ,   c o n f o r m e   s o l i c i t a d o . 
   *   @ p a r a m   S t r i n g   p C p f C n p j 
   *   	 S t r i n g   f o r n e c i d a   p a r a   s e r   f o r m a t a d a . 
   *   @ p a r a m   b o o l e a n   p U s e S e p a r 
   *   	 I n d i c a   s e   d e v e m   s e r   u s a d o s   c a r a c t e r e s   s e p a r a d o r e s   ( .   -   / ) . 
   *   @ p a r a m   b o o l e a n   p I s C n p j 
   *   	 I n d i c a   s e   a   s t r i n g   f o r n e c i d a   é   u m   C N P J . 
   *   	 C a s o   c o n t r á r i o ,   é   C P F .   D e f a u l t   =   f a l s e   ( C P F ) . 
   *   @ r e t u r n   S t r i n g   d e   C P F   o u   C N P J   d e v i d a m e n t e   f o r m a t a d a . 
   * / 
 f u n c t i o n   f o r m a t C p f C n p j ( p C p f C n p j ,   p U s e S e p a r ,   p I s C n p j ) 
 { 
 	 i f   ( p I s C n p j = = n u l l )   p I s C n p j   =   f a l s e ; 
 	 i f   ( p U s e S e p a r = = n u l l )   p U s e S e p a r   =   t r u e ; 
 	 v a r   m a x D i g i t o s   =   p I s C n p j ?   N U M _ D I G I T O S _ C N P J :   N U M _ D I G I T O S _ C P F ; 
 	 v a r   n u m e r o   =   u n f o r m a t N u m b e r ( p C p f C n p j ) ; 
 
 	 n u m e r o   =   n u m e r o . l p a d ( m a x D i g i t o s ,   ' 0 ' ) ; 
 	 i f   ( ! p U s e S e p a r )   r e t u r n   n u m e r o ; 
 
 	 i f   ( p I s C n p j ) 
 	 { 
 	 	 r e C n p j   =   / ( \ d { 2 } ) ( \ d { 3 } ) ( \ d { 3 } ) ( \ d { 4 } ) ( \ d { 2 } ) $ / ; 
 	 	 n u m e r o   =   n u m e r o . r e p l a c e ( r e C n p j ,   " $ 1 . $ 2 . $ 3 / $ 4 - $ 5 " ) ; 
 	 } 
 	 e l s e 
 	 { 
 	 	 r e C p f     =   / ( \ d { 3 } ) ( \ d { 3 } ) ( \ d { 3 } ) ( \ d { 2 } ) $ / ; 
 	 	 n u m e r o   =   n u m e r o . r e p l a c e ( r e C p f ,   " $ 1 . $ 2 . $ 3 - $ 4 " ) ; 
 	 } 
 	 r e t u r n   n u m e r o ; 
 }   / / f o r m a t C p f C n p j 
 
 
 / * * 
   *   C a l c u l a   o s   2   d í g i t o s   v e r i f i c a d o r e s   p a r a   o   n ú m e r o - e f e t i v o   p E f e t i v o   d e 
   *   C N P J   ( 1 2   d í g i t o s )   o u   C P F   ( 9   d í g i t o s )   f o r n e c i d o .   p I s C n p j   é   b o o l e a n o   e 
   *   i n f o r m a   s e   o   n ú m e r o - e f e t i v o   f o r n e c i d o   é   C N P J   ( d e f a u l t   =   f a l s e ) . 
   *   @ p a r a m   S t r i n g   p E f e t i v o 
   *   	 S t r i n g   d o   n ú m e r o - e f e t i v o   ( S E M   d í g i t o s   v e r i f i c a d o r e s )   d e   C N P J   o u   C P F . 
   *   @ p a r a m   b o o l e a n   p I s C n p j 
   *   	 I n d i c a   s e   a   s t r i n g   f o r n e c i d a   é   d e   u m   C N P J . 
   *   	 C a s o   c o n t r á r i o ,   é   C P F .   D e f a u l t   =   f a l s e   ( C P F ) . 
   *   @ r e t u r n   S t r i n g   c o m   o s   d o i s   d í g i t o s   v e r i f i c a d o r e s . 
   * / 
 f u n c t i o n   d v C p f C n p j ( p E f e t i v o ,   p I s C n p j ) 
 { 
 	 i f   ( p I s C n p j = = n u l l )   p I s C n p j   =   f a l s e ; 
 	 v a r   i ,   j ,   k ,   s o m a ,   d v ; 
 	 v a r   c i c l o P e s o   =   p I s C n p j ?   N U M _ D G T _ C N P J _ B A S E :   N U M _ D I G I T O S _ C P F ; 
 	 v a r   m a x D i g i t o s   =   p I s C n p j ?   N U M _ D I G I T O S _ C N P J :   N U M _ D I G I T O S _ C P F ; 
 	 v a r   c a l c u l a d o   =   f o r m a t C p f C n p j ( p E f e t i v o ,   f a l s e ,   p I s C n p j ) ; 
 	 c a l c u l a d o   =   c a l c u l a d o . s u b s t r i n g ( 2 ,   m a x D i g i t o s ) ; 
 	 v a r   r e s u l t   =   " " ; 
 
 	 f o r   ( j   =   1 ;   j   < =   2 ;   j + + ) 
 	 { 
 	 	 k   =   2 ; 
 	 	 s o m a   =   0 ; 
 	 	 f o r   ( i   =   c a l c u l a d o . l e n g t h - 1 ;   i   > =   0 ;   i - - ) 
 	 	 { 
 	 	 	 s o m a   + =   ( c a l c u l a d o . c h a r A t ( i )   -   ' 0 ' )   *   k ; 
 	 	 	 k   =   ( k - 1 )   %   c i c l o P e s o   +   2 ; 
 	 	 } 
 	 	 d v   =   1 1   -   s o m a   %   1 1 ; 
 	 	 i f   ( d v   >   9 )   d v   =   0 ; 
 	 	 c a l c u l a d o   + =   d v ; 
 	 	 r e s u l t   + =   d v 
 	 } 
 
 	 r e t u r n   r e s u l t ; 
 }   / / d v C p f C n p j 
 
 
 / * * 
   *   T e s t a   s e   a   S t r i n g   p C p f   f o r n e c i d a   é   u m   C P F   v á l i d o . 
   *   Q u a l q u e r   f o r m a t a ç ã o   q u e   n ã o   s e j a   a l g a r i s m o s   é   d e s c o n s i d e r a d a . 
   *   @ p a r a m   S t r i n g   p C p f 
   *   	 S t r i n g   f o r n e c i d a   p a r a   s e r   t e s t a d a . 
   *   @ r e t u r n   < c o d e > t r u e < / c o d e >   s e   a   S t r i n g   f o r n e c i d a   f o r   u m   C P F   v á l i d o . 
   * / 
 f u n c t i o n   i s C p f ( p C p f ) 
 { 
 	 v a r   n u m e r o   =   f o r m a t C p f C n p j ( p C p f ,   f a l s e ,   f a l s e ) ; 
 	 v a r   b a s e   =   n u m e r o . s u b s t r i n g ( 0 ,   n u m e r o . l e n g t h   -   2 ) ; 
 	 v a r   d i g i t o s   =   d v C p f C n p j ( b a s e ,   f a l s e ) ; 
 	 v a r   a l g U n i c o ,   i ; 
 
 	 / /   V a l i d a   d í g i t o s   v e r i f i c a d o r e s 
 	 i f   ( n u m e r o   ! =   b a s e   +   d i g i t o s )   r e t u r n   f a l s e ; 
 
 	 / *   N ã o   s e r ã o   c o n s i d e r a d o s   v á l i d o s   o s   s e g u i n t e s   C P F : 
 	   *   0 0 0 . 0 0 0 . 0 0 0 - 0 0 ,   1 1 1 . 1 1 1 . 1 1 1 - 1 1 ,   2 2 2 . 2 2 2 . 2 2 2 - 2 2 ,   3 3 3 . 3 3 3 . 3 3 3 - 3 3 ,   4 4 4 . 4 4 4 . 4 4 4 - 4 4 , 
 	   *   5 5 5 . 5 5 5 . 5 5 5 - 5 5 ,   6 6 6 . 6 6 6 . 6 6 6 - 6 6 ,   7 7 7 . 7 7 7 . 7 7 7 - 7 7 ,   8 8 8 . 8 8 8 . 8 8 8 - 8 8 ,   9 9 9 . 9 9 9 . 9 9 9 - 9 9 . 
 	   * / 
 	 a l g U n i c o   =   t r u e ; 
 	 f o r   ( i = 1 ;   i < N U M _ D I G I T O S _ C P F ;   i + + ) 
 	 { 
 	 	 a l g U n i c o   =   a l g U n i c o   & &   ( n u m e r o . c h a r A t ( i - 1 )   = =   n u m e r o . c h a r A t ( i ) ) ; 
 	 } 
 	 r e t u r n   ( ! a l g U n i c o ) ; 
 }   / / i s C p f 
 
 
 / * * 
   *   T e s t a   s e   a   S t r i n g   p C n p j   f o r n e c i d a   é   u m   C N P J   v á l i d o . 
   *   Q u a l q u e r   f o r m a t a ç ã o   q u e   n ã o   s e j a   a l g a r i s m o s   é   d e s c o n s i d e r a d a . 
   *   @ p a r a m   S t r i n g   p C n p j 
   *   	 S t r i n g   f o r n e c i d a   p a r a   s e r   t e s t a d a . 
   *   @ r e t u r n   < c o d e > t r u e < / c o d e >   s e   a   S t r i n g   f o r n e c i d a   f o r   u m   C N P J   v á l i d o . 
   * / 
 f u n c t i o n   i s C n p j ( p C n p j ) 
 { 
 	 v a r   n u m e r o   =   f o r m a t C p f C n p j ( p C n p j ,   f a l s e ,   t r u e ) ; 
 	 v a r   b a s e   =   n u m e r o . s u b s t r i n g ( 0 ,   N U M _ D G T _ C N P J _ B A S E ) ; 
 	 v a r   o r d e m   =   n u m e r o . s u b s t r i n g ( N U M _ D G T _ C N P J _ B A S E ,   1 2 ) ; 
 	 v a r   d i g i t o s   =   d v C p f C n p j ( b a s e   +   o r d e m ,   t r u e ) ; 
 	 v a r   a l g U n i c o ; 
 
 	 / /   V a l i d a   d í g i t o s   v e r i f i c a d o r e s 
 	 i f   ( n u m e r o   ! =   b a s e   +   o r d e m   +   d i g i t o s )   r e t u r n   f a l s e ; 
 
 	 / *   N ã o   s e r ã o   c o n s i d e r a d o s   v á l i d o s   o s   C N P J   c o m   o s   s e g u i n t e s   n ú m e r o s   B Á S I C O S : 
 	   *   1 1 . 1 1 1 . 1 1 1 ,   2 2 . 2 2 2 . 2 2 2 ,   3 3 . 3 3 3 . 3 3 3 ,   4 4 . 4 4 4 . 4 4 4 ,   5 5 . 5 5 5 . 5 5 5 , 
 	   *   6 6 . 6 6 6 . 6 6 6 ,   7 7 . 7 7 7 . 7 7 7 ,   8 8 . 8 8 8 . 8 8 8 ,   9 9 . 9 9 9 . 9 9 9 . 
 	   * / 
 	 a l g U n i c o   =   n u m e r o . c h a r A t ( 0 )   ! =   ' 0 ' ; 
 	 f o r   ( i = 1 ;   i < N U M _ D G T _ C N P J _ B A S E ;   i + + ) 
 	 { 
 	 	 a l g U n i c o   =   a l g U n i c o   & &   ( n u m e r o . c h a r A t ( i - 1 )   = =   n u m e r o . c h a r A t ( i ) ) ; 
 	 } 
 	 i f   ( a l g U n i c o )   r e t u r n   f a l s e ; 
 
 	 / *   N ã o   s e r á   c o n s i d e r a d o   v á l i d o   C N P J   c o m   n ú m e r o   d e   O R D E M   i g u a l   a   0 0 0 0 . 
 	   *   N ã o   s e r á   c o n s i d e r a d o   v á l i d o   C N P J   c o m   n ú m e r o   d e   O R D E M   m a i o r   d o   q u e   0 3 0 0 
 	   *   e   c o m   a s   t r ê s   p r i m e i r a s   p o s i ç õ e s   d o   n ú m e r o   B Á S I C O   c o m   0 0 0   ( z e r o s ) . 
 	   *   E s t a   c r í t i c a   n ã o   s e r á   f e i t a   q u a n d o   o   n o   B Á S I C O   d o   C N P J   f o r   i g u a l   a   0 0 . 0 0 0 . 0 0 0 . 
 	   * / 
 	 i f   ( o r d e m   = =   " 0 0 0 0 " )   r e t u r n   f a l s e ; 
 	 r e t u r n   ( b a s e   = =   " 0 0 0 0 0 0 0 0 " 
 	 	 | |   p a r s e I n t ( o r d e m ,   1 0 )   < =   3 0 0   | |   b a s e . s u b s t r i n g ( 0 ,   3 )   ! =   " 0 0 0 " ) ; 
 }   / / i s C n p j 
 
 
 / * * 
   *   T e s t a   s e   a   S t r i n g   p C p f C n p j   f o r n e c i d a   é   u m   C P F   o u   C N P J   v á l i d o . 
   *   S e   a   S t r i n g   t i v e r   u m a   q u a n t i d a d e   d e   d í g i t o s   i g u a l   o u   i n f e r i o r 
   *   a   1 1 ,   v a l i d a   c o m o   C P F .   S e   f o r   m a i o r   q u e   1 1 ,   v a l i d a   c o m o   C N P J . 
   *   Q u a l q u e r   f o r m a t a ç ã o   q u e   n ã o   s e j a   a l g a r i s m o s   é   d e s c o n s i d e r a d a . 
   *   @ p a r a m   S t r i n g   p C p f C n p j 
   *   	 S t r i n g   f o r n e c i d a   p a r a   s e r   t e s t a d a . 
   *   @ r e t u r n   < c o d e > t r u e < / c o d e >   s e   a   S t r i n g   f o r n e c i d a   f o r   u m   C P F   o u   C N P J   v á l i d o . 
   * / 
 f u n c t i o n   i s C p f C n p j ( p C p f C n p j ) 
 { 
 	 v a r   n u m e r o   =   p C p f C n p j . r e p l a c e ( / \ D / g ,   " " ) ; 
 	 i f   ( n u m e r o . l e n g t h   >   N U M _ D I G I T O S _ C P F ) 
 	 	 r e t u r n   i s C n p j ( p C p f C n p j ) 
 	 e l s e 
 	 	 r e t u r n   i s C p f ( p C p f C n p j ) ; 
 }   / / i s C p f C n p j 
 
 
 f u n c t i o n   f o r m a t a C N P J ( v a l o r )   { 
 	 v a r   c n p j   =   T r i m ( v a l o r . v a l u e ) ; 
 	 v a r   n u m e r o = ' ' ; 
 	 
 	 i f   ( c n p j = = ' ' ) 
 	 	 r e t u r n   t r u e ; 
 	 
 	 i f   ( c n p j . l e n g t h   <   N U M _ D I G I T O S _ C N P J )   { 
 	 	 a l e r t ( ' C N P J   c o m   d í g i t o s   i n s u f i c i e n t e s ' ) ; 
 	 	 v a l o r . f o c u s ( ) ; 
 	 	 r e t u r n   f a l s e ; 
 	 } 
 	 	 
 	 n u m e r o   =   c n p j . r e p l a c e ( / \ D / g ,   " " ) ; 
 	 i f   ( ! i s C n p j ( n u m e r o ) )   { 
 	 	 a l e r t ( ' C N P J   i n v á l i d o ' ) ; 
 	 	 v a l o r . f o c u s ( ) ; 
 	 	 r e t u r n   f a l s e ; 
 	 } 
 	 
 	 c n p j   =   f o r m a t C p f C n p j ( n u m e r o ,   t r u e ,   t r u e ) ; 
 	 v a l o r . v a l u e = c n p j ; 
 	 
 	 r e t u r n   c n p j ; 
 	 	 
 } 
 
 f u n c t i o n   f o r m a t a C P F ( v a l o r )   { 
 	 v a r   c p f   =   T r i m ( v a l o r . v a l u e ) ; 
 	 v a r   n u m e r o = ' ' ; 
 	 
 	 i f   ( c p f = = ' ' ) 
 	 	 r e t u r n   t r u e ; 
 	 
 	 i f   ( c p f . l e n g t h   <   N U M _ D I G I T O S _ C P F )   { 
 	 	 a l e r t ( ' C P F   c o m   d í g i t o s   i n s u f i c i e n t e s ' ) ; 
 	 	 v a l o r . f o c u s ( ) ; 
 	 	 r e t u r n   f a l s e ; 
 	 } 
 	 	 
 	 n u m e r o   =   c p f . r e p l a c e ( / \ D / g ,   " " ) ; 
 	 i f   ( ! i s C p f ( n u m e r o ) )   { 
 	 	 a l e r t ( ' C P F   i n v á l i d o ' ) ; 
 	 	 v a l o r . f o c u s ( ) ; 
 	 	 r e t u r n   f a l s e ; 
 	 } 
 	 
 	 c p f   =   f o r m a t C p f C n p j ( n u m e r o ,   t r u e ,   f a l s e ) ; 
 	 v a l o r . v a l u e = c p f ; 
 	 
 	 r e t u r n   c p f ; 
 	 	 
 } 
