968 lines
54 KiB
Python
968 lines
54 KiB
Python
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
|