Flutter意大利税号验证插件italian_tax_identification_number的使用
Flutter意大利税号验证插件italian_tax_identification_number的使用
这个包提供了一个类来管理意大利税号(税识别码):
- 验证(仅限格式)
- 编码(即将推出)
- 解码
映射代码到城市的数据库是硬编码的,因此在使用时无需互联网连接。
请注意,对于这个税识别码有不同的名称:
- 公共机构使用的正式名称是税识别码
- 人们通常称之为财政代码(Codice Fiscale)或健康卡(Tessera sanitaria)
- 它类似于社会保险号(SSN)
功能
这是一个从个人的人口统计信息生成的代码。通过这个库可以检查税识别码格式是否有效,并解码(通常也称为反向检索或获取)生成人口统计信息。 目前该包不计算从人口统计信息开始的税号,也不验证代码是否正确。
开始使用
它是纯 Dart 的,使用了 dartz 库。
使用方法
考虑以下假代码 GSP MTA 98L25 E625O,代表一个名为“Giuseppe Amato”的人,1998年7月25日出生在Livorno。 代码可以通过任何库或在线免费工具计算。
ItalianTaxIdentificationNumber result = ItalianTaxIdentificationNumber.fromTaxNumber('GSP MTA 98L25 E625O');
print(result.isFormatValid()); // 打印 true
print(result);
/* 打印结果
firstName: GSP,
lastName: MTA,
gender: M,
birthDate: 1998-07-25 00:00:00.000,
birthTown: Livorno,
birthZone: Centro,
birthRegion: Toscana,
birthProvince: Livorno,
birthProvinceCode: LI,
possiblePostalCodes: [57121, 57122, 57123, 57124, 57125, 57126, 57127, 57128],
birthCountry: Italia,
ssn: GSPMTA98L25E625O
*/
地点是如何检索的?
第12到第15个字符包含灾祸代码。
例如,从这个代码 GSPMTA98L25E625O 中,灾祸代码是 E625。
在包中有一个硬编码的数据库位于 codici_catastali.dart
文件中。它提供了一个可以使用灾祸代码过滤的映射表。它用于填充 ItalianTaxIdentificationNumber
对象的所有出生地点信息。
possiblePostalCodes
字段是一个列表,因为这个细节级别未编码在税识别码中,但可以限制在一个值范围内,并可用于形成填写建议或下拉框。
如果你发现错误或需要新数据,请从 GitHub 进行 Fork,我会立即合并以保持数据库更新。
额外信息
这段代码有几个由于其性质而带来的限制,因此包也有这些限制:
- 它遵循生成代码的通用规则,但在存在重复代码的情况下,公共机构会打破这些规则并根据其他规则发行代码(这些规则随着时间变化)。
- 这意味着使用此包的最佳方式是在用户需要填写表单时。通过输入税识别码,可以预先填写一些字段。但是请注意,这不能验证税识别码的正确性。
在我编写这个包时,我原本打算实现创建和验证函数。现在我不确定是否要这样做,因为最终只有意大利税务机关(Agenzia delle entrate)才能验证税识别码的正确性和存在性。
截至2023年7月,税务机关正在开始提供有关此主题的 API 服务。
所以我认为在未来版本中,我将尝试集成一个与该服务通信的 REST 客户端。
示例代码
以下是使用该插件的一个完整示例:
import 'package:italian_tax_identification_number/italian_tax_identification_number_base.dart';
void main() {
ItalianTaxIdentificationNumber result =
ItalianTaxIdentificationNumber.fromTaxNumber('GSP MTA 98L25 E625O');
print(result.birthCountry); // 打印 Italia
print(result.birthDate); // 打印 1998-07-25 00:00:00.000
print(result.birthProvince); // 打印 Livorno
print(result.birthProvinceCode); // 打印 LI
print(result.birthRegion); // 打印 Toscana
print(result.birthTown); // 打印 Livorno
print(result.birthZone); // 打印 Centro
print(result.firstName); // 打印 GSP
print(result.gender); // 打印 M
print(result.lastName); // 打印 MTA
print(result.possiblePostalCodes); // 打印 [57121, 57122, 57123, 57124, 57125, 57126, 57127, 57128]
print(result.ssn); // 打印 GSPMTA98L25E625O
print(result.isFormatValid()); // 打印 true
}
更多关于Flutter意大利税号验证插件italian_tax_identification_number的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter意大利税号验证插件italian_tax_identification_number的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
italian_tax_identification_number
是一个用于验证意大利税号(Codice Fiscale)的 Flutter 插件。意大利税号是一个由字母和数字组成的唯一标识符,用于在意大利识别个人和企业。这个插件可以帮助开发者验证税号的格式是否正确。
安装插件
首先,你需要在 pubspec.yaml
文件中添加插件的依赖:
dependencies:
flutter:
sdk: flutter
italian_tax_identification_number: ^1.0.0
然后运行 flutter pub get
来安装插件。
使用插件
安装完成后,你可以在你的 Flutter 项目中使用 italian_tax_identification_number
插件来验证意大利税号。
1. 导入插件
import 'package:italian_tax_identification_number/italian_tax_identification_number.dart';
2. 验证税号
你可以使用 ItalianTaxIdentificationNumber
类的 validate
方法来验证税号。这个方法会返回一个布尔值,表示税号是否有效。
void main() {
String codiceFiscale = "RSSMRA85M01H501A"; // 示例税号
bool isValid = ItalianTaxIdentificationNumber.validate(codiceFiscale);
if (isValid) {
print("税号有效");
} else {
print("税号无效");
}
}
3. 生成税号
除了验证税号,这个插件还可以根据姓名、性别、出生日期和出生地来生成一个理论上有效的税号。
void main() {
String firstName = "Mario";
String lastName = "Rossi";
String gender = "M"; // M for Male, F for Female
String birthDate = "1985-01-01"; // YYYY-MM-DD format
String birthPlace = "H501"; // Codice Catastale of the birth place
String codiceFiscale = ItalianTaxIdentificationNumber.generate(
firstName: firstName,
lastName: lastName,
gender: gender,
birthDate: birthDate,
birthPlace: birthPlace,
);
print("生成的税号: $codiceFiscale");
}