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
1
Merge Requests
1
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
Romain Courteaud
slapos.core
Commits
a4a4be02
Commit
a4a4be02
authored
May 31, 2024
by
Romain Courteaud
🐸
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_subscription_request: create discount when closing the open sale order
parent
53aede91
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
6 deletions
+15
-6
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/OpenSaleOrderCell_createDiscountSalePackingList.py
...equest/OpenSaleOrderCell_createDiscountSalePackingList.py
+8
-3
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/SubscriptionChangeRequest_validateIfSubmitted.py
..._request/SubscriptionChangeRequest_validateIfSubmitted.py
+7
-3
No files found.
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/OpenSaleOrderCell_createDiscountSalePackingList.py
View file @
a4a4be02
...
@@ -10,11 +10,16 @@ open_sale_order = open_sale_order_cell.getParentValue()
...
@@ -10,11 +10,16 @@ open_sale_order = open_sale_order_cell.getParentValue()
if
open_sale_order_cell
.
getPortalType
()
==
'Open Sale Order Cell'
:
if
open_sale_order_cell
.
getPortalType
()
==
'Open Sale Order Cell'
:
open_sale_order
=
open_sale_order
.
getParentValue
()
open_sale_order
=
open_sale_order
.
getParentValue
()
assert
open_sale_order
.
getValidationState
()
==
'validated'
start_date
=
open_sale_order
.
getStartDate
()
start_date
=
open_sale_order
.
getStartDate
()
next_period_date
=
hosting_subscription
.
getNextPeriodicalDate
(
current_date
)
next_period_date
=
hosting_subscription
.
getNextPeriodicalDate
(
current_date
)
if
open_sale_order
.
getValidationState
()
==
'validated'
:
unused_day_count
=
current_date
-
start_date
elif
open_sale_order
.
getValidationState
()
==
'archived'
:
unused_day_count
=
next_period_date
-
current_date
else
:
raise
NotImplementedError
(
'Unhandled open order state: %s'
%
open_sale_order
.
getValidationState
())
sale_packing_list_edit_kw
=
dict
(
sale_packing_list_edit_kw
=
dict
(
title
=
"discount for %s"
%
open_sale_order
.
getReference
(),
title
=
"discount for %s"
%
open_sale_order
.
getReference
(),
start_date
=
start_date
,
start_date
=
start_date
,
...
@@ -36,7 +41,7 @@ sale_packing_list_edit_kw = dict(
...
@@ -36,7 +41,7 @@ sale_packing_list_edit_kw = dict(
)
)
unused_day_count
=
current_date
-
start_date
if
(
0
<
unused_day_count
):
#(subscription_request.getPrice() != 0) and (0 < unused_day_count):
if
(
0
<
unused_day_count
):
#(subscription_request.getPrice() != 0) and (0 < unused_day_count):
# If the open order starts before today,
# If the open order starts before today,
# generate a discount to the user on his next invoice
# generate a discount to the user on his next invoice
...
...
master/bt5/slapos_subscription_request/SkinTemplateItem/portal_skins/slapos_subscription_request/SubscriptionChangeRequest_validateIfSubmitted.py
View file @
a4a4be02
from
erp5.component.module.DateUtils
import
getClosestDate
,
addToDate
from
zExceptions
import
Unauthorized
from
zExceptions
import
Unauthorized
if
REQUEST
is
not
None
:
if
REQUEST
is
not
None
:
raise
Unauthorized
raise
Unauthorized
...
@@ -56,11 +58,13 @@ subscribed_item = open_order_movement.getAggregateValue(portal_type=['Instance T
...
@@ -56,11 +58,13 @@ subscribed_item = open_order_movement.getAggregateValue(portal_type=['Instance T
if
subscription_change_request
.
getAggregateUid
()
!=
subscribed_item
.
getUid
():
if
subscription_change_request
.
getAggregateUid
()
!=
subscribed_item
.
getUid
():
return
invalidate
(
subscription_change_request
,
'Unhandled requested changes on: aggregate'
)
return
invalidate
(
subscription_change_request
,
'Unhandled requested changes on: aggregate'
)
# Create new Open Sale Order
next_open_sale_order
=
subscription_change_request
.
SubscriptionRequest_createOpenSaleOrder
()
current_date
=
getClosestDate
(
target_date
=
next_open_sale_order
.
getCreationDate
(),
precision
=
'day'
)
# XXX Compensation
# XXX Compensation
open_sale_order
.
OpenSaleOrder_archiveIfUnusedItem
(
check_unused_item
=
False
)
open_sale_order
.
OpenSaleOrder_archiveIfUnusedItem
(
check_unused_item
=
False
)
open_order_movement
.
OpenSaleOrderCell_createDiscountSalePackingList
(
current_date
)
#, activate_kw=activate_kw)
# Create new Open Sale Order
subscription_change_request
.
SubscriptionRequest_createOpenSaleOrder
()
# Change Subscripted Item user if needed
# Change Subscripted Item user if needed
subscribed_item
=
open_order_movement
.
getAggregateValue
(
portal_type
=
[
'Instance Tree'
,
'Compute Node'
,
'Project'
])
subscribed_item
=
open_order_movement
.
getAggregateValue
(
portal_type
=
[
'Instance Tree'
,
'Compute Node'
,
'Project'
])
...
...
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