From 18611f8ab54372ffb03bf87cff1fb544dd781a3c Mon Sep 17 00:00:00 2001 From: Gianluigi Tiesi Date: Thu, 7 Feb 2019 17:31:00 +0100 Subject: [PATCH] [12.0] l10n_it_fatturapa: use asn1crypto instead of openssl this also handles base64 encoded p7m --- l10n_it_fatturapa_in/README.rst | 8 +- l10n_it_fatturapa_in/__manifest__.py | 2 +- l10n_it_fatturapa_in/readme/INSTALL.rst | 8 +- .../static/description/index.html | 8 +- .../data/IT01234567890_FPR03.base64.xml.p7m | 1 + .../tests/data/IT05979361218_no_decl.xml | 153 ++++++++++++++++++ .../tests/test_import_fatturapa_xml.py | 36 ++++- 7 files changed, 201 insertions(+), 15 deletions(-) create mode 100644 l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.base64.xml.p7m create mode 100644 l10n_it_fatturapa_in/tests/data/IT05979361218_no_decl.xml 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

Installation

Italiano

-

Il server Odoo deve essere avviato da un sistema Linux con installato

-

openssl

+

Questo modulo richiede asn1crypto

+

https://github.com/wbond/asn1crypto

English

-

Odoo server must run on linux and be able to run

-

openssl

+

This module requires asn1crypto

+

https://github.com/wbond/asn1crypto

Configuration

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")