diff --git a/l10n_it_fatturapa_in/README.rst b/l10n_it_fatturapa_in/README.rst
index 8621920fee94..84e315f1c5b0 100644
--- a/l10n_it_fatturapa_in/README.rst
+++ b/l10n_it_fatturapa_in/README.rst
@@ -55,15 +55,15 @@ Installation
**Italiano**
-Il server Odoo deve essere avviato da un sistema Linux con installato
+Questo modulo richiede asn1crypto
-``openssl``
+https://github.com/wbond/asn1crypto
**English**
-Odoo server must run on linux and be able to run
+This module requires asn1crypto
-``openssl``
+https://github.com/wbond/asn1crypto
Configuration
=============
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index 932e8b70b83b..7251c8245d76 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'Italian Localization - Fattura elettronica - Ricezione',
- 'version': '12.0.1.1.2',
+ 'version': '12.0.1.1.3',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
diff --git a/l10n_it_fatturapa_in/readme/INSTALL.rst b/l10n_it_fatturapa_in/readme/INSTALL.rst
index 43f548a1974c..a23c6e049dba 100644
--- a/l10n_it_fatturapa_in/readme/INSTALL.rst
+++ b/l10n_it_fatturapa_in/readme/INSTALL.rst
@@ -1,11 +1,11 @@
**Italiano**
-Il server Odoo deve essere avviato da un sistema Linux con installato
+Questo modulo richiede asn1crypto
-``openssl``
+https://github.com/wbond/asn1crypto
**English**
-Odoo server must run on linux and be able to run
+This module requires asn1crypto
-``openssl``
+https://github.com/wbond/asn1crypto
diff --git a/l10n_it_fatturapa_in/static/description/index.html b/l10n_it_fatturapa_in/static/description/index.html
index 3388f55ec5fd..f060d4f193a4 100644
--- a/l10n_it_fatturapa_in/static/description/index.html
+++ b/l10n_it_fatturapa_in/static/description/index.html
@@ -396,11 +396,11 @@
Italian Localization - Fattura elettronica - Ricezione
diff --git a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.base64.xml.p7m b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.base64.xml.p7m
new file mode 100644
index 000000000000..5209aacc3a42
--- /dev/null
+++ b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.base64.xml.p7m
@@ -0,0 +1 @@
+MIIkBgYJKoZIhvcNAQcCoIIj9zCCI/MCAQExDTALBglghkgBZQMEAgEwghm3BgkqhkiG9w0BBwGgghmoBIIZpDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxwOkZhdHR1cmFFbGV0dHJvbmljYSB2ZXJzaW9uZT0iRlBSMTIiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczpwPSJodHRwOi8vaXZhc2Vydml6aS5hZ2VuemlhZW50cmF0ZS5nb3YuaXQvZG9jcy94c2QvZmF0dHVyZS92MS4yIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9pdmFzZXJ2aXppLmFnZW56aWFlbnRyYXRlLmdvdi5pdC9kb2NzL3hzZC9mYXR0dXJlL3YxLjIgaHR0cDovL3d3dy5mYXR0dXJhcGEuZ292Lml0L2V4cG9ydC9mYXR0dXJhemlvbmUvc2RpL2ZhdHR1cmFwYS92MS4yL1NjaGVtYV9kZWxfZmlsZV94bWxfRmF0dHVyYVBBX3ZlcnNpb25lXzEuMi54c2QiPgogIDxGYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+CiAgICA8RGF0aVRyYXNtaXNzaW9uZT4KICAgICAgPElkVHJhc21pdHRlbnRlPgogICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXNlPgogICAgICAgIDxJZENvZGljZT4wNTk3OTM2MTIxODwvSWRDb2RpY2U+CiAgICAgIDwvSWRUcmFzbWl0dGVudGU+CiAgICAgIDxQcm9ncmVzc2l2b0ludmlvPjAwMDAxPC9Qcm9ncmVzc2l2b0ludmlvPgogICAgICA8Rm9ybWF0b1RyYXNtaXNzaW9uZT5GUFIxMjwvRm9ybWF0b1RyYXNtaXNzaW9uZT4KICAgICAgPENvZGljZURlc3RpbmF0YXJpbz4wMDAwMDAwPC9Db2RpY2VEZXN0aW5hdGFyaW8+CiAgICAgIDxDb250YXR0aVRyYXNtaXR0ZW50ZS8+CiAgICA8L0RhdGlUcmFzbWlzc2lvbmU+CiAgICA8Q2VkZW50ZVByZXN0YXRvcmU+CiAgICAgIDxEYXRpQW5hZ3JhZmljaT4KICAgICAgICA8SWRGaXNjYWxlSVZBPgogICAgICAgICAgPElkUGFlc2U+SVQ8L0lkUGFlc2U+CiAgICAgICAgICA8SWRDb2RpY2U+MDI3ODA3OTAxMDc8L0lkQ29kaWNlPgogICAgICAgIDwvSWRGaXNjYWxlSVZBPgogICAgICAgIDxBbmFncmFmaWNhPgogICAgICAgICAgPERlbm9taW5hemlvbmU+U09DSUVUQScgQUxQSEEgU1JMPC9EZW5vbWluYXppb25lPgogICAgICAgIDwvQW5hZ3JhZmljYT4KICAgICAgICA8UmVnaW1lRmlzY2FsZT5SRjAxPC9SZWdpbWVGaXNjYWxlPgogICAgICA8L0RhdGlBbmFncmFmaWNpPgogICAgICA8U2VkZT4KICAgICAgICA8SW5kaXJpenpvPlZJQUxFIFJPTUEgNTQzPC9JbmRpcml6em8+CiAgICAgICAgPENBUD4wNzEwMDwvQ0FQPgogICAgICAgIDxDb211bmU+U0FTU0FSSTwvQ29tdW5lPgogICAgICAgIDxQcm92aW5jaWE+U1M8L1Byb3ZpbmNpYT4KICAgICAgICA8TmF6aW9uZT5JVDwvTmF6aW9uZT4KICAgICAgPC9TZWRlPgogICAgPC9DZWRlbnRlUHJlc3RhdG9yZT4KICAgIDxDZXNzaW9uYXJpb0NvbW1pdHRlbnRlPgogICAgICA8RGF0aUFuYWdyYWZpY2k+CiAgICAgICAgPENvZGljZUZpc2NhbGU+MDM1MzM1OTAxNzQ8L0NvZGljZUZpc2NhbGU+CiAgICAgICAgPEFuYWdyYWZpY2E+CiAgICAgICAgICA8RGVub21pbmF6aW9uZT5CRVRBIEdBTU1BPC9EZW5vbWluYXppb25lPgogICAgICAgIDwvQW5hZ3JhZmljYT4KICAgICAgPC9EYXRpQW5hZ3JhZmljaT4KICAgICAgPFNlZGU+CiAgICAgICAgPEluZGlyaXp6bz5WSUEgVE9SSU5PIDM4LUI8L0luZGlyaXp6bz4KICAgICAgICA8Q0FQPjAwMTQ1PC9DQVA+CiAgICAgICAgPENvbXVuZT5ST01BPC9Db211bmU+CiAgICAgICAgPFByb3ZpbmNpYT5STTwvUHJvdmluY2lhPgogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPgogICAgICA8L1NlZGU+CiAgICA8L0Nlc3Npb25hcmlvQ29tbWl0dGVudGU+CiAgPC9GYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+CiAgPEZhdHR1cmFFbGV0dHJvbmljYUJvZHk+CiAgICA8RGF0aUdlbmVyYWxpPgogICAgICA8RGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICAgIDxUaXBvRG9jdW1lbnRvPlREMDE8L1RpcG9Eb2N1bWVudG8+CiAgICAgICAgPERpdmlzYT5FVVI8L0RpdmlzYT4KICAgICAgICA8RGF0YT4yMDE0LTEyLTE4PC9EYXRhPgogICAgICAgIDxOdW1lcm8+MTIzPC9OdW1lcm8+CiAgICAgICAgPENhdXNhbGU+TEEgRkFUVFVSQSBGQSBSSUZFUklNRU5UTyBBRCBVTkEgT1BFUkFaSU9ORSBBQUFBIEJCQkJCQkJCQkJCQkJCQkJCQiBDQ0MgREREREREREREREREREREIEUgRkZGRkZGRkZGRkZGRkZGRkZGRkYgR0dHR0dHR0dHRyBISEhISEhIIElJIExMTExMTExMTExMTExMTExMIE1NTSBOTk5OTiBPTyBQUFBQUFBQUFBQUCBRUVFRIFJSUlIgU1NTU1NTU1NTU1NTU1M8L0NhdXNhbGU+CiAgICAgICAgPENhdXNhbGU+U0VHVUUgREVTQ1JJWklPTkUgQ0FVU0FMRSBORUwgQ0FTTyBJTiBDVUkgTk9OIFNJQU5PIFNUQVRJIFNVRkZJQ0lFTlRJIDIwMCBDQVJBVFRFUkkgQUFBQUFBQUFBQUEgQkJCQkJCQkJCQkJCQkJCQkI8L0NhdXNhbGU+CiAgICAgIDwvRGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICA8RGF0aU9yZGluZUFjcXVpc3RvPgogICAgICAgIDxSaWZlcmltZW50b051bWVyb0xpbmVhPjE8L1JpZmVyaW1lbnRvTnVtZXJvTGluZWE+CiAgICAgICAgPElkRG9jdW1lbnRvPjY2Njg1PC9JZERvY3VtZW50bz4KICAgICAgICA8TnVtSXRlbT4xPC9OdW1JdGVtPgogICAgICA8L0RhdGlPcmRpbmVBY3F1aXN0bz4KICAgICAgPERhdGlUcmFzcG9ydG8+CiAgICAgICAgPERhdGlBbmFncmFmaWNpVmV0dG9yZT4JCQkJCiAgICAgICAgICA8SWRGaXNjYWxlSVZBPgogICAgICAgICAgICA8SWRQYWVzZT5JVDwvSWRQYWVzZT4KICAgICAgICAgICAgPElkQ29kaWNlPjA0NTA3OTkwMTUwPC9JZENvZGljZT4KICAgICAgICAgIDwvSWRGaXNjYWxlSVZBPgogICAgICAgICAgPEFuYWdyYWZpY2E+CiAgICAgICAgICAgIDxEZW5vbWluYXppb25lPlRyYXNwb3J0byBzcGE8L0Rlbm9taW5hemlvbmU+CiAgICAgICAgICA8L0FuYWdyYWZpY2E+CiAgICAgICAgPC9EYXRpQW5hZ3JhZmljaVZldHRvcmU+CiAgICAgICAgPERhdGFPcmFDb25zZWduYT4yMDEyLTEwLTIyVDE2OjQ2OjEyLjAwMCswMjowMDwvRGF0YU9yYUNvbnNlZ25hPgogICAgICA8L0RhdGlUcmFzcG9ydG8+CiAgICA8L0RhdGlHZW5lcmFsaT4KICAgIDxEYXRpQmVuaVNlcnZpemk+CiAgICAgIDxEZXR0YWdsaW9MaW5lZT4KICAgICAgICA8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+CiAgICAgICAgPENvZGljZUFydGljb2xvPgogICAgICAgICAgPENvZGljZVRpcG8+SU5UPC9Db2RpY2VUaXBvPgogICAgICAgICAgPENvZGljZVZhbG9yZT5BUlQxMjM8L0NvZGljZVZhbG9yZT4KICAgICAgICA8L0NvZGljZUFydGljb2xvPgogICAgICAgIDxEZXNjcml6aW9uZT5MQSBERVNDUklaSU9ORSBERUxMQSBGT1JOSVRVUkEgUFVPJyBTVVBFUkFSRSBJIENFTlRPIENBUkFUVEVSSSBDSEUgUkFQUFJFU0VOVEFWQU5PIElMIFBSRUNFREVOVEUgTElNSVRFIERJTUVOU0lPTkFMRS4gVEFMRSBMSU1JVEUgTkVMTEEgTlVPVkEgVkVSU0lPTkUgRScgU1RBVE8gUE9SVEFUTyBBIE1JTExFIENBUkFUVEVSSTwvRGVzY3JpemlvbmU+CiAgICAgICAgPFF1YW50aXRhPjUuMDA8L1F1YW50aXRhPgogICAgICAgIDxQcmV6em9Vbml0YXJpbz4xLjAwPC9QcmV6em9Vbml0YXJpbz4KICAgICAgICA8UHJlenpvVG90YWxlPjUuMDA8L1ByZXp6b1RvdGFsZT4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICA8L0RldHRhZ2xpb0xpbmVlPgogICAgICA8RGV0dGFnbGlvTGluZWU+CiAgICAgICAgPE51bWVyb0xpbmVhPjI8L051bWVyb0xpbmVhPgogICAgICAgIDxEZXNjcml6aW9uZT5GT1JOSVRVUkUgVkFSSUUgUEVSIFVGRklDSU88L0Rlc2NyaXppb25lPgogICAgICAgIDxRdWFudGl0YT4xMC4wMDwvUXVhbnRpdGE+CiAgICAgICAgPFByZXp6b1VuaXRhcmlvPjIuMDA8L1ByZXp6b1VuaXRhcmlvPgogICAgICAgIDxQcmV6em9Ub3RhbGU+MjAuMDA8L1ByZXp6b1RvdGFsZT4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICA8L0RldHRhZ2xpb0xpbmVlPgogICAgICA8RGF0aVJpZXBpbG9nbz4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICAgIDxJbXBvbmliaWxlSW1wb3J0bz4yNS4wMDwvSW1wb25pYmlsZUltcG9ydG8+CiAgICAgICAgPEltcG9zdGE+NS41MDwvSW1wb3N0YT4KICAgICAgICA8RXNpZ2liaWxpdGFJVkE+STwvRXNpZ2liaWxpdGFJVkE+CiAgICAgIDwvRGF0aVJpZXBpbG9nbz4KICAgIDwvRGF0aUJlbmlTZXJ2aXppPgogICAgPERhdGlQYWdhbWVudG8+CiAgICAgIDxDb25kaXppb25pUGFnYW1lbnRvPlRQMDE8L0NvbmRpemlvbmlQYWdhbWVudG8+CiAgICAgIDxEZXR0YWdsaW9QYWdhbWVudG8+CiAgICAgICAgPE1vZGFsaXRhUGFnYW1lbnRvPk1QMDE8L01vZGFsaXRhUGFnYW1lbnRvPgogICAgICAgIDxEYXRhU2NhZGVuemFQYWdhbWVudG8+MjAxNS0wMS0zMDwvRGF0YVNjYWRlbnphUGFnYW1lbnRvPgogICAgICAgIDxJbXBvcnRvUGFnYW1lbnRvPjMyLjUwPC9JbXBvcnRvUGFnYW1lbnRvPgogICAgICA8L0RldHRhZ2xpb1BhZ2FtZW50bz4KICAgIDwvRGF0aVBhZ2FtZW50bz4KICA8L0ZhdHR1cmFFbGV0dHJvbmljYUJvZHk+CiAgPEZhdHR1cmFFbGV0dHJvbmljYUJvZHk+CiAgICA8RGF0aUdlbmVyYWxpPgogICAgICA8RGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICAgIDxUaXBvRG9jdW1lbnRvPlREMDE8L1RpcG9Eb2N1bWVudG8+CiAgICAgICAgPERpdmlzYT5FVVI8L0RpdmlzYT4KICAgICAgICA8RGF0YT4yMDE0LTEyLTIwPC9EYXRhPgogICAgICAgIDxOdW1lcm8+NDU2PC9OdW1lcm8+CiAgICAgICAgPENhdXNhbGU+TEEgRkFUVFVSQSBGQSBSSUZFUklNRU5UTyBBRCBVTkEgT1BFUkFaSU9ORSBBQUFBIEJCQkJCQkJCQkJCQkJCQkJCQiBDQ0MgREREREREREREREREREREIEUgRkZGRkZGRkZGRkZGRkZGRkZGRkYgR0dHR0dHR0dHRyBISEhISEhIIElJIExMTExMTExMTExMTExMTExMIE1NTSBOTk5OTiBPTyBQUFBQUFBQUFBQUCBRUVFRIFJSUlIgU1NTU1NTU1NTU1NTU1M8L0NhdXNhbGU+CiAgICAgICAgPENhdXNhbGU+U0VHVUUgREVTQ1JJWklPTkUgQ0FVU0FMRSBORUwgQ0FTTyBJTiBDVUkgTk9OIFNJQU5PIFNUQVRJIFNVRkZJQ0lFTlRJIDIwMCBDQVJBVFRFUkkgQUFBQUFBQUFBQUEgQkJCQkJCQkJCQkJCQkJCQkI8L0NhdXNhbGU+CiAgICAgIDwvRGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICA8RGF0aU9yZGluZUFjcXVpc3RvPgogICAgICAgIDxSaWZlcmltZW50b051bWVyb0xpbmVhPjE8L1JpZmVyaW1lbnRvTnVtZXJvTGluZWE+CiAgICAgICAgPElkRG9jdW1lbnRvPjY2Njg1PC9JZERvY3VtZW50bz4KICAgICAgICA8TnVtSXRlbT4xPC9OdW1JdGVtPgogICAgICA8L0RhdGlPcmRpbmVBY3F1aXN0bz4KICAgIDwvRGF0aUdlbmVyYWxpPgogICAgPERhdGlCZW5pU2Vydml6aT4KICAgICAgPERldHRhZ2xpb0xpbmVlPgogICAgICAgIDxOdW1lcm9MaW5lYT4xPC9OdW1lcm9MaW5lYT4KICAgICAgICA8RGVzY3JpemlvbmU+UFJFU1RBWklPTkUgREVMIFNFR1VFTlRFIFNFUlZJWklPIFBST0ZFU1NJT05BTEU6IExBIERFU0NSSVpJT05FIERFTExBIFBSRVNUQVpJT05FIFBVTycgU1VQRVJBUkUgSSBDRU5UTyBDQVJBVFRFUkkgQ0hFIFJBUFBSRVNFTlRBVkFOTyBJTCBQUkVDRURFTlRFIExJTUlURSBESU1FTlNJT05BTEUuIFRBTEUgTElNSVRFIE5FTExBIE5VT1ZBIFZFUlNJT05FIEUnIFNUQVRPIFBPUlRBVE8gQSBNSUxMRSBDQVJBVFRFUkk8L0Rlc2NyaXppb25lPgogICAgICAgIDxQcmV6em9Vbml0YXJpbz4yMDAwLjAwPC9QcmV6em9Vbml0YXJpbz4KICAgICAgICA8UHJlenpvVG90YWxlPjIwMDAuMDA8L1ByZXp6b1RvdGFsZT4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICA8L0RldHRhZ2xpb0xpbmVlPgogICAgICA8RGF0aVJpZXBpbG9nbz4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICAgIDxJbXBvbmliaWxlSW1wb3J0bz4yMDAwLjAwPC9JbXBvbmliaWxlSW1wb3J0bz4KICAgICAgICA8SW1wb3N0YT40NDAuMDA8L0ltcG9zdGE+CiAgICAgICAgPEVzaWdpYmlsaXRhSVZBPkk8L0VzaWdpYmlsaXRhSVZBPgogICAgICA8L0RhdGlSaWVwaWxvZ28+CiAgICA8L0RhdGlCZW5pU2Vydml6aT4KICAgIDxEYXRpUGFnYW1lbnRvPgogICAgICA8Q29uZGl6aW9uaVBhZ2FtZW5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
diff --git a/l10n_it_fatturapa_in/tests/data/IT05979361218_no_decl.xml b/l10n_it_fatturapa_in/tests/data/IT05979361218_no_decl.xml
new file mode 100644
index 000000000000..ed0e7d1dc10b
--- /dev/null
+++ b/l10n_it_fatturapa_in/tests/data/IT05979361218_no_decl.xml
@@ -0,0 +1,153 @@
+
+
+
+
+ IT
+ 05979361218
+
+ 00001
+ FPR12
+ 0000000
+
+
+
+
+
+ IT
+ 02780790107
+
+
+ SOCIETA' ALPHA SRL
+
+ RF01
+
+
+ VIALE ROMA 543
+ 07100
+ SASSARI
+ SS
+ IT
+
+
+
+
+ 03533590174
+
+ BETA GAMMA
+
+
+
+ VIA TORINO 38-B
+ 00145
+ ROMA
+ RM
+ IT
+
+
+
+
+
+
+ TD01
+ EUR
+ 2014-12-18
+ 123
+ LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS
+ SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB
+
+
+ 1
+ 66685
+ 1
+
+
+
+
+ IT
+ 04507990150
+
+
+ Trasporto spa
+
+
+ 2012-10-22T16:46:12.000+02:00
+
+
+
+
+ 1
+
+ INT
+ ART123
+
+ LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI
+ 5.00
+ 1.00
+ 5.00
+ 22.00
+
+
+ 2
+ FORNITURE VARIE PER UFFICIO
+ 10.00
+ 2.00
+ 20.00
+ 22.00
+
+
+ 22.00
+ 25.00
+ 5.50
+ I
+
+
+
+ TP01
+
+ MP01
+ 2015-01-30
+ 32.50
+
+
+
+
+
+
+ TD01
+ EUR
+ 2014-12-20
+ 456
+ LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS
+ SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB
+
+
+ 1
+ 66685
+ 1
+
+
+
+
+ 1
+ PRESTAZIONE DEL SEGUENTE SERVIZIO PROFESSIONALE: LA DESCRIZIONE DELLA PRESTAZIONE PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI
+ 2000.00
+ 2000.00
+ 22.00
+
+
+ 22.00
+ 2000.00
+ 440.00
+ I
+
+
+
+ TP01
+
+ MP19
+ 2015-01-28
+ 2440.00
+
+
+
+
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index d9b95efea829..43a38ade6db5 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -46,12 +46,14 @@ def setUp(self):
'product.product_product_8_product_template')
self.service = self.env.ref('product.product_product_1')
- def run_wizard(self, name, file_name):
+ def run_wizard(self, name, file_name, datas_fname=None):
+ if datas_fname is None:
+ datas_fname = file_name
attach_id = self.attach_model.create(
{
'name': name,
'datas': self.getFile(file_name)[1],
- 'datas_fname': file_name
+ 'datas_fname': datas_fname
}).id
wizard = self.wizard_model.with_context(
active_ids=[attach_id]).create({})
@@ -423,3 +425,33 @@ def test_17_xml_import(self):
invoice = self.invoice_model.browse(invoice_id)
self.assertEqual(
invoice.related_documents[0].type, "invoice")
+
+ def test_19_xml_import(self):
+ # Testing CAdES signature, base64 encoded
+ res = self.run_wizard(
+ 'test19', 'IT01234567890_FPR03.base64.xml.p7m',
+ 'IT01234567890_FPR03.xml.p7m')
+ invoice_ids = res.get('domain')[0][2]
+ invoices = self.invoice_model.browse(invoice_ids)
+ self.assertEqual(len(invoices), 2)
+ for invoice in invoices:
+ self.assertEqual(invoice.partner_id.name, "SOCIETA' ALPHA SRL")
+ self.assertEqual(invoice.partner_id.e_invoice_detail_level, '0')
+ self.assertTrue(invoice.reference in ('456', '123'))
+ if invoice.reference == '123':
+ self.assertEqual(
+ invoice.inconsistencies,
+ 'Computed amount untaxed 0.0 is different from summary '
+ 'data 25.0')
+ if invoice.reference == '456':
+ self.assertEqual(
+ invoice.inconsistencies,
+ 'Computed amount untaxed 0.0 is different from summary '
+ 'data 2000.0')
+
+ def test_20_xml_import(self):
+ # Testing xml without xml declaration (sent by Amazon)
+ res = self.run_wizard('test20', 'IT05979361218_no_decl.xml')
+ invoice_id = res.get('domain')[0][2][0]
+ invoice = self.invoice_model.browse(invoice_id)
+ self.assertEqual(invoice.partner_id.name, "SOCIETA' ALPHA SRL")