abcaeffchen/sepa-documentor

从SEPA文件数据生成文件路由单和控制列表

2.0.0 2020-04-13 16:36 UTC

This package is auto-updated.

Last update: 2024-08-30 01:26:55 UTC


README

Unit Tests Latest Stable Version Total Downloads License Gitter

通用

SepaDocumentor是一个模块,用于在生成SEPA xml文件的同时,为Sephpa创建文件路由单和控制列表作为PDF文件。

要求

SepaDocumentor与PHP 7.2, 7.3, 7.4兼容,需要mPDF >=7.0。它是Sephpa >= 2.0的可选模块,但您也可以将其与其他SEPA项目一起使用。

安装

Composer

只需将以下内容添加到您的composer.json中,并将Composer自动加载器包含到您的脚本中。如果您想使用Sephpa与SepaDocumentor一起使用,您还需要添加以下行"abcaeffchen/sephpa": "~2.0.0"

{
    "require": {
        "abcaeffchen/sepa-documentor": "~2.0"
    }
}

直接下载

您可以从GitHub这里下载。您需要确保在所有使用Sephpa的文件中都可以访问它。您还必须下载mPDF并使其可访问SepaDocumentor。它与Sephpa集成,因此您不需要做任何事情。

PDF文件包含什么内容?

可以生成两个文件:文件路由单和控制列表。

文件路由单

文件路由单包含SEPA文件的摘要。这包括创建者的用户名和文件ID、交易数量和转账金额的总额以及其他一些信息。

控制列表

这包含SEPA文件中包含的所有交易的详细列表。

个性化PDF文件

您可以通过修改src/templates中的模板来改变PDF文件的外观。这些文件还包含本地化信息。包含了一个德语模板和一个英语模板,但由于我对金融术语一无所知,英语版本可能是非常糟糕的翻译。所以如果有人能检查并给我一个正确的版本,我将很高兴 :)

如何使用

使用Sephpa

只需像往常一样使用Sephpa。当您调用download或store时,设置addDocumentation标志。如果您想下载文件,您必须下载一个包含xml文件和PDF文件文档的zip文件。

使用其他SEPA库

概述

您可以使用以下四个函数

概述

  • FileRoutingSlip::createText($template, $data):将$data数组插入模板。$template可以是模板的路径或默认模板的名称,它可以具有任何格式。
  • FileRoutingSlip::createPDF($template, $data):与createText()相同,但模板需要是HTML格式。
  • ControlList::createText($template, $data, $transactions):将$data数组插入模板,并根据需要重复交易块,每个块都填充来自$transactions数组中的数组的一个值。$template可以是模板的路径或默认模板的名称,它可以具有任何格式。
  • ControlList::createPDF($template, $data, $transactions):与createText()相同,但模板需要是HTML格式。

模板

模板可以具有任何格式。您可以使用

  • 形式为{{KEYWORD}}的占位符,其中KEYWORD是匹配[a-zA-Z0-9_-]+的字符串。
  • 条件语句
  • {{ifdef KEYWORD}} BODY {{endif KEYWORD}}:只有当 KEYWORD 设置时才会打印 BODY。只要嵌套的条件使用其他关键字,BODY 可以包含占位符和其他条件。
  • {{ifndef KEYWORD}} BODY {{endif KEYWORD}}:只有当 KEYWORD 未设置时才会打印 BODY。只要嵌套的条件使用其他关键字,BODY 也可以包含占位符和其他条件。
  • {{TRANSACTION!}} BLOCK {{/TRANSACTION!}}:这是一个仅允许用于控制列表的特殊命令块。 BLOCK 可以包含任何其他占位符或条件。此块将被重复并针对每个事务进行解释。每个未使用的占位符都将从输出中删除。

输入

  • $data 是一个键 => 值数组,其中键是不带花括号的占位符。
  • $transactions 是一个键 => 值数组的数组,每个事务一个。

不是每个占位符都需要在输入中存在。没有对应占位符的键将被忽略。

许可

根据 LGPL v3.0 许可协议许可。