跳转到主要内容

使用invoice2data库导入供应商发票

项目描述

License: AGPL-3

会计发票导入Invoice2data

此模块是模块account_invoice_import的扩展:它添加了对常规PDF发票的支持,即没有嵌入XML文件的PDF发票。它使用invoice2data库,该库负责提取PDF发票的文本,查找现有的发票模板并执行发票模板以从发票中提取有用的信息。

要了解此模块开发的全部故事,请阅读这篇博客文章

安装

此模块需要Python库invoice2data,可在Github上找到,版本>= 0.2.74(2018年2月)。

要安装此库的最新版本,请运行

sudo pip install --upgrade invoice2data

如果您使用Ubuntu 16.04 LTS,可以使用在发行版中打包的pdftotext版本0.41.0

sudo apt-get install poppler-utils

如果您想使invoice2data库在PDF不包含文本(只有极少数PDF发票是图像为基础的,需要OCR)时回退到OCR,您还应该安装Imagemagick(以获取convert实用程序将PDF转换为TIFF)和Tesseract OCR

sudo apt-get install imagemagick tesseract-ocr

如果您想为invoice2data库使用自定义发票模板(除了invoice2data库提供的模板外),您应该在Odoo服务器配置文件中添加一行,例如

invoice2data_templates_dir = /opt/invoice2data_local_templates

并将您的发票模板以 YAML 格式(.yml 扩展名)存储在您上面配置的目录中。如果您在此目录中添加发票模板,无需重新启动 Odoo,它们将在下一次发票导入时自动使用。

如果您只想使用您自定义的发票模板并忽略由 invoice2data 库提供的模板,您应在 Odoo 服务器配置文件中包含以下内容:

invoice2data_templates_dir = /opt/invoice2data_local_templates
invoice2data_exclude_built_in_templates = True

法语用户还应在 法语本地化 中安装模块 l10n_fr_business_document_import

配置

转到供应商的表单视图并使用以下参数进行配置:

  • 是否为公司? 选择 True

  • 供应商 选择 True

  • 设置 税务识别号(即增值税号)(在 Odoo 合作伙伴数据库中搜索供应商时默认使用增值税号)

  • 会计 选项卡中创建一个 发票导入配置

对于您的供应商的 PDF 发票(没有嵌入 XML 文件),您必须在 invoice2data Python 库中创建一个 模板文件,格式为 YAML。这相当简单;如果您熟悉 regexp,为每个供应商完成这项工作不应超过 10 分钟。

以下是一些帮助您为您的供应商添加模板的建议

  • Free SAS 模板文件 为例。您可以在 invoice2data/test/pdfs/2015-07-02-invoice_free_fiber.pdf 下找到此供应商的示例 PDF 发票。

  • 尝试手动运行 invoice2data 库在 Free 的样本发票上

% python -m invoice2data.main --debug invoice2data/test/pdfs/2015-07-02-invoice_free_fiber.pdf

在输出中,您将首先获得 PDF 的文本,然后是一些关于发票解析和正则表达式的调试信息,最后是一行包含解析结果的字典。

  • 如果供应商的增值税号出现在 PDF 发票的文本中,我认为将其用作关键字是个好主意。添加两个其他关键字是一个好习惯:一个用于语言(例如,匹配发票的语言中的 发票 单词)和一个用于货币,以便仅匹配该供应商在该特定语言和货币中的发票。

  • 字段列表应包含以下条目

    • “vat”(供应商的增值税号)(如果供应商的增值税号不在 PDF 文件中,添加一个“partner_name”键,或者如果供应商是法国人且已安装 l10n_fr_invoice_pdf_import 模块,则添加一个“siren”键)

    • “amount”(“amount”是含税的总金额)

    • “amount_untaxed”或“amount_tax”(两者之一,无需两者都添加)

    • “date”(发票日期)

    • “invoice_number”(发票号)

    • 如果该信息在 PDF 文件文本中可用,则“date_due”

使用

参阅模块 account_invoice_import 的使用部分。

Try me on Runbot

错误跟踪器

错误在 GitHub Issues 中跟踪。如果在出现问题时,请检查是否已报告您的问题。如果您首先发现它,请通过提供详细且受欢迎的反馈来帮助我们解决它。

致谢

贡献者

维护者

Odoo Community Association

此模块由 OCA 维护。

OCA,或 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并促进其广泛使用。

要为此模块做出贡献,请访问 https://odoo-community.org

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

由以下支持