Commit 5ee6738a authored by Viacheslav Sukhovieiev's avatar Viacheslav Sukhovieiev
Browse files

feat(config): add finalValueTax field

parent c97b49af
Pipeline #29310 passed with stages
in 3 minutes and 36 seconds
......@@ -94,7 +94,7 @@ test-unit: $(REBUILD_IMAGES_FOR_TESTS)
@docker rm -f $(PROJECT_NAME)-unit-$(CI_COMMIT_SHORT_SHA)$(CI_PIPELINE_ID) || true
@docker-compose -p $(COMPOSE_PROJECT_NAME)-unit \
run --name $(PROJECT_NAME)-unit-$(CI_COMMIT_SHORT_SHA)$(CI_PIPELINE_ID) \
$(PROJECT_NAME)-test-unit pytest -v -q --cov-report= --cov=prozorro_sale test/unit/test_lease_calculator.py
$(PROJECT_NAME)-test-unit pytest -v -q --cov-report= --cov=prozorro_sale test/unit
@docker cp $(PROJECT_NAME)-unit-$(CI_COMMIT_SHORT_SHA)$(CI_PIPELINE_ID):/$(PROJECT_NAME)/.coverage .coverage.unit
# Linters & tests | Linters
......
......@@ -57,6 +57,9 @@ procedures:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -133,19 +136,21 @@ procedures:
value: 0
description: Відсутній
finalValue:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
rules:
switch:
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: false
values:
value: procedure.winnerBid.amount * 1.2
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
value: procedure.winnerBid.amount * 0.2
description: ПДВ від кінцевої суми
default:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -194,6 +199,9 @@ procedures:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -267,6 +275,10 @@ procedures:
valueAddedTaxIncluded: procedure.guarantee.valueAddedTaxIncluded
description: Встановлюється організатором у розмірі від 5% до 10% від стартової ціни лота
finalValue:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
rules:
switch:
- rule:
......@@ -275,40 +287,36 @@ procedures:
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.amount * 1.2
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2
value: procedure.winnerBid.amount * 0.2
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: false
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.amount
value: 0
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValueTax = 0
default:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -388,6 +396,9 @@ procedures:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -497,6 +508,10 @@ procedures:
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо строк оренди більше місяця - половина місячної орендної плати.
finalValue:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
rules:
switch:
- rule:
......@@ -505,40 +520,35 @@ procedures:
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2
value: procedure.winnerBid.amount * 0.2
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: false
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount * 1.2
value: procedure.winnerBid.amount * 0.2
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValueTax = winnerBid.amount * 0.2
default:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......@@ -614,6 +624,9 @@ procedures:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
value: 0
description: ПДВ від кінцевої суми
operatorFee:
value: finalValue*0.01
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
......@@ -673,6 +686,9 @@ procedures:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
value: 0
description: ПДВ від кінцевої суми
operatorFee:
rules:
switch:
......
......@@ -10,9 +10,13 @@
"description": "Якщо помісячна по балансовій вартості - за формулою \"(5*прожитковий мінімум * 0.12)/12 * загальну площу об'єктів\""
},
"finalValue": {
"amount": 36000,
"amount": 30000,
"withVAT": false,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2"
"description": "Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)"
},
"finalValueTax": {
"amount": 6000,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2"
},
"currentTenantGuaranteeFee": {
"withVAT": false,
......
......@@ -10,9 +10,13 @@
"description": "Якщо погодинно/подобово - за формулою \"(5*прожитковий мінімум * 0.12)/360 * загальну площу об'єктів\""
},
"finalValue": {
"amount": 36000.0,
"amount": 30000,
"withVAT": false,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2"
"description": "Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)"
},
"finalValueTax": {
"amount": 6000,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2"
},
"currentTenantGuaranteeFee": {
"withVAT": false,
......
......@@ -10,9 +10,13 @@
"description": "Якщо погодинно/подобово - за формулою \"(5*прожитковий мінімум * 0.12)/360 * загальну площу об'єктів\""
},
"finalValue": {
"amount": 36000.0,
"amount": 30000,
"withVAT": false,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2"
"description": "Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)"
},
"finalValueTax": {
"amount": 6000,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2"
},
"currentTenantGuaranteeFee": {
"withVAT": false,
......
......@@ -10,9 +10,13 @@
"description": "Якщо погодинно/подобово - за формулою \"(5*прожитковий мінімум * 0.12)/360 * загальну площу об'єктів\""
},
"finalValue": {
"amount": 36000.0,
"amount": 30000,
"withVAT": false,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2"
"description": "Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)"
},
"finalValueTax": {
"amount": 6000,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2"
},
"currentTenantGuaranteeFee": {
"withVAT": false,
......
......@@ -10,9 +10,13 @@
"description": "Якщо погодинно/подобово - за формулою \"(5*прожитковий мінімум * 0.12)/360 * загальну площу об'єктів\""
},
"finalValue": {
"amount": 1500,
"amount": 1250,
"withVAT": false,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2"
"description": "Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)"
},
"finalValueTax": {
"amount": 250,
"description": "Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2"
},
"currentTenantGuaranteeFee": {
"withVAT": false,
......
......@@ -497,6 +497,10 @@ procedures:
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо строк оренди більше місяця - половина місячної орендної плати.
finalValue:
value: procedure.winnerBid.amount
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
finalValueTax:
rules:
switch:
- rule:
......@@ -505,39 +509,34 @@ procedures:
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount * 1.2
value: procedure.winnerBid.amount * 0.2
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = true, тоді finalValueTax = winnerBid.amount * 0.2
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: true
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = true, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: true
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount
value: 0
description: Якщо value.valueAddedTaxIncluded = true і valueAddedTaxCharged = false, тоді finalValueTax = 0
- rule:
- fromField: procedure.value.valueAddedTaxIncluded
value: false
- fromField: procedure.valueAddedTaxCharged
value: false
values:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.value.valueAddedTaxIncluded
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValue = winnerBid.amount * 1.2
value: procedure.winnerBid.amount * 0.2
description: Якщо value.valueAddedTaxIncluded = false і valueAddedTaxCharged = false, тоді finalValueTax = winnerBid.amount * 0.2
default:
value: procedure.winnerBid.final_value
valueAddedTaxIncluded: procedure.winnerBid.valueAddedTaxIncluded
value: 0
description: Кінцева сума, яка підлягає сплаті переможцем електронного аукціону (враховуючи ПДВ)
operatorFee:
rules:
......
......@@ -32,22 +32,24 @@ class TestApi:
@pytest.mark.parametrize("procedure_name, keys", [
('timber', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('timber-active_qualification', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('timber-unsuccessful', []),
('basicSell', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('basicSell-cancelled', []),
('legitimatePropertyLease-complete', ['currentTenantGuaranteeFee', 'operatorFee', 'administratorFee',
'feeSharingWinnerOperator', 'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingWinnerOperator', 'feeSharingOrganizerOperator',
'finalValue', 'finalValueTax']),
('railwayCargo', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('subsoil', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('legitimatePropertyLease-priorityEnglish-complete', ['currentTenantGuaranteeFee', 'operatorFee',
'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue',
'finalValueTax']),
('legitimatePropertyLease-priorityEnglish', []),
('landSell', ['finalValue', 'operatorFee', 'administratorFee', 'disqualifiedOperatorFee',
'feeSharingWinnerOperator', 'feeSharingOrganizerOperator']),
......
......@@ -19,22 +19,24 @@ class TestDataBridge:
@pytest.mark.parametrize("procedure_name, keys", [
('timber', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('timber-active_qualification', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('timber-unsuccessful', []),
('basicSell', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('basicSell-cancelled', []),
('legitimatePropertyLease-complete', ['currentTenantGuaranteeFee', 'operatorFee', 'administratorFee',
'feeSharingWinnerOperator', 'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingWinnerOperator', 'feeSharingOrganizerOperator',
'finalValue', 'finalValueTax']),
('railwayCargo', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('subsoil', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue', 'finalValueTax']),
('legitimatePropertyLease-priorityEnglish-complete', ['currentTenantGuaranteeFee', 'operatorFee',
'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
'feeSharingOrganizerOperator', 'finalValue',
'finalValueTax']),
('legitimatePropertyLease-priorityEnglish', []),
('alienation', ['operatorFee', 'administratorFee', 'feeSharingWinnerOperator',
'feeSharingOrganizerOperator', 'finalValue']),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment