mirror of
https://github.com/bringout/oca-ocb-l10n_europe.git
synced 2026-04-18 04:12:02 +02:00
Initial commit: L10N_Europe packages
This commit is contained in:
commit
9803722600
2377 changed files with 380711 additions and 0 deletions
78
README.md
Normal file
78
README.md
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
# L10N Europe
|
||||||
|
|
||||||
|
This repository contains OCA OCB packages for l10n europe.
|
||||||
|
|
||||||
|
## Packages Included
|
||||||
|
|
||||||
|
- odoo-bringout-oca-ocb-l10n_account_edi_ubl_cii_tests
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ar_website_sale
|
||||||
|
- odoo-bringout-oca-ocb-l10n_at
|
||||||
|
- odoo-bringout-oca-ocb-l10n_be
|
||||||
|
- odoo-bringout-oca-ocb-l10n_be_pos_sale
|
||||||
|
- odoo-bringout-oca-ocb-l10n_bg
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ch
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ch_pos
|
||||||
|
- odoo-bringout-oca-ocb-l10n_cn_city
|
||||||
|
- odoo-bringout-oca-ocb-l10n_cr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_cz
|
||||||
|
- odoo-bringout-oca-ocb-l10n_de
|
||||||
|
- odoo-bringout-oca-ocb-l10n_de_skr03
|
||||||
|
- odoo-bringout-oca-ocb-l10n_de_skr04
|
||||||
|
- odoo-bringout-oca-ocb-l10n_din5008_purchase
|
||||||
|
- odoo-bringout-oca-ocb-l10n_dk
|
||||||
|
- odoo-bringout-oca-ocb-l10n_do
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ee
|
||||||
|
- odoo-bringout-oca-ocb-l10n_es
|
||||||
|
- odoo-bringout-oca-ocb-l10n_es_edi_sii
|
||||||
|
- odoo-bringout-oca-ocb-l10n_es_edi_tbai
|
||||||
|
- odoo-bringout-oca-ocb-l10n_es_edi_tbai_multi_refund
|
||||||
|
- odoo-bringout-oca-ocb-l10n_et
|
||||||
|
- odoo-bringout-oca-ocb-l10n_eu_oss
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fi
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fi_sale
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fr_facturx_chorus_pro
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fr_fec
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fr_invoice_addr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_fr_pos_cert
|
||||||
|
- odoo-bringout-oca-ocb-l10n_gr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_gt
|
||||||
|
- odoo-bringout-oca-ocb-l10n_hn
|
||||||
|
- odoo-bringout-oca-ocb-l10n_hr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_hr_euro
|
||||||
|
- odoo-bringout-oca-ocb-l10n_hu
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ie
|
||||||
|
- odoo-bringout-oca-ocb-l10n_in_purchase
|
||||||
|
- odoo-bringout-oca-ocb-l10n_in_purchase_stock
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_edi
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_edi_doi
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_edi_pa
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_edi_website_sale
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_edi_withholding
|
||||||
|
- odoo-bringout-oca-ocb-l10n_it_stock_ddt
|
||||||
|
- odoo-bringout-oca-ocb-l10n_latam_account_sequence
|
||||||
|
- odoo-bringout-oca-ocb-l10n_latam_base
|
||||||
|
- odoo-bringout-oca-ocb-l10n_latam_check
|
||||||
|
- odoo-bringout-oca-ocb-l10n_latam_invoice_document
|
||||||
|
- odoo-bringout-oca-ocb-l10n_lt
|
||||||
|
- odoo-bringout-oca-ocb-l10n_lu
|
||||||
|
- odoo-bringout-oca-ocb-l10n_lv
|
||||||
|
- odoo-bringout-oca-ocb-l10n_mn
|
||||||
|
- odoo-bringout-oca-ocb-l10n_mx_hr
|
||||||
|
- odoo-bringout-oca-ocb-l10n_mz
|
||||||
|
- odoo-bringout-oca-ocb-l10n_nl
|
||||||
|
- odoo-bringout-oca-ocb-l10n_no
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pa
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pk
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pl
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pl_jpk
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pl_sale_stock
|
||||||
|
- odoo-bringout-oca-ocb-l10n_pt
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ro
|
||||||
|
- odoo-bringout-oca-ocb-l10n_rs
|
||||||
|
- odoo-bringout-oca-ocb-l10n_se
|
||||||
|
- odoo-bringout-oca-ocb-l10n_si
|
||||||
|
- odoo-bringout-oca-ocb-l10n_sk
|
||||||
|
- odoo-bringout-oca-ocb-l10n_ua
|
||||||
|
- odoo-bringout-oca-ocb-l10n_uk
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Testing the Import/Export invoices with UBL/CII
|
||||||
|
|
||||||
|
|
||||||
|
This module tests the module 'account_edi_ubl_cii', it is separated since dependencies to some
|
||||||
|
localizations were required. Its name begins with 'l10n' to not overload runbot.
|
||||||
|
|
||||||
|
The test files are separated by sources, they were taken from:
|
||||||
|
|
||||||
|
* the factur-x doc (form the FNFE)
|
||||||
|
* the peppol-bis-invoice-3 doc (the github repository: https://github.com/OpenPEPPOL/peppol-bis-invoice-3/tree/master/rules/examples contains examples)
|
||||||
|
* odoo, these files pass all validation tests (using ecosio or the FNFE validator)
|
||||||
|
|
||||||
|
We test that the external examples are correctly imported (currency, total amount and total tax match).
|
||||||
|
We also test that generating xml from odoo with given parameters gives exactly the same xml as the expected,
|
||||||
|
valid ones.
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_account_edi_ubl_cii_tests
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
- l10n_generic_coa
|
||||||
|
- account_edi_ubl_cii
|
||||||
|
- l10n_fr
|
||||||
|
- l10n_be
|
||||||
|
- l10n_de
|
||||||
|
- l10n_nl
|
||||||
|
- l10n_au
|
||||||
|
|
||||||
|
## Manifest Information
|
||||||
|
|
||||||
|
- **Name**: Testing the Import/Export invoices with UBL/CII
|
||||||
|
- **Version**: 1.0
|
||||||
|
- **Category**: Hidden/Tests
|
||||||
|
- **License**: LGPL-3
|
||||||
|
- **Installable**: True
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_account_edi_ubl_cii_tests`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This package maintains the original LGPL-3 license from the upstream Odoo project.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- Overview: doc/OVERVIEW.md
|
||||||
|
- Architecture: doc/ARCHITECTURE.md
|
||||||
|
- Models: doc/MODELS.md
|
||||||
|
- Controllers: doc/CONTROLLERS.md
|
||||||
|
- Wizards: doc/WIZARDS.md
|
||||||
|
- Install: doc/INSTALL.md
|
||||||
|
- Usage: doc/USAGE.md
|
||||||
|
- Configuration: doc/CONFIGURATION.md
|
||||||
|
- Dependencies: doc/DEPENDENCIES.md
|
||||||
|
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||||
|
- FAQ: doc/FAQ.md
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||||
|
V --> C[Controllers]
|
||||||
|
V --> W[Wizards – Transient Models]
|
||||||
|
C --> M[Models and ORM]
|
||||||
|
W --> M
|
||||||
|
M --> R[Reports]
|
||||||
|
DX[Data XML] --> M
|
||||||
|
S[Security – ACLs and Groups] -. enforces .-> M
|
||||||
|
|
||||||
|
subgraph L10n_account_edi_ubl_cii_tests Module - l10n_account_edi_ubl_cii_tests
|
||||||
|
direction LR
|
||||||
|
M:::layer
|
||||||
|
W:::layer
|
||||||
|
C:::layer
|
||||||
|
V:::layer
|
||||||
|
R:::layer
|
||||||
|
S:::layer
|
||||||
|
DX:::layer
|
||||||
|
end
|
||||||
|
|
||||||
|
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Views include tree/form/kanban templates and report templates.
|
||||||
|
- Controllers provide website/portal routes when present.
|
||||||
|
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||||
|
- Data XML loads data/demo records; Security defines groups and access.
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
Refer to Odoo settings for l10n_account_edi_ubl_cii_tests. Configure related models, access rights, and options as needed.
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Controllers
|
||||||
|
|
||||||
|
This module does not define custom HTTP controllers.
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
|
||||||
|
- [l10n_generic_coa](../../odoo-bringout-oca-ocb-l10n_generic_coa)
|
||||||
|
- [account_edi_ubl_cii](../../odoo-bringout-oca-ocb-account_edi_ubl_cii)
|
||||||
|
- [l10n_fr](../../odoo-bringout-oca-ocb-l10n_fr)
|
||||||
|
- [l10n_be](../../odoo-bringout-oca-ocb-l10n_be)
|
||||||
|
- [l10n_de](../../odoo-bringout-oca-ocb-l10n_de)
|
||||||
|
- [l10n_nl](../../odoo-bringout-oca-ocb-l10n_nl)
|
||||||
|
- [l10n_au](../../odoo-bringout-oca-ocb-l10n_au)
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
# FAQ
|
||||||
|
|
||||||
|
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||||
|
- Q: How to enable? A: Start server with --addon l10n_account_edi_ubl_cii_tests or install in UI.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_account_edi_ubl_cii_tests"
|
||||||
|
# or
|
||||||
|
uv pip install odoo-bringout-oca-ocb-l10n_account_edi_ubl_cii_tests"
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Models
|
||||||
|
|
||||||
|
Detected core models and extensions in l10n_account_edi_ubl_cii_tests.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Classes show model technical names; fields omitted for brevity.
|
||||||
|
- Items listed under _inherit are extensions of existing models.
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Packaged Odoo addon: l10n_account_edi_ubl_cii_tests. Provides features documented in upstream Odoo 16 under this addon.
|
||||||
|
|
||||||
|
- Source: OCA/OCB 16.0, addon l10n_account_edi_ubl_cii_tests
|
||||||
|
- License: LGPL-3
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Reports
|
||||||
|
|
||||||
|
This module does not define custom reports.
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Security
|
||||||
|
|
||||||
|
This module does not define custom security rules or access controls beyond Odoo defaults.
|
||||||
|
|
||||||
|
Default Odoo security applies:
|
||||||
|
- Base user access through standard groups
|
||||||
|
- Model access inherited from dependencies
|
||||||
|
- No custom row-level security rules
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
- Ensure Python and Odoo environment matches repo guidance.
|
||||||
|
- Check database connectivity and logs if startup fails.
|
||||||
|
- Validate that dependent addons listed in DEPENDENCIES.md are installed.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Start Odoo including this addon (from repo root):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_account_edi_ubl_cii_tests
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Wizards
|
||||||
|
|
||||||
|
This module does not include UI wizards.
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
{
|
||||||
|
'name': "Testing the Import/Export invoices with UBL/CII",
|
||||||
|
'version': '1.0',
|
||||||
|
'category': 'Hidden/Tests',
|
||||||
|
'description': """
|
||||||
|
This module tests the module 'account_edi_ubl_cii', it is separated since dependencies to some
|
||||||
|
localizations were required. Its name begins with 'l10n' to not overload runbot.
|
||||||
|
|
||||||
|
The test files are separated by sources, they were taken from:
|
||||||
|
|
||||||
|
* the factur-x doc (form the FNFE)
|
||||||
|
* the peppol-bis-invoice-3 doc (the github repository: https://github.com/OpenPEPPOL/peppol-bis-invoice-3/tree/master/rules/examples contains examples)
|
||||||
|
* odoo, these files pass all validation tests (using ecosio or the FNFE validator)
|
||||||
|
|
||||||
|
We test that the external examples are correctly imported (currency, total amount and total tax match).
|
||||||
|
We also test that generating xml from odoo with given parameters gives exactly the same xml as the expected,
|
||||||
|
valid ones.
|
||||||
|
""",
|
||||||
|
'depends': [
|
||||||
|
'l10n_generic_coa',
|
||||||
|
'account_edi_ubl_cii',
|
||||||
|
'l10n_fr',
|
||||||
|
'l10n_be',
|
||||||
|
'l10n_de',
|
||||||
|
'l10n_nl',
|
||||||
|
'l10n_au',
|
||||||
|
],
|
||||||
|
'installable': True,
|
||||||
|
'application': False,
|
||||||
|
'auto_install': False,
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from . import test_xml_ubl_be
|
||||||
|
from . import test_xml_ubl_de
|
||||||
|
from . import test_xml_cii_fr
|
||||||
|
from . import test_xml_cii_us
|
||||||
|
from . import test_xml_ubl_nl
|
||||||
|
from . import test_xml_ubl_au
|
||||||
|
|
@ -0,0 +1,248 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import base64
|
||||||
|
|
||||||
|
from freezegun import freeze_time
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
from odoo.addons.account_edi.tests.common import AccountEdiTestCommon
|
||||||
|
from odoo import fields
|
||||||
|
from odoo.modules.module import get_resource_path
|
||||||
|
from odoo.tests import tagged
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
|
||||||
|
class TestUBLCommon(AccountEdiTestCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls, chart_template_ref=None, edi_format_ref=None):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
# Required for `product_uom_id` to be visible in the form views
|
||||||
|
cls.env.user.groups_id += cls.env.ref('uom.group_uom')
|
||||||
|
|
||||||
|
# Ensure the testing currency is using a valid ISO code.
|
||||||
|
real_usd = cls.env.ref('base.USD')
|
||||||
|
real_usd.name = 'FUSD'
|
||||||
|
real_usd.flush_model(['name'])
|
||||||
|
cls.currency_data['currency'].name = 'USD'
|
||||||
|
|
||||||
|
# remove this tax, otherwise, at import, this tax with children taxes can be selected and the total is wrong
|
||||||
|
cls.tax_armageddon.children_tax_ids.unlink()
|
||||||
|
cls.tax_armageddon.unlink()
|
||||||
|
|
||||||
|
# Fixed Taxes
|
||||||
|
cls.recupel = cls.env['account.tax'].create({
|
||||||
|
'name': "RECUPEL",
|
||||||
|
'amount_type': 'fixed',
|
||||||
|
'amount': 1,
|
||||||
|
'include_base_amount': True,
|
||||||
|
'sequence': 1,
|
||||||
|
})
|
||||||
|
cls.auvibel = cls.env['account.tax'].create({
|
||||||
|
'name': "AUVIBEL",
|
||||||
|
'amount_type': 'fixed',
|
||||||
|
'amount': 1,
|
||||||
|
'include_base_amount': True,
|
||||||
|
'sequence': 2,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template=None, **kwargs):
|
||||||
|
# OVERRIDE to force the company with EUR currency.
|
||||||
|
eur = cls.env.ref('base.EUR')
|
||||||
|
if not eur.active:
|
||||||
|
eur.active = True
|
||||||
|
|
||||||
|
res = super().setup_company_data(company_name, chart_template=chart_template, **kwargs)
|
||||||
|
res['company'].currency_id = eur
|
||||||
|
return res
|
||||||
|
|
||||||
|
def assert_same_invoice(self, invoice1, invoice2, **invoice_kwargs):
|
||||||
|
self.assertEqual(len(invoice1.invoice_line_ids), len(invoice2.invoice_line_ids))
|
||||||
|
self.assertRecordValues(invoice2, [{
|
||||||
|
'partner_id': invoice1.partner_id.id,
|
||||||
|
'invoice_date': fields.Date.from_string(invoice1.date),
|
||||||
|
'currency_id': invoice1.currency_id.id,
|
||||||
|
'amount_untaxed': invoice1.amount_untaxed,
|
||||||
|
'amount_tax': invoice1.amount_tax,
|
||||||
|
'amount_total': invoice1.amount_total,
|
||||||
|
**invoice_kwargs,
|
||||||
|
}])
|
||||||
|
|
||||||
|
default_invoice_line_kwargs_list = [{}] * len(invoice1.invoice_line_ids)
|
||||||
|
invoice_line_kwargs_list = invoice_kwargs.get('invoice_line_ids', default_invoice_line_kwargs_list)
|
||||||
|
self.assertRecordValues(invoice2.invoice_line_ids, [{
|
||||||
|
'quantity': line.quantity,
|
||||||
|
'price_unit': line.price_unit,
|
||||||
|
'discount': line.discount,
|
||||||
|
'product_id': line.product_id.id,
|
||||||
|
'product_uom_id': line.product_uom_id.id,
|
||||||
|
**invoice_line_kwargs,
|
||||||
|
} for line, invoice_line_kwargs in zip(invoice1.invoice_line_ids, invoice_line_kwargs_list)])
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
# IMPORT HELPERS
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@freeze_time('2017-01-01')
|
||||||
|
def _assert_imported_invoice_from_etree(self, invoice, attachment):
|
||||||
|
"""
|
||||||
|
Create an account.move directly from an attachment file, asserts the invoice obtained is the same as the expected
|
||||||
|
invoice.
|
||||||
|
"""
|
||||||
|
# /!\ use the same journal as the invoice's one to import the attachment !
|
||||||
|
new_invoice = self.edi_format\
|
||||||
|
.with_context(default_move_type=invoice.move_type)\
|
||||||
|
._create_document_from_attachment(attachment)
|
||||||
|
|
||||||
|
self.assertTrue(new_invoice)
|
||||||
|
self.assert_same_invoice(invoice, new_invoice)
|
||||||
|
|
||||||
|
def _assert_imported_invoice_from_file(self, subfolder, filename, amount_total, amount_tax, list_line_subtotals,
|
||||||
|
list_line_price_unit=None, list_line_discount=None, list_line_taxes=None,
|
||||||
|
move_type='in_invoice', currency_id=None):
|
||||||
|
"""
|
||||||
|
Create an empty account.move, update the file to fill its fields, asserts the currency, total and tax amounts
|
||||||
|
are as expected.
|
||||||
|
"""
|
||||||
|
if not currency_id:
|
||||||
|
currency_id = self.env.ref('base.EUR').id
|
||||||
|
|
||||||
|
# Create empty account.move, then update a file
|
||||||
|
if move_type == 'in_invoice':
|
||||||
|
invoice = self._create_empty_vendor_bill()
|
||||||
|
elif move_type == 'out_invoice':
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': move_type,
|
||||||
|
'journal_id': self.company_data['default_journal_sale'].id,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': move_type,
|
||||||
|
'journal_id': self.company_data['default_journal_purchase'].id,
|
||||||
|
})
|
||||||
|
invoice_count = len(self.env['account.move'].search([]))
|
||||||
|
|
||||||
|
# Import the file to fill the empty invoice
|
||||||
|
self.update_invoice_from_file('l10n_account_edi_ubl_cii_tests', subfolder, filename, invoice)
|
||||||
|
|
||||||
|
# Checks
|
||||||
|
self.assertEqual(len(self.env['account.move'].search([])), invoice_count)
|
||||||
|
self.assertRecordValues(invoice, [{
|
||||||
|
'amount_total': amount_total,
|
||||||
|
'amount_tax': amount_tax,
|
||||||
|
'currency_id': currency_id,
|
||||||
|
}])
|
||||||
|
self.assertEqual(
|
||||||
|
Counter(invoice.invoice_line_ids.mapped('price_subtotal')),
|
||||||
|
Counter(list_line_subtotals),
|
||||||
|
)
|
||||||
|
if list_line_price_unit:
|
||||||
|
self.assertEqual(invoice.invoice_line_ids.mapped('price_unit'), list_line_price_unit)
|
||||||
|
if list_line_discount:
|
||||||
|
# See test_import_tax_included: sometimes, it's impossible to retrieve the exact discount at import because
|
||||||
|
# of rounding during export. The obtained discount might be 10.001 while the expected is 10.
|
||||||
|
dp = self.env.ref('product.decimal_discount').precision_get("Discount")
|
||||||
|
self.assertEqual([round(d, dp) for d in invoice.invoice_line_ids.mapped('discount')], list_line_discount)
|
||||||
|
if list_line_taxes:
|
||||||
|
for line, taxes in zip(invoice.invoice_line_ids, list_line_taxes):
|
||||||
|
self.assertEqual(line.tax_ids, taxes)
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
# EXPORT HELPERS
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@freeze_time('2017-01-01')
|
||||||
|
def _generate_move(self, seller, buyer, **invoice_kwargs):
|
||||||
|
"""
|
||||||
|
Create and post an account.move.
|
||||||
|
"""
|
||||||
|
# Setup the seller.
|
||||||
|
self.env.company.write({
|
||||||
|
'partner_id': seller.id,
|
||||||
|
'name': seller.name,
|
||||||
|
'street': seller.street,
|
||||||
|
'zip': seller.zip,
|
||||||
|
'city': seller.city,
|
||||||
|
'vat': seller.vat,
|
||||||
|
'country_id': seller.country_id.id,
|
||||||
|
})
|
||||||
|
|
||||||
|
move_type = invoice_kwargs['move_type']
|
||||||
|
account_move = self.env['account.move'].create({
|
||||||
|
'partner_id': buyer.id,
|
||||||
|
'partner_bank_id': (seller if move_type == 'out_invoice' else buyer).bank_ids[:1].id,
|
||||||
|
'invoice_payment_term_id': self.pay_terms_b.id,
|
||||||
|
'invoice_date': '2017-01-01',
|
||||||
|
'date': '2017-01-01',
|
||||||
|
'currency_id': self.currency_data['currency'].id,
|
||||||
|
'narration': 'test narration',
|
||||||
|
'ref': 'ref_move',
|
||||||
|
**invoice_kwargs,
|
||||||
|
'invoice_line_ids': [
|
||||||
|
(0, 0, {
|
||||||
|
'sequence': i,
|
||||||
|
**invoice_line_kwargs,
|
||||||
|
})
|
||||||
|
for i, invoice_line_kwargs in enumerate(invoice_kwargs.get('invoice_line_ids', []))
|
||||||
|
],
|
||||||
|
})
|
||||||
|
# this is needed for formats not enabled by default on the journal
|
||||||
|
account_move.journal_id.edi_format_ids += self.edi_format
|
||||||
|
account_move.action_post()
|
||||||
|
return account_move
|
||||||
|
|
||||||
|
def _assert_invoice_attachment(self, invoice, xpaths, expected_file):
|
||||||
|
"""
|
||||||
|
Get attachment from a posted account.move, and asserts it's the same as the expected xml file.
|
||||||
|
"""
|
||||||
|
attachment = invoice._get_edi_attachment(self.edi_format)
|
||||||
|
self.assertTrue(attachment)
|
||||||
|
xml_filename = attachment.name
|
||||||
|
xml_content = base64.b64decode(attachment.with_context(bin_size=False).datas)
|
||||||
|
xml_etree = self.get_xml_tree_from_string(xml_content)
|
||||||
|
|
||||||
|
expected_file_path = get_resource_path('l10n_account_edi_ubl_cii_tests', 'tests/test_files', expected_file)
|
||||||
|
expected_etree = etree.parse(expected_file_path).getroot()
|
||||||
|
|
||||||
|
modified_etree = self.with_applied_xpath(
|
||||||
|
expected_etree,
|
||||||
|
xpaths
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertXmlTreeEqual(
|
||||||
|
xml_etree,
|
||||||
|
modified_etree,
|
||||||
|
)
|
||||||
|
|
||||||
|
return attachment
|
||||||
|
|
||||||
|
def _import_invoice_attachment(self, invoice, edi_code, journal):
|
||||||
|
""" Extract the attachment from the invoice and import it on the given journal.
|
||||||
|
"""
|
||||||
|
# Get the attachment from the invoice
|
||||||
|
edi_attachment = invoice.edi_document_ids.filtered(
|
||||||
|
lambda doc: doc.edi_format_id.code == edi_code).attachment_id
|
||||||
|
edi_etree = self.get_xml_tree_from_string(edi_attachment.raw)
|
||||||
|
|
||||||
|
# import the attachment and return the resulting invoice
|
||||||
|
return self.edi_format._create_invoice_from_xml_tree(
|
||||||
|
filename='test_filename',
|
||||||
|
tree=edi_etree,
|
||||||
|
journal=journal,
|
||||||
|
)
|
||||||
|
|
||||||
|
def _test_encoding_in_attachment(self, edi_code, filename):
|
||||||
|
"""
|
||||||
|
Generate an invoice, assert that the tag '<?xml version='1.0' encoding='UTF-8'?>' is present in the attachment
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
seller=self.partner_1,
|
||||||
|
buyer=self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{'product_id': self.product_a.id}],
|
||||||
|
)
|
||||||
|
edi_attachment = invoice.edi_document_ids.filtered(
|
||||||
|
lambda doc: doc.edi_format_id.code == edi_code).attachment_id
|
||||||
|
self.assertEqual(edi_attachment.name, filename)
|
||||||
|
self.assertIn(b"<?xml version='1.0' encoding='UTF-8'?>", edi_attachment.raw)
|
||||||
|
|
@ -0,0 +1,193 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>AV-2017-0005</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20171116</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Avoir suite à bidon 10L d'huile d'olive percé et carton de nougat renversé</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:GlobalID schemeID="0160">3518370400049</ram:GlobalID>
|
||||||
|
<ram:SellerAssignedID>NOUG250</ram:SellerAssignedID>
|
||||||
|
<ram:Name>Nougat de l'Abbaye 250g</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>4.55</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>-0.45</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>4.10</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-5.000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-20.48</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SellerAssignedID>HOLANCL</ram:SellerAssignedID>
|
||||||
|
<ram:Name>Huile d'olive à l'ancienne</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>19.80</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>19.80</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="LTR">-10.000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-198.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>Au bon moulin</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">99999999800010</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Tony Dubois</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+33 4 72 07 08 56</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">tony.dubois@aubonmoulin.fr</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>84340</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>1242 chemin de l'olive</ram:LineOne>
|
||||||
|
<ram:CityName>Malaucène</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR11999999998</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>Ma jolie boutique</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">78787878400035</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Alexandre Payet</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+33 4 72 07 08 67</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">alexandre.payet@majolieboutique.net</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>69001</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue de la République</ram:LineOne>
|
||||||
|
<ram:CityName>Lyon</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR19787878784</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>PO445</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:ContractReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>MSPE2017</ram:IssuerAssignedID>
|
||||||
|
</ram:ContractReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>69001</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue de la République</ram:LineOne>
|
||||||
|
<ram:CityName>Lyon</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>AV-2017-0005</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>-4.10</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>-20.48</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>-10.89</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>-198.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>Paiement immédiat</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20171116</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-218.48</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>-218.48</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="EUR">-14.99</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>-233.47</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>-0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>-233.47</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:InvoiceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>FA-2017-0010</ram:IssuerAssignedID>
|
||||||
|
<ram:FormattedIssueDateTime>
|
||||||
|
<qdt:DateTimeString format="102">20171113</qdt:DateTimeString>
|
||||||
|
</ram:FormattedIssueDateTime>
|
||||||
|
</ram:InvoiceReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,193 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>AV-2017-0005</ram:ID>
|
||||||
|
<ram:TypeCode>381</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20171116</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Avoir suite à bidon 10L d'huile d'olive percé et carton de nougat renversé</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:GlobalID schemeID="0160">3518370400049</ram:GlobalID>
|
||||||
|
<ram:SellerAssignedID>NOUG250</ram:SellerAssignedID>
|
||||||
|
<ram:Name>Nougat de l'Abbaye 250g</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>4.55</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>0.45</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>4.10</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">5.000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>20.48</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SellerAssignedID>HOLANCL</ram:SellerAssignedID>
|
||||||
|
<ram:Name>Huile d'olive à l'ancienne</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>19.80</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>19.80</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="LTR">10.000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>198.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>Au bon moulin</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">99999999800010</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Tony Dubois</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+33 4 72 07 08 56</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">tony.dubois@aubonmoulin.fr</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>84340</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>1242 chemin de l'olive</ram:LineOne>
|
||||||
|
<ram:CityName>Malaucène</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR11999999998</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>Ma jolie boutique</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">78787878400035</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Alexandre Payet</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+33 4 72 07 08 67</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">alexandre.payet@majolieboutique.net</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>69001</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue de la République</ram:LineOne>
|
||||||
|
<ram:CityName>Lyon</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR19787878784</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>PO445</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:ContractReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>MSPE2017</ram:IssuerAssignedID>
|
||||||
|
</ram:ContractReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>69001</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue de la République</ram:LineOne>
|
||||||
|
<ram:CityName>Lyon</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>AV-2017-0005</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>4.10</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>20.48</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>10.89</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>198.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>5.50</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>Paiement immédiat</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20171116</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>218.48</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>218.48</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="EUR">14.99</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>233.47</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>233.47</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:InvoiceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>FA-2017-0010</ram:IssuerAssignedID>
|
||||||
|
<ram:FormattedIssueDateTime>
|
||||||
|
<qdt:DateTimeString format="102">20171113</qdt:DateTimeString>
|
||||||
|
</ram:FormattedIssueDateTime>
|
||||||
|
</ram:InvoiceReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,441 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
|
||||||
|
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||||
|
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>A1</ram:ID>
|
||||||
|
</ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>F20220024</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220131</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>FOURNISSEUR F SARL au capital de 50 000 EUR</ram:Content>
|
||||||
|
<ram:SubjectCode>REG</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>RCS MAVILLE 123 456 782</ram:Content>
|
||||||
|
<ram:SubjectCode>ABL</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>35 ma rue a moi, code postal Ville Pays – contact@masociete.fr - www.masociete.fr – N° TVA : FR32 123 456 789</ram:Content>
|
||||||
|
<ram:SubjectCode>AAI</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Tout retard de paiement engendre une pénalité exigible à compter de la date d'échéance, calculée sur la base de trois fois le taux d'intérêt légal. </ram:Content>
|
||||||
|
<ram:SubjectCode>PMD</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Indemnité forfaitaire pour frais de recouvrement en cas de retard de paiement : 40 €.</ram:Content>
|
||||||
|
<ram:SubjectCode>PMT</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Les réglements reçus avant la date d'échéance ne donneront pas lieu à escompte.</ram:Content>
|
||||||
|
<ram:SubjectCode>AAB</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:GlobalID schemeID="0088">598785412598745</ram:GlobalID>
|
||||||
|
<ram:Name>PRESTATION SUPPORT</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>60.0000</ram:ChargeAmount>
|
||||||
|
<ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>E</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>100</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:Reason>FRAIS PALETTE</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>60.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>FOURNITURES DIVERSES</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>30.0000</ram:ChargeAmount>
|
||||||
|
<ram:BasisQuantity unitCode="C62">3.0000</ram:BasisQuantity>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">3.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>2.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>71</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE VOLUME</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>100</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>ADL</ram:ReasonCode>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>28.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>APPEL</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>7.0000</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>7.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>SERVEXEC</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:ID>123</ram:ID>
|
||||||
|
<ram:GlobalID schemeID="0088">587451236587</ram:GlobalID>
|
||||||
|
<ram:Name>LE FOURNISSEUR</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">123456782</ram:ID>
|
||||||
|
<ram:TradingBusinessName>SELLER TRADE NAME</ram:TradingBusinessName>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>M. CONTACT</ram:PersonName>
|
||||||
|
<ram:DepartmentName>DEP SELLER</ram:DepartmentName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>01 02 03 54 87</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID>seller@seller.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75018</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue d'ici</ram:LineOne>
|
||||||
|
<ram:LineTwo>Seller line 2</ram:LineTwo>
|
||||||
|
<ram:LineThree>Seller line 3</ram:LineThree>
|
||||||
|
<ram:CityName>PARIS</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:URIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="EM">moi@seller.com</ram:URIID>
|
||||||
|
</ram:URIUniversalCommunication>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR11123456782</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
|
||||||
|
<ram:Name>LE CLIENT</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">987654321</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Buyer contact name</ram:PersonName>
|
||||||
|
<ram:DepartmentName>Buyer dep</ram:DepartmentName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>01 01 25 45 87</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID>buyer@buyer.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>06000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>58 rue de la mer</ram:LineOne>
|
||||||
|
<ram:LineTwo>Buyer line 2</ram:LineTwo>
|
||||||
|
<ram:LineThree>Buyer line 3</ram:LineThree>
|
||||||
|
<ram:CityName>NICE</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:URIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="EM">me@buyer.com</ram:URIID>
|
||||||
|
</ram:URIUniversalCommunication>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:SellerTaxRepresentativeTradeParty>
|
||||||
|
<ram:Name>SELLER TAX REP</ram:Name>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75018</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue d'ici</ram:LineOne>
|
||||||
|
<ram:LineTwo>Seller line 2</ram:LineTwo>
|
||||||
|
<ram:LineThree>Seller line 3</ram:LineThree>
|
||||||
|
<ram:CityName>PARIS</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTaxRepresentativeTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>PO201925478</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:ContractReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>CT2018120802</ram:IssuerAssignedID>
|
||||||
|
</ram:ContractReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220128</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:DespatchAdviceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>DESPADV002</ram:IssuerAssignedID>
|
||||||
|
</ram:DespatchAdviceReferencedDocument>
|
||||||
|
<ram:ReceivingAdviceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>RECEIV-ADV002</ram:IssuerAssignedID>
|
||||||
|
</ram:ReceivingAdviceReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:CreditorReferenceID>CREDID</ram:CreditorReferenceID>
|
||||||
|
<ram:PaymentReference>F20180023BUYER</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:PayeeTradeParty>
|
||||||
|
<ram:ID>123</ram:ID>
|
||||||
|
<ram:Name>PAYEE NAME</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">123456782</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
</ram:PayeeTradeParty>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>30</ram:TypeCode>
|
||||||
|
<ram:PayerPartyDebtorFinancialAccount>
|
||||||
|
<ram:IBANID>FRDEBIT</ram:IBANID>
|
||||||
|
</ram:PayerPartyDebtorFinancialAccount>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:IBANID>FR76 1254 2547 2569 8542 5874 698</ram:IBANID>
|
||||||
|
<ram:ProprietaryID>LOC BANK ACCOUNT</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>8.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>40.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>72</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:ExemptionReason>VAT EXEMP</ram:ExemptionReason>
|
||||||
|
<ram:BasisAmount>60.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>E</ram:CategoryCode>
|
||||||
|
<ram:ExemptionReasonCode>VATEX-EU-D</ram:ExemptionReasonCode>
|
||||||
|
<ram:DueDateTypeCode>72</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:CalculationPercent>5.00</ram:CalculationPercent>
|
||||||
|
<ram:BasisAmount>100.00</ram:BasisAmount>
|
||||||
|
<ram:ActualAmount>5.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>95</ram:ReasonCode>
|
||||||
|
<ram:Reason>REMISE COMMERCIALE</ram:Reason>
|
||||||
|
<ram:CategoryTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:CategoryTradeTax>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:CalculationPercent>10.00</ram:CalculationPercent>
|
||||||
|
<ram:BasisAmount>100.00</ram:BasisAmount>
|
||||||
|
<ram:ActualAmount>10.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>FC</ram:ReasonCode>
|
||||||
|
<ram:Reason>FRAIS DEPLACEMENT</ram:Reason>
|
||||||
|
<ram:CategoryTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
|
||||||
|
</ram:CategoryTradeTax>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220302</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
<ram:DirectDebitMandateID>MANDATE PT</ram:DirectDebitMandateID>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>95.00</ram:LineTotalAmount>
|
||||||
|
<ram:ChargeTotalAmount>10.00</ram:ChargeTotalAmount>
|
||||||
|
<ram:AllowanceTotalAmount>5.00</ram:AllowanceTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="EUR">8.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>108.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>108.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:ReceivableSpecifiedTradeAccountingAccount>
|
||||||
|
<ram:ID>BUYER ACCOUNT REF</ram:ID>
|
||||||
|
</ram:ReceivableSpecifiedTradeAccountingAccount>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,325 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
|
||||||
|
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||||
|
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>A1</ram:ID>
|
||||||
|
</ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>F20220029</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220131</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>FOURNISSEUR F SARL au capital de 50 000 EUR</ram:Content>
|
||||||
|
<ram:SubjectCode>REG</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>RCS MAVILLE 123 456 782</ram:Content>
|
||||||
|
<ram:SubjectCode>ABL</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>35 ma rue a moi, code postal Ville Pays – contact@masociete.fr - www.masociete.fr – N° TVA : FR32 123 456 789</ram:Content>
|
||||||
|
<ram:SubjectCode>AAI</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Tout retard de paiement engendre une pénalité exigible à compter de la date d'échéance, calculée sur la base de trois fois le taux d'intérêt légal. </ram:Content>
|
||||||
|
<ram:SubjectCode>PMD</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Indemnité forfaitaire pour frais de recouvrement en cas de retard de paiement : 40 €.</ram:Content>
|
||||||
|
<ram:SubjectCode>PMT</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>Les réglements reçus avant la date d'échéance ne donneront pas lieu à escompte.</ram:Content>
|
||||||
|
<ram:SubjectCode>AAB</ram:SubjectCode>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:GlobalID schemeID="0088">598785412598745</ram:GlobalID>
|
||||||
|
<ram:Name>PRESTATION SUPPORT</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>60.0000</ram:ChargeAmount>
|
||||||
|
<ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-1.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:StartDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220101</udt:DateTimeString>
|
||||||
|
</ram:StartDateTime>
|
||||||
|
<ram:EndDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220131</udt:DateTimeString>
|
||||||
|
</ram:EndDateTime>
|
||||||
|
</ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-60.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>FOURNITURES DIVERSES</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>10.0000</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-3.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:StartDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220101</udt:DateTimeString>
|
||||||
|
</ram:StartDateTime>
|
||||||
|
</ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-30.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>APPEL</ram:Name>
|
||||||
|
<ram:Description>Description</ram:Description>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>5.0000</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-1.0000</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:EndDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220131</udt:DateTimeString>
|
||||||
|
</ram:EndDateTime>
|
||||||
|
</ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-5.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>SERVEXEC</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:GlobalID schemeID="0088">587451236587</ram:GlobalID>
|
||||||
|
<ram:Name>LE FOURNISSEUR</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">123456782</ram:ID>
|
||||||
|
<ram:TradingBusinessName>SELLER TRADE NAME</ram:TradingBusinessName>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75018</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>35 rue d'ici</ram:LineOne>
|
||||||
|
<ram:LineTwo>Seller line 2</ram:LineTwo>
|
||||||
|
<ram:CityName>PARIS</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:URIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="EM">moi@seller.com</ram:URIID>
|
||||||
|
</ram:URIUniversalCommunication>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR11123456782</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
|
||||||
|
<ram:Name>LE CLIENT</ram:Name>
|
||||||
|
<ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:ID schemeID="0002">987654321</ram:ID>
|
||||||
|
</ram:SpecifiedLegalOrganization>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>06000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>58 rue de la mer</ram:LineOne>
|
||||||
|
<ram:LineTwo>Buyer line 2</ram:LineTwo>
|
||||||
|
<ram:CityName>NICE</ram:CityName>
|
||||||
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:URIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="EM">me@buyer.com</ram:URIID>
|
||||||
|
</ram:URIUniversalCommunication>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:SellerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>SALES REF 2547</ram:IssuerAssignedID>
|
||||||
|
</ram:SellerOrderReferencedDocument>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>PO201925478</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:ContractReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>CT2018120802</ram:IssuerAssignedID>
|
||||||
|
</ram:ContractReferencedDocument>
|
||||||
|
<ram:AdditionalReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>SUPPort doc</ram:IssuerAssignedID>
|
||||||
|
<ram:URIID>url:gffter</ram:URIID>
|
||||||
|
<ram:TypeCode>916</ram:TypeCode>
|
||||||
|
<ram:Name>support descript</ram:Name>
|
||||||
|
</ram:AdditionalReferencedDocument>
|
||||||
|
<ram:AdditionalReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>TENDER-002</ram:IssuerAssignedID>
|
||||||
|
<ram:TypeCode>50</ram:TypeCode>
|
||||||
|
</ram:AdditionalReferencedDocument>
|
||||||
|
<ram:AdditionalReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>REFCLI0215</ram:IssuerAssignedID>
|
||||||
|
<ram:TypeCode>130</ram:TypeCode>
|
||||||
|
</ram:AdditionalReferencedDocument>
|
||||||
|
<ram:SpecifiedProcuringProject>
|
||||||
|
<ram:ID>PROJET2547</ram:ID>
|
||||||
|
<ram:Name>Project reference</ram:Name>
|
||||||
|
</ram:SpecifiedProcuringProject>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
|
||||||
|
<ram:Name>DEL Name</ram:Name>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>06000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>DEL 58 rue de la mer</ram:LineOne>
|
||||||
|
<ram:LineTwo>DEL line 2</ram:LineTwo>
|
||||||
|
<ram:CityName>BERLIN</ram:CityName>
|
||||||
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220128</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:DespatchAdviceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>DESPADV002</ram:IssuerAssignedID>
|
||||||
|
</ram:DespatchAdviceReferencedDocument>
|
||||||
|
<ram:ReceivingAdviceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>RECEIV-ADV002</ram:IssuerAssignedID>
|
||||||
|
</ram:ReceivingAdviceReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>F20180023BUYER</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>30</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:IBANID>FR76 1254 2547 2569 8542 5874 698</ram:IBANID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>-100.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:ExemptionReasonCode>VATEX-EU-IC</ram:ExemptionReasonCode>
|
||||||
|
<ram:DueDateTypeCode>72</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:StartDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220101</udt:DateTimeString>
|
||||||
|
</ram:StartDateTime>
|
||||||
|
<ram:EndDateTime>
|
||||||
|
<udt:DateTimeString format="102">20221231</udt:DateTimeString>
|
||||||
|
</ram:EndDateTime>
|
||||||
|
</ram:BillingSpecifiedPeriod>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>-5.00</ram:ActualAmount>
|
||||||
|
<ram:Reason>REMISE COMMERCIALE</ram:Reason>
|
||||||
|
<ram:CategoryTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:CategoryTradeTax>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>-10.00</ram:ActualAmount>
|
||||||
|
<ram:Reason>FRAIS DEPLACEMENT</ram:Reason>
|
||||||
|
<ram:CategoryTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>K</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
|
||||||
|
</ram:CategoryTradeTax>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20220302</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-95.00</ram:LineTotalAmount>
|
||||||
|
<ram:ChargeTotalAmount>-10.00</ram:ChargeTotalAmount>
|
||||||
|
<ram:AllowanceTotalAmount>-5.00</ram:AllowanceTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>-100.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="EUR">0.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>-100.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>-10.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>-90.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:InvoiceReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>F20220003</ram:IssuerAssignedID>
|
||||||
|
<ram:FormattedIssueDateTime>
|
||||||
|
<qdt:DateTimeString format="102">20220101</qdt:DateTimeString>
|
||||||
|
</ram:FormattedIssueDateTime>
|
||||||
|
</ram:InvoiceReferencedDocument>
|
||||||
|
<ram:ReceivableSpecifiedTradeAccountingAccount>
|
||||||
|
<ram:ID>BUYER ACCOUNT REF</ram:ID>
|
||||||
|
</ram:ReceivableSpecifiedTradeAccountingAccount>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/00001</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0151">83914571673</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Spring St.</cbc:StreetName>
|
||||||
|
<cbc:CityName>Melbourne</cbc:CityName>
|
||||||
|
<cbc:PostalZone>3002</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>AU</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>83914571673</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0151">83914571673</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+31 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@outlook.au</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0151">53930548027</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Parliament Dr</cbc:StreetName>
|
||||||
|
<cbc:CityName>Canberra</cbc:CityName>
|
||||||
|
<cbc:PostalZone>2600</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>AU</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>53930548027</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0151">53930548027</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>INV/2017/00001</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>000099998B57</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">268.20</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">2682.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">268.20</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">2950.20</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">2950.20</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>557</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>558</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>559</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,167 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<CreditNote xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>RINV/2017/00001</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0151">83914571673</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Spring St.</cbc:StreetName>
|
||||||
|
<cbc:CityName>Melbourne</cbc:CityName>
|
||||||
|
<cbc:PostalZone>3002</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>AU</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>83914571673</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0151">83914571673</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+31 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@outlook.au</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0151">53930548027</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Parliament Dr</cbc:StreetName>
|
||||||
|
<cbc:CityName>Canberra</cbc:CityName>
|
||||||
|
<cbc:PostalZone>2600</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>AU</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>53930548027</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0151">53930548027</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="standing agreement">57</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>RINV/2017/00001</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>93999574162167</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">268.20</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">2682.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">268.20</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">2950.20</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">2950.20</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>576</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DZN">2.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>577</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">10.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>578</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">-1.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>10.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>GST</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
</CreditNote>
|
||||||
|
|
@ -0,0 +1,132 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">100.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">100.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">121.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">121.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>RECUPEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">99.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">100.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">100.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">121.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">121.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>RECUPEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>AUVIBEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">98.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,132 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">100.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">21.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">100.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">121.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">121.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>RECUPEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">99.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,137 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">37.84</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">180.20</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">37.84</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">180.20</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">180.20</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">218.04</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">218.04</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">180.20</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">19.80</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>RECUPEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">2.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">99.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,191 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">108.02</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">400.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">84.03</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">200.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">23.99</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">600.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">600.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">708.02</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">708.02</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">200.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">200.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>2</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">200.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">200.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>3</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>4</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,177 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>+++000/0000/26268+++</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">482.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">374.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">108.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3164.22</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3164.22</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>901</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>902</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>903</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,145 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Invoice xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">15.75</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">75.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">15.75</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">75.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">75.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">90.75</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">90.75</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-25.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">25.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>+++000/0000/26268+++</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">482.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">374.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">108.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3164.22</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3164.22</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>901</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>902</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>903</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>+++000/0000/05959+++</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">42.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">200.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">42.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">200.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">200.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">242.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">242.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>234</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">200.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">959.07</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">4567.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">959.07</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">4567.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">4567.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">5526.07</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">5526.07</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10000.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">4567.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">0.4567</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">990.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cbc:TaxExemptionReason>Articles 226 items 11 to 15 Directive 2006/112/EN</cbc:TaxExemptionReason>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">990.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">990.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">990.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">990.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">990.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,176 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<CreditNote xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>RINV/2017/01/0001</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="standing agreement">57</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>RINV/2017/01/0001</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE90735788866632</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">482.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">374.22</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">108.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3164.22</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3164.22</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>966</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DZN">2.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>967</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">10.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>968</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">-1.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>12.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
</CreditNote>
|
||||||
|
|
@ -0,0 +1,209 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/00002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-01-31</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30 Days, 2% Early Payment Discount under 7 days</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>66</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Conditional cash/payment discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">4.00</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>6.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>66</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Conditional cash/payment discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">48.00</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>ZZZ</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Conditional cash/payment discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">52.00</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">505.68</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">196.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">11.76</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>6.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">2352.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">493.92</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">52.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cbc:TaxExemptionReason>Exempt from tax</cbc:TaxExemptionReason>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2600.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2600.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3105.68</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:AllowanceTotalAmount currencyID="USD">52.00</cbc:AllowanceTotalAmount>
|
||||||
|
<cbc:ChargeTotalAmount currencyID="USD">52.00</cbc:ChargeTotalAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3105.68</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">200.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>6.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">200.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2400.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">2400.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,172 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/00002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-01-31</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0477472701</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Rue des Bourlottes 9</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0477472701</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>___ignore___</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30 Days, 2% Early Payment Discount under 7 days</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>66</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Conditional cash/payment discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.98</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>ZZZ</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Conditional cash/payment discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.98</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">20.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">98.02</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">20.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1.98</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cbc:TaxExemptionReason>Exempt from tax</cbc:TaxExemptionReason>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">100.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">120.58</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:AllowanceTotalAmount currencyID="USD">1.98</cbc:AllowanceTotalAmount>
|
||||||
|
<cbc:ChargeTotalAmount currencyID="USD">1.98</cbc:ChargeTotalAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">120.58</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>___ignore___</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>AEO</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>RECUPEL</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">1.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>21.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">99.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,152 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
|
||||||
|
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>___ignore___</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>99.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>99.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>AEO</ram:ReasonCode>
|
||||||
|
<ram:Reason>RECUPEL</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>___ignore___</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>___ignore___</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>21.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>100.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">21.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>121.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>121.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,160 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||||
|
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>___ignore___</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>98.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>98.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>AEO</ram:ReasonCode>
|
||||||
|
<ram:Reason>RECUPEL</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>AEO</ram:ReasonCode>
|
||||||
|
<ram:Reason>AUVIBEL</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>___ignore___</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>___ignore___</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>21.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>100.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">21.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>121.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>121.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,152 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||||
|
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>___ignore___</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>99.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>99.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>true</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>1.00</ram:ActualAmount>
|
||||||
|
<ram:ReasonCode>AEO</ram:ReasonCode>
|
||||||
|
<ram:Reason>RECUPEL</ram:Reason>
|
||||||
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>___ignore___</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>___ignore___</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>21.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>100.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">21.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>121.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>121.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,214 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>INV/2017/01/0002</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>990.00</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>99.00</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>891.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="DZN">2.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>1782.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_b</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">10.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>1000.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_b</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>INV/2017/01/0002: INV/2017/01/0002</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>INV/2017/01/0002</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>374.22</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>1782.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>108.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>900.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>2682.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>2682.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">482.22</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>3164.22</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>3164.22</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,241 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>INV/2017/01/0001</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>95.24</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>95.24</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>95.24</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>190.48</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>19.05</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>171.43</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>171.43</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>4</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>200.00</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>20.00</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>180.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>180.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>INV/2017/01/0001</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>INV/2017/00001</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>27.33</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>546.67</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>546.67</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>546.67</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">27.33</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>574.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>574.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,213 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>RINV/2017/01/0001</ram:ID>
|
||||||
|
<ram:TypeCode>381</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>990.00</ram:ChargeAmount>
|
||||||
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
|
<ram:ChargeIndicator>
|
||||||
|
<udt:Indicator>false</udt:Indicator>
|
||||||
|
</ram:ChargeIndicator>
|
||||||
|
<ram:ActualAmount>99.00</ram:ActualAmount>
|
||||||
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>891.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="DZN">2.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>1782.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>2</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_b</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">10.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>1000.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>3</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_b</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>100.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">-1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>-100.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:BuyerReference>ref_partner_2</ram:BuyerReference>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR35562153452</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>RINV/2017/01/0001</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>partner_2</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_2</ram:PersonName>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>52330</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Charles de Gaulle</ram:LineOne>
|
||||||
|
<ram:CityName>Colombey-les-Deux-Églises</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR90735788866632</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>374.22</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>1782.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:ApplicableTradeTax>
|
||||||
|
<ram:CalculatedAmount>108.00</ram:CalculatedAmount>
|
||||||
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
|
<ram:BasisAmount>900.00</ram:BasisAmount>
|
||||||
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
|
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
|
||||||
|
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
|
||||||
|
</ram:ApplicableTradeTax>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
<ram:DueDateDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
|
||||||
|
</ram:DueDateDateTime>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>2682.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>2682.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">482.22</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>3164.22</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>3164.22</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,127 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<rsm:CrossIndustryInvoice xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||||
|
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||||
|
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||||
|
<rsm:ExchangedDocumentContext>
|
||||||
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
|
</rsm:ExchangedDocumentContext>
|
||||||
|
<rsm:ExchangedDocument>
|
||||||
|
<ram:ID>INV/2017/01/0001</ram:ID>
|
||||||
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
|
<ram:IssueDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:IssueDateTime>
|
||||||
|
<ram:IncludedNote>
|
||||||
|
<ram:Content>test narration</ram:Content>
|
||||||
|
</ram:IncludedNote>
|
||||||
|
</rsm:ExchangedDocument>
|
||||||
|
<rsm:SupplyChainTradeTransaction>
|
||||||
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:LineID>1</ram:LineID>
|
||||||
|
</ram:AssociatedDocumentLineDocument>
|
||||||
|
<ram:SpecifiedTradeProduct>
|
||||||
|
<ram:Name>product_a</ram:Name>
|
||||||
|
</ram:SpecifiedTradeProduct>
|
||||||
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>0.00</ram:ChargeAmount>
|
||||||
|
</ram:GrossPriceProductTradePrice>
|
||||||
|
<ram:NetPriceProductTradePrice>
|
||||||
|
<ram:ChargeAmount>0.00</ram:ChargeAmount>
|
||||||
|
</ram:NetPriceProductTradePrice>
|
||||||
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:BilledQuantity unitCode="C62">1.0</ram:BilledQuantity>
|
||||||
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>0.00</ram:LineTotalAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:SellerTradeParty>
|
||||||
|
<ram:Name>partner_1</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>partner_1</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>+1 (650) 555-0111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">partner1@yourcompany.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:PostalTradeAddress>
|
||||||
|
<ram:PostcodeCode>75000</ram:PostcodeCode>
|
||||||
|
<ram:LineOne>Rue Jean Jaurès, 42</ram:LineOne>
|
||||||
|
<ram:CityName>Paris</ram:CityName>
|
||||||
|
<ram:CountryID>FR</ram:CountryID>
|
||||||
|
</ram:PostalTradeAddress>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR05677404089</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:SellerTradeParty>
|
||||||
|
<ram:BuyerTradeParty>
|
||||||
|
<ram:Name>Buyer</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Buyer</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>1111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">buyer@yahoo.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
<ram:SpecifiedTaxRegistration>
|
||||||
|
<ram:ID schemeID="VA">FR89215010646</ram:ID>
|
||||||
|
</ram:SpecifiedTaxRegistration>
|
||||||
|
</ram:BuyerTradeParty>
|
||||||
|
<ram:BuyerOrderReferencedDocument>
|
||||||
|
<ram:IssuerAssignedID>INV/2017/01/0001</ram:IssuerAssignedID>
|
||||||
|
</ram:BuyerOrderReferencedDocument>
|
||||||
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ShipToTradeParty>
|
||||||
|
<ram:Name>Buyer</ram:Name>
|
||||||
|
<ram:DefinedTradeContact>
|
||||||
|
<ram:PersonName>Buyer</ram:PersonName>
|
||||||
|
<ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:CompleteNumber>1111</ram:CompleteNumber>
|
||||||
|
</ram:TelephoneUniversalCommunication>
|
||||||
|
<ram:EmailURIUniversalCommunication>
|
||||||
|
<ram:URIID schemeID="SMTP">buyer@yahoo.com</ram:URIID>
|
||||||
|
</ram:EmailURIUniversalCommunication>
|
||||||
|
</ram:DefinedTradeContact>
|
||||||
|
</ram:ShipToTradeParty>
|
||||||
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
|
<ram:OccurrenceDateTime>
|
||||||
|
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
|
||||||
|
</ram:OccurrenceDateTime>
|
||||||
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
|
<ram:PaymentReference>INV/2017/01/0001</ram:PaymentReference>
|
||||||
|
<ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
|
||||||
|
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:TypeCode>42</ram:TypeCode>
|
||||||
|
<ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
<ram:ProprietaryID>FR15001559627230</ram:ProprietaryID>
|
||||||
|
</ram:PayeePartyCreditorFinancialAccount>
|
||||||
|
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||||
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:Description>30% Advance End of Following Month</ram:Description>
|
||||||
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
<ram:LineTotalAmount>0.00</ram:LineTotalAmount>
|
||||||
|
<ram:TaxBasisTotalAmount>0.00</ram:TaxBasisTotalAmount>
|
||||||
|
<ram:TaxTotalAmount currencyID="USD">0.00</ram:TaxTotalAmount>
|
||||||
|
<ram:GrandTotalAmount>0.00</ram:GrandTotalAmount>
|
||||||
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
|
<ram:DuePayableAmount>0.00</ram:DuePayableAmount>
|
||||||
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|
@ -0,0 +1,185 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/00002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0106">77777677</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>77777677</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Kunststraat, 3</cbc:StreetName>
|
||||||
|
<cbc:CityName>Amsterdam</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1000</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>NL</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>NL000099998B57</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0106">77777677</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+31 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@outlook.nl</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0106">1234567</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>1234567</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Europaweg, 2</cbc:StreetName>
|
||||||
|
<cbc:CityName>Rotterdam</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1200</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>NL</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>NL000041452B11</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0106">1234567</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>INV/2017/00002</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>NL000099998B57</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">401.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">338.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">63.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3083.58</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3083.58</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1359</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1360</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1361</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<CreditNote xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>RINV/2017/00001</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:BillingReference>
|
||||||
|
<cac:InvoiceDocumentReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:InvoiceDocumentReference>
|
||||||
|
</cac:BillingReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0106">77777677</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>77777677</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Kunststraat, 3</cbc:StreetName>
|
||||||
|
<cbc:CityName>Amsterdam</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1000</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>NL</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>NL000099998B57</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0106">77777677</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+31 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@outlook.nl</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0106">1234567</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>1234567</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Europaweg, 2</cbc:StreetName>
|
||||||
|
<cbc:CityName>Rotterdam</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1200</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>NL</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>NL000041452B11</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0106">1234567</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode>57</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>RINV/2017/00001</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>NL93999574162167</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">401.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">338.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">63.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3083.58</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3083.58</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1405</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DZN">2.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1406</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">10.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1407</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">-1.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
</CreditNote>
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||||
|
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
|
||||||
|
</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>Buyer</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>test invoice origin</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9925">BE0202239951</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Chaussée de Namur 40</cbc:StreetName>
|
||||||
|
<cbc:CityName>Ramillies</cbc:CityName>
|
||||||
|
<cbc:PostalZone>1367</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE0202239951</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID>BE980737405</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>Buyer</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>BE980737405</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>Buyer</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>BE980737405</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>Buyer</cbc:Name>
|
||||||
|
<cbc:Telephone>1111</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>buyer@yahoo.com</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>+++000/0000/08282+++</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>BE15001559627230</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">-0.00</cbc:TaxAmount>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">0.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">0.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">0.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">0.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>259</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">0.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">0.00</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,179 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9930">DE257486969</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Legoland-Allee 3</cbc:StreetName>
|
||||||
|
<cbc:CityName>Günzburg</cbc:CityName>
|
||||||
|
<cbc:PostalZone>89312</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+49 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@legoland.de</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9930">DE186775212</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Europa-Park-Straße 2</cbc:StreetName>
|
||||||
|
<cbc:CityName>Rust</cbc:CityName>
|
||||||
|
<cbc:PostalZone>77977</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>DE186775212</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>DE186775212</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>INV/2017/01/0002</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>DE48500105176424548921</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">401.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">338.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">63.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3083.58</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3083.58</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1708</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DZN">2.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1709</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1710</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">-1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>INV/2017/01/0002</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-02-28</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9930">DE257486969</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Legoland-Allee 3</cbc:StreetName>
|
||||||
|
<cbc:CityName>Günzburg</cbc:CityName>
|
||||||
|
<cbc:PostalZone>89312</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+49 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@legoland.de</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="EM">partner_2@test.test</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Europa-Park-Straße 2</cbc:StreetName>
|
||||||
|
<cbc:CityName>Rust</cbc:CityName>
|
||||||
|
<cbc:PostalZone>77977</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
<cbc:ElectronicMail>partner_2@test.test</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>INV/2017/01/0002</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>DE48500105176424548921</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">19.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">100.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">19.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">100.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">119.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">119.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1708</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">1.0</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,178 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<CreditNote xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>RINV/2017/01/0001</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-01-01</cbc:IssueDate>
|
||||||
|
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||||
|
<cbc:Note>test narration</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>ref_partner_2</cbc:BuyerReference>
|
||||||
|
<cac:OrderReference>
|
||||||
|
<cbc:ID>ref_move</cbc:ID>
|
||||||
|
</cac:OrderReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9930">DE257486969</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Legoland-Allee 3</cbc:StreetName>
|
||||||
|
<cbc:CityName>Günzburg</cbc:CityName>
|
||||||
|
<cbc:PostalZone>89312</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_1</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>DE257486969</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_1</cbc:Name>
|
||||||
|
<cbc:Telephone>+49 180 6 225789</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>info@legoland.de</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="9930">DE186775212</cbc:EndpointID>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Europa-Park-Straße 2</cbc:StreetName>
|
||||||
|
<cbc:CityName>Rust</cbc:CityName>
|
||||||
|
<cbc:PostalZone>77977</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>DE186775212</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>partner_2</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>DE186775212</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>partner_2</cbc:Name>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="standing agreement">57</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>RINV/2017/01/0001</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>DE50500105175653254743</cbc:ID>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment terms: 30% Advance End of Following Month</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="USD">401.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">1782.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">338.58</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="USD">900.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="USD">63.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">2682.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="USD">2682.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="USD">3083.58</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="USD">0.00</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="USD">3083.58</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1754</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DZN">2.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1782.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:Amount currencyID="USD">198.00</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_a</cbc:Description>
|
||||||
|
<cbc:Name>product_a</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>19.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">990.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1755</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">10.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1756</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="C62">-1.0</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="USD">-100.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>product_b</cbc:Description>
|
||||||
|
<cbc:Name>product_b</cbc:Name>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>7.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="USD">100.0</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
</CreditNote>
|
||||||
|
|
@ -0,0 +1,370 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>Snippet1</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-11-13</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-12-01</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:Note>Please note we have a new phone number: 22 22 22 22</cbc:Note>
|
||||||
|
<cbc:TaxPointDate>2017-12-01</cbc:TaxPointDate>
|
||||||
|
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:TaxCurrencyCode>SEK</cbc:TaxCurrencyCode>
|
||||||
|
<cbc:AccountingCost>4025:123:4343</cbc:AccountingCost>
|
||||||
|
<cbc:BuyerReference>0150abc</cbc:BuyerReference>
|
||||||
|
<cac:InvoicePeriod>
|
||||||
|
<cbc:StartDate>2017-12-01</cbc:StartDate>
|
||||||
|
<cbc:EndDate>2017-12-31</cbc:EndDate>
|
||||||
|
</cac:InvoicePeriod>
|
||||||
|
<cac:ContractDocumentReference>
|
||||||
|
<cbc:ID>framework no 1</cbc:ID>
|
||||||
|
</cac:ContractDocumentReference>
|
||||||
|
<cac:AdditionalDocumentReference>
|
||||||
|
<cbc:ID schemeID="ABT">DR35141</cbc:ID>
|
||||||
|
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||||
|
</cac:AdditionalDocumentReference>
|
||||||
|
<cac:AdditionalDocumentReference>
|
||||||
|
<cbc:ID>ts12345</cbc:ID>
|
||||||
|
<cbc:DocumentDescription>Technical specification</cbc:DocumentDescription>
|
||||||
|
<cac:Attachment>
|
||||||
|
<cac:ExternalReference>
|
||||||
|
<cbc:URI>www.techspec.no</cbc:URI>
|
||||||
|
</cac:ExternalReference>
|
||||||
|
</cac:Attachment>
|
||||||
|
</cac:AdditionalDocumentReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>99887766</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>SupplierTradingName Ltd.</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Main street 1</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Postbox 123</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>London</cbc:CityName>
|
||||||
|
<cbc:PostalZone>GB 123 EW</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>GB1232434</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>SupplierOfficialName Ltd</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>GB983294</cbc:CompanyID>
|
||||||
|
<cbc:CompanyLegalForm>AdditionalLegalInformation</cbc:CompanyLegalForm>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0002">4598375937</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID schemeID="0002">4598375937</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>BuyerTradingName AS</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Hovedgatan 32</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Po box 878</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>456 34</cbc:PostalZone>
|
||||||
|
<cbc:CountrySubentity>Södermalm</cbc:CountrySubentity>
|
||||||
|
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>SE4598375937</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>Buyer Official Name</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0183">39937423947</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>Lisa Johnson</cbc:Name>
|
||||||
|
<cbc:Telephone>23434234</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>lj@buyer.se</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:Delivery>
|
||||||
|
<cbc:ActualDeliveryDate>2017-11-01</cbc:ActualDeliveryDate>
|
||||||
|
<cac:DeliveryLocation>
|
||||||
|
<cbc:ID schemeID="0088">7300010000001</cbc:ID>
|
||||||
|
<cac:Address>
|
||||||
|
<cbc:StreetName>Delivery street 2</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Building 56</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>21234</cbc:PostalZone>
|
||||||
|
<cbc:CountrySubentity>Södermalm</cbc:CountrySubentity>
|
||||||
|
<cac:AddressLine>
|
||||||
|
<cbc:Line>Gate 15</cbc:Line>
|
||||||
|
</cac:AddressLine>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:Address>
|
||||||
|
</cac:DeliveryLocation>
|
||||||
|
<cac:DeliveryParty>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>Delivery party Name</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
</cac:DeliveryParty>
|
||||||
|
</cac:Delivery>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="Credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>Snippet1</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>IBAN32423940</cbc:ID>
|
||||||
|
<cbc:Name>AccountName</cbc:Name>
|
||||||
|
<cac:FinancialInstitutionBranch>
|
||||||
|
<cbc:ID>BIC324098</cbc:ID>
|
||||||
|
</cac:FinancialInstitutionBranch>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment within 10 days, 2% discount</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Cleaning</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:MultiplierFactorNumeric>20</cbc:MultiplierFactorNumeric>
|
||||||
|
<cbc:Amount currencyID="EUR">200</cbc:Amount>
|
||||||
|
<cbc:BaseAmount currencyID="EUR">1000</cbc:BaseAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="EUR">200</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">1225.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="EUR">4900.0</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">1225</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="EUR">1000.0</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0</cbc:Percent>
|
||||||
|
<cbc:TaxExemptionReason>Reason for tax exempt</cbc:TaxExemptionReason>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID ="SEK">9324.00</cbc:TaxAmount>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">5900</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="EUR">5900</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="EUR">7125</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:AllowanceTotalAmount currencyID="EUR">200</cbc:AllowanceTotalAmount>
|
||||||
|
<cbc:ChargeTotalAmount currencyID="EUR">200</cbc:ChargeTotalAmount>
|
||||||
|
<cbc:PrepaidAmount currencyID="EUR">1000</cbc:PrepaidAmount>
|
||||||
|
<cbc:PayableAmount currencyID="EUR">6125.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:Note>Testing note on line level</cbc:Note>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">4000.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:AccountingCost>Konteringsstreng</cbc:AccountingCost>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Cleaning</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:MultiplierFactorNumeric>1</cbc:MultiplierFactorNumeric>
|
||||||
|
<cbc:Amount currencyID="EUR">1</cbc:Amount>
|
||||||
|
<cbc:BaseAmount currencyID="EUR">100</cbc:BaseAmount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="EUR">101</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description of item A</cbc:Description>
|
||||||
|
<cbc:Name>item name</cbc:Name>
|
||||||
|
|
||||||
|
<cac:SellersItemIdentification>
|
||||||
|
<cbc:ID>97iugug876</cbc:ID>
|
||||||
|
</cac:SellersItemIdentification>
|
||||||
|
<cac:OriginCountry>
|
||||||
|
<cbc:IdentificationCode>NO</cbc:IdentificationCode>
|
||||||
|
</cac:OriginCountry>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">09348023</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
|
||||||
|
</cac:Item>
|
||||||
|
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">410</cbc:PriceAmount>
|
||||||
|
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:Amount currencyID="EUR">40</cbc:Amount>
|
||||||
|
<cbc:BaseAmount currencyID="EUR">450</cbc:BaseAmount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
</cac:Price>
|
||||||
|
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>2</cbc:ID>
|
||||||
|
<cbc:Note>Testing note on line level</cbc:Note>
|
||||||
|
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
|
||||||
|
|
||||||
|
<cbc:AccountingCost>Konteringsstreng</cbc:AccountingCost>
|
||||||
|
<cac:InvoicePeriod>
|
||||||
|
<cbc:StartDate>2017-12-01</cbc:StartDate>
|
||||||
|
<cbc:EndDate>2017-12-05</cbc:EndDate>
|
||||||
|
</cac:InvoicePeriod>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>124</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description of item B</cbc:Description>
|
||||||
|
<cbc:Name>item name</cbc:Name>
|
||||||
|
<cac:SellersItemIdentification>
|
||||||
|
<cbc:ID>97iugug876</cbc:ID>
|
||||||
|
</cac:SellersItemIdentification>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">86776</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
<cac:AdditionalItemProperty>
|
||||||
|
<cbc:Name>AdditionalItemName</cbc:Name>
|
||||||
|
<cbc:Value>AdditionalItemValue</cbc:Value>
|
||||||
|
</cac:AdditionalItemProperty>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">200</cbc:PriceAmount>
|
||||||
|
<cbc:BaseQuantity unitCode="C62">2</cbc:BaseQuantity>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>3</cbc:ID>
|
||||||
|
<cbc:Note>Testing note on line level</cbc:Note>
|
||||||
|
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">900.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:AccountingCost>Konteringsstreng</cbc:AccountingCost>
|
||||||
|
<cac:InvoicePeriod>
|
||||||
|
<cbc:StartDate>2017-12-01</cbc:StartDate>
|
||||||
|
<cbc:EndDate>2017-12-05</cbc:EndDate>
|
||||||
|
</cac:InvoicePeriod>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>124</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Charge</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:MultiplierFactorNumeric>1</cbc:MultiplierFactorNumeric>
|
||||||
|
<cbc:Amount currencyID="EUR">1</cbc:Amount>
|
||||||
|
<cbc:BaseAmount currencyID="EUR">100</cbc:BaseAmount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
|
||||||
|
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="EUR">101</cbc:Amount>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description of item C</cbc:Description>
|
||||||
|
<cbc:Name>item name</cbc:Name>
|
||||||
|
<cac:SellersItemIdentification>
|
||||||
|
<cbc:ID>97iugug876</cbc:ID>
|
||||||
|
</cac:SellersItemIdentification>
|
||||||
|
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">86776</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
<cac:AdditionalItemProperty>
|
||||||
|
<cbc:Name>AdditionalItemName</cbc:Name>
|
||||||
|
<cbc:Value>AdditionalItemValue</cbc:Value>
|
||||||
|
</cac:AdditionalItemProperty>
|
||||||
|
</cac:Item>
|
||||||
|
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">100</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CreditNote xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>Snippet1</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-11-13</cbc:IssueDate>
|
||||||
|
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||||
|
<cbc:Note>Please note we have a new phone number: 22 22 22 22</cbc:Note>
|
||||||
|
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:AccountingCost>4025:123:4343</cbc:AccountingCost>
|
||||||
|
<cbc:BuyerReference>0150abc</cbc:BuyerReference>
|
||||||
|
<cac:BillingReference>
|
||||||
|
<cac:InvoiceDocumentReference>
|
||||||
|
<cbc:ID>Snippet1</cbc:ID>
|
||||||
|
</cac:InvoiceDocumentReference>
|
||||||
|
</cac:BillingReference>
|
||||||
|
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0088">9482348239847239874</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>99887766</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>SupplierTradingName Ltd.</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Main street 1</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Postbox 123</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>London</cbc:CityName>
|
||||||
|
<cbc:PostalZone>GB 123 EW</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>GB1232434</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>SupplierOfficialName Ltd</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>GB983294</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0002">FR23342</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID schemeID="0002">FR23342</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>BuyerTradingName AS</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Hovedgatan 32</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Po box 878</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>456 34</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>SE4598375937</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>Buyer Official Name</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0183">39937423947</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>Lisa Johnson</cbc:Name>
|
||||||
|
<cbc:Telephone>23434234</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>lj@buyer.se</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
|
||||||
|
<cac:Delivery>
|
||||||
|
<cbc:ActualDeliveryDate>2017-11-01</cbc:ActualDeliveryDate>
|
||||||
|
<cac:DeliveryLocation>
|
||||||
|
<cbc:ID schemeID="0088">9483759475923478</cbc:ID>
|
||||||
|
<cac:Address>
|
||||||
|
<cbc:StreetName>Delivery street 2</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Building 56</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>21234</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:Address>
|
||||||
|
</cac:DeliveryLocation>
|
||||||
|
<cac:DeliveryParty>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>Delivery party Name</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
</cac:DeliveryParty>
|
||||||
|
</cac:Delivery>
|
||||||
|
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="standing agreement">57</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>Snippet1</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>IBAN32423940</cbc:ID>
|
||||||
|
<cbc:Name>AccountName</cbc:Name>
|
||||||
|
<cac:FinancialInstitutionBranch>
|
||||||
|
<cbc:ID>BIC324098</cbc:ID>
|
||||||
|
</cac:FinancialInstitutionBranch>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment within 10 days, 2% discount</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReason>Insurance</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="EUR">25</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">331.25</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="EUR">1325</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">331.25</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">1300</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="EUR">1325</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="EUR">1656.25</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:ChargeTotalAmount currencyID="EUR">25</cbc:ChargeTotalAmount>
|
||||||
|
<cbc:PayableAmount currencyID="EUR">1656.25</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DAY">7</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID= "EUR">2800</cbc:LineExtensionAmount>
|
||||||
|
<cbc:AccountingCost>Konteringsstreng</cbc:AccountingCost>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>123</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description of item</cbc:Description>
|
||||||
|
<cbc:Name>item name</cbc:Name>
|
||||||
|
<cac:StandardItemIdentification>
|
||||||
|
<cbc:ID schemeID="0088">21382183120983</cbc:ID>
|
||||||
|
</cac:StandardItemIdentification>
|
||||||
|
<cac:OriginCountry>
|
||||||
|
<cbc:IdentificationCode>NO</cbc:IdentificationCode>
|
||||||
|
</cac:OriginCountry>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">09348023</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">400</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
|
||||||
|
<cac:CreditNoteLine>
|
||||||
|
<cbc:ID>2</cbc:ID>
|
||||||
|
<cbc:CreditedQuantity unitCode="DAY">-3</cbc:CreditedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">-1500</cbc:LineExtensionAmount>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>123</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description 2</cbc:Description>
|
||||||
|
<cbc:Name>item name 2</cbc:Name>
|
||||||
|
<cac:StandardItemIdentification>
|
||||||
|
<cbc:ID schemeID="0088">21382183120983</cbc:ID>
|
||||||
|
</cac:StandardItemIdentification>
|
||||||
|
<cac:OriginCountry>
|
||||||
|
<cbc:IdentificationCode>NO</cbc:IdentificationCode>
|
||||||
|
</cac:OriginCountry>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">09348023</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">500</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:CreditNoteLine>
|
||||||
|
</CreditNote>
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>Correction1</cbc:ID>
|
||||||
|
<cbc:IssueDate>2017-11-13</cbc:IssueDate>
|
||||||
|
<cbc:DueDate>2017-12-01</cbc:DueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:AccountingCost>4025:123:4343</cbc:AccountingCost>
|
||||||
|
<cbc:BuyerReference>0150abc</cbc:BuyerReference>
|
||||||
|
<cac:BillingReference>
|
||||||
|
<cac:InvoiceDocumentReference>
|
||||||
|
<cbc:ID>Snippet1</cbc:ID>
|
||||||
|
</cac:InvoiceDocumentReference>
|
||||||
|
</cac:BillingReference>
|
||||||
|
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0088">9482348239847239874</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>99887766</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>SupplierTradingName Ltd.</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Main street 1</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Postbox 123</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>London</cbc:CityName>
|
||||||
|
<cbc:PostalZone>GB 123 EW</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>GB1232434</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>SupplierOfficialName Ltd</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID>GB983294</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0002">FR23342</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID schemeID="0002">FR23342</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>BuyerTradingName AS</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Hovedgatan 32</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Po box 878</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>456 34</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>SE4598375937</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>Buyer Official Name</cbc:RegistrationName>
|
||||||
|
<cbc:CompanyID schemeID="0183">39937423947</cbc:CompanyID>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
<cac:Contact>
|
||||||
|
<cbc:Name>Lisa Johnson</cbc:Name>
|
||||||
|
<cbc:Telephone>23434234</cbc:Telephone>
|
||||||
|
<cbc:ElectronicMail>lj@buyer.se</cbc:ElectronicMail>
|
||||||
|
</cac:Contact>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
|
||||||
|
<cac:Delivery>
|
||||||
|
<cbc:ActualDeliveryDate>2017-11-01</cbc:ActualDeliveryDate>
|
||||||
|
<cac:DeliveryLocation>
|
||||||
|
<cbc:ID schemeID="0088">9483759475923478</cbc:ID>
|
||||||
|
<cac:Address>
|
||||||
|
<cbc:StreetName>Delivery street 2</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Building 56</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Stockholm</cbc:CityName>
|
||||||
|
<cbc:PostalZone>21234</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:Address>
|
||||||
|
</cac:DeliveryLocation>
|
||||||
|
<cac:DeliveryParty>
|
||||||
|
<cac:PartyName>
|
||||||
|
<cbc:Name>Delivery party Name</cbc:Name>
|
||||||
|
</cac:PartyName>
|
||||||
|
</cac:DeliveryParty>
|
||||||
|
</cac:Delivery>
|
||||||
|
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode name="Credit transfer">30</cbc:PaymentMeansCode>
|
||||||
|
<cbc:PaymentID>Snippet1</cbc:PaymentID>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>IBAN32423940</cbc:ID>
|
||||||
|
<cbc:Name>AccountName</cbc:Name>
|
||||||
|
<cac:FinancialInstitutionBranch>
|
||||||
|
<cbc:ID>BIC324098</cbc:ID>
|
||||||
|
</cac:FinancialInstitutionBranch>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment within 10 days, 2% discount</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
|
||||||
|
<cac:AllowanceCharge>
|
||||||
|
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||||
|
<cbc:AllowanceChargeReason>Insurance</cbc:AllowanceChargeReason>
|
||||||
|
<cbc:Amount currencyID="EUR">-25</cbc:Amount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:AllowanceCharge>
|
||||||
|
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">-331.25</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="EUR">-1325</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="EUR">-331.25</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">-1300</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="EUR">-1325</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="EUR">-1656.25</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:ChargeTotalAmount currencyID="EUR">-25</cbc:ChargeTotalAmount>
|
||||||
|
<cbc:PayableAmount currencyID="EUR">-1656.25</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DAY">-7</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID= "EUR">-2800</cbc:LineExtensionAmount>
|
||||||
|
<cbc:AccountingCost>Konteringsstreng</cbc:AccountingCost>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>123</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description of item</cbc:Description>
|
||||||
|
<cbc:Name>item name</cbc:Name>
|
||||||
|
<cac:StandardItemIdentification>
|
||||||
|
<cbc:ID schemeID="0088">21382183120983</cbc:ID>
|
||||||
|
</cac:StandardItemIdentification>
|
||||||
|
<cac:OriginCountry>
|
||||||
|
<cbc:IdentificationCode>NO</cbc:IdentificationCode>
|
||||||
|
</cac:OriginCountry>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">09348023</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">400</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>2</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="DAY">3</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="EUR">1500</cbc:LineExtensionAmount>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>123</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Description>Description 2</cbc:Description>
|
||||||
|
<cbc:Name>item name 2</cbc:Name>
|
||||||
|
<cac:StandardItemIdentification>
|
||||||
|
<cbc:ID schemeID="0088">21382183120983</cbc:ID>
|
||||||
|
</cac:StandardItemIdentification>
|
||||||
|
<cac:OriginCountry>
|
||||||
|
<cbc:IdentificationCode>NO</cbc:IdentificationCode>
|
||||||
|
</cac:OriginCountry>
|
||||||
|
<cac:CommodityClassification>
|
||||||
|
<cbc:ItemClassificationCode listID="SRV">09348023</cbc:ItemClassificationCode>
|
||||||
|
</cac:CommodityClassification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>S</cbc:ID>
|
||||||
|
<cbc:Percent>25.0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="EUR">500</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- PEPPOL BIS Billing, testfile showing the use of VAT category Z (Zero rated goods) -->
|
||||||
|
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||||
|
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||||
|
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||||
|
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
|
||||||
|
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||||
|
<cbc:ID>Vat-Z</cbc:ID>
|
||||||
|
<cbc:IssueDate>2018-08-30</cbc:IssueDate>
|
||||||
|
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||||
|
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
|
||||||
|
<cbc:BuyerReference>test reference</cbc:BuyerReference>
|
||||||
|
<cac:AccountingSupplierParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
|
||||||
|
<cac:PartyIdentification>
|
||||||
|
<cbc:ID>7300010000001</cbc:ID>
|
||||||
|
</cac:PartyIdentification>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Main street 2, Building 4</cbc:StreetName>
|
||||||
|
<cbc:CityName>Big city</cbc:CityName>
|
||||||
|
<cbc:PostalZone>54321</cbc:PostalZone>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyTaxScheme>
|
||||||
|
<cbc:CompanyID>GB928741974</cbc:CompanyID>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:PartyTaxScheme>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>The Sellercompany Incorporated</cbc:RegistrationName>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingSupplierParty>
|
||||||
|
<cac:AccountingCustomerParty>
|
||||||
|
<cac:Party>
|
||||||
|
<cbc:EndpointID schemeID="0184">DK12345678</cbc:EndpointID>
|
||||||
|
<cac:PostalAddress>
|
||||||
|
<cbc:StreetName>Anystreet 8</cbc:StreetName>
|
||||||
|
<cbc:AdditionalStreetName>Back door</cbc:AdditionalStreetName>
|
||||||
|
<cbc:CityName>Anytown</cbc:CityName>
|
||||||
|
<cbc:PostalZone>101</cbc:PostalZone>
|
||||||
|
<cbc:CountrySubentity>RegionB</cbc:CountrySubentity>
|
||||||
|
<cac:Country>
|
||||||
|
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||||
|
</cac:Country>
|
||||||
|
</cac:PostalAddress>
|
||||||
|
<cac:PartyLegalEntity>
|
||||||
|
<cbc:RegistrationName>The Buyercompany</cbc:RegistrationName>
|
||||||
|
</cac:PartyLegalEntity>
|
||||||
|
</cac:Party>
|
||||||
|
</cac:AccountingCustomerParty>
|
||||||
|
<cac:PaymentMeans>
|
||||||
|
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
|
||||||
|
<cac:PayeeFinancialAccount>
|
||||||
|
<cbc:ID>SE1212341234123412</cbc:ID>
|
||||||
|
<cac:FinancialInstitutionBranch>
|
||||||
|
<cbc:ID>SEXDABCD</cbc:ID>
|
||||||
|
</cac:FinancialInstitutionBranch>
|
||||||
|
</cac:PayeeFinancialAccount>
|
||||||
|
</cac:PaymentMeans>
|
||||||
|
<cac:PaymentTerms>
|
||||||
|
<cbc:Note>Payment within 30 days</cbc:Note>
|
||||||
|
</cac:PaymentTerms>
|
||||||
|
<cac:TaxTotal>
|
||||||
|
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxSubtotal>
|
||||||
|
<cbc:TaxableAmount currencyID="GBP">1200.00</cbc:TaxableAmount>
|
||||||
|
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
|
||||||
|
<cac:TaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0</cbc:Percent>
|
||||||
|
<cbc:TaxExemptionReasonCode>VATEX-EU-F</cbc:TaxExemptionReasonCode>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:TaxCategory>
|
||||||
|
</cac:TaxSubtotal>
|
||||||
|
</cac:TaxTotal>
|
||||||
|
<cac:LegalMonetaryTotal>
|
||||||
|
<cbc:LineExtensionAmount currencyID="GBP">1200.00</cbc:LineExtensionAmount>
|
||||||
|
<cbc:TaxExclusiveAmount currencyID="GBP">1200.00</cbc:TaxExclusiveAmount>
|
||||||
|
<cbc:TaxInclusiveAmount currencyID="GBP">1200.00</cbc:TaxInclusiveAmount>
|
||||||
|
<cbc:PayableAmount currencyID="GBP">1200.00</cbc:PayableAmount>
|
||||||
|
</cac:LegalMonetaryTotal>
|
||||||
|
<cac:InvoiceLine>
|
||||||
|
<cbc:ID>1</cbc:ID>
|
||||||
|
<cbc:InvoicedQuantity unitCode="EA">10</cbc:InvoicedQuantity>
|
||||||
|
<cbc:LineExtensionAmount currencyID="GBP">1200.00</cbc:LineExtensionAmount>
|
||||||
|
<cac:OrderLineReference>
|
||||||
|
<cbc:LineID>1</cbc:LineID>
|
||||||
|
</cac:OrderLineReference>
|
||||||
|
<cac:Item>
|
||||||
|
<cbc:Name>Test item, category Z</cbc:Name>
|
||||||
|
<cac:StandardItemIdentification>
|
||||||
|
<cbc:ID schemeID="0160">192387129837129873</cbc:ID>
|
||||||
|
</cac:StandardItemIdentification>
|
||||||
|
<cac:ClassifiedTaxCategory>
|
||||||
|
<cbc:ID>E</cbc:ID>
|
||||||
|
<cbc:Percent>0</cbc:Percent>
|
||||||
|
<cac:TaxScheme>
|
||||||
|
<cbc:ID>VAT</cbc:ID>
|
||||||
|
</cac:TaxScheme>
|
||||||
|
</cac:ClassifiedTaxCategory>
|
||||||
|
</cac:Item>
|
||||||
|
<cac:Price>
|
||||||
|
<cbc:PriceAmount currencyID="GBP">120.00</cbc:PriceAmount>
|
||||||
|
</cac:Price>
|
||||||
|
</cac:InvoiceLine>
|
||||||
|
|
||||||
|
</Invoice>
|
||||||
|
|
@ -0,0 +1,496 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestCIIFR(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref="l10n_fr.l10n_fr_pcg_chart_template",
|
||||||
|
edi_format_ref="account_edi_ubl_cii.edi_facturx_1_0_05",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'street': "Rue Jean Jaurès, 42",
|
||||||
|
'zip': "75000",
|
||||||
|
'city': "Paris",
|
||||||
|
'vat': 'FR05677404089',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'FR15001559627230'})],
|
||||||
|
'phone': '+1 (650) 555-0111',
|
||||||
|
'email': "partner1@yourcompany.com",
|
||||||
|
'ref': 'ref_partner_1',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'street': "Rue Charles de Gaulle",
|
||||||
|
'zip': "52330",
|
||||||
|
'city': "Colombey-les-Deux-Églises",
|
||||||
|
'vat': 'FR35562153452',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'FR90735788866632'})],
|
||||||
|
'ref': 'ref_partner_2',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_21 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_21',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 21,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
'sequence': 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_12 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_12',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 12,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_21_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_21',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 21,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_12_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_12',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 12,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'country_id': cls.env.ref('base.fr').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_5_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_5',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 5,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_0_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_0',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 0,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_5 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_5',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 5,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_5_incl = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_5_incl',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 5,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'price_include': True,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
# to force the company to be french
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.fr").id,
|
||||||
|
phone='+1 (650) 555-0111', # [BR-DE-6] "Seller contact telephone number" (BT-42) is required
|
||||||
|
email="info@yourcompany.com", # [BR-DE-7] The element "Seller contact email address" (BT-43) is required
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test export - import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_export_pdf(self):
|
||||||
|
acc_bank = self.env['res.partner.bank'].create({
|
||||||
|
'acc_number': 'FR15001559627231',
|
||||||
|
'partner_id': self.company_data['company'].partner_id.id,
|
||||||
|
})
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': 'out_invoice',
|
||||||
|
'journal_id': self.journal.id,
|
||||||
|
'partner_id': self.partner_1.id,
|
||||||
|
'partner_bank_id': acc_bank.id,
|
||||||
|
'invoice_date': '2017-01-01',
|
||||||
|
'date': '2017-01-01',
|
||||||
|
'currency_id': self.currency_data['currency'].id,
|
||||||
|
'invoice_line_ids': [(0, 0, {
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 275.0,
|
||||||
|
'quantity': 5,
|
||||||
|
'discount': 20.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
})],
|
||||||
|
})
|
||||||
|
invoice.action_post()
|
||||||
|
pdf_attachment = invoice._get_edi_attachment(self.edi_format)
|
||||||
|
self.assertEqual(pdf_attachment['name'], 'factur-x.xml')
|
||||||
|
|
||||||
|
def test_export_import_invoice(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ExchangedDocument']/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='IssuerAssignedID']" position="replace">
|
||||||
|
<IssuerAssignedID>___ignore___</IssuerAssignedID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentReference']" position="replace">
|
||||||
|
<PaymentReference>___ignore___</PaymentReference>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/facturx_out_invoice.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name, "factur-x.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_refund(self):
|
||||||
|
refund = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_refund',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
refund,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ExchangedDocument']/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='IssuerAssignedID']" position="replace">
|
||||||
|
<IssuerAssignedID>___ignore___</IssuerAssignedID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/facturx_out_refund.xml'
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name, "factur-x.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(refund, attachment)
|
||||||
|
|
||||||
|
def test_export_tax_included(self):
|
||||||
|
"""
|
||||||
|
Tests whether the tax included price_units are correctly converted to tax excluded
|
||||||
|
amounts in the exported xml
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 100,
|
||||||
|
'tax_ids': [(6, 0, self.tax_5_incl.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 100,
|
||||||
|
'tax_ids': [(6, 0, self.tax_5.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 200,
|
||||||
|
'discount': 10,
|
||||||
|
'tax_ids': [(6, 0, self.tax_5_incl.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 200,
|
||||||
|
'discount': 10,
|
||||||
|
'tax_ids': [(6, 0, self.tax_5.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ExchangedDocument']/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='IssuerAssignedID']" position="replace">
|
||||||
|
<IssuerAssignedID>___ignore___</IssuerAssignedID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/facturx_out_invoice_tax_incl.xml'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_encoding_in_attachment_facturx(self):
|
||||||
|
self._test_encoding_in_attachment('facturx_1_0_05', 'factur-x.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case1(self):
|
||||||
|
# CASE 1: simple invoice with a recupel tax
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 99,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/facturx_ecotaxes_case1.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case2(self):
|
||||||
|
# CASE 2: Same but with several ecotaxes
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 98,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.auvibel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/facturx_ecotaxes_case2.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case3(self):
|
||||||
|
# CASE 3: same as Case 1 but taxes are Price Included
|
||||||
|
self.recupel.price_include = True
|
||||||
|
self.tax_21.price_include = True
|
||||||
|
|
||||||
|
# Price TTC = 121 = (99 + 1 ) * 1.21
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 121,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/facturx_ecotaxes_case3.xml')
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_import_partner_facturx(self):
|
||||||
|
"""
|
||||||
|
Given an invoice where partner_1 is the vendor and partner_2 is the customer with an EDI attachment.
|
||||||
|
* Uploading the attachment as an invoice should create an invoice with the buyer = partner_2.
|
||||||
|
* Uploading the attachment as a vendor bill should create a bill with the vendor = partner_1.
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
seller=self.partner_1,
|
||||||
|
buyer=self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{'product_id': self.product_a.id}],
|
||||||
|
)
|
||||||
|
new_invoice = self._import_invoice_attachment(invoice, 'facturx_1_0_05', self.company_data['default_journal_sale'])
|
||||||
|
self.assertEqual(self.partner_2, new_invoice.partner_id)
|
||||||
|
|
||||||
|
new_invoice = self._import_invoice_attachment(invoice, 'facturx_1_0_05', self.company_data['default_journal_purchase'])
|
||||||
|
self.assertEqual(self.partner_1, new_invoice.partner_id)
|
||||||
|
|
||||||
|
def test_import_journal_facturx(self):
|
||||||
|
"""
|
||||||
|
If the context contains the info about the current default journal, we should use it
|
||||||
|
instead of infering the journal from the move type.
|
||||||
|
"""
|
||||||
|
journal2 = self.company_data['default_journal_sale'].copy()
|
||||||
|
journal2.default_account_id = self.company_data['default_account_revenue'].id
|
||||||
|
invoice = self._generate_move(
|
||||||
|
seller=self.partner_1,
|
||||||
|
buyer=self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{'product_id': self.product_a.id}],
|
||||||
|
)
|
||||||
|
edi_attachment = invoice._get_edi_attachment(self.env.ref('account_edi_ubl_cii.edi_facturx_1_0_05')).id
|
||||||
|
|
||||||
|
new_invoice = self.env['account.journal'].with_context(default_move_type='out_invoice')._create_document_from_attachment(edi_attachment)
|
||||||
|
self.assertEqual(new_invoice.journal_id, self.company_data['default_journal_sale'])
|
||||||
|
|
||||||
|
new_invoice = self.env['account.journal'].with_context(default_journal_id=journal2.id)._create_document_from_attachment(edi_attachment)
|
||||||
|
self.assertEqual(new_invoice.journal_id, journal2)
|
||||||
|
|
||||||
|
def test_import_and_create_partner_facturx(self):
|
||||||
|
""" Tests whether the partner is created at import if no match is found when decoding the EDI attachment
|
||||||
|
"""
|
||||||
|
partner_vals = {
|
||||||
|
'name': "Buyer",
|
||||||
|
'mail': "buyer@yahoo.com",
|
||||||
|
'phone': "1111",
|
||||||
|
'vat': "FR89215010646",
|
||||||
|
}
|
||||||
|
# assert there is no matching partner
|
||||||
|
partner_match = self.env['account.edi.format']._retrieve_partner(**partner_vals)
|
||||||
|
self.assertFalse(partner_match)
|
||||||
|
|
||||||
|
# Import attachment as an invoice
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': 'out_invoice',
|
||||||
|
'journal_id': self.company_data['default_journal_sale'].id,
|
||||||
|
})
|
||||||
|
self.update_invoice_from_file(
|
||||||
|
module_name='l10n_account_edi_ubl_cii_tests',
|
||||||
|
subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='facturx_test_import_partner.xml',
|
||||||
|
invoice=invoice)
|
||||||
|
|
||||||
|
# assert a new partner has been created
|
||||||
|
partner_vals['email'] = partner_vals.pop('mail')
|
||||||
|
self.assertRecordValues(invoice.partner_id, [partner_vals])
|
||||||
|
|
||||||
|
def test_import_tax_included(self):
|
||||||
|
"""
|
||||||
|
Tests whether the tax included / tax excluded are correctly decoded when
|
||||||
|
importing a document. The imported xml represents the following invoice:
|
||||||
|
|
||||||
|
Description Quantity Unit Price Disc (%) Taxes Amount
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Product A 1 100 0 5% (incl) 95.24
|
||||||
|
Product A 1 100 0 5% (not incl) 100
|
||||||
|
Product A 2 200 10 5% (incl) 171.43
|
||||||
|
Product A 2 200 10 5% (not incl) 180
|
||||||
|
-----------------------
|
||||||
|
Untaxed Amount: 546.67
|
||||||
|
Taxes: 27.334
|
||||||
|
-----------------------
|
||||||
|
Total: 574.004
|
||||||
|
"""
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='facturx_out_invoice_tax_incl.xml',
|
||||||
|
amount_total=574.004,
|
||||||
|
amount_tax=27.334,
|
||||||
|
list_line_subtotals=[95.24, 100, 171.43, 180],
|
||||||
|
# /!\ The price_unit are different for taxes with price_include, because all amounts in Factur-X should be
|
||||||
|
# tax excluded. At import, the tax included amounts are thus converted into tax excluded ones.
|
||||||
|
# Yet, the line subtotals and total will be the same (if an equivalent tax exist with price_include = False)
|
||||||
|
list_line_price_unit=[95.24, 100, 190.48, 200],
|
||||||
|
# rounding error since for line 3: we round several times...
|
||||||
|
# when exporting the invoice, we compute the price tax excluded = 200/1.05 ~= 190.48
|
||||||
|
# then, when computing the discount amount: 190.48 * 0.1 ~= 19.05 => price net amount = 171.43
|
||||||
|
# Thus, at import: price_unit = 190.48, and discount = 100 * (1 - 171.43 / 190.48) = 10.001049979
|
||||||
|
list_line_discount=[0, 0, 10, 10],
|
||||||
|
# Again, all taxes in the imported invoice are price_include = False
|
||||||
|
list_line_taxes=[self.tax_5_purchase]*4,
|
||||||
|
move_type='in_invoice',
|
||||||
|
currency_id=self.env['res.currency'].search([('name', '=', 'USD')], limit=1).id,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_import_fnfe_examples(self):
|
||||||
|
# Source: official documentation of the FNFE (subdirectory: "5. FACTUR-X 1.0.06 - Examples")
|
||||||
|
subfolder = 'tests/test_files/from_factur-x_doc'
|
||||||
|
# the 2 following files have the same pdf but one is labelled as an invoice and the other as a refund
|
||||||
|
# source: Avoir_FR_type380_EN16931.pdf
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='facturx_credit_note_type380.xml',
|
||||||
|
amount_total=233.47, amount_tax=14.99, list_line_subtotals=[20.48, 198], move_type='in_refund')
|
||||||
|
# source: Avoir_FR_type381_EN16931.pdf
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='facturx_credit_note_type381.xml',
|
||||||
|
amount_total=233.47, amount_tax=14.99, list_line_subtotals=[20.48, 198], move_type='in_refund')
|
||||||
|
# source: Facture_F20220024_EN_16931_basis_quantity, basis quantity != 1 for one of the lines
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='facturx_invoice_basis_quantity.xml',
|
||||||
|
amount_total=108, amount_tax=8, list_line_subtotals=[-5, 10, 60, 28, 7])
|
||||||
|
# source: Facture_F20220029_EN_16931_K.pdf, credit note labelled as an invoice with negative amounts
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='facturx_invoice_negative_amounts.xml',
|
||||||
|
amount_total=100, amount_tax=0, list_line_subtotals=[-5, 10, 60, 30, 5], move_type='in_refund')
|
||||||
|
|
||||||
|
def test_import_fixed_taxes(self):
|
||||||
|
""" Tests whether we correctly decode the xml attachments created using fixed taxes.
|
||||||
|
See the tests above to create these xml attachments ('test_export_with_fixed_taxes_case_[X]').
|
||||||
|
NB: use move_type = 'out_invoice' s.t. we can retrieve the taxes used to create the invoices.
|
||||||
|
"""
|
||||||
|
subfolder = "tests/test_files/from_odoo"
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='facturx_ecotaxes_case1.xml', amount_total=121, amount_tax=22,
|
||||||
|
list_line_subtotals=[99], currency_id=self.currency_data['currency'].id, list_line_price_unit=[99],
|
||||||
|
list_line_discount=[0], list_line_taxes=[self.tax_21+self.recupel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='facturx_ecotaxes_case2.xml', amount_total=121, amount_tax=23,
|
||||||
|
list_line_subtotals=[98], currency_id=self.currency_data['currency'].id, list_line_price_unit=[98],
|
||||||
|
list_line_discount=[0], list_line_taxes=[self.tax_21+self.recupel+self.auvibel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='facturx_ecotaxes_case3.xml', amount_total=121, amount_tax=22,
|
||||||
|
list_line_subtotals=[99], currency_id=self.currency_data['currency'].id, list_line_price_unit=[99],
|
||||||
|
list_line_discount=[0], list_line_taxes=[self.tax_21+self.recupel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestCIIUS(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref=None,
|
||||||
|
edi_format_ref="account_edi_ubl_cii.edi_facturx_1_0_05",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'country_id': cls.env.ref('base.us').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'country_id': cls.env.ref('base.us').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_0 = cls.env['account.tax'].create({
|
||||||
|
'name': "Tax 0%",
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'amount': 0,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.us").id,
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def test_print_pdf_us_company(self):
|
||||||
|
""" Even for a US company, a printed PDF should contain a Factur-X xml
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
collected_streams = self.env['ir.actions.report']._render_qweb_pdf_prepare_streams(
|
||||||
|
report_ref='account.report_invoice_with_payments',
|
||||||
|
data=None,
|
||||||
|
res_ids=invoice.ids,
|
||||||
|
)
|
||||||
|
self.assertTrue(
|
||||||
|
bytes("<rsm:CrossIndustryInvoice", 'utf8') in collected_streams[invoice.id]['stream'].getvalue(),
|
||||||
|
"Any invoice's PDF should contain a factur-x.xml"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_import_facturx_us_company(self):
|
||||||
|
""" Even for a US company, importing a PDF containing a Factur-X xml
|
||||||
|
should create the correct invoice
|
||||||
|
"""
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder='tests/test_files/from_factur-x_doc',
|
||||||
|
filename='facturx_invoice_negative_amounts.xml',
|
||||||
|
amount_total=100,
|
||||||
|
amount_tax=0,
|
||||||
|
list_line_subtotals=[-5, 10, 60, 30, 5],
|
||||||
|
move_type='in_refund'
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestUBLAU(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref="l10n_au.l10n_au_chart_template",
|
||||||
|
edi_format_ref="account_edi_ubl_cii.ubl_a_nz",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'street': "Spring St.",
|
||||||
|
'zip': "3002",
|
||||||
|
'city': "Melbourne",
|
||||||
|
'vat': '83 914 571 673',
|
||||||
|
'phone': '+31 180 6 225789',
|
||||||
|
'email': 'info@outlook.au',
|
||||||
|
'country_id': cls.env.ref('base.au').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': '000099998B57'})],
|
||||||
|
'ref': 'ref_partner_1',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'street': "Parliament Dr",
|
||||||
|
'zip': "2600",
|
||||||
|
'city': "Canberra",
|
||||||
|
'vat': '53 930 548 027',
|
||||||
|
'country_id': cls.env.ref('base.au').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': '93999574162167'})],
|
||||||
|
'ref': 'ref_partner_2',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_10 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_10',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 10,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.au').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.au").id,
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test export - import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_export_import_invoice(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/a_nz_out_invoice.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-8:], "a_nz.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_refund(self):
|
||||||
|
refund = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_refund',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_10.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
refund,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/a_nz_out_refund.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-8:], "a_nz.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(refund, attachment)
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_import_invoice_xml(self):
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='a_nz_out_invoice.xml',
|
||||||
|
amount_total=2950.2,
|
||||||
|
amount_tax=268.2,
|
||||||
|
list_line_subtotals=[1782, 1000, -100],
|
||||||
|
currency_id=self.currency_data['currency'].id
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,757 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import base64
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
from odoo import Command
|
||||||
|
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestUBLBE(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref="l10n_be.l10nbe_chart_template",
|
||||||
|
edi_format_ref="account_edi_ubl_cii.ubl_bis3",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
# seller
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'street': "Chaussée de Namur 40",
|
||||||
|
'zip': "1367",
|
||||||
|
'city': "Ramillies",
|
||||||
|
'vat': 'BE0202239951',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'BE15001559627230'})],
|
||||||
|
'ref': 'ref_partner_1',
|
||||||
|
})
|
||||||
|
|
||||||
|
# buyer
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'street': "Rue des Bourlottes 9",
|
||||||
|
'zip': "1367",
|
||||||
|
'city': "Ramillies",
|
||||||
|
'vat': 'BE0477472701',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'BE90735788866632'})],
|
||||||
|
'ref': 'ref_partner_2',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_25 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_25',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 25,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_21 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_21',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 21,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
'sequence': 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_15 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_15',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 15,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_12 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_12',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 12,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_6 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_6',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 6,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_0 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_0',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 0,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.be').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.acc_bank = cls.env['res.partner.bank'].create({
|
||||||
|
'acc_number': 'BE15001559627231',
|
||||||
|
'partner_id': cls.company_data['company'].partner_id.id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.invoice = cls.env['account.move'].create({
|
||||||
|
'move_type': 'out_invoice',
|
||||||
|
'journal_id': cls.journal.id,
|
||||||
|
'partner_id': cls.partner_1.id,
|
||||||
|
'partner_bank_id': cls.acc_bank.id,
|
||||||
|
'invoice_date': '2017-01-01',
|
||||||
|
'date': '2017-01-01',
|
||||||
|
'currency_id': cls.currency_data['currency'].id,
|
||||||
|
'invoice_line_ids': [(0, 0, {
|
||||||
|
'product_id': cls.product_a.id,
|
||||||
|
'product_uom_id': cls.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 275.0,
|
||||||
|
'quantity': 5,
|
||||||
|
'discount': 20.0,
|
||||||
|
'tax_ids': [(6, 0, cls.tax_21.ids)],
|
||||||
|
})],
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.pay_term = cls.env['account.payment.term'].create({
|
||||||
|
'name': "2/7 Net 30",
|
||||||
|
'note': "Payment terms: 30 Days, 2% Early Payment Discount under 7 days",
|
||||||
|
'line_ids': [
|
||||||
|
Command.create({'value': 'balance', 'days': 30, 'discount_percentage': 2, 'discount_days': 7})],
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
# to force the company to be belgian
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.be").id,
|
||||||
|
vat="BE0246697724")
|
||||||
|
return res
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test export - import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_export_import_invoice(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/bis3_out_invoice.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-12:], "ubl_bis3.xml") # ensure we test the right format !
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_refund(self):
|
||||||
|
refund = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_refund',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_12.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
refund,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="./*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/bis3_out_refund.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-12:], "ubl_bis3.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(refund, attachment)
|
||||||
|
|
||||||
|
def test_encoding_in_attachment_ubl(self):
|
||||||
|
self._test_encoding_in_attachment('ubl_bis3', 'INV_2017_00002_ubl_bis3.xml')
|
||||||
|
|
||||||
|
def test_sending_to_public_admin(self):
|
||||||
|
""" A public administration has no VAT, but has an arbitrary number (see:
|
||||||
|
https://pch.gouvernement.lu/fr/peppol.html). When a partner has no VAT, the node PartyTaxScheme should
|
||||||
|
not appear.
|
||||||
|
NB: The `EndpointID` node should be filled with this arbitrary number, that is why `l10n_lu_peppol_id`
|
||||||
|
module was created. However we cannot use it here because it would require adding it to the dependencies of
|
||||||
|
`l10n_account_edi_ubl_cii_tests` in stable.
|
||||||
|
"""
|
||||||
|
self.partner_2.vat = None
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2,
|
||||||
|
'price_unit': 100,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="./*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/bis3_out_invoice_public_admin.xml',
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_rounding_price_unit(self):
|
||||||
|
""" OpenPeppol states that:
|
||||||
|
* All document level amounts shall be rounded to two decimals for accounting
|
||||||
|
* Invoice line net amount shall be rounded to two decimals
|
||||||
|
See: https://docs.peppol.eu/poacc/billing/3.0/bis/#_rounding
|
||||||
|
Do not round the unit prices. It allows to obtain the correct line amounts when prices have more than 2
|
||||||
|
digits.
|
||||||
|
"""
|
||||||
|
# Set the allowed number of digits for the price_unit
|
||||||
|
decimal_precision = self.env['decimal.precision'].search([('name', '=', 'Product Price')], limit=1)
|
||||||
|
self.assertTrue(bool(decimal_precision), "The decimal precision for Product Price is required for this test")
|
||||||
|
decimal_precision.digits = 4
|
||||||
|
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 10000,
|
||||||
|
'price_unit': 0.4567,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_out_invoice_rounding.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case1(self):
|
||||||
|
# CASE 1: simple invoice with a recupel tax
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 99,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_ecotaxes_case1.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case2(self):
|
||||||
|
# CASE 2: Same but with several ecotaxes
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 98,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.auvibel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_ecotaxes_case2.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case3(self):
|
||||||
|
# CASE 3: same as Case 1 but taxes are Price Included
|
||||||
|
self.recupel.price_include = True
|
||||||
|
self.tax_21.price_include = True
|
||||||
|
|
||||||
|
# Price TTC = 121 = (99 + 1 ) * 1.21
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 121,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 121)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_ecotaxes_case3.xml')
|
||||||
|
|
||||||
|
def test_export_with_fixed_taxes_case4(self):
|
||||||
|
""" CASE 4: simple invoice with a recupel tax + discount
|
||||||
|
1) Subtotal (price after discount, without taxes): 99 * 2 * (1-0.9) = 178.2
|
||||||
|
2) Taxes:
|
||||||
|
- recupel = 2
|
||||||
|
- VAT = (178.2 + 2) * 0.21 = 37.842
|
||||||
|
3) Total = 178.2 + 2 + 37.842 = 218.042
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2,
|
||||||
|
'discount': 10,
|
||||||
|
'price_unit': 99,
|
||||||
|
'tax_ids': [(6, 0, [self.recupel.id, self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(invoice.amount_total, 218.042)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_ecotaxes_case4.xml')
|
||||||
|
|
||||||
|
def test_export_payment_terms(self):
|
||||||
|
"""
|
||||||
|
Tests the early payment discount using the example case from the VBO/FEB.
|
||||||
|
|
||||||
|
------------- + Price + Tax + Cash Discount (2%) + Taxable Amount + VAT --
|
||||||
|
Product A | 200 | 6% | -4 | 196 | 11.76
|
||||||
|
Product B | 2400 | 21% | -48 | 2352 | 493.92
|
||||||
|
--------------+-------+-----+--------------------+----------------+-------
|
||||||
|
|
||||||
|
Subtotal (Taxable amount incl. payment discount): 2548
|
||||||
|
VAT: 505.68
|
||||||
|
Payable amount (excl. payment discount): 3105.68
|
||||||
|
Payable amount (incl. payment discount): 3053.68
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_payment_term_id=self.pay_term.id,
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 200,
|
||||||
|
'tax_ids': [(6, 0, [self.tax_6.id])],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 2400,
|
||||||
|
'tax_ids': [(6, 0, [self.tax_21.id])],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_pay_term.xml')
|
||||||
|
|
||||||
|
def test_export_payment_terms_fixed_tax(self):
|
||||||
|
"""
|
||||||
|
Tests the early payment discount combined with a fixed tax.
|
||||||
|
|
||||||
|
------------- + Price + Tax + Cash Discount (2%) + ------- Taxable Amount + VAT ----
|
||||||
|
Product A | 99 | 21% | -1.98 | 97.02 + 1 (fixed tax) | 20.5842
|
||||||
|
--------------+-------+-----+--------------------+------------------------+---------
|
||||||
|
NB: The fixed taxes (recupel, auvibel, etc) are excluded from the early payment discount !
|
||||||
|
|
||||||
|
Subtotal (Taxable amount incl. payment discount): 97.02 + 1
|
||||||
|
VAT: (97.02 + 1) * 0.21 = 20.58
|
||||||
|
Payable amount (excl. payment discount): 99 + 1 + 20.58 = 120.58
|
||||||
|
Payable amount (incl. payment discount): 97.02 + 1 + 20.58 = 118.60
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_payment_term_id=self.pay_term.id,
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 99,
|
||||||
|
'tax_ids': [(6, 0, [self.tax_21.id, self.recupel.id])],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_pay_term_ecotax.xml')
|
||||||
|
|
||||||
|
def test_export_with_changed_taxes(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 200,
|
||||||
|
'tax_ids': [Command.set([self.tax_21.id])],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 200,
|
||||||
|
'tax_ids': [Command.set([self.tax_21.id])],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 100,
|
||||||
|
'tax_ids': [Command.set([self.tax_12.id])],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 100,
|
||||||
|
'tax_ids': [Command.set([self.tax_12.id])],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertRecordValues(invoice, [{
|
||||||
|
'amount_untaxed': 600.00,
|
||||||
|
'amount_tax': 108.00, # tax_12: 24.00 ; tax_21: 84.00
|
||||||
|
'amount_total': 708.00
|
||||||
|
}])
|
||||||
|
|
||||||
|
invoice.button_draft()
|
||||||
|
tax_lines = invoice.line_ids.filtered(lambda line: line.display_type == 'tax')
|
||||||
|
tax_line_21 = next((line for line in tax_lines if line.name == 'tax_21'))
|
||||||
|
tax_line_12 = next((line for line in tax_lines if line.name == 'tax_12'))
|
||||||
|
invoice.line_ids = [
|
||||||
|
Command.update(tax_line_21.id, {'amount_currency': -84.03}), # distribute 3 cents over 2 lines
|
||||||
|
Command.update(tax_line_12.id, {'amount_currency': -23.99}), # distribute -1 cent over 2 lines
|
||||||
|
]
|
||||||
|
invoice.action_post()
|
||||||
|
|
||||||
|
self.assertRecordValues(invoice, [{
|
||||||
|
'amount_untaxed': 600.00,
|
||||||
|
'amount_tax': 108.02, # tax_12: 23.99 ; tax_21: 84.03
|
||||||
|
'amount_total': 708.02
|
||||||
|
}])
|
||||||
|
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_export_with_changed_taxes.xml')
|
||||||
|
|
||||||
|
def test_export_rounding_price_amount(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{'quantity': 3, 'price_unit': 102.15},
|
||||||
|
{'quantity': 3, 'price_unit': 83.60},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = invoice._get_edi_attachment(self.edi_format)
|
||||||
|
price_amounts = etree.fromstring(attachment.raw).findall('.//{*}InvoiceLine/{*}Price/{*}PriceAmount')
|
||||||
|
self.assertEqual(price_amounts[0].text, '102.15')
|
||||||
|
self.assertEqual(price_amounts[1].text, '83.6')
|
||||||
|
|
||||||
|
def test_export_tax_exempt(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_0.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_out_invoice_tax_exempt.xml')
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_import_partner_ubl(self):
|
||||||
|
"""
|
||||||
|
Given an invoice where partner_1 is the vendor and partner_2 is the customer with an EDI attachment.
|
||||||
|
* Uploading the attachment as an invoice should create an invoice with the buyer = partner_2.
|
||||||
|
* Uploading the attachment as a vendor bill should create a bill with the vendor = partner_1.
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
seller=self.partner_1,
|
||||||
|
buyer=self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{'product_id': self.product_a.id}],
|
||||||
|
)
|
||||||
|
new_invoice = self._import_invoice_attachment(invoice, 'ubl_bis3', self.company_data['default_journal_sale'])
|
||||||
|
self.assertEqual(self.partner_2, new_invoice.partner_id)
|
||||||
|
|
||||||
|
new_invoice = self._import_invoice_attachment(invoice, 'ubl_bis3', self.company_data['default_journal_purchase'])
|
||||||
|
self.assertEqual(self.partner_1, new_invoice.partner_id)
|
||||||
|
|
||||||
|
def test_import_journal_ubl(self):
|
||||||
|
"""
|
||||||
|
If the context contains the info about the current default journal, we should use it
|
||||||
|
instead of infering the journal from the move type.
|
||||||
|
"""
|
||||||
|
journal2 = self.company_data['default_journal_sale'].copy()
|
||||||
|
journal2.default_account_id = self.company_data['default_account_revenue'].id
|
||||||
|
invoice = self._generate_move(
|
||||||
|
seller=self.partner_1,
|
||||||
|
buyer=self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{'product_id': self.product_a.id}],
|
||||||
|
)
|
||||||
|
edi_attachment = invoice._get_edi_attachment(self.env.ref('account_edi_ubl_cii.ubl_bis3')).id
|
||||||
|
|
||||||
|
new_invoice = self.env['account.journal'].with_context(default_move_type='out_invoice')._create_document_from_attachment(edi_attachment)
|
||||||
|
self.assertEqual(new_invoice.journal_id, self.company_data['default_journal_sale'])
|
||||||
|
|
||||||
|
new_invoice = self.env['account.journal'].with_context(default_journal_id=journal2.id)._create_document_from_attachment(edi_attachment)
|
||||||
|
self.assertEqual(new_invoice.journal_id, journal2)
|
||||||
|
|
||||||
|
def test_import_and_create_partner_ubl(self):
|
||||||
|
""" Tests whether the partner is created at import if no match is found when decoding the EDI attachment
|
||||||
|
"""
|
||||||
|
partner_vals = {
|
||||||
|
'name': "Buyer",
|
||||||
|
'mail': "buyer@yahoo.com",
|
||||||
|
'phone': "1111",
|
||||||
|
'vat': "BE980737405",
|
||||||
|
}
|
||||||
|
# assert there is no matching partner
|
||||||
|
partner_match = self.env['account.edi.format']._retrieve_partner(**partner_vals)
|
||||||
|
self.assertFalse(partner_match)
|
||||||
|
|
||||||
|
# Import attachment as an invoice
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': 'out_invoice',
|
||||||
|
'journal_id': self.company_data['default_journal_sale'].id,
|
||||||
|
})
|
||||||
|
self.update_invoice_from_file(
|
||||||
|
module_name='l10n_account_edi_ubl_cii_tests',
|
||||||
|
subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='ubl_test_import_partner.xml',
|
||||||
|
invoice=invoice)
|
||||||
|
|
||||||
|
# assert a new partner has been created
|
||||||
|
partner_vals['email'] = partner_vals.pop('mail')
|
||||||
|
self.assertRecordValues(invoice.partner_id, [partner_vals])
|
||||||
|
|
||||||
|
def test_import_export_invoice_xml(self):
|
||||||
|
"""
|
||||||
|
Test whether the elements only specific to ubl_be are correctly exported
|
||||||
|
and imported in the xml file
|
||||||
|
"""
|
||||||
|
self.invoice.action_post()
|
||||||
|
attachment = self.invoice._get_edi_attachment(self.edi_format)
|
||||||
|
self.assertTrue(attachment)
|
||||||
|
xml_content = base64.b64decode(attachment.with_context(bin_size=False).datas)
|
||||||
|
xml_etree = self.get_xml_tree_from_string(xml_content)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
xml_etree.find('{*}ProfileID').text,
|
||||||
|
'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0'
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
xml_etree.find('{*}CustomizationID').text,
|
||||||
|
'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'
|
||||||
|
)
|
||||||
|
# Export: in bis3, under Country, the Name element should not appear, but IdentificationCode still should
|
||||||
|
self.assertIsNotNone(xml_etree.find('.//{*}Country/{*}IdentificationCode'))
|
||||||
|
self.assertIsNone(xml_etree.find('.//{*}Country/{*}Name'))
|
||||||
|
|
||||||
|
# Import:
|
||||||
|
created_bill = self.env['account.move'].create({'move_type': 'in_invoice'})
|
||||||
|
created_bill.message_post(attachment_ids=[attachment.id])
|
||||||
|
self.assertTrue(created_bill)
|
||||||
|
|
||||||
|
def test_import_invoice_xml(self):
|
||||||
|
kwargs = {
|
||||||
|
'subfolder': 'tests/test_files/from_odoo',
|
||||||
|
'amount_total': 3164.22,
|
||||||
|
'amount_tax': 482.22,
|
||||||
|
'list_line_subtotals': [1782, 1000, -100],
|
||||||
|
'list_line_price_unit': [990, 100, 100],
|
||||||
|
'list_line_discount': [10, 0, 0],
|
||||||
|
'currency_id': self.currency_data['currency'].id,
|
||||||
|
}
|
||||||
|
self._assert_imported_invoice_from_file(filename='bis3_out_invoice.xml', **kwargs)
|
||||||
|
# same as the file above, but the <cac:Price> are missing in the invoice lines
|
||||||
|
self._assert_imported_invoice_from_file(filename='bis3_out_invoice_no_prices.xml', **kwargs)
|
||||||
|
|
||||||
|
def test_import_invoice_xml_open_peppol_examples(self):
|
||||||
|
# Source: https://github.com/OpenPEPPOL/peppol-bis-invoice-3/tree/master/rules/examples
|
||||||
|
subfolder = 'tests/test_files/from_peppol-bis-invoice-3_doc'
|
||||||
|
# source: Allowance-example.xml
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='bis3_allowance.xml', amount_total=7125,
|
||||||
|
amount_tax=1225, list_line_subtotals=[200, -200, 4000, 1000, 900])
|
||||||
|
# source: base-creditnote-correction.xml
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='bis3_credit_note.xml',
|
||||||
|
amount_total=1656.25, amount_tax=331.25, list_line_subtotals=[25, 2800, -1500], move_type='in_refund')
|
||||||
|
# source: base-negative-inv-correction.xml
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='bis3_invoice_negative_amounts.xml',
|
||||||
|
amount_total=1656.25, amount_tax=331.25, list_line_subtotals=[25, 2800, -1500], move_type='in_refund')
|
||||||
|
# source: vat-category-E.xml
|
||||||
|
self._assert_imported_invoice_from_file(subfolder=subfolder, filename='bis3_tax_exempt_gbp.xml',
|
||||||
|
amount_total=1200, amount_tax=0, list_line_subtotals=[1200], currency_id=self.env.ref('base.GBP').id)
|
||||||
|
|
||||||
|
def test_import_existing_invoice_flip_move_type(self):
|
||||||
|
""" Tests whether the move_type of an existing invoice can be flipped when importing an attachment
|
||||||
|
For instance: with an email alias to create account_move, first the move is created (using alias_defaults,
|
||||||
|
which contains move_type = 'out_invoice') then the attachment is decoded, if it represents a credit note,
|
||||||
|
the move type needs to be changed to 'out_refund'
|
||||||
|
"""
|
||||||
|
invoice = self.env['account.move'].create({'move_type': 'out_invoice'})
|
||||||
|
self.update_invoice_from_file(
|
||||||
|
'l10n_account_edi_ubl_cii_tests',
|
||||||
|
'tests/test_files/from_odoo',
|
||||||
|
'bis3_out_refund.xml',
|
||||||
|
invoice,
|
||||||
|
)
|
||||||
|
self.assertRecordValues(invoice, [{'move_type': 'out_refund', 'amount_total': 3164.22}])
|
||||||
|
|
||||||
|
def test_import_fixed_taxes(self):
|
||||||
|
""" Tests whether we correctly decode the xml attachments created using fixed taxes.
|
||||||
|
See the tests above to create these xml attachments ('test_export_with_fixed_taxes_case_[X]').
|
||||||
|
NB: use move_type = 'out_invoice' s.t. we can retrieve the taxes used to create the invoices.
|
||||||
|
"""
|
||||||
|
subfolder = "tests/test_files/from_odoo"
|
||||||
|
# The tax 21% from l10n_be is retrieved since it's a duplicate of self.tax_21
|
||||||
|
tax_21 = self.env.ref(f'l10n_be.{self.env.company.id}_attn_VAT-OUT-21-L')
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='bis3_ecotaxes_case1.xml', amount_total=121, amount_tax=22,
|
||||||
|
list_line_subtotals=[99], currency_id=self.currency_data['currency'].id, list_line_price_unit=[99],
|
||||||
|
list_line_discount=[0], list_line_taxes=[tax_21+self.recupel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='bis3_ecotaxes_case2.xml', amount_total=121, amount_tax=23,
|
||||||
|
list_line_subtotals=[98], currency_id=self.currency_data['currency'].id, list_line_price_unit=[98],
|
||||||
|
list_line_discount=[0], list_line_taxes=[tax_21+self.recupel+self.auvibel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='bis3_ecotaxes_case3.xml', amount_total=121, amount_tax=22,
|
||||||
|
list_line_subtotals=[99], currency_id=self.currency_data['currency'].id, list_line_price_unit=[99],
|
||||||
|
list_line_discount=[0], list_line_taxes=[tax_21+self.recupel], move_type='out_invoice',
|
||||||
|
)
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder=subfolder, filename='bis3_ecotaxes_case4.xml', amount_total=218.04, amount_tax=39.84,
|
||||||
|
list_line_subtotals=[178.20000000000002], currency_id=self.currency_data['currency'].id,
|
||||||
|
list_line_price_unit=[99], list_line_discount=[10], list_line_taxes=[tax_21+self.recupel],
|
||||||
|
move_type='out_invoice',
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_import_payment_terms(self):
|
||||||
|
# The tax 21% from l10n_be is retrieved since it's a duplicate of self.tax_21
|
||||||
|
tax_21 = self.env.ref(f'l10n_be.{self.env.company.id}_attn_VAT-OUT-21-L')
|
||||||
|
self._assert_imported_invoice_from_file(
|
||||||
|
subfolder='tests/test_files/from_odoo', filename='bis3_pay_term.xml', amount_total=3105.68,
|
||||||
|
amount_tax=505.68, list_line_subtotals=[-4, -48, 52, 200, 2400],
|
||||||
|
currency_id=self.currency_data['currency'].id, list_line_price_unit=[-4, -48, 52, 200, 2400],
|
||||||
|
list_line_discount=[0, 0, 0, 0, 0], list_line_taxes=[self.tax_6, tax_21, self.tax_0, self.tax_6, tax_21],
|
||||||
|
move_type='out_invoice',
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_inverting_negative_price_unit(self):
|
||||||
|
""" We can not have negative unit prices, so we try to invert the unit price and quantity.
|
||||||
|
"""
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': -25.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_21.ids)],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self._assert_invoice_attachment(invoice, None, 'from_odoo/bis3_out_invoice_negative_unit_price.xml')
|
||||||
|
|
@ -0,0 +1,269 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from odoo import Command
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
import base64
|
||||||
|
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestUBLDE(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref="l10n_de_skr03.l10n_de_chart_template",
|
||||||
|
edi_format_ref="account_edi_ubl_cii.ubl_de",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'street': "Legoland-Allee 3",
|
||||||
|
'zip': "89312",
|
||||||
|
'city': "Günzburg",
|
||||||
|
'vat': 'DE257486969',
|
||||||
|
'phone': '+49 180 6 225789',
|
||||||
|
'email': 'info@legoland.de',
|
||||||
|
'country_id': cls.env.ref('base.de').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'DE48500105176424548921'})],
|
||||||
|
'ref': 'ref_partner_1',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'street': "Europa-Park-Straße 2",
|
||||||
|
'zip': "77977",
|
||||||
|
'city': "Rust",
|
||||||
|
'vat': 'DE186775212',
|
||||||
|
'country_id': cls.env.ref('base.de').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'DE50500105175653254743'})],
|
||||||
|
'ref': 'ref_partner_2',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_19 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_19',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 19,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.de').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_7 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_7',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 7,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.de').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
# to force the company to be german + add phone and email
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.de").id,
|
||||||
|
phone="+49(0) 30 227-0",
|
||||||
|
email="test@xrechnung@com",
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test export - import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_export_import_invoice(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_19.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/xrechnung_ubl_out_invoice.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-10:], "ubl_de.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_invoice_without_vat(self):
|
||||||
|
self.partner_2.vat = False
|
||||||
|
self.partner_2.email = 'partner_2@test.test'
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 1.0,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [Command.set(self.tax_19.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/xrechnung_ubl_out_invoice_without_vat.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-10:], "ubl_de.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_refund(self):
|
||||||
|
refund = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_refund',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_19.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
refund,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/xrechnung_ubl_out_refund.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-10:], "ubl_de.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(refund, attachment)
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_import_invoice_xml(self):
|
||||||
|
self._assert_imported_invoice_from_file(subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='xrechnung_ubl_out_invoice.xml', amount_total=3083.58, amount_tax=401.58,
|
||||||
|
list_line_subtotals=[1782, 1000, -100], currency_id=self.currency_data['currency'].id)
|
||||||
|
|
||||||
|
def test_import_export_invoice_xml(self):
|
||||||
|
"""
|
||||||
|
Test whether the elements which are only specific to ubl_de are correctly exported
|
||||||
|
and imported in the xml file
|
||||||
|
"""
|
||||||
|
acc_bank = self.env['res.partner.bank'].create({
|
||||||
|
'acc_number': 'BE15001559627232',
|
||||||
|
'partner_id': self.company_data['company'].partner_id.id,
|
||||||
|
})
|
||||||
|
invoice = self.env['account.move'].create({
|
||||||
|
'move_type': 'out_invoice',
|
||||||
|
'journal_id': self.journal.id,
|
||||||
|
'partner_id': self.partner_1.id,
|
||||||
|
'partner_bank_id': acc_bank.id,
|
||||||
|
'invoice_date': '2017-01-01',
|
||||||
|
'date': '2017-01-01',
|
||||||
|
'currency_id': self.currency_data['currency'].id,
|
||||||
|
'invoice_line_ids': [(0, 0, {
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 275.0,
|
||||||
|
'quantity': 5,
|
||||||
|
'discount': 20.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_19.ids)],
|
||||||
|
})],
|
||||||
|
})
|
||||||
|
|
||||||
|
partner = invoice.commercial_partner_id
|
||||||
|
invoice.action_post()
|
||||||
|
attachment = invoice._get_edi_attachment(self.edi_format)
|
||||||
|
self.assertTrue(attachment)
|
||||||
|
xml_content = base64.b64decode(attachment.with_context(bin_size=False).datas)
|
||||||
|
xml_etree = self.get_xml_tree_from_string(xml_content)
|
||||||
|
|
||||||
|
# Export: BuyerReference is in the out_invoice xml
|
||||||
|
self.assertEqual(xml_etree.find('{*}BuyerReference').text, partner.ref)
|
||||||
|
self.assertEqual(
|
||||||
|
xml_etree.find('{*}CustomizationID').text,
|
||||||
|
'urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0'
|
||||||
|
)
|
||||||
|
|
||||||
|
created_bill = self.env['account.move'].create({'move_type': 'in_invoice'})
|
||||||
|
created_bill.message_post(attachment_ids=[attachment.id])
|
||||||
|
self.assertTrue(created_bill)
|
||||||
|
|
@ -0,0 +1,249 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from odoo.addons.l10n_account_edi_ubl_cii_tests.tests.common import TestUBLCommon
|
||||||
|
from odoo.tests import tagged
|
||||||
|
from odoo import Command
|
||||||
|
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
|
||||||
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
||||||
|
class TestUBLNL(TestUBLCommon):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls,
|
||||||
|
chart_template_ref="l10n_nl.l10nnl_chart_template",
|
||||||
|
edi_format_ref="account_edi_ubl_cii.edi_nlcius_1",
|
||||||
|
):
|
||||||
|
super().setUpClass(chart_template_ref=chart_template_ref, edi_format_ref=edi_format_ref)
|
||||||
|
|
||||||
|
cls.partner_1 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_1",
|
||||||
|
'street': "Kunststraat, 3",
|
||||||
|
'zip': "1000",
|
||||||
|
'city': "Amsterdam",
|
||||||
|
'vat': 'NL000099998B57',
|
||||||
|
'phone': '+31 180 6 225789',
|
||||||
|
'email': 'info@outlook.nl',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'NL000099998B57'})],
|
||||||
|
'l10n_nl_kvk': '77777677',
|
||||||
|
'ref': 'ref_partner_1',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.partner_2 = cls.env['res.partner'].create({
|
||||||
|
'name': "partner_2",
|
||||||
|
'street': "Europaweg, 2",
|
||||||
|
'zip': "1200",
|
||||||
|
'city': "Rotterdam",
|
||||||
|
'vat': 'NL41452B11',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
'bank_ids': [(0, 0, {'acc_number': 'NL93999574162167'})],
|
||||||
|
'l10n_nl_kvk': '1234567',
|
||||||
|
'ref': 'ref_partner_2',
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_19 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_19',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 19,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_7 = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_7',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 7,
|
||||||
|
'type_tax_use': 'sale',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_19_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_19',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 19,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_7_purchase = cls.env['account.tax'].create({
|
||||||
|
'name': 'tax_7',
|
||||||
|
'amount_type': 'percent',
|
||||||
|
'amount': 7,
|
||||||
|
'type_tax_use': 'purchase',
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
'sequence': 2,
|
||||||
|
})
|
||||||
|
|
||||||
|
cls.tax_10_fixed = cls.env['account.tax'].create({
|
||||||
|
'name': 'Test Tax',
|
||||||
|
'amount_type': 'fixed',
|
||||||
|
'include_base_amount': True,
|
||||||
|
'country_id': cls.env.ref('base.nl').id,
|
||||||
|
'amount': 10.0,
|
||||||
|
'sequence': 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_company_data(cls, company_name, chart_template):
|
||||||
|
# OVERRIDE
|
||||||
|
# to force the company to be dutch
|
||||||
|
res = super().setup_company_data(
|
||||||
|
company_name,
|
||||||
|
chart_template=chart_template,
|
||||||
|
country_id=cls.env.ref("base.nl").id,
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test export - import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_export_import_invoice(self):
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_19.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
invoice,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='InvoiceLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/nlcius_out_invoice.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-10:], "nlcius.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(invoice, attachment)
|
||||||
|
|
||||||
|
def test_export_import_refund(self):
|
||||||
|
refund = self._generate_move(
|
||||||
|
self.partner_1,
|
||||||
|
self.partner_2,
|
||||||
|
move_type='out_refund',
|
||||||
|
invoice_line_ids=[
|
||||||
|
{
|
||||||
|
'product_id': self.product_a.id,
|
||||||
|
'quantity': 2.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_dozen').id,
|
||||||
|
'price_unit': 990.0,
|
||||||
|
'discount': 10.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_19.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': 10.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'product_id': self.product_b.id,
|
||||||
|
'quantity': -1.0,
|
||||||
|
'product_uom_id': self.env.ref('uom.product_uom_unit').id,
|
||||||
|
'price_unit': 100.0,
|
||||||
|
'tax_ids': [(6, 0, self.tax_7.ids)],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
attachment = self._assert_invoice_attachment(
|
||||||
|
refund,
|
||||||
|
xpaths='''
|
||||||
|
<xpath expr="./*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][1]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][2]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='CreditNoteLine'][3]/*[local-name()='ID']" position="replace">
|
||||||
|
<ID>___ignore___</ID>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr=".//*[local-name()='PaymentMeans']/*[local-name()='PaymentID']" position="replace">
|
||||||
|
<PaymentID>___ignore___</PaymentID>
|
||||||
|
</xpath>
|
||||||
|
''',
|
||||||
|
expected_file='from_odoo/nlcius_out_refund.xml',
|
||||||
|
)
|
||||||
|
self.assertEqual(attachment.name[-10:], "nlcius.xml")
|
||||||
|
self._assert_imported_invoice_from_etree(refund, attachment)
|
||||||
|
|
||||||
|
def test_export_fixed_tax_nlcius_and_peppol(self):
|
||||||
|
"""
|
||||||
|
Ensure that an invoice containing a product with a fixed tax posted to a journal with the peppol and nlcius edi
|
||||||
|
tags generates edi documents with accurate LineExtensionAmount values
|
||||||
|
"""
|
||||||
|
self.journal.edi_format_ids = [
|
||||||
|
Command.link(self.env.ref('account_edi_ubl_cii.ubl_bis3').id)
|
||||||
|
]
|
||||||
|
|
||||||
|
invoice = self._generate_move(
|
||||||
|
self.partner_1, self.partner_2,
|
||||||
|
move_type='out_invoice',
|
||||||
|
invoice_line_ids=[{
|
||||||
|
'name': 'product costing 50.0',
|
||||||
|
'quantity': 1,
|
||||||
|
'price_unit': 50.0,
|
||||||
|
'tax_ids': [Command.set([self.tax_10_fixed.id, self.tax_7_purchase.id])]
|
||||||
|
}]
|
||||||
|
)
|
||||||
|
|
||||||
|
amounts = [
|
||||||
|
etree.fromstring(doc.attachment_id.raw).find(
|
||||||
|
'.//{*}LegalMonetaryTotal/{*}LineExtensionAmount'
|
||||||
|
).text
|
||||||
|
for doc in invoice.edi_document_ids.filtered(lambda d: d.edi_format_id.code in (
|
||||||
|
'ubl_bis3', 'nlcius_1'
|
||||||
|
))
|
||||||
|
]
|
||||||
|
|
||||||
|
self.assertEqual(amounts, ['60.00', '60.00'])
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Test import
|
||||||
|
####################################################
|
||||||
|
|
||||||
|
def test_import_invoice_xml(self):
|
||||||
|
# test files https://github.com/peppolautoriteit-nl/validation ?
|
||||||
|
self._assert_imported_invoice_from_file(subfolder='tests/test_files/from_odoo',
|
||||||
|
filename='nlcius_out_invoice.xml', amount_total=3083.58, amount_tax=401.58,
|
||||||
|
list_line_subtotals=[1782, 1000, -100], currency_id=self.currency_data['currency'].id)
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
[project]
|
||||||
|
name = "odoo-bringout-oca-ocb-l10n_account_edi_ubl_cii_tests"
|
||||||
|
version = "16.0.0"
|
||||||
|
description = "Testing the Import/Export invoices with UBL/CII - Odoo addon"
|
||||||
|
authors = [
|
||||||
|
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
"odoo-bringout-oca-ocb-l10n_generic_coa>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-account_edi_ubl_cii>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_fr>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_be>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_de>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_nl>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_au>=16.0.0",
|
||||||
|
"requests>=2.25.1"
|
||||||
|
]
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">= 3.11"
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
|
"Topic :: Office/Business",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
homepage = "https://github.com/bringout/0"
|
||||||
|
repository = "https://github.com/bringout/0"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["hatchling"]
|
||||||
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
|
[tool.hatch.metadata]
|
||||||
|
allow-direct-references = true
|
||||||
|
|
||||||
|
[tool.hatch.build.targets.wheel]
|
||||||
|
packages = ["l10n_account_edi_ubl_cii_tests"]
|
||||||
|
|
||||||
|
[tool.rye]
|
||||||
|
managed = true
|
||||||
|
dev-dependencies = [
|
||||||
|
"pytest>=8.4.1",
|
||||||
|
]
|
||||||
45
odoo-bringout-oca-ocb-l10n_ar_website_sale/README.md
Normal file
45
odoo-bringout-oca-ocb-l10n_ar_website_sale/README.md
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Argentinean eCommerce
|
||||||
|
|
||||||
|
Be able to see Identification Type and AFIP Responsibility in ecommerce checkout form.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_ar_website_sale
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
- website_sale
|
||||||
|
- l10n_ar
|
||||||
|
|
||||||
|
## Manifest Information
|
||||||
|
|
||||||
|
- **Name**: Argentinean eCommerce
|
||||||
|
- **Version**: 1.0
|
||||||
|
- **Category**: Accounting/Localizations/Website
|
||||||
|
- **License**: LGPL-3
|
||||||
|
- **Installable**: True
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_ar_website_sale`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This package maintains the original LGPL-3 license from the upstream Odoo project.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- Overview: doc/OVERVIEW.md
|
||||||
|
- Architecture: doc/ARCHITECTURE.md
|
||||||
|
- Models: doc/MODELS.md
|
||||||
|
- Controllers: doc/CONTROLLERS.md
|
||||||
|
- Wizards: doc/WIZARDS.md
|
||||||
|
- Install: doc/INSTALL.md
|
||||||
|
- Usage: doc/USAGE.md
|
||||||
|
- Configuration: doc/CONFIGURATION.md
|
||||||
|
- Dependencies: doc/DEPENDENCIES.md
|
||||||
|
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||||
|
- FAQ: doc/FAQ.md
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||||
|
V --> C[Controllers]
|
||||||
|
V --> W[Wizards – Transient Models]
|
||||||
|
C --> M[Models and ORM]
|
||||||
|
W --> M
|
||||||
|
M --> R[Reports]
|
||||||
|
DX[Data XML] --> M
|
||||||
|
S[Security – ACLs and Groups] -. enforces .-> M
|
||||||
|
|
||||||
|
subgraph L10n_ar_website_sale Module - l10n_ar_website_sale
|
||||||
|
direction LR
|
||||||
|
M:::layer
|
||||||
|
W:::layer
|
||||||
|
C:::layer
|
||||||
|
V:::layer
|
||||||
|
R:::layer
|
||||||
|
S:::layer
|
||||||
|
DX:::layer
|
||||||
|
end
|
||||||
|
|
||||||
|
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Views include tree/form/kanban templates and report templates.
|
||||||
|
- Controllers provide website/portal routes when present.
|
||||||
|
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||||
|
- Data XML loads data/demo records; Security defines groups and access.
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
Refer to Odoo settings for l10n_ar_website_sale. Configure related models, access rights, and options as needed.
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Controllers
|
||||||
|
|
||||||
|
HTTP routes provided by this module.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant U as User/Client
|
||||||
|
participant C as Module Controllers
|
||||||
|
participant O as ORM/Views
|
||||||
|
|
||||||
|
U->>C: HTTP GET/POST (routes)
|
||||||
|
C->>O: ORM operations, render templates
|
||||||
|
O-->>U: HTML/JSON/PDF
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- See files in controllers/ for route definitions.
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
|
||||||
|
- [website_sale](../../odoo-bringout-oca-ocb-website_sale)
|
||||||
|
- [l10n_ar](../../odoo-bringout-oca-ocb-l10n_ar)
|
||||||
4
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/FAQ.md
Normal file
4
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/FAQ.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# FAQ
|
||||||
|
|
||||||
|
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||||
|
- Q: How to enable? A: Start server with --addon l10n_ar_website_sale or install in UI.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_ar_website_sale"
|
||||||
|
# or
|
||||||
|
uv pip install odoo-bringout-oca-ocb-l10n_ar_website_sale"
|
||||||
|
```
|
||||||
13
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/MODELS.md
Normal file
13
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/MODELS.md
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Models
|
||||||
|
|
||||||
|
Detected core models and extensions in l10n_ar_website_sale.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
class sale_order
|
||||||
|
class website
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Classes show model technical names; fields omitted for brevity.
|
||||||
|
- Items listed under _inherit are extensions of existing models.
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Packaged Odoo addon: l10n_ar_website_sale. Provides features documented in upstream Odoo 16 under this addon.
|
||||||
|
|
||||||
|
- Source: OCA/OCB 16.0, addon l10n_ar_website_sale
|
||||||
|
- License: LGPL-3
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Reports
|
||||||
|
|
||||||
|
This module does not define custom reports.
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Security
|
||||||
|
|
||||||
|
This module does not define custom security rules or access controls beyond Odoo defaults.
|
||||||
|
|
||||||
|
Default Odoo security applies:
|
||||||
|
- Base user access through standard groups
|
||||||
|
- Model access inherited from dependencies
|
||||||
|
- No custom row-level security rules
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
- Ensure Python and Odoo environment matches repo guidance.
|
||||||
|
- Check database connectivity and logs if startup fails.
|
||||||
|
- Validate that dependent addons listed in DEPENDENCIES.md are installed.
|
||||||
7
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/USAGE.md
Normal file
7
odoo-bringout-oca-ocb-l10n_ar_website_sale/doc/USAGE.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Start Odoo including this addon (from repo root):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_ar_website_sale
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Wizards
|
||||||
|
|
||||||
|
This module does not include UI wizards.
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import controllers
|
||||||
|
from . import models
|
||||||
|
from . import tests
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
{
|
||||||
|
'name': 'Argentinean eCommerce',
|
||||||
|
'version': '1.0',
|
||||||
|
'category': 'Accounting/Localizations/Website',
|
||||||
|
'sequence': 14,
|
||||||
|
'author': 'Odoo, ADHOC SA',
|
||||||
|
'description': """Be able to see Identification Type and AFIP Responsibility in ecommerce checkout form.""",
|
||||||
|
'depends': [
|
||||||
|
'website_sale',
|
||||||
|
'l10n_ar',
|
||||||
|
],
|
||||||
|
'data': [
|
||||||
|
'data/ir_model_fields.xml',
|
||||||
|
'views/templates.xml',
|
||||||
|
],
|
||||||
|
'demo': [
|
||||||
|
'demo/website_demo.xml',
|
||||||
|
],
|
||||||
|
'installable': True,
|
||||||
|
'auto_install': True,
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import main
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from odoo import _
|
||||||
|
from odoo.addons.website_sale.controllers.main import WebsiteSale
|
||||||
|
from odoo.http import request
|
||||||
|
|
||||||
|
|
||||||
|
class L10nARWebsiteSale(WebsiteSale):
|
||||||
|
|
||||||
|
def _get_mandatory_fields_billing(self, country_id=False):
|
||||||
|
"""Extend mandatory fields to add new identification and responsibility fields when company is argentina"""
|
||||||
|
res = super()._get_mandatory_fields_billing(country_id)
|
||||||
|
if request.website.sudo().company_id.country_id.code == "AR":
|
||||||
|
res += ["l10n_latam_identification_type_id", "l10n_ar_afip_responsibility_type_id", "vat"]
|
||||||
|
return res
|
||||||
|
|
||||||
|
def _get_country_related_render_values(self, kw, render_values):
|
||||||
|
res = super()._get_country_related_render_values(kw, render_values)
|
||||||
|
if request.website.sudo().company_id.country_id.code == "AR":
|
||||||
|
res.update({'identification': kw.get('l10n_latam_identification_type_id'),
|
||||||
|
'responsibility': kw.get('l10n_ar_afip_responsibility_type_id'),
|
||||||
|
'responsibility_types': request.env['l10n_ar.afip.responsibility.type'].search([]),
|
||||||
|
'identification_types': request.env['l10n_latam.identification.type'].search(
|
||||||
|
['|', ('country_id', '=', False), ('country_id.code', '=', 'AR')])})
|
||||||
|
return res
|
||||||
|
|
||||||
|
def _get_vat_validation_fields(self, data):
|
||||||
|
res = super()._get_vat_validation_fields(data)
|
||||||
|
if request.website.sudo().company_id.country_id.code == "AR":
|
||||||
|
res.update({'l10n_latam_identification_type_id': int(data['l10n_latam_identification_type_id'])
|
||||||
|
if data.get('l10n_latam_identification_type_id') else False})
|
||||||
|
res.update({'name': data['name'] if data.get('name') else False})
|
||||||
|
return res
|
||||||
|
|
||||||
|
def checkout_form_validate(self, mode, all_form_values, data):
|
||||||
|
""" We extend the method to add a new validation. If AFIP Resposibility is:
|
||||||
|
|
||||||
|
* Final Consumer or Foreign Customer: then it can select any identification type.
|
||||||
|
* Any other (Monotributista, RI, etc): should select always "CUIT" identification type"""
|
||||||
|
error, error_message = super().checkout_form_validate(mode, all_form_values, data)
|
||||||
|
|
||||||
|
# Identification type and AFIP Responsibility Combination
|
||||||
|
if request.website.sudo().company_id.country_id.code == "AR":
|
||||||
|
if mode[1] == 'billing':
|
||||||
|
if error and any(field in error for field in ['l10n_latam_identification_type_id', 'l10n_ar_afip_responsibility_type_id']):
|
||||||
|
return error, error_message
|
||||||
|
id_type_id = data.get("l10n_latam_identification_type_id")
|
||||||
|
afip_resp_id = data.get("l10n_ar_afip_responsibility_type_id")
|
||||||
|
|
||||||
|
id_type = request.env['l10n_latam.identification.type'].browse(id_type_id) if id_type_id else False
|
||||||
|
afip_resp = request.env['l10n_ar.afip.responsibility.type'].browse(afip_resp_id) if afip_resp_id else False
|
||||||
|
cuit_id_type = request.env.ref('l10n_ar.it_cuit')
|
||||||
|
|
||||||
|
# Check if the AFIP responsibility is different from Final Consumer or Foreign Customer,
|
||||||
|
# and if the identification type is different from CUIT
|
||||||
|
if afip_resp.code not in ['5', '9'] and id_type != cuit_id_type:
|
||||||
|
error["l10n_latam_identification_type_id"] = 'error'
|
||||||
|
error_message.append(_('For the selected AFIP Responsibility you will need to set CUIT Identification Type'))
|
||||||
|
|
||||||
|
return error, error_message
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<function model="ir.model.fields" name="formbuilder_whitelist">
|
||||||
|
<value>res.partner</value>
|
||||||
|
<value eval="[
|
||||||
|
'l10n_ar_afip_responsibility_type_id', 'l10n_latam_identification_type_id',
|
||||||
|
]"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo noupdate="1">
|
||||||
|
|
||||||
|
<record id="default_website_ri" model="website">
|
||||||
|
<field name="name">(AR) Responsable Inscripto Website</field>
|
||||||
|
<field name="company_id" ref="l10n_ar.company_ri"/>
|
||||||
|
<field name="logo" type="base64" file="l10n_ar_website_sale/static/description/icon.png"/>
|
||||||
|
<field name="domain" model="ir.config_parameter" eval="obj().env['ir.config_parameter'].sudo().get_param('web.base.url')"/>
|
||||||
|
</record>
|
||||||
|
<function model="payment.provider" name="copy">
|
||||||
|
<value eval="[ref('payment.payment_provider_transfer')]"/>
|
||||||
|
<value eval="{'company_id': ref('l10n_ar.company_ri'), 'state': 'enabled'}"/>
|
||||||
|
</function>
|
||||||
|
<function model="product.pricelist" name="write">
|
||||||
|
<value model="product.pricelist" eval="obj().search([('currency_id', '=', ref('base.ARS')), ('company_id', '=', ref('l10n_ar.company_ri'))]).id"/>
|
||||||
|
<value model="website" eval="{'sequence': 1, 'website_id': ref('l10n_ar_website_sale.default_website_ri')}"/>
|
||||||
|
</function>
|
||||||
|
<function model="product.product" name="write">
|
||||||
|
<value model="product.product" eval="obj().search([('taxes_id', '=', False)]).ids"/>
|
||||||
|
<value model="account.tax" eval="{'taxes_id': [(4, obj().search([('type_tax_use', '=', 'sale'), ('tax_group_id', '=', ref('l10n_ar.tax_group_iva_21')), ('company_id', '=', ref('l10n_ar.company_ri'))]).id)]}"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * l10n_ar_website_sale
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 16.0+e\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-11-15 10:56+0000\n"
|
||||||
|
"PO-Revision-Date: 2024-11-15 10:56+0000\n"
|
||||||
|
"Last-Translator: María Fernanda Alvarez Ramírez <mfar@odoo.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: es\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:website,contact_us_button_url:l10n_ar_website_sale.default_website_ri
|
||||||
|
msgid "/contactus"
|
||||||
|
msgstr "/contacto"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "<option value=\"\">AFIP Responsibility...</option>"
|
||||||
|
msgstr "<option value=\"\">Responsabilidad AFIP...</option>"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "<option value=\"\">Identification Type...</option>"
|
||||||
|
msgstr "<option value=\"\">Tipo de identificación...</option>"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "AFIP Responsibility"
|
||||||
|
msgstr "Responsabilidad AFIP"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid ""
|
||||||
|
"Changing AFIP Responsibility type is not allowed once document(s) have been "
|
||||||
|
"issued for your account. Please contact us directly for this operation."
|
||||||
|
msgstr ""
|
||||||
|
"No puede cambiar el tipo de responsabilidad AFIP después de que haya emitido "
|
||||||
|
"documentos para su cuenta. Contáctenos para realizar esta operación."
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid ""
|
||||||
|
"Changing Identification type is not allowed once document(s) have been "
|
||||||
|
"issued for your account. Please contact us directly for this operation."
|
||||||
|
msgstr ""
|
||||||
|
"No puede cambiar el tipo de identificación después de que haya emitido "
|
||||||
|
"documentos para su cuenta. Contáctenos para realizar esta operación."
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/l10n_ar_website_sale/controllers/main.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"For the selected AFIP Responsibility you will need to set CUIT "
|
||||||
|
"Identification Type"
|
||||||
|
msgstr ""
|
||||||
|
"Para la responsabilidad AFIP seleccionada debe elegir el tipo de "
|
||||||
|
"identificación CUIT"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "Identification Type"
|
||||||
|
msgstr "Tipo de identificación"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:website,prevent_zero_price_sale_text:l10n_ar_website_sale.default_website_ri
|
||||||
|
msgid "Not Available For Sale"
|
||||||
|
msgstr "No está disponible para la venta"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.address
|
||||||
|
msgid "Number"
|
||||||
|
msgstr "Número"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:ir.model,name:l10n_ar_website_sale.model_website
|
||||||
|
msgid "Website"
|
||||||
|
msgstr "Sitio web"
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * l10n_ar_website_sale
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 16.0+e\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2024-11-15 10:56+0000\n"
|
||||||
|
"PO-Revision-Date: 2024-11-15 10:56+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:website,contact_us_button_url:l10n_ar_website_sale.default_website_ri
|
||||||
|
msgid "/contactus"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "<option value=\"\">AFIP Responsibility...</option>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "<option value=\"\">Identification Type...</option>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "AFIP Responsibility"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid ""
|
||||||
|
"Changing AFIP Responsibility type is not allowed once document(s) have been "
|
||||||
|
"issued for your account. Please contact us directly for this operation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid ""
|
||||||
|
"Changing Identification type is not allowed once document(s) have been "
|
||||||
|
"issued for your account. Please contact us directly for this operation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/l10n_ar_website_sale/controllers/main.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"For the selected AFIP Responsibility you will need to set CUIT "
|
||||||
|
"Identification Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.partner_info
|
||||||
|
msgid "Identification Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:website,prevent_zero_price_sale_text:l10n_ar_website_sale.default_website_ri
|
||||||
|
msgid "Not Available For Sale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model_terms:ir.ui.view,arch_db:l10n_ar_website_sale.address
|
||||||
|
msgid "Number"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_ar_website_sale
|
||||||
|
#: model:ir.model,name:l10n_ar_website_sale.model_website
|
||||||
|
msgid "Website"
|
||||||
|
msgstr ""
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import website
|
||||||
|
from . import sale_order
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
import pytz
|
||||||
|
|
||||||
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class SaleOrder(models.Model):
|
||||||
|
_inherit = "sale.order"
|
||||||
|
|
||||||
|
def _create_invoices(self, grouped=False, final=False, date=None):
|
||||||
|
""" EXTENDS 'sale'
|
||||||
|
Necessary because if someone creates an invoice after 9 pm Argentina time, if the invoice is created
|
||||||
|
automatically, then it is created with the date of the next day (UTC date) instead of today.
|
||||||
|
|
||||||
|
This fix is necessary because it causes problems validating invoices in ARCA (ex AFIP), since when generating
|
||||||
|
the invoice with the date of the next day, no more invoices could be generated with today's date.
|
||||||
|
|
||||||
|
We took the same approach that was used in the POS module to set the date, in this case always forcing the
|
||||||
|
Argentina timezone """
|
||||||
|
invoices = super()._create_invoices(grouped=grouped, final=final, date=date)
|
||||||
|
for invoice in invoices:
|
||||||
|
if invoice.country_code == 'AR':
|
||||||
|
timezone = pytz.timezone('America/Buenos_Aires')
|
||||||
|
context_today_ar = fields.Datetime.now().astimezone(timezone).date()
|
||||||
|
invoice.invoice_date = context_today_ar
|
||||||
|
return invoices
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import models
|
||||||
|
|
||||||
|
|
||||||
|
class Website(models.Model):
|
||||||
|
_inherit = "website"
|
||||||
|
|
||||||
|
def _display_partner_b2b_fields(self):
|
||||||
|
""" Argentinean localization must always display b2b fields """
|
||||||
|
self.ensure_one()
|
||||||
|
return self.company_id.country_id.code == "AR" or super()._display_partner_b2b_fields()
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
from . import test_invoice
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import fields
|
||||||
|
from odoo.tests import tagged
|
||||||
|
from odoo.tools import mute_logger
|
||||||
|
from freezegun import freeze_time
|
||||||
|
|
||||||
|
from odoo.addons.account_payment.tests.common import AccountPaymentCommon
|
||||||
|
from odoo.addons.sale.tests.common import SaleCommon
|
||||||
|
from odoo.addons.l10n_ar.tests.common import TestAr
|
||||||
|
|
||||||
|
|
||||||
|
@tagged('-at_install', 'post_install', 'post_install_l10n')
|
||||||
|
class TestWebsiteSaleInvoice(AccountPaymentCommon, SaleCommon, TestAr):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super().setUpClass()
|
||||||
|
cls.website = cls.env['website'].create({'name': 'Test AR Website'})
|
||||||
|
|
||||||
|
def test_website_automatic_invoice_date(self):
|
||||||
|
# Set automatic invoice
|
||||||
|
self.env['ir.config_parameter'].sudo().set_param('sale.automatic_invoice', 'True')
|
||||||
|
self.frozen_today = "2025-01-24T21:10:00"
|
||||||
|
with freeze_time(self.frozen_today, tz_offset=3):
|
||||||
|
|
||||||
|
# Prepare values needed for AR invoice generation: Tax in all lines, and AFIP responsibility partner
|
||||||
|
self.sale_order.order_line.write({'tax_id': self.company_data['default_tax_sale']})
|
||||||
|
self.sale_order.partner_id = self.partner_cf
|
||||||
|
self.sale_order.currency_id = self.env.ref('base.ARS')
|
||||||
|
|
||||||
|
# Create SO on Test Website
|
||||||
|
self.sale_order.website_id = self.website.id
|
||||||
|
|
||||||
|
# Create the payment and invoices
|
||||||
|
self.amount = self.sale_order.amount_total
|
||||||
|
tx = self._create_transaction(flow='redirect', sale_order_ids=[self.sale_order.id], state='done')
|
||||||
|
with mute_logger('odoo.addons.sale.models.payment_transaction'):
|
||||||
|
tx.with_context(l10n_ar_invoice_skip_commit=True)._reconcile_after_done()
|
||||||
|
|
||||||
|
invoice = self.sale_order.invoice_ids
|
||||||
|
self.assertTrue(invoice, "Do not create the invoice")
|
||||||
|
self.assertEqual(invoice.state, "posted", "the invoice was not posted")
|
||||||
|
self.assertEqual(fields.Datetime.now().date().strftime("%Y-%m-%d"), '2025-01-25', "UCT should be next day")
|
||||||
|
self.assertEqual(invoice.invoice_date.strftime('%Y-%m-%d'), '2025-01-24', "Should be AR current date")
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<template id="partner_info" name="Argentinean partner">
|
||||||
|
|
||||||
|
<!-- show afip responsibility -->
|
||||||
|
<div t-attf-class="mb-3 #{error.get('l10n_ar_afip_responsibility_type_id') and 'o_has_error' or ''} col-xl-6">
|
||||||
|
<label class="col-form-label" for="l10n_ar_afip_responsibility_type_id">AFIP Responsibility</label>
|
||||||
|
<t t-if="partner.can_edit_vat()">
|
||||||
|
<select name="l10n_ar_afip_responsibility_type_id" t-attf-class="form-select #{error.get('l10n_ar_afip_responsibility_type_id') and 'is-invalid' or ''}">
|
||||||
|
<option value="">AFIP Responsibility...</option>
|
||||||
|
<t t-foreach="responsibility_types or []" t-as="resp_type">
|
||||||
|
<option t-att-value="resp_type.id" t-att-selected="resp_type.id == int(responsibility) if responsibility else resp_type.id == partner.l10n_ar_afip_responsibility_type_id.id">
|
||||||
|
<t t-esc="resp_type.name"/>
|
||||||
|
</option>
|
||||||
|
</t>
|
||||||
|
</select>
|
||||||
|
</t>
|
||||||
|
<t t-else="">
|
||||||
|
<p class="form-control" t-esc="partner.l10n_ar_afip_responsibility_type_id.name" readonly="1" title="Changing AFIP Responsibility type is not allowed once document(s) have been issued for your account. Please contact us directly for this operation."/>
|
||||||
|
<input name="l10n_ar_afip_responsibility_type_id" class="form-control" t-att-value="partner.l10n_ar_afip_responsibility_type_id.id" type='hidden'/>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- show identification type -->
|
||||||
|
<div t-attf-class="mb-3 #{error.get('l10n_latam_identification_type_id') and 'o_has_error' or ''} col-xl-6">
|
||||||
|
<label class="col-form-label" for="l10n_latam_identification_type_id">Identification Type</label>
|
||||||
|
<t t-if="partner.can_edit_vat()">
|
||||||
|
<select name="l10n_latam_identification_type_id" t-attf-class="form-select #{error.get('l10n_latam_identification_type_id') and 'is-invalid' or ''}">
|
||||||
|
<option value="">Identification Type...</option>
|
||||||
|
<t t-foreach="identification_types or []" t-as="id_type">
|
||||||
|
<option t-att-value="id_type.id" t-att-selected="id_type.id == int(identification) if identification else id_type.id == partner.l10n_latam_identification_type_id.id">
|
||||||
|
<t t-esc="id_type.name"/>
|
||||||
|
</option>
|
||||||
|
</t>
|
||||||
|
</select>
|
||||||
|
</t>
|
||||||
|
<t t-else="">
|
||||||
|
<p class="form-control" t-esc="partner.l10n_latam_identification_type_id.name" readonly="1" title="Changing Identification type is not allowed once document(s) have been issued for your account. Please contact us directly for this operation."/>
|
||||||
|
<input name="l10n_latam_identification_type_id" class="form-control" t-att-value="partner.l10n_latam_identification_type_id.id" type='hidden'/>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="address" inherit_id="website_sale.address">
|
||||||
|
<xpath expr="//input[@name='vat']/.." position="before">
|
||||||
|
<t t-if="mode[1] == 'billing'" positon="inside">
|
||||||
|
<t t-if="res_company.country_id.code == 'AR'">
|
||||||
|
<t t-set="partner" t-value="website_sale_order.partner_id"/>
|
||||||
|
<t t-call="l10n_ar_website_sale.partner_info"/>
|
||||||
|
</t>
|
||||||
|
</t>
|
||||||
|
</xpath>
|
||||||
|
<label for="vat" position="attributes">
|
||||||
|
<attribute name="t-if">res_company.country_id.code != 'AR'</attribute>
|
||||||
|
</label>
|
||||||
|
<label for="vat" position="after">
|
||||||
|
<label t-if="res_company.country_id.code == 'AR'" class="col-form-label label-optional" for="vat">Number</label>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
43
odoo-bringout-oca-ocb-l10n_ar_website_sale/pyproject.toml
Normal file
43
odoo-bringout-oca-ocb-l10n_ar_website_sale/pyproject.toml
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
[project]
|
||||||
|
name = "odoo-bringout-oca-ocb-l10n_ar_website_sale"
|
||||||
|
version = "16.0.0"
|
||||||
|
description = "Argentinean eCommerce - Odoo addon"
|
||||||
|
authors = [
|
||||||
|
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
"odoo-bringout-oca-ocb-website_sale>=16.0.0",
|
||||||
|
"odoo-bringout-oca-ocb-l10n_ar>=16.0.0",
|
||||||
|
"requests>=2.25.1"
|
||||||
|
]
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">= 3.11"
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
|
"Topic :: Office/Business",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
homepage = "https://github.com/bringout/0"
|
||||||
|
repository = "https://github.com/bringout/0"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["hatchling"]
|
||||||
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
|
[tool.hatch.metadata]
|
||||||
|
allow-direct-references = true
|
||||||
|
|
||||||
|
[tool.hatch.build.targets.wheel]
|
||||||
|
packages = ["l10n_ar_website_sale"]
|
||||||
|
|
||||||
|
[tool.rye]
|
||||||
|
managed = true
|
||||||
|
dev-dependencies = [
|
||||||
|
"pytest>=8.4.1",
|
||||||
|
]
|
||||||
59
odoo-bringout-oca-ocb-l10n_at/README.md
Normal file
59
odoo-bringout-oca-ocb-l10n_at/README.md
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
# Austria - Accounting
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Austrian charts of accounts (Einheitskontenrahmen 2010).
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
* Defines the following chart of account templates:
|
||||||
|
* Austrian General Chart of accounts 2010
|
||||||
|
* Defines templates for VAT on sales and purchases
|
||||||
|
* Defines tax templates
|
||||||
|
* Defines fiscal positions for Austrian fiscal legislation
|
||||||
|
* Defines tax reports U1/U30
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_at
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
- account
|
||||||
|
- base_iban
|
||||||
|
- base_vat
|
||||||
|
- l10n_din5008
|
||||||
|
|
||||||
|
## Manifest Information
|
||||||
|
|
||||||
|
- **Name**: Austria - Accounting
|
||||||
|
- **Version**: 3.1.1
|
||||||
|
- **Category**: Accounting/Localizations/Account Charts
|
||||||
|
- **License**: LGPL-3
|
||||||
|
- **Installable**: False
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_at`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This package maintains the original LGPL-3 license from the upstream Odoo project.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- Overview: doc/OVERVIEW.md
|
||||||
|
- Architecture: doc/ARCHITECTURE.md
|
||||||
|
- Models: doc/MODELS.md
|
||||||
|
- Controllers: doc/CONTROLLERS.md
|
||||||
|
- Wizards: doc/WIZARDS.md
|
||||||
|
- Install: doc/INSTALL.md
|
||||||
|
- Usage: doc/USAGE.md
|
||||||
|
- Configuration: doc/CONFIGURATION.md
|
||||||
|
- Dependencies: doc/DEPENDENCIES.md
|
||||||
|
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||||
|
- FAQ: doc/FAQ.md
|
||||||
32
odoo-bringout-oca-ocb-l10n_at/doc/ARCHITECTURE.md
Normal file
32
odoo-bringout-oca-ocb-l10n_at/doc/ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||||
|
V --> C[Controllers]
|
||||||
|
V --> W[Wizards – Transient Models]
|
||||||
|
C --> M[Models and ORM]
|
||||||
|
W --> M
|
||||||
|
M --> R[Reports]
|
||||||
|
DX[Data XML] --> M
|
||||||
|
S[Security – ACLs and Groups] -. enforces .-> M
|
||||||
|
|
||||||
|
subgraph L10n_at Module - l10n_at
|
||||||
|
direction LR
|
||||||
|
M:::layer
|
||||||
|
W:::layer
|
||||||
|
C:::layer
|
||||||
|
V:::layer
|
||||||
|
R:::layer
|
||||||
|
S:::layer
|
||||||
|
DX:::layer
|
||||||
|
end
|
||||||
|
|
||||||
|
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Views include tree/form/kanban templates and report templates.
|
||||||
|
- Controllers provide website/portal routes when present.
|
||||||
|
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||||
|
- Data XML loads data/demo records; Security defines groups and access.
|
||||||
3
odoo-bringout-oca-ocb-l10n_at/doc/CONFIGURATION.md
Normal file
3
odoo-bringout-oca-ocb-l10n_at/doc/CONFIGURATION.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
Refer to Odoo settings for l10n_at. Configure related models, access rights, and options as needed.
|
||||||
3
odoo-bringout-oca-ocb-l10n_at/doc/CONTROLLERS.md
Normal file
3
odoo-bringout-oca-ocb-l10n_at/doc/CONTROLLERS.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Controllers
|
||||||
|
|
||||||
|
This module does not define custom HTTP controllers.
|
||||||
8
odoo-bringout-oca-ocb-l10n_at/doc/DEPENDENCIES.md
Normal file
8
odoo-bringout-oca-ocb-l10n_at/doc/DEPENDENCIES.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
|
||||||
|
- [account](../../odoo-bringout-oca-ocb-account)
|
||||||
|
- [base_iban](../../odoo-bringout-oca-ocb-base_iban)
|
||||||
|
- [base_vat](../../odoo-bringout-oca-ocb-base_vat)
|
||||||
|
- [l10n_din5008](../../odoo-bringout-oca-ocb-l10n_din5008)
|
||||||
4
odoo-bringout-oca-ocb-l10n_at/doc/FAQ.md
Normal file
4
odoo-bringout-oca-ocb-l10n_at/doc/FAQ.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# FAQ
|
||||||
|
|
||||||
|
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||||
|
- Q: How to enable? A: Start server with --addon l10n_at or install in UI.
|
||||||
7
odoo-bringout-oca-ocb-l10n_at/doc/INSTALL.md
Normal file
7
odoo-bringout-oca-ocb-l10n_at/doc/INSTALL.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-l10n_at"
|
||||||
|
# or
|
||||||
|
uv pip install odoo-bringout-oca-ocb-l10n_at"
|
||||||
|
```
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue