NAME
    Business::DK::CVR - Danish CVR (VAT Registration) code
    generator/validator

VERSION
    This documentation describes version 0.05 of Business::DK::CVR

SYNOPSIS
        use Business::DK::CVR qw(validate);

        my $rv;
        eval { $rv = validate(27355021); };

        if ($@) {
            die "Code is not of the expected format - $@";
        }

        if ($rv) {
            print "Code is valid";
        } else {
            print "Code is not valid";
        }

DESCRIPTION
    CVR is a company registration number used in conjuction with VAT
    handling in Denmark.

    If you want to use this module in conjunction please check:
    Data::FormValidator::Constraints::Business::DK::CVR

SUBROUTINES AND METHODS
  validate

    The function takes a single argument, a 10 digit CVR number.

    The function returns 1 (true) in case of a valid CVR number argument and
    0 (false) in case of an invalid CVR number argument.

    The validation function goes through the following steps.

    Validation of the argument is done using the functions (all described
    below in detail):

    Business::DK::PO, exported by Business::DK::PO
    Business::DK::PO, exported by Business::DK::PO
    _length
    If the argument is a valid argument the sum is calculated by
    _calculate_sum based on the argument and the controlcifers array.

    The sum returned is checked using a modulus caluculation and based on
    its validity either 1 or 0 is returned.

  generate

    Generate is a function which generates valid CVR numbers, it is by no
    means an authority, since CVRs are generated and distributed by danish
    tax authorities, but it can be used to generate example CVRs for testing
    and so on.

PRIVATE FUNCTIONS
  _length

    This function validates the length of the argument, it dies if the
    argument does not fit wihtin the boundaries specified by the arguments
    provided:

    The _length function takes the following arguments:

    number (mandatory), the number to be validated
    length required of number (mandatory)
  _calculate_sum

    This function takes an integer and calculates the sum bases on the the
    controlcifer array.

EXPORTS
    Business::DK::CVR exports on request:

    validate
    generate
    _length
    _calculate_sum
DIAGNOSTICS
    * The amount requested exceeds the maximum possible valid CVRs 9090908
        The number of valid CVRs are limited, so if the user requests a
        number of CVRs to be generated which exceeds the upper limit, this
        error is instantiated. See: generate.

    * argument: $number has to be $length digits long
        If the number in $number does not match the specified length, this
        error is issued. See: _length.

CONFIGURATION AND ENVIRONMENT
    The module requires no special configuration or environment to run.

DEPENDENCIES
    Business::DK::PO
INCOMPATIBILITIES
    The module has no known incompatibilities.

BUGS AND LIMITATIONS
    The module has no known bugs or limitations.

TEST AND QUALITY
    Coverage of the test suite is at 100%

TODO
    * Get the generate method thorougly tested
BUG REPORTING
    Please report issues via CPAN RT:

      http://rt.cpan.org/NoAuth/Bugs.html?Dist=Business-DK-CVR

    or by sending mail to

      bug-Business-DK-CVR@rt.cpan.org

SEE ALSO
    http://www.cvr.dk/
    Business::DK::PO
    Business::DK::CPR
    http://search.cpan.org/dist/Algorithm-CheckDigits
    http://search.cpan.org/~mamawe/Algorithm-CheckDigits-0.38/CheckDigits/M1
    1_008.pm
    Data::FormValidator::Constraints::Business::DK::CVR
AUTHOR
    Jonas B. Nielsen, (jonasbn) - `<jonasbn@cpan.org>'

COPYRIGHT
    Business-DK-CVR is (C) by Jonas B. Nielsen, (jonasbn) 2006-2008

LICENSE
    Business-DK-CVR is released under the artistic license

    The distribution is licensed under the Artistic License, as specified by
    the Artistic file in the standard perl distribution
    (http://www.perl.com/language/misc/Artistic.html).

