einfacharchiv/extractor

Extract billing data from text

v1.2.3 2019-08-25 14:48 UTC

This package is auto-updated.

Last update: 2024-04-26 01:16:07 UTC


README

Software License

This package provides an easy way to extract billing data from text. We use it in our German SaaS product einfachArchiv.

Requirements

PHP 7.0 and later.

Installation

You can install this package via Composer. Run the following command:

composer require einfacharchiv/extractor

Usage

Extracting billing data is easy.

$text = <<<EOT
Rechnungsnummer: 4711
Rechnungsdatum: 20.11.2077
Rechnungsbetrag: 119,00 €
...
EOT;

// Pass the text and the locales (the methods return the values in the same order)
$extractor = new \einfachArchiv\Extractor\Extractor($text, ['de', 'en']);

// Available methods
$extractor->findAmounts();
$extractor->findBics();
$extractor->findCompanyNames();
$extractor->findCompanyRegisterIds();
$extractor->findCustomerIds();
$extractor->findDates();
$extractor->findEmails();
$extractor->findIbans();
$extractor->findInvoiceIds();
$extractor->findPaymentReferences();
$extractor->findTaxNumbers();
$extractor->findTypes();
$extractor->findVatNumbers();
$extractor->findWebsites();

If no matches were found, the methods return an empty array.

The method ->findAmounts() returns an array like this one:

[
    [
        'amount' => 119,
        'currency' => 'EUR',
    ],
    ...
];

All amounts are returned as floats.

The method ->findCompanyRegisterIds() returns an array like this one:

[
    [
        'area' => 'HRB',
        'number' => '123456',
        'office' => 'Stuttgart',
    ],
    ...
];

The invoice date is, if present, a valid date and can be used like this:

$dates = $extractor->findDates();

\Carbon\Carbon::parse($dates[0])->toDateString();

The method ->findTaxNumbers() returns an array like this one:

[
    [
        'number' => '12345/67890',
        'state' => 'BW',
    ],
    ...
];

The method ->findTypes() returns the following types:

[
    'invoice',
    'credit-note',
    'reminder',
    'salary-statement',
    'bank-statement',
    'contract',
    'balance-sheet',
    'tax-assessment-note',
];

Contributing

Contributions are welcome.

We accept contributions via Pull Requests on Github.

Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions for improvement? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.

If you've found a security issue, please email support@einfacharchiv.com instead of using the issue tracker.

Happy coding!

Credits

License

The MIT License (MIT). Please see License File for more information.