odoo18/addons/l10n_gr_edi/models/preferred_classification.py

968 lines
54 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from odoo import api, fields, models
CLASSIFICATION_MAP = {
'1.1': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_002', 'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_001',),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_564', 'E3_565', 'E3_566', 'E3_567', 'E3_568', 'E3_570',
'E3_561_002'),
'category1_7': ('E3_881_001', 'E3_881_003', 'E3_881_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': ('E3_596', 'E3_597'),
'category2_1': ('E3_102_001', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_005', 'E3_302_001', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_102_001', 'E3_102_003', 'E3_102_004', 'E3_102_005', 'E3_202_003',
'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_882_001', 'E3_883_001', 'E3_102_001', 'E3_102_003', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_001', 'E3_883_001'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'1.2': {
'category1_1': ('E3_561_005', 'E3_561_007'),
'category1_2': ('E3_561_005', 'E3_561_007'),
'category1_3': ('E3_561_005', 'E3_561_007'),
'category1_4': ('E3_880_003',),
'category1_5': ('E3_561_005', 'E3_561_007', 'E3_562', 'E3_570'),
'category1_7': ('E3_881_003',),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'1.3': {
'category1_1': ('E3_561_006', 'E3_561_007'),
'category1_2': ('E3_561_006', 'E3_561_007'),
'category1_3': ('E3_561_006', 'E3_561_007'),
'category1_4': ('E3_880_004',),
'category1_5': ('E3_561_006', 'E3_561_007', 'E3_562', 'E3_570'),
'category1_7': ('E3_881_004',),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'1.4': {
'category1_7': ('E3_881_001', 'E3_881_003', 'E3_881_004'),
'category1_95': 'blank',
'category2_1': ('E3_102_001', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_005', 'E3_302_001', 'E3_302_005'),
'category2_4': ('E3_585_002', 'E3_585_005', 'E3_585_006', 'E3_585_016', 'E3_102_004', 'E3_102_005',
'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004',
'E3_581_003'),
'category2_5': ('E3_585_002', 'E3_585_005', 'E3_585_006', 'E3_585_016', 'E3_882_001', 'E3_883_001',
'E3_102_004', 'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004',
'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_001', 'E3_883_001'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'1.5': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_007'),
'category1_4': ('E3_880_001', 'E3_880_003', 'E3_880_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category2_3': ('E3_585_009',),
'category2_4': ('E3_585_009',),
'category2_5': ('E3_585_009',),
'category2_9': 'blank',
'category2_10': 'all_above',
'category2_11': 'all_above',
},
'1.6': 'associate',
'2.1': {
'category1_3': ('E3_561_001', 'E3_561_002', 'E3_561_007', 'E3_563'),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_564', 'E3_565', 'E3_566', 'E3_567', 'E3_568', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
'category2_1': ('E3_102_001', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_005', 'E3_302_001', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_102_001', 'E3_102_003', 'E3_102_004', 'E3_102_005', 'E3_202_003',
'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_882_001', 'E3_883_001', 'E3_102_001', 'E3_102_003', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_001', 'E3_883_001'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'2.2': {
'category1_3': ('E3_561_005', 'E3_561_007', 'E3_563'),
'category1_5': ('E3_561_005', 'E3_561_007', 'E3_562', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'2.3': {
'category1_3': ('E3_561_006', 'E3_561_007', 'E3_563'),
'category1_5': ('E3_561_006', 'E3_561_007', 'E3_562', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'2.4': 'associate',
'3.1': {
'category2_1': ('E3_102_002', 'E3_102_003', 'E3_102_006', 'E3_313_002', 'E3_313_005'),
'category2_2': ('E3_202_002', 'E3_202_005', 'E3_302_002', 'E3_302_005'),
'category2_3': ('E3_585_004', 'E3_585_009', 'E3_585_016'),
'category2_5': ('E3_585_004', 'E3_585_016', 'E3_586'),
'category2_7': ('E3_882_002', 'E3_883_002'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'3.2': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_001',),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_564', 'E3_565', 'E3_566', 'E3_567', 'E3_568', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': ('E3_596', 'E3_597'),
'category2_1': ('E3_102_001', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_005', 'E3_302_001', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_882_001', 'E3_883_001', 'E3_102_004', 'E3_102_005', 'E3_202_003',
'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_001', 'E3_883_001'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'5.1': 'associate',
'5.2': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_005', 'E3_561_006', 'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_005', 'E3_561_006', 'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_002', 'E3_561_005', 'E3_561_006', 'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_001', 'E3_880_003', 'E3_880_004'),
'category1_5': ('E3_561_005', 'E3_561_006', 'E3_561_007', 'E3_562', 'E3_563', 'E3_564', 'E3_565', 'E3_566',
'E3_567', 'E3_568', 'E3_570', 'E3_561_002'),
'category1_7': ('E3_881_001', 'E3_881_003', 'E3_881_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': ('E3_596', 'E3_597'),
'category2_1': ('E3_102_001', 'E3_102_002', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_002',
'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_002', 'E3_202_005', 'E3_302_001', 'E3_302_002', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_102_004', 'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003',
'E3_302_004', 'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_882_001', 'E3_883_001', 'E3_102_004', 'E3_102_005', 'E3_202_003',
'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_001', 'E3_882_002', 'E3_883_001', 'E3_883_002'),
'category2_9': 'blank',
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'6.1': {
'category1_6': ('E3_595',),
'category1_95': 'blank',
},
'6.2': {
'category1_6': ('E3_595',),
'category1_95': 'blank',
},
'7.1': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_007'),
'category1_4': ('E3_880_001',),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
'category2_1': ('E3_102_001', 'E3_102_003', 'E3_102_006', 'E3_313_001', 'E3_313_005'),
'category2_2': ('E3_202_001', 'E3_202_005', 'E3_302_001', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_012', 'E3_585_011', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_102_004', 'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003',
'E3_302_004', 'E3_313_003', 'E3_313_004'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_004', 'E3_585_005', 'E3_585_006', 'E3_585_008',
'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015',
'E3_585_016', 'E3_586', 'E3_882_001', 'E3_883_001', 'E3_102_004', 'E3_102_005', 'E3_202_003',
'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003', 'E3_313_004'),
'category2_7': ('E3_882_001', 'E3_883_001'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'8.1': {
'category1_3': ('E3_561_001',),
'category1_5': ('E3_562',),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
'category2_4': ('E3_585_014', 'E3_585_016'),
'category2_5': ('E3_585_014', 'E3_585_016'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'8.2': {
'category1_95': 'blank',
'category2_5': ('E3_585_005', 'E3_585_006', 'E3_585_016'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'11.1': {
'category1_1': ('E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006', 'E3_561_007'),
'category1_2': ('E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006', 'E3_561_007'),
'category1_3': ('E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006', 'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_002', 'E3_880_003', 'E3_880_004', 'E3_561_007'),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_570'),
'category1_7': ('E3_881_002', 'E3_881_003', 'E3_881_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'11.2': {
'category1_3': ('E3_561_003', 'E3_561_005', 'E3_561_006', 'E3_561_007', 'E3_563'),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_570'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'11.3': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_002', 'E3_880_003', 'E3_880_004', 'E3_561_007'),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_570'),
'category1_7': ('E3_881_002', 'E3_881_003', 'E3_881_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'11.4': {
'category1_1': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007'),
'category1_2': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007'),
'category1_3': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007', 'E3_563'),
'category1_4': ('E3_880_002', 'E3_880_003', 'E3_880_004', 'E3_561_007'),
'category1_5': ('E3_561_007', 'E3_562', 'E3_563', 'E3_570'),
'category1_7': ('E3_881_002', 'E3_881_003', 'E3_881_004'),
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_95': 'blank',
},
'11.5': {
'category1_7': ('E3_881_002', 'E3_881_003', 'E3_881_004'),
'category1_95': 'blank',
},
'13.1': {
'category2_1': ('E3_102_002', 'E3_102_006', 'E3_313_002', 'E3_313_005'),
'category2_2': ('E3_202_002', 'E3_202_005', 'E3_302_002', 'E3_302_005'),
'category2_3': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_002', 'E3_883_002'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'13.2': {
'category2_3': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'13.3': {
'category2_3': ('E3_585_016',),
'category2_5': ('E3_585_016',),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'13.4': {
'category2_3': ('E3_585_016',),
'category2_5': ('E3_585_016',),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'13.30': {
'category2_3': ('E3_585_016', 'E3_586'),
'category2_5': ('E3_585_016', 'E3_586', 'E3_588'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'13.31': {
'category2_1': ('E3_102_002', 'E3_102_006', 'E3_313_002', 'E3_313_005'),
'category2_2': ('E3_202_002', 'E3_202_005', 'E3_302_002', 'E3_302_005'),
'category2_3': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_5': ('E3_585_005', 'E3_585_006', 'E3_585_009', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_002', 'E3_883_002', 'E3_102_002', 'E3_102_004',
'E3_102_005', 'E3_202_003', 'E3_202_004', 'E3_302_003', 'E3_302_004', 'E3_313_003',
'E3_313_004', 'E3_581_003'),
'category2_7': ('E3_882_002', 'E3_883_002'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.1': {
'category2_1': ('E3_102_004', 'E3_102_006', 'E3_313_003', 'E3_313_005'),
'category2_2': ('E3_202_003', 'E3_202_005', 'E3_302_003', 'E3_302_005'),
'category2_4': ('E3_585_002', 'E3_585_003', 'E3_585_016', 'E3_882_003', 'E3_883_003', 'E3_581_003'),
'category2_5': ('E3_585_002', 'E3_585_003', 'E3_585_016', 'E3_882_003', 'E3_883_003', 'E3_581_003'),
'category2_7': ('E3_882_003', 'E3_883_003'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.2': {
'category2_1': ('E3_102_005', 'E3_102_006', 'E3_313_004', 'E3_313_005'),
'category2_2': ('E3_202_004', 'E3_202_005', 'E3_302_004', 'E3_302_005'),
'category2_4': ('E3_585_002', 'E3_585_003', 'E3_585_016', 'E3_882_004', 'E3_883_004', 'E3_581_003'),
'category2_5': ('E3_585_002', 'E3_585_003', 'E3_585_016', 'E3_882_004', 'E3_883_004', 'E3_581_003'),
'category2_7': ('E3_882_004', 'E3_883_004'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.3': {
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_102_004', 'E3_102_006', 'E3_202_003',
'E3_202_005', 'E3_302_003', 'E3_302_005', 'E3_313_003', 'E3_313_005', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_003', 'E3_883_003', 'E3_102_004',
'E3_102_006', 'E3_202_003', 'E3_202_005', 'E3_302_003', 'E3_302_005', 'E3_313_003',
'E3_313_005', 'E3_581_003'),
'category2_7': ('E3_882_003', 'E3_883_003'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.4': {
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_102_005', 'E3_102_006', 'E3_202_004',
'E3_202_005', 'E3_302_004', 'E3_302_005', 'E3_313_004', 'E3_313_005', 'E3_581_003'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_882_004', 'E3_883_004', 'E3_102_005',
'E3_102_006', 'E3_202_004', 'E3_202_005', 'E3_302_004', 'E3_302_005', 'E3_313_004',
'E3_313_005', 'E3_581_003'),
'category2_7': ('E3_882_004', 'E3_883_004'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.5': {
'category2_5': ('E3_585_007', 'E3_588'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.30': {
'category2_3': ('E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_016', 'E3_586'),
'category2_4': ('E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_016', 'E3_586'),
'category2_5': ('E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_016', 'E3_586'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'14.31': {
'category2_1': ('E3_102_004', 'E3_102_005', 'E3_102_006', 'E3_313_003', 'E3_313_004', 'E3_313_005'),
'category2_2': ('E3_202_003', 'E3_202_004', 'E3_202_005', 'E3_302_003', 'E3_302_004', 'E3_302_005'),
'category2_3': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_015', 'E3_585_016', 'E3_586',
'E3_581_003'),
'category2_4': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_010', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_015', 'E3_585_016', 'E3_586',
'E3_102_004', 'E3_102_005', 'E3_102_006', 'E3_202_003', 'E3_202_004', 'E3_202_005',
'E3_302_003', 'E3_302_004', 'E3_302_005', 'E3_313_003', 'E3_313_004', 'E3_313_005',
'E3_581_003', 'E3_882_003', 'E3_883_003', 'E3_882_004', 'E3_883_004'),
'category2_5': ('E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005', 'E3_585_006',
'E3_585_007', 'E3_585_010', 'E3_585_011', 'E3_585_012', 'E3_585_013', 'E3_585_014',
'E3_585_015', 'E3_585_016', 'E3_586', 'E3_102_004', 'E3_102_005', 'E3_102_006', 'E3_202_003',
'E3_202_004', 'E3_202_005', 'E3_302_003', 'E3_302_004', 'E3_302_005', 'E3_313_003',
'E3_313_004', 'E3_313_005', 'E3_581_003', 'E3_882_003', 'E3_882_004', 'E3_883_003',
'E3_883_004'),
'category2_7': ('E3_882_003', 'E3_882_004', 'E3_883_003', 'E3_883_004'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'15.1': {
'category2_1': ('E3_102_002', 'E3_102_006', 'E3_313_002', 'E3_313_005'),
'category2_2': ('E3_202_002', 'E3_202_005', 'E3_302_002', 'E3_302_005'),
'category2_3': ('E3_585_004', 'E3_585_016'),
'category2_5': ('E3_585_004', 'E3_585_016'),
'category2_7': ('E3_882_002', 'E3_883_002'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'16.1': {
'category2_5': ('E3_585_014', 'E3_585_016'),
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_95': 'blank',
},
'17.1': {
'category2_6': ('E3_581_001', 'E3_581_002', 'E3_581_003'),
'category2_95': 'blank',
},
'17.2': {
'category2_8': ('E3_587',),
'category2_95': 'blank',
},
'17.3': {
'category1_8': 'all_above',
'category1_9': 'all_above',
'category1_10': ('E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004', 'E3_561_005', 'E3_561_006',
'E3_561_007', 'E3_562', 'E3_563', 'E3_595', 'E3_596', 'E3_597', 'E3_880_001', 'E3_880_002',
'E3_880_003', 'E3_880_004', 'E3_881_001', 'E3_881_002', 'E3_881_003', 'E3_881_004', 'E3_564',
'E3_565', 'E3_566', 'E3_567', 'E3_568', 'E3_570'),
'category1_95': 'blank',
},
'17.4': {
'category1_10': 'blank',
'category1_95': 'blank',
},
'17.5': {
'category2_10': 'all_above',
'category2_11': 'all_above',
'category2_12': (
'E3_102_001', 'E3_102_002', 'E3_102_003', 'E3_102_004', 'E3_102_005', 'E3_102_006', 'E3_202_001',
'E3_202_002', 'E3_202_003', 'E3_202_004', 'E3_202_005', 'E3_302_001', 'E3_302_002', 'E3_302_003',
'E3_302_004', 'E3_302_005', 'E3_313_001', 'E3_313_002', 'E3_313_003', 'E3_313_004', 'E3_313_005',
'E3_581_001', 'E3_581_002', 'E3_581_003', 'E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004',
'E3_585_005', 'E3_585_006', 'E3_585_007', 'E3_585_008', 'E3_585_009', 'E3_585_010', 'E3_585_011',
'E3_585_012', 'E3_585_013', 'E3_585_014', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_587', 'E3_882_001',
'E3_882_002', 'E3_882_003', 'E3_882_004', 'E3_883_001', 'E3_883_002', 'E3_883_003', 'E3_883_004', 'E3_582',
'E3_583', 'E3_584', 'E3_588', 'E3_589', 'E3_103', 'E3_203', 'E3_303', 'E3_208', 'E3_308', 'E3_314',
'XE3_106', 'XE3_205', 'XE3_305', 'XE3_210', 'XE3_310', 'XE3_318'
),
'category2_13': ('E3_101', 'E3_201', 'E3_301', 'E3_207', 'E3_307', 'E3_312'),
'category2_14': ('E3_104', 'E3_204', 'E3_304', 'E3_209', 'E3_309', 'E3_315'),
'category2_95': 'blank',
},
'17.6': {
'category2_12': 'blank',
'category2_95': 'blank',
},
}
INVOICE_TYPES_SELECTION = [
('1.1', '1.1 - Sales Invoice'),
('1.2', '1.2 - Sales Invoice/Intra-community Supplies'),
('1.3', '1.3 - Sales Invoice/Third Country Supplies'),
('1.4', '1.4 - Sales Invoice/Sale on Behalf of Third Parties'),
('1.5', '1.5 - Sales Invoice/Clearance of Sales on Behalf of Third Parties Fees from Sales on Behalf of Third Parties'),
('1.6', '1.6 - Sales Invoice/Supplemental Accounting Source Document'),
('2.1', '2.1 - Service Rendered Invoice'),
('2.2', '2.2 - Intra-community Service Rendered Invoice'),
('2.3', '2.3 - Third Country Service Rendered Invoice'),
('2.4', '2.4 - Service Rendered Invoice/Supplemental Accounting Source Document'),
('3.1', '3.1 - Proof of Expenditure (non-liable Issuer)'),
('3.2', '3.2 - Proof of Expenditure (denial of issuance by liable Issuer)'),
('5.1', '5.1 - Credit Invoice/Associated'),
('5.2', '5.2 - Credit Invoice/Non-Associated'),
('6.1', '6.1 - Self-Delivery Record'),
('6.2', '6.2 - Self-Supply Record'),
('7.1', '7.1 - Contract Income'),
('8.1', '8.1 - Rents Income'),
('8.2', '8.2 - Special Record Accommodation Tax Collection/Payment Receipt'),
('11.1', '11.1 - Retail Sales Receipt'),
('11.2', '11.2 - Service Rendered Receipt'),
('11.3', '11.3 - Simplified Invoice'),
('11.4', '11.4 - Retail Sales Credit Note'),
('11.5', '11.5 - Retail Sales Receipt on Behalf of Third Parties'),
('13.1', '13.1 - Expenses Domestic/Foreign Retail Transaction Purchases'),
('13.2', '13.2 - Domestic/Foreign Retail Transaction Provision'),
('13.3', '13.3 - Shared Utility Bills'),
('13.4', '13.4 - Subscriptions'),
('13.30', '13.30 - Self-Declared Entity Accounting Source Documents (Dynamic)'),
('13.31', '13.31 - Domestic/Foreign Retail Sales Credit Note'),
('14.1', '14.1 - Invoice/Intra-community Acquisitions'),
('14.2', '14.2 - Invoice/Third Country Acquisitions'),
('14.3', '14.3 - Invoice/Intra-community Services Receipt'),
('14.4', '14.4 - Invoice/Third Country Services Receipt'),
('14.5', '14.5 - EFKA'),
('14.30', '14.30 - Self-Declared Entity Accounting Source Documents (Dynamic)'),
('14.31', '14.31 - Domestic/Foreign Credit Note'),
('15.1', '15.1 - Contract-Expense'),
('16.1', '16.1 - Rent-Expense'),
('17.1', '17.1 - Payroll'),
('17.2', '17.2 - Amortisations'),
('17.3', '17.3 - Other Income Adjustment/Regularisation Entries Accounting Base'),
('17.4', '17.4 - Other Income Adjustment/Regularisation Entries Tax Base'),
('17.5', '17.5 - Other Expense Adjustment/Regularisation Entries Accounting Base'),
('17.6', '17.6 - Other Expense Adjustment/Regularisation Entries Tax Base'),
]
CLASSIFICATION_CATEGORY_SELECTION = [
# Income classification categories
('category1_1', '1.1 - Commodity Sale Income'),
('category1_2', '1.2 - Product Sale Income'),
('category1_3', '1.3 - Provision of Services Income'),
('category1_4', '1.4 - Sale of Fixed Assets Income'),
('category1_5', '1.5 - Other Income/Profits'),
('category1_6', '1.6 - Self-Deliveries/Self-Supplies'),
('category1_7', '1.7 - Income on behalf of Third Parties'),
('category1_8', '1.8 - Past fiscal years income'),
('category1_9', '1.9 - Future fiscal years income'),
('category1_10', '1.10 - Other Income Adjustment/Regularisation Entries'),
('category1_95', '1.95 - Other Income-related Information'),
# Expense classification categories
('category2_1', '2.1 - Commodity Purchases'),
('category2_2', '2.2 - Raw and Adjuvant Material Purchases'),
('category2_3', '2.3 - Services Receipt'),
('category2_4', '2.4 - General Expenses Subject to VAT Deduction'),
('category2_5', '2.5 - General Expenses Not Subject to VAT Deduction'),
('category2_6', '2.6 - Personnel Fees and Benefits'),
('category2_7', '2.7 - Fixed Asset Purchases'),
('category2_8', '2.8 - Fixed Asset Amortisations'),
('category2_9', '2.9 - Expenses on behalf of Third Parties'),
('category2_10', '2.10 - Past fiscal years expenses'),
('category2_11', '2.11 - Future fiscal years expenses'),
('category2_12', '2.12 - Other Expense Adjustment/Regularisation Entries'),
('category2_13', '2.13 - Stock at Period Start'),
('category2_14', '2.14 - Stock at Period End'),
('category2_95', '2.95 - Other Expense-related Information'),
]
CLASSIFICATION_TYPE_SELECTION = [
# Income classification types
('E3_106', 'E3_106 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Commodities'),
('E3_205', 'E3_205 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Raw and other materials'),
('E3_210', 'E3_210 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Products and production in progress'),
('E3_305', 'E3_305 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Raw and other materials'),
('E3_310', 'E3_310 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Products and production in progress'),
('E3_318', 'E3_318 - Self-Production of Fixed Assets Self-Deliveries Destroying inventory/Production expenses'),
('E3_561_001', 'E3_561_001 - Wholesale Sales of Goods and Services for Traders'),
('E3_561_002', 'E3_561_002 - Wholesale Sales of Goods and Services pursuant to article 39a paragraph 5 of the VAT Code (Law 2859/2000)'),
('E3_561_003', 'E3_561_003 - Retail Sales of Goods and Services Private Clientele'),
('E3_561_004', 'E3_561_004 - Retail Sales of Goods and Services pursuant to article 39a paragraph 5 of the VAT Code (Law 2859/2000)'),
('E3_561_005', 'E3_561_005 - Intra-Community Foreign Sales of Goods and Services'),
('E3_561_006', 'E3_561_006 - Third Country Foreign Sales of Goods and Services'),
('E3_561_007', 'E3_561_007 - Other Sales of Goods and Services'),
('E3_562', 'E3_562 - Other Ordinary Income'),
('E3_563', 'E3_563 - Credit Interest and Related Income'),
('E3_564', 'E3_564 - Credit Exchange Differences'),
('E3_565', 'E3_565 - Income from Participations'),
('E3_566', 'E3_566 - Profits from Disposing Non-Current Assets'),
('E3_567', 'E3_567 - Profits from the Reversal of Provisions and Impairments'),
('E3_568', 'E3_568 - Profits from Measurement at Fair Value'),
('E3_570', 'E3_570 - Extraordinary income and profits'),
('E3_595', 'E3_595 - Self-Production Expenses'),
('E3_596', 'E3_596 - Subsidies - Grants'),
('E3_597', 'E3_597 - Subsidies Grants for Investment Purposes Expense Coverage'),
('E3_880_001', 'E3_880_001 - Wholesale Sales of Fixed Assets'),
('E3_880_002', 'E3_880_002 - Retail Sales of Fixed Assets'),
('E3_880_003', 'E3_880_003 - Intra-Community Foreign Sales of Fixed Assets'),
('E3_880_004', 'E3_880_004 - Third Country Foreign Sales of Fixed Assets'),
('E3_881_001', 'E3_881_001 - Wholesale Sales on behalf of Third Parties'),
('E3_881_002', 'E3_881_002 - Retail Sales on behalf of Third Parties'),
('E3_881_003', 'E3_881_003 - Intra-Community Foreign Sales on behalf of Third Parties'),
('E3_881_004', 'E3_881_004 - Third Country Foreign Sales on behalf of Third Parties'),
('E3_598_001', 'E3_598_001 - Sales of goods belonging to excise duty'),
('E3_598_003', 'E3_598_003 - Sales on behalf of farmers through an agricultural cooperative e.t.c.'),
# Expense classification types
('E3_101', 'E3_101 - Commodities at Period Start'),
('E3_102_001', 'E3_102_001 - Fiscal Year Commodity Purchases (net amount)/Wholesale'),
('E3_102_002', 'E3_102_002 - Fiscal Year Commodity Purchases (net amount)/Retail'),
('E3_102_003', 'E3_102_003 - Fiscal Year Commodity Purchases (net amount)/Goods under article 39a paragraph 5 of the VAT Code (Law 2859/2000)'),
('E3_102_004', 'E3_102_004 - Fiscal Year Commodity Purchases (net amount)/Foreign, Intra-Community'),
('E3_102_005', 'E3_102_005 - Fiscal Year Commodity Purchases (net amount)/Foreign, Third Countries'),
('E3_102_006', 'E3_102_006 - Fiscal Year Commodity Purchases (net amount)/Others'),
('E3_104', 'E3_104 - Commodities at Period End'),
('E3_201', 'E3_201 - Raw and Other Materials at Period Start/Production'),
('E3_202_001', 'E3_202_001 - Fiscal Year Raw and Other Material Purchases (net amount)/Wholesale'),
('E3_202_002', 'E3_202_002 - Fiscal Year Raw and Other Material Purchases (net amount)/Retail'),
('E3_202_003', 'E3_202_003 - Fiscal Year Raw and Other Material Purchases (net amount)/ Foreign, Intra-Community'),
('E3_202_004', 'E3_202_004 - Fiscal Year Raw and Other Material Purchases (net amount)/ Foreign, Third Countries'),
('E3_202_005', 'E3_202_005 - Fiscal Year Raw and Other Material Purchases (net amount)/Others'),
('E3_204', 'E3_204 - Raw and Other Material Stock at Period End/Production'),
('E3_207', 'E3_207 - Products and Production in Progress at Period Start/Production'),
('E3_209', 'E3_209 - Products and Production in Progress at Period End/Production'),
('E3_301', 'E3_301 - Raw and Other Material at Period Start/Agricultural'),
('E3_302_001', 'E3_302_001 - Fiscal Year Raw and Other Material Purchases (net amount)/Wholesale'),
('E3_302_002', 'E3_302_002 - Fiscal Year Raw and Other Material Purchases (net amount)/Retail'),
('E3_302_003', 'E3_302_003 - Fiscal Year Raw and Other Material Purchases (net amount)/Foreign, Intra-Community'),
('E3_302_004', 'E3_302_004 - Fiscal Year Raw and Other Material Purchases (net amount)/Foreign, Third Countries'),
('E3_302_005', 'E3_302_005 - Fiscal Year Raw and Other Material Purchases (net amount)/Others'),
('E3_304', 'E3_304 - Raw and Other Material Stock at Period End/Agricultural'),
('E3_307', 'E3_307 - Products and Production in Progress at Period Start/ Agricultural'),
('E3_309', 'E3_309 - Products and Production in Progress at Period End/ Agricultural'),
('E3_312', 'E3_312 - Stock at Period Start (Animals-Plants)'),
('E3_313_001', 'E3_313_001 - Animal-Plant Purchases (net amount)/Wholesale'),
('E3_313_002', 'E3_313_002 - Animal-Plant Purchases (net amount)/Retail'),
('E3_313_003', 'E3_313_003 - Animal-Plant Purchases (net amount)/ Foreign, Intra-Community'),
('E3_313_004', 'E3_313_004 - Animal-Plant Purchases (net amount)/ Foreign, Third Countries'),
('E3_313_005', 'E3_313_005 - Animal-Plant Purchases/Others'),
('E3_315', 'E3_315 - Stock at Period End (Animals-Plants)/Agricultural'),
('E3_581_001', 'E3_581_001 - Employee Benefits/Gross Earnings'),
('E3_581_002', 'E3_581_002 - Employee Benefits/Employer Contributions'),
('E3_581_003', 'E3_581_003 - Employee Benefits/Other Benefits'),
('E3_582', 'E3_582 - Asset Measurement Damages'),
('E3_583', 'E3_583 - Debit Exchange Differences'),
('E3_584', 'E3_584 - Damages from Disposing-Withdrawing Non-Current Assets'),
('E3_585_001', 'E3_585_001 - Foreign/Domestic Management Fees'),
('E3_585_002', 'E3_585_002 - Expenditures from Linked Enterprises'),
('E3_585_003', 'E3_585_003 - Expenditures from Non-Cooperative States or Privileged Tax Regimes'),
('E3_585_004', 'E3_585_004 - Expenditures for Information Day-Events'),
('E3_585_005', 'E3_585_005 - Reception and Hospitality Expenses'),
('E3_585_006', 'E3_585_006 - Travel expenses'),
('E3_585_007', 'E3_585_007 - Self-Employed Social Security Contributions'),
('E3_585_008', 'E3_585_008 - Commission Agent Expenses and Fees on behalf of Farmers'),
('E3_585_009', 'E3_585_009 - Other Fees for Domestic Services'),
('E3_585_010', 'E3_585_010 - Other Fees for Foreign Services'),
('E3_585_011', 'E3_585_011 - Energy'),
('E3_585_012', 'E3_585_012 - Water'),
('E3_585_013', 'E3_585_013 - Telecommunications'),
('E3_585_014', 'E3_585_014 - Rents'),
('E3_585_015', 'E3_585_015 - Advertisement and promotion'),
('E3_585_016', 'E3_585_016 - Other expenses'),
('E3_586', 'E3_586 - Debit interests and related expenses'),
('E3_587', 'E3_587 - Amortisations'),
('E3_588', 'E3_588 - Extraordinary expenses, damages and fines'),
('E3_589', 'E3_589 - Provisions (except for Personnel Provisions)'),
('E3_882_001', 'E3_882_001 - Fiscal Year Tangible Asset Purchases/Wholesale'),
('E3_882_002', 'E3_882_002 - Fiscal Year Tangible Asset Purchases/Retail'),
('E3_882_003', 'E3_882_003 - Fiscal Year Tangible Asset Purchases/ Intra-Community Foreign'),
('E3_882_004', 'E3_882_004 - Fiscal Year Tangible Asset Purchases/ Third Country Foreign'),
('E3_883_001', 'E3_883_001 - Fiscal Year Intangible Asset Purchases/Wholesale'),
('E3_883_002', 'E3_883_002 - Fiscal Year Intangible Asset Purchases/Retail'),
('E3_883_003', 'E3_883_003 - Fiscal Year Intangible Asset Purchases/ Intra-Community Foreign'),
('E3_883_004', 'E3_883_004 - Fiscal Year Intangible Asset Purchases/ Third Country Foreign'),
('E3_103', 'E3_103 - Impairment of goods'),
('E3_203', 'E3_203 - Impairment of raw materials and supplies'),
('E3_303', 'E3_303 - Impairment of raw materials and supplies'),
('E3_208', 'E3_208 - Impairment of products and production in progress'),
('E3_308', 'E3_308 - Impairment of products and production in progress'),
('E3_314', 'E3_314 - Impairment of animals-plants - goods'),
('XE3_106', 'E3_106 - Own production of fixed assets Self Deliveries Inventory Disasters'),
('XE3_205', 'E3_205 - Own production of fixed assets - Self Deliveries Inventory Disasters'),
('XE3_305', 'E3_305 - Own production of fixed assets - Self Deliveries Inventory Disasters'),
('XE3_210', 'E3_210 - Own production of fixed assets - Self Deliveries Inventory Disasters'),
('XE3_310', 'E3_310 - Own production of fixed assets - Self Deliveries Inventory Disasters'),
('XE3_318', 'E3_318 - Own production of fixed assets - Self Deliveries Inventory Disasters'),
('E3_598_002', 'E3_598_002 - Purchases of goods falling into excise duty'),
]
CLASSIFICATION_VAT_SELECTION = [
('VAT_361', 'VAT_361 - Domestic Purchases & Expenditures'),
('VAT_362', 'VAT_362 - Purchases & Imports of Investment Goods (Fixed Assets)'),
('VAT_363', 'VAT_363 - Other Imports except for Investment Goods (Fixed Assets)'),
('VAT_364', 'VAT_364 - Intra-Community Goods Acquisitions'),
('VAT_365', 'VAT_365 - Intra-Community Services Receipts per article 14.2.a'),
('VAT_366', 'VAT_366 - Other Recipient Actions'),
]
TAX_EXEMPTION_CATEGORY_SELECTION = [
('1', '1 - Without VAT - article 3 of the VAT code'),
('2', '2 - Without VAT - article 5 of the VAT code'),
('3', '3 - Without VAT - article 13 of the VAT code'),
('4', '4 - Without VAT - article 14 of the VAT code'),
('5', '5 - Without VAT - article 16 of the VAT code'),
('6', '6 - Without VAT - article 19 of the VAT code'),
('7', '7 - Without VAT - article 22 of the VAT code'),
('8', '8 - Without VAT - article 24 of the VAT code'),
('9', '9 - Without VAT - article 25 of the VAT code'),
('10', '10 - Without VAT - article 26 of the VAT code'),
('11', '11 - Without VAT - article 27 of the VAT code'),
('12', '12 - Without VAT - article 27 - Seagoing Vessels of the VAT code'),
('13', '13 - Without VAT - article 27.1.γ - Seagoing Vessels of the VAT code'),
('14', '14 - Without VAT - article 28 of the VAT code'),
('15', '15 - Without VAT - article 39 of the VAT code'),
('16', '16 - Without VAT - article 39a of the VAT code'),
('17', '17 - Without VAT - article 40 of the VAT code'),
('18', '18 - Without VAT - article 41 of the VAT code'),
('19', '19 - Without VAT - article 47 of the VAT code'),
('20', '20 - VAT included - article 43 of the VAT code'),
('21', '21 - VAT included - article 44 of the VAT code'),
('22', '22 - VAT included - article 45 of the VAT code'),
('23', '23 - VAT included - article 46 of the VAT code'),
('24', '24 - Without VAT - article 6 of the VAT code'),
('25', '25 - Without VAT - ΠΟΛ.1029 / 1995'),
('26', '26 - Without VAT - ΠΟΛ.1167 / 2015'),
('27', '27 - Without VAT Other VAT exceptions'),
('28', '28 - Without VAT - Article 24 (b)(1) of the VAT Code(Tax Free)'),
('29', '29 - Without VAT - Article 47 b of the VAT Code(OSS non - EU scheme)'),
('30', '30 - Without VAT - Article 47 c of the VAT Code(OSS EU scheme)'),
('31', '31 - Excluding VAT - Article 47 d of the VAT Code(IOSS)'),
]
PAYMENT_METHOD_SELECTION = [
('1', '1 - Domestic Payments Account Number'),
('2', '2 - Foreign Payments Account Number'),
('3', '3 - Cash'),
('4', '4 - Check'),
('5', '5 - On credit'),
('6', '6 - Web Banking'),
('7', '7 - POS / e-POS'),
]
INVOICE_TYPES_HAVE_INCOME = (
'1.1', '1.2', '1.3', '1.4', '1.5', '1.6', '2.1', '2.2', '2.3', '2.4', '3.1', '3.2', '5.1', '5.2', '6.1', '6.2',
'7.1', '8.1', '8.2', '11.1', '11.2', '11.3', '11.4', '11.5', '17.3', '17.4',
)
INVOICE_TYPES_HAVE_EXPENSE = (
'1.1', '1.4', '1.5', '1.6', '2.1', '2.4', '3.1', '3.2', '5.1', '5.2', '7.1', '8.1', '8.2', '13.1', '13.2', '13.3',
'13.4', '13.30', '13.31', '14.1', '14.2', '14.3', '14.4', '14.5', '14.30', '14.31', '15.1', '16.1', '17.1', '17.2',
'17.5', '17.6',
)
CLASSIFICATION_CATEGORY_INCOME = (
'category1_1', 'category1_2', 'category1_3', 'category1_4', 'category1_5', 'category1_6', 'category1_7',
'category1_8', 'category1_9', 'category1_10', 'category1_95',
)
CLASSIFICATION_CATEGORY_EXPENSE = (
'category2_1', 'category2_2', 'category2_3', 'category2_4', 'category2_5', 'category2_6', 'category2_7',
'category2_8', 'category2_9', 'category2_10', 'category2_11', 'category2_12', 'category2_13', 'category2_14',
'category2_95',
)
CLASSIFICATION_TYPE_INCOME = (
'E3_106', 'E3_205', 'E3_210', 'E3_305', 'E3_310', 'E3_318', 'E3_561_001', 'E3_561_002', 'E3_561_003', 'E3_561_004',
'E3_561_005', 'E3_561_006', 'E3_561_007', 'E3_562', 'E3_563', 'E3_564', 'E3_565', 'E3_566', 'E3_567', 'E3_568',
'E3_570', 'E3_595', 'E3_596', 'E3_597', 'E3_880_001', 'E3_880_002', 'E3_880_003', 'E3_880_004', 'E3_881_001',
'E3_881_002', 'E3_881_003', 'E3_881_004', 'E3_598_001', 'E3_598_003',
)
CLASSIFICATION_TYPE_EXPENSE = (
'E3_101', 'E3_102_001', 'E3_102_002', 'E3_102_003', 'E3_102_004', 'E3_102_005', 'E3_102_006', 'E3_104', 'E3_201',
'E3_202_001', 'E3_202_002', 'E3_202_003', 'E3_202_004', 'E3_202_005', 'E3_204', 'E3_207', 'E3_209', 'E3_301',
'E3_302_001', 'E3_302_002', 'E3_302_003', 'E3_302_004', 'E3_302_005', 'E3_304', 'E3_307', 'E3_309', 'E3_312',
'E3_313_001', 'E3_313_002', 'E3_313_003', 'E3_313_004', 'E3_313_005', 'E3_315', 'E3_581_001', 'E3_581_002',
'E3_581_003', 'E3_582', 'E3_583', 'E3_584', 'E3_585_001', 'E3_585_002', 'E3_585_003', 'E3_585_004', 'E3_585_005',
'E3_585_006', 'E3_585_007', 'E3_585_008', 'E3_585_009', 'E3_585_010', 'E3_585_011', 'E3_585_012', 'E3_585_013',
'E3_585_014', 'E3_585_015', 'E3_585_016', 'E3_586', 'E3_587', 'E3_588', 'E3_589', 'E3_882_001', 'E3_882_002',
'E3_882_003', 'E3_882_004', 'E3_883_001', 'E3_883_002', 'E3_883_003', 'E3_883_004', 'VAT_361', 'VAT_362', 'VAT_363',
'VAT_364', 'VAT_365', 'VAT_366', 'E3_103', 'E3_203', 'E3_303', 'E3_208', 'E3_308', 'E3_314', 'XE3_106', 'XE3_205',
'XE3_305', 'XE3_210', 'XE3_310', 'XE3_318', 'E3_598_002',
)
ALL_INVOICE_TYPES: tuple[str] = tuple(inv_type for inv_type, _ in INVOICE_TYPES_SELECTION)
TYPES_WITH_SEND_EXPENSE = ('3.1', '3.2')
TYPES_WITH_CORRELATE_INVOICE = ('1.6', '2.4', '5.1')
TYPES_WITH_VAT_EXEMPT = ('3.1', '3.2')
TYPES_WITH_FORBIDDEN_COUNTERPART = ('11.1', '11.2', '11.3', '11.4', '11.5', '17.3', '17.4')
TYPES_WITH_MANDATORY_COUNTERPART = ('7.1', '3.1')
TYPES_WITH_FORBIDDEN_PAYMENT = ('17.3', '17.4')
TYPES_WITH_MANDATORY_PAYMENT = tuple(inv_type for inv_type in ALL_INVOICE_TYPES if inv_type not in TYPES_WITH_FORBIDDEN_PAYMENT)
TYPES_WITH_FORBIDDEN_QUANTITY = ('2.1', '2.2', '2.3', '7.1', '8.1', '8.2')
TYPES_WITH_FORBIDDEN_CLASSIFICATION = ('3.2',)
TYPES_WITH_MANDATORY_DETAIL_TYPE = ('1.5',)
TYPES_WITH_VAT_CATEGORY_8 = ('3.1', '3.2', '8.1', '8.2', '17.3', '17.4')
COMBINATIONS_WITH_POSSIBLE_EMPTY_TYPE = (('1.1', 'category1_95'), ('3.2', 'category1_95'), ('5.1', 'category1_95'))
VALID_TAX_CATEGORY_MAP = {
24: 1,
13: 2,
6: 3,
17: 4,
9: 5,
4: 6,
0: 7,
}
VALID_TAX_AMOUNTS = tuple(VALID_TAX_CATEGORY_MAP.keys())
class PreferredClassification(models.Model):
_name = 'l10n_gr_edi.preferred_classification'
_description = 'Preferred myDATA classification combinations for a particular product'
_order = 'priority DESC, id DESC'
# Inverse fields
product_template_id = fields.Many2one(comodel_name='product.template')
fiscal_position_id = fields.Many2one(comodel_name='account.fiscal.position')
priority = fields.Integer(string='Priority', default=1)
l10n_gr_edi_inv_type = fields.Selection(
selection=INVOICE_TYPES_SELECTION,
string='Invoice Type',
)
l10n_gr_edi_cls_category = fields.Selection(
selection=CLASSIFICATION_CATEGORY_SELECTION,
string='myDATA Category',
)
l10n_gr_edi_cls_type = fields.Selection(
selection=CLASSIFICATION_TYPE_SELECTION,
string='myDATA Type',
)
l10n_gr_edi_available_inv_type = fields.Char(default=','.join(CLASSIFICATION_MAP.keys()))
l10n_gr_edi_available_cls_category = fields.Char(compute='_compute_l10n_gr_edi_available_cls_category')
l10n_gr_edi_available_cls_type = fields.Char(compute='_compute_l10n_gr_edi_available_cls_type')
@api.onchange('l10n_gr_edi_available_cls_category')
def _onchange_reset_cls_category(self):
for line in self:
line.l10n_gr_edi_cls_category = False
@api.onchange('l10n_gr_edi_available_cls_type')
def _onchange_reset_cls_type(self):
for line in self:
line.l10n_gr_edi_cls_type = False
@api.depends('l10n_gr_edi_inv_type')
def _compute_l10n_gr_edi_available_cls_category(self):
for record in self:
record.l10n_gr_edi_available_cls_category = self._get_l10n_gr_edi_available_cls_category(record.l10n_gr_edi_inv_type)
@api.depends('l10n_gr_edi_inv_type', 'l10n_gr_edi_cls_category')
def _compute_l10n_gr_edi_available_cls_type(self):
for record in self:
record.l10n_gr_edi_available_cls_type = self._get_l10n_gr_edi_available_cls_type(
inv_type=record.l10n_gr_edi_inv_type,
cls_category=record.l10n_gr_edi_cls_category,
)
################################################################################
# Get Classification Data Helpers
################################################################################
@api.model
def _get_l10n_gr_edi_available_cls_category(self, inv_type: str, category_type: str = '0') -> str:
"""
Helper for getting the l10n_gr_edi_available_cls_category string value.
:param str category_type: '0' (all, default) | '1' (income) | '2' (expense)
"""
available_cls_category = ''
if inv_type and CLASSIFICATION_MAP[inv_type] != 'associate':
if category_type == '1': # get only income categories
available_cls_category = ','.join(category for category in CLASSIFICATION_MAP[inv_type]
if category[:9] == 'category1')
elif category_type == '2': # get only expense categories
available_cls_category = ','.join(category for category in CLASSIFICATION_MAP[inv_type]
if category[:9] == 'category2')
else:
available_cls_category = ','.join(category for category in CLASSIFICATION_MAP[inv_type])
return available_cls_category
@api.model
def _get_l10n_gr_edi_available_cls_type(self, inv_type: str, cls_category: str) -> str:
"""
Helper for getting the l10n_gr_edi_available_cls_type string value.
"""
available_cls_type = ''
if (
inv_type and
cls_category and
cls_category in CLASSIFICATION_MAP[inv_type]
):
available_types = CLASSIFICATION_MAP[inv_type][cls_category]
if available_types == 'all_above':
available_types = set()
for other_category in CLASSIFICATION_MAP[inv_type]:
same_category_type = other_category[:9] == cls_category[:9] # category1* or category2*
contains_cls_types = isinstance(CLASSIFICATION_MAP[inv_type][other_category], tuple)
if same_category_type and contains_cls_types:
available_types.update(CLASSIFICATION_MAP[inv_type][other_category])
available_types = tuple(available_types)
if isinstance(available_types, tuple):
available_cls_type = ','.join(available_types)
return available_cls_type
@api.model
def _get_l10n_gr_edi_available_cls_vat(self, inv_type: str, cls_category: str) -> str:
"""
Helper for getting the l10n_gr_edi_available_cls_vat string value.
"""
available_cls_vat = ''
if (
inv_type and
cls_category and
cls_category in CLASSIFICATION_MAP[inv_type] and
cls_category in CLASSIFICATION_CATEGORY_EXPENSE
):
available_cls_vat = ','.join(vat[0] for vat in CLASSIFICATION_VAT_SELECTION)
return available_cls_vat