跳转到主要内容

使用invoice2data库导入供应商发票

项目描述

Beta License: AGPL-3 OCA/edi Translate me on Weblate Try me on Runboat

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

要了解此模块开发背后的完整故事,请阅读这篇博客文章

目录

安装

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

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

sudo pip3 install --upgrade invoice2data

如果您使用的是Ubuntu 16.04 LTS或更高版本,可以使用分发给版本0.41.0的pdftotext

sudo apt install poppler-utils

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

sudo apt 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

配置

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

  • 是否为供应商为真

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

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

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

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

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

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

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

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

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

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

    • ‘vat’与供应商的增值税号(如果供应商的增值税号不在PDF文件文本中,请添加一个‘partner_name’键,或者如果供应商是法国的并且已安装模块l10n_fr_business_document_import,请添加一个‘siren’键)

    • ‘amount’(‘amount’是含税的总金额)

    • ‘amount_untaxed’或‘amount_tax’(一个或另一个,无需两者都添加)

    • ‘date’:发票日期

    • ‘invoice_number’

    • 如果PDF文件文本中包含此信息,则‘date_due’

错误追踪器

错误在GitHub Issues上追踪。如果遇到问题,请检查那里您的问题是否已经报告。如果您是第一个发现它的人,请提供详细且受欢迎的反馈

请不要直接联系贡献者以获取支持或技术问题的帮助。

鸣谢

作者

  • Akretion

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

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

本模块是GitHub上OCA/edi项目的组成部分。

欢迎您贡献。要了解如何贡献,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

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

源代码分发

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

构建分发

支持者