Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Lu Xu
slapos.core
Commits
b10ff9a5
Commit
b10ff9a5
authored
Apr 30, 2021
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_subscription_request&accounting: Reservation refund is Taxable
This change was requested by the accountant
parent
574b660d
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
68 additions
and
9 deletions
+68
-9
master/bt5/slapos_accounting/PathTemplateItem/service_module/slapos_reservation_refund.xml
...TemplateItem/service_module/slapos_reservation_refund.xml
+46
-0
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/SubscriptionRequest_generateReservationRefoundSalePackingList.py
...ptionRequest_generateReservationRefoundSalePackingList.py
+8
-1
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionDualOrganisationScenario.py
...st.erp5.testSlapOSSubscriptionDualOrganisationScenario.py
+2
-2
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionInvitationTokenChineseScenario.py
...5.testSlapOSSubscriptionInvitationTokenChineseScenario.py
+4
-0
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionInvitationTokenScenario.py
...est.erp5.testSlapOSSubscriptionInvitationTokenScenario.py
+2
-0
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionScenario.py
...al_components/test.erp5.testSlapOSSubscriptionScenario.py
+6
-6
No files found.
master/bt5/slapos_accounting/PathTemplateItem/service_module/slapos_reservation_refund.xml
View file @
b10ff9a5
...
@@ -85,6 +85,7 @@
...
@@ -85,6 +85,7 @@
<string>
quantity_unit/unit/piece
</string>
<string>
quantity_unit/unit/piece
</string>
<string>
product_line/cloud/subscription
</string>
<string>
product_line/cloud/subscription
</string>
<string>
use/trade/sale
</string>
<string>
use/trade/sale
</string>
<string>
base_contribution/base_amount/invoicing/taxable
</string>
</tuple>
</tuple>
</value>
</value>
</item>
</item>
...
@@ -514,6 +515,51 @@
...
@@ -514,6 +515,51 @@
</value>
</value>
</item>
</item>
</dictionary>
</dictionary>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
edit
</string>
</value>
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
error_message
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
988.64728.51101.34167
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
<value>
<string>
current
</string>
</value>
</item>
<item>
<key>
<string>
time
</string>
</key>
<value>
<object>
<klass>
<reference
id=
"6.1"
/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>
1619807004.05
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</list>
</value>
</value>
</item>
</item>
...
...
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/SubscriptionRequest_generateReservationRefoundSalePackingList.py
View file @
b10ff9a5
...
@@ -37,6 +37,13 @@ if payment_transaction is None or payment_transaction.getSimulationState() != "s
...
@@ -37,6 +37,13 @@ if payment_transaction is None or payment_transaction.getSimulationState() != "s
# Nothing to do bug wait the payment
# Nothing to do bug wait the payment
return
return
price_without_tax
=
None
for
invoice_line
in
sale_invoice_transaction
.
objectValues
(
portal_type
=
"Invoice Line"
):
if
invoice_line
.
getResource
()
==
"service_module/slapos_reservation_fee"
:
price_without_tax
=
invoice_line
.
getTotalPrice
()
assert
price_without_tax
is
not
None
,
"Something is wrong since price wasn't found"
# Time to create the PL
# Time to create the PL
person
=
sale_invoice_transaction
.
getDestinationValue
(
portal_type
=
"Person"
)
person
=
sale_invoice_transaction
.
getDestinationValue
(
portal_type
=
"Person"
)
delivery_template
=
portal
.
restrictedTraverse
(
delivery_template
=
portal
.
restrictedTraverse
(
...
@@ -65,7 +72,7 @@ line = delivery.newContent(
...
@@ -65,7 +72,7 @@ line = delivery.newContent(
destination_section_value
=
person
,
destination_section_value
=
person
,
resource_value
=
service
,
resource_value
=
service
,
quantity_unit
=
service
.
getQuantityUnit
(),
quantity_unit
=
service
.
getQuantityUnit
(),
price
=-
sale_invoice_transaction
.
getTotalPrice
()
,
price
=-
price_without_tax
,
causality_uid
=
context
.
getUid
()
causality_uid
=
context
.
getUid
()
)
)
...
...
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionDualOrganisationScenario.py
View file @
b10ff9a5
...
@@ -151,9 +151,9 @@ class testSlapOSSubscriptionDualOrganisationScenario(TestSlapOSSubscriptionScena
...
@@ -151,9 +151,9 @@ class testSlapOSSubscriptionDualOrganisationScenario(TestSlapOSSubscriptionScena
"sale_trade_condition_module/slapos_reservation_refund_trade_condition"
)
"sale_trade_condition_module/slapos_reservation_refund_trade_condition"
)
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
expected_reservation_fee
=
self
.
expected_zh_reservation_fee
expected_reservation_fee
=
self
.
expected_zh_reservation_fee
_without_tax
else
:
else
:
expected_reservation_fee
=
self
.
expected_reservation_fee
expected_reservation_fee
=
self
.
expected_reservation_fee
_without_tax
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
-
round
(
expected_reservation_fee
*
amount
,
2
))
-
round
(
expected_reservation_fee
*
amount
,
2
))
...
...
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionInvitationTokenChineseScenario.py
View file @
b10ff9a5
...
@@ -52,10 +52,12 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionC
...
@@ -52,10 +52,12 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionC
def
_init_test_with_valid_invitation
(
self
):
def
_init_test_with_valid_invitation
(
self
):
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee_without_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_free_reservation
=
1
self
.
expected_free_reservation
=
1
self
.
expected_zh_reservation_fee
=
0.0
self
.
expected_zh_reservation_fee
=
0.0
self
.
expected_zh_reservation_fee_without_tax
=
0.0
self
.
expected_zh_reservation_quantity_tax
=
0.0
self
.
expected_zh_reservation_quantity_tax
=
0.0
self
.
expected_zh_reservation_tax
=
0.0
self
.
expected_zh_reservation_tax
=
0.0
self
.
expected_zh_free_reservation
=
1
self
.
expected_zh_free_reservation
=
1
...
@@ -79,10 +81,12 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionC
...
@@ -79,10 +81,12 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionC
def
test_two_subscription_scenario_with_invitation
(
self
):
def
test_two_subscription_scenario_with_invitation
(
self
):
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee_without_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_free_reservation
=
1
self
.
expected_free_reservation
=
1
self
.
expected_zh_reservation_fee
=
0.0
self
.
expected_zh_reservation_fee
=
0.0
self
.
expected_zh_reservation_fee_without_tax
=
0.0
self
.
expected_zh_reservation_quantity_tax
=
0.0
self
.
expected_zh_reservation_quantity_tax
=
0.0
self
.
expected_zh_reservation_tax
=
0.0
self
.
expected_zh_reservation_tax
=
0.0
self
.
expected_zh_free_reservation
=
1
self
.
expected_zh_free_reservation
=
1
...
...
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionInvitationTokenScenario.py
View file @
b10ff9a5
...
@@ -51,6 +51,7 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionS
...
@@ -51,6 +51,7 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionS
self
.
_test_subscription_scenario_with_existing_user
(
amount
=
1
,
language
=
"en"
)
self
.
_test_subscription_scenario_with_existing_user
(
amount
=
1
,
language
=
"en"
)
def
_init_test_with_valid_invitation
(
self
):
def
_init_test_with_valid_invitation
(
self
):
self
.
expected_reservation_fee_without_tax
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
...
@@ -74,6 +75,7 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionS
...
@@ -74,6 +75,7 @@ class testSlapOSSubscriptionCloudInvitationTokenScenario(TestSlapOSSubscriptionS
self
.
_test_subscription_scenario_with_reversal_transaction
(
amount
=
1
)
self
.
_test_subscription_scenario_with_reversal_transaction
(
amount
=
1
)
def
test_two_subscription_scenario_with_invitation
(
self
):
def
test_two_subscription_scenario_with_invitation
(
self
):
self
.
expected_reservation_fee_without_tax
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_fee
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_quantity_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
self
.
expected_reservation_tax
=
0.0
...
...
master/bt5/slapos_subscription_request/TestTemplateItem/portal_components/test.erp5.testSlapOSSubscriptionScenario.py
View file @
b10ff9a5
...
@@ -1050,10 +1050,10 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
...
@@ -1050,10 +1050,10 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
quantity
=
subscription_request
.
getQuantity
()
quantity
=
subscription_request
.
getQuantity
()
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
expected_individual_price_without_tax
=
self
.
expected_zh_individual_price_without_tax
expected_individual_price_without_tax
=
self
.
expected_zh_individual_price_without_tax
expected_reservation_fee
=
self
.
expected_zh_reservation_fee
expected_reservation_fee
=
self
.
expected_zh_reservation_fee
_without_tax
else
:
else
:
expected_individual_price_without_tax
=
self
.
expected_individual_price_without_tax
expected_individual_price_without_tax
=
self
.
expected_individual_price_without_tax
expected_reservation_fee
=
self
.
expected_reservation_fee
expected_reservation_fee
=
self
.
expected_reservation_fee
_without_tax
# The values are without tax
# The values are without tax
self
.
assertEqual
(
sale_packing_list_line
.
getQuantity
(),
1
*
quantity
)
self
.
assertEqual
(
sale_packing_list_line
.
getQuantity
(),
1
*
quantity
)
...
@@ -1072,9 +1072,9 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
...
@@ -1072,9 +1072,9 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
# The values are without tax
# The values are without tax
self
.
assertEqual
(
sale_packing_list_line
.
getQuantity
(),
1
)
self
.
assertEqual
(
sale_packing_list_line
.
getQuantity
(),
1
)
self
.
assertEqual
(
round
(
sale_packing_list_line
.
getPrice
(),
2
),
self
.
assertEqual
(
round
(
sale_packing_list_line
.
getPrice
(),
2
),
-
int
(
expected_reservation_fee
*
quantity
))
-
round
(
expected_reservation_fee
*
quantity
,
2
))
self
.
assertEqual
(
round
(
sale_packing_list_line
.
getTotalPrice
(),
2
),
self
.
assertEqual
(
round
(
sale_packing_list_line
.
getTotalPrice
(),
2
),
-
int
(
expected_reservation_fee
*
quantity
))
-
round
(
expected_reservation_fee
*
quantity
,
2
))
self
.
assertEqual
(
sale_packing_list
.
getCausality
(),
self
.
assertEqual
(
sale_packing_list
.
getCausality
(),
subscription_request
.
getRelativeUrl
())
subscription_request
.
getRelativeUrl
())
...
@@ -1272,11 +1272,11 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
...
@@ -1272,11 +1272,11 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
if
subscription_request
.
getPriceCurrency
()
==
"currency_module/CNY"
:
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
-
round
(
self
.
expected_zh_reservation_fee
*
amount
,
2
))
-
round
(
self
.
expected_zh_reservation_fee
_without_tax
*
amount
,
2
))
else
:
else
:
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
self
.
assertEqual
(
round
(
sale_packing_list
.
getTotalPrice
(),
2
),
-
round
(
self
.
expected_reservation_fee
*
amount
,
2
))
-
round
(
self
.
expected_reservation_fee
_without_tax
*
amount
,
2
))
return
subscription_request
return
subscription_request
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment