Commit 8452f1ef authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_accounting&subscription_request: Configure Individual Varaitions on slapos_reservation_fee

  Adopt price based on Variations rather them on the lines.
parent 46a62920
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Sale Supply Line" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>resource/service_module/slapos_instance_subscription</string>
</tuple>
</value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>2</string> </value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>base_price</string>
<string>additional_price</string>
<string>discount_ratio</string>
<string>exclusive_discount_ratio</string>
<string>surcharge_ratio</string>
<string>variable_additional_price</string>
<string>non_discountable_additional_price</string>
<string>priced_quantity</string>
<string>base_unit_price</string>
<string>quantity_unit</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Sale Supply Line</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<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>989.57955.38476.51182</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1612806017.07</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -260,7 +260,7 @@ ...@@ -260,7 +260,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>990.40474.59911.19558</string> </value> <value> <string>990.40476.14802.16776</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1615430173.55</float> <float>1615473764.78</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -306,6 +306,10 @@ ...@@ -306,6 +306,10 @@
<key> <string>variation/service_module/slapos_reservation_fee/1</string> </key> <key> <string>variation/service_module/slapos_reservation_fee/1</string> </key>
<value> <int>0</int> </value> <value> <int>0</int> </value>
</item> </item>
<item>
<key> <string>variation/service_module/slapos_reservation_fee/default</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary> </dictionary>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Sale Supply Cell" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>base_id</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>base_id</string> </key>
<value> <string>path</string> </value>
</item>
<item>
<key> <string>base_price</string> </key>
<value> <float>188.0</float> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>path_1</string> </value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>base_price</string>
<string>base_unit_price</string>
<string>slice_base_price</string>
<string>slice_quantity_range</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_base_category</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>multimembership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Sale Supply Cell</string> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -260,7 +260,7 @@ ...@@ -260,7 +260,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>990.39744.34313.3089</string> </value> <value> <string>990.39746.40964.56832</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1615386397.5</float> <float>1615473747.58</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -306,6 +306,10 @@ ...@@ -306,6 +306,10 @@
<key> <string>variation/service_module/slapos_reservation_fee/1</string> </key> <key> <string>variation/service_module/slapos_reservation_fee/1</string> </key>
<value> <int>0</int> </value> <value> <int>0</int> </value>
</item> </item>
<item>
<key> <string>variation/service_module/slapos_reservation_fee/default</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary> </dictionary>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Sale Supply Cell" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>base_id</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>base_id</string> </key>
<value> <string>path</string> </value>
</item>
<item>
<key> <string>base_price</string> </key>
<value> <float>20.8333333</float> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>path_1</string> </value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>base_price</string>
<string>base_unit_price</string>
<string>slice_base_price</string>
<string>slice_quantity_range</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_base_category</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>multimembership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Sale Supply Cell</string> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Service Individual Variation" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>CDN</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Service Individual Variation</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>CDN Reservation Fee</string> </value>
</item>
<item>
<key> <string>variation_base_category_list</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Service Individual Variation" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Default</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Service Individual Variation</string> </value>
</item>
<item>
<key> <string>variation_base_category_list</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Sale Supply Line" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>base_price_per_slice</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>resource/service_module/slapos_reservation_fee</string>
</tuple>
</value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_ssl</string> </value>
</item>
<item>
<key> <string>index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>base_price</string>
<string>additional_price</string>
<string>discount_ratio</string>
<string>exclusive_discount_ratio</string>
<string>surcharge_ratio</string>
<string>variable_additional_price</string>
<string>non_discountable_additional_price</string>
<string>priced_quantity</string>
<string>base_unit_price</string>
<string>quantity_unit</string>
</tuple>
</value>
</item>
<item>
<key> <string>max_delay</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>max_flow</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>max_stock</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>min_delay</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>min_flow</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>min_stock</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>p_variation_base_category</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Sale Supply Line</string> </value>
</item>
<item>
<key> <string>priced_quantity</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>path</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<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> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1615300365.15</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -10,6 +10,7 @@ service_module/slapos_netdrive_consumption ...@@ -10,6 +10,7 @@ service_module/slapos_netdrive_consumption
service_module/slapos_account_validation service_module/slapos_account_validation
service_module/slapos_instance_hosting service_module/slapos_instance_hosting
service_module/slapos_reservation_fee service_module/slapos_reservation_fee
service_module/slapos_reservation_fee/**
service_module/slapos_reservation_refund service_module/slapos_reservation_refund
service_module/cpu_load_percent service_module/cpu_load_percent
service_module/memory_used service_module/memory_used
......
...@@ -7,6 +7,7 @@ service_module/slapos_netdrive_consumption ...@@ -7,6 +7,7 @@ service_module/slapos_netdrive_consumption
service_module/slapos_account_validation service_module/slapos_account_validation
service_module/slapos_instance_hosting service_module/slapos_instance_hosting
service_module/slapos_reservation_fee service_module/slapos_reservation_fee
service_module/slapos_reservation_fee/**
service_module/slapos_reservation_refund service_module/slapos_reservation_refund
account_module/bank account_module/bank
account_module/capital account_module/capital
......
...@@ -98,5 +98,6 @@ service_module/slapos_instance_subscription/default_ssl ...@@ -98,5 +98,6 @@ service_module/slapos_instance_subscription/default_ssl
service_module/slapos_instance_update service_module/slapos_instance_update
service_module/slapos_netdrive_consumption service_module/slapos_netdrive_consumption
service_module/slapos_reservation_fee service_module/slapos_reservation_fee
service_module/slapos_reservation_fee/**
service_module/slapos_reservation_refund service_module/slapos_reservation_refund
service_module/slapos_tax service_module/slapos_tax
\ No newline at end of file
...@@ -6,6 +6,24 @@ ...@@ -6,6 +6,24 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>base_unit_price</string> </key> <key> <string>base_unit_price</string> </key>
<value> <float>0.0</float> </value> <value> <float>0.0</float> </value>
...@@ -19,6 +37,7 @@ ...@@ -19,6 +37,7 @@
<string>quantity_unit/unit/piece</string> <string>quantity_unit/unit/piece</string>
<string>base_contribution/base_amount/invoicing/discounted</string> <string>base_contribution/base_amount/invoicing/discounted</string>
<string>base_contribution/base_amount/invoicing/taxable</string> <string>base_contribution/base_amount/invoicing/taxable</string>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -39,7 +58,7 @@ ...@@ -39,7 +58,7 @@
<item> <item>
<key> <string>index</string> </key> <key> <string>index</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value> </value>
</item> </item>
<item> <item>
...@@ -87,6 +106,28 @@ ...@@ -87,6 +106,28 @@
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI="> <record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -99,7 +140,7 @@ ...@@ -99,7 +140,7 @@
<item> <item>
<key> <string>movement</string> </key> <key> <string>movement</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
...@@ -108,7 +149,29 @@ ...@@ -108,7 +149,29 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="3" aka="AAAAAAAAAAM="> <record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <int>0</int> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -117,7 +180,12 @@ ...@@ -117,7 +180,12 @@
<item> <item>
<key> <string>data</string> </key> <key> <string>data</string> </key>
<value> <value>
<dictionary/> <dictionary>
<item>
<key> <string>variation/service_module/slapos_reservation_fee/default</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value> </value>
</item> </item>
</dictionary> </dictionary>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Invoice Cell" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>base_id</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>base_id</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>1.1</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>movement_0</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>quantity</string>
<string>price</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_base_category</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>multimembership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Invoice Cell</string> </value>
</item>
<item>
<key> <string>price</string> </key>
<value> <float>0.0</float> </value>
</item>
<item>
<key> <string>quantity</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -6,6 +6,24 @@ ...@@ -6,6 +6,24 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>base_unit_price</string> </key> <key> <string>base_unit_price</string> </key>
<value> <float>0.0</float> </value> <value> <float>0.0</float> </value>
...@@ -18,6 +36,7 @@ ...@@ -18,6 +36,7 @@
<string>resource/service_module/slapos_reservation_fee</string> <string>resource/service_module/slapos_reservation_fee</string>
<string>quantity_unit/unit/piece</string> <string>quantity_unit/unit/piece</string>
<string>base_contribution/base_amount/invoicing</string> <string>base_contribution/base_amount/invoicing</string>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -38,7 +57,7 @@ ...@@ -38,7 +57,7 @@
<item> <item>
<key> <string>index</string> </key> <key> <string>index</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value> </value>
</item> </item>
<item> <item>
...@@ -86,6 +105,28 @@ ...@@ -86,6 +105,28 @@
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI="> <record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -98,7 +139,7 @@ ...@@ -98,7 +139,7 @@
<item> <item>
<key> <string>movement</string> </key> <key> <string>movement</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
...@@ -107,7 +148,29 @@ ...@@ -107,7 +148,29 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="3" aka="AAAAAAAAAAM="> <record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <int>0</int> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -116,7 +179,12 @@ ...@@ -116,7 +179,12 @@
<item> <item>
<key> <string>data</string> </key> <key> <string>data</string> </key>
<value> <value>
<dictionary/> <dictionary>
<item>
<key> <string>variation/service_module/slapos_reservation_fee/default</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value> </value>
</item> </item>
</dictionary> </dictionary>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Invoice Cell" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>base_id</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>base_id</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>1.1</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>movement_0</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>mapped_value_property_list</string> </key>
<value>
<tuple>
<string>quantity</string>
<string>price</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_base_category</string> </key>
<value>
<tuple>
<string>variation</string>
</tuple>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple>
<string>variation/service_module/slapos_reservation_fee/default</string>
</tuple>
</value>
</item>
<item>
<key> <string>multimembership_criterion_base_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Invoice Cell</string> </value>
</item>
<item>
<key> <string>price</string> </key>
<value> <float>0.0</float> </value>
</item>
<item>
<key> <string>quantity</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -20,9 +20,16 @@ if current_invoice is None: ...@@ -20,9 +20,16 @@ if current_invoice is None:
stop_date=payment_transaction.getStopDate(), stop_date=payment_transaction.getStopDate(),
) )
current_invoice["1"].setVariation(service_variation) if service_variation is not None:
current_invoice["1"].setPrice(price) current_invoice["1"].setVariation(service_variation)
current_invoice["1"].setQuantity(context.getQuantity())
cell = current_invoice["1"]["movement_0"]
cell.edit(
variation=current_invoice["1"].getVariation(),
quantity=context.getQuantity()
)
cell.setPrice(price)
comment = "Validation invoice for subscription request %s" % context.getRelativeUrl() comment = "Validation invoice for subscription request %s" % context.getRelativeUrl()
current_invoice.plan(comment=comment) current_invoice.plan(comment=comment)
......
...@@ -50,7 +50,6 @@ if current_invoice is None: ...@@ -50,7 +50,6 @@ if current_invoice is None:
if 'base_amount/invoicing/taxable' in invoice_line.getBaseContributionList(): if 'base_amount/invoicing/taxable' in invoice_line.getBaseContributionList():
tax = 0.2 tax = 0.2
for line in current_payment.contentValues(): for line in current_payment.contentValues():
if line.getSource() == "account_module/payment_to_encash": if line.getSource() == "account_module/payment_to_encash":
total = round((-int(amount) * price)+(-int(amount) * price*tax), 2) total = round((-int(amount) * price)+(-int(amount) * price*tax), 2)
...@@ -63,7 +62,7 @@ if current_invoice is None: ...@@ -63,7 +62,7 @@ if current_invoice is None:
comment = "Validation payment for subscription request %s" % context.getRelativeUrl() comment = "Validation payment for subscription request %s" % context.getRelativeUrl()
current_payment.confirm(comment=comment) current_payment.confirm(comment=comment)
current_payment.start(comment=comment) current_payment.start(comment=comment)
if not amount: if not price:
current_payment.stop(comment="%s (Free)" % comment) current_payment.stop(comment="%s (Free)" % comment)
elif target_language != "zh": elif target_language != "zh":
# Payzen don't require update like this. # Payzen don't require update like this.
......
...@@ -28,7 +28,7 @@ class TestSlapOSSubscriptionCDNScenarioMixin(TestSlapOSSubscriptionScenarioMixin ...@@ -28,7 +28,7 @@ class TestSlapOSSubscriptionCDNScenarioMixin(TestSlapOSSubscriptionScenarioMixin
self.expected_individual_price_without_tax = 4.16666666667 self.expected_individual_price_without_tax = 4.16666666667
self.expected_individual_price_with_tax = 5.0 self.expected_individual_price_with_tax = 5.0
self.expected_reservation_fee = 1.0 self.expected_reservation_fee = 1.0
self.expected_reservation_fee_without_tax = 0.83 self.expected_reservation_fee_without_tax = 0.833333333333333
self.expected_reservation_quantity_tax = 0.833333333333333 self.expected_reservation_quantity_tax = 0.833333333333333
self.expected_reservation_tax = 0.166666666666667 self.expected_reservation_tax = 0.166666666666667
self.expected_price_currency = "currency_module/EUR" self.expected_price_currency = "currency_module/EUR"
...@@ -86,6 +86,10 @@ class TestSlapOSSubscriptionCDNScenarioMixin(TestSlapOSSubscriptionScenarioMixin ...@@ -86,6 +86,10 @@ class TestSlapOSSubscriptionCDNScenarioMixin(TestSlapOSSubscriptionScenarioMixin
self.tic() self.tic()
self.login() self.login()
self.setServerOpenSubscription(subscription_server) self.setServerOpenSubscription(subscription_server)
self.setAccessToMemcached(subscription_server)
self.tic()
self.simulateSlapgridCP(subscription_server)
self.logout() self.logout()
return subscription_server return subscription_server
......
...@@ -34,7 +34,7 @@ class TestSlapOSSubscriptionScenarioMixin(DefaultScenarioMixin): ...@@ -34,7 +34,7 @@ class TestSlapOSSubscriptionScenarioMixin(DefaultScenarioMixin):
self.expected_individual_price_without_tax = 162.50 self.expected_individual_price_without_tax = 162.50
self.expected_individual_price_with_tax = 195.00 self.expected_individual_price_with_tax = 195.00
self.expected_reservation_fee = 25.00 self.expected_reservation_fee = 25.00
self.expected_reservation_fee_without_tax = 20.83 self.expected_reservation_fee_without_tax = 20.833333333333333
self.expected_reservation_quantity_tax = 20.833333333333333 self.expected_reservation_quantity_tax = 20.833333333333333
self.expected_reservation_tax = 4.166666666666667 self.expected_reservation_tax = 4.166666666666667
self.expected_price_currency = "currency_module/EUR" self.expected_price_currency = "currency_module/EUR"
...@@ -722,13 +722,14 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans ...@@ -722,13 +722,14 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
subscription_request.getPriceCurrency()) subscription_request.getPriceCurrency())
for line in invoice.objectValues(): for line in invoice.objectValues():
if line.getResource() == "service_module/slapos_reservation_fee": if line.getResource() == "service_module/slapos_reservation_fee":
self.assertEqual(line.getQuantity(), quantity) self.assertEqual(line.getTotalQuantity(), quantity)
if self.expected_free_reservation: if self.expected_free_reservation:
self.assertEqual(round(line.getPrice(), 2), 0.0) self.assertEqual(round(line.getTotalPrice(), 2), 0.0)
else: else:
self.assertEqual(round(line.getPrice(), 2), expected_reservation_fee_without_tax) self.assertEqual(round(line.getTotalPrice(), 2),
round(expected_reservation_fee_without_tax*quantity, 2))
if line.getResource() == "service_module/slapos_tax": if line.getResource() == "service_module/slapos_tax":
self.assertEqual(round(line.getQuantity(), 2), self.assertEqual(round(line.getTotalQuantity(), 2),
round(expected_reservation_quantity_tax*quantity, 2)) round(expected_reservation_quantity_tax*quantity, 2))
self.assertEqual(round(line.getTotalPrice(), 2), self.assertEqual(round(line.getTotalPrice(), 2),
round(expected_reservation_tax*quantity, 2)) round(expected_reservation_tax*quantity, 2))
......
...@@ -246,7 +246,7 @@ class TestSubscriptionRequestModule_requestSubscription(TestSubscriptionSkinsMix ...@@ -246,7 +246,7 @@ class TestSubscriptionRequestModule_requestSubscription(TestSubscriptionSkinsMix
expected_argument_tuple = (('123@nexedi.com', 'subscription_reference'), expected_argument_tuple = (('123@nexedi.com', 'subscription_reference'),
{'confirmation_required': True, 'user_input_dict': {'name': "couscous", 'amount': 0}, {'confirmation_required': True, 'user_input_dict': {'name': "couscous", 'amount': 0},
'target_language': None, 'token': None, 'batch_mode': 0}) 'variation_reference': None, 'target_language': None, 'token': None, 'batch_mode': 0})
self.assertEqual(expected_argument_tuple, module.SubscriptionRequestModule_requestSubscription( self.assertEqual(expected_argument_tuple, module.SubscriptionRequestModule_requestSubscription(
REQUEST=self.portal.REQUEST, default_email_text="123@nexedi.com", REQUEST=self.portal.REQUEST, default_email_text="123@nexedi.com",
...@@ -657,7 +657,7 @@ class TestSubscriptionRequest_createRelatedSaleInvoiceTransaction(TestSubscripti ...@@ -657,7 +657,7 @@ class TestSubscriptionRequest_createRelatedSaleInvoiceTransaction(TestSubscripti
self.assertEqual(current_invoice.getStartDate(), current_payment.getStartDate()) self.assertEqual(current_invoice.getStartDate(), current_payment.getStartDate())
self.assertEqual(current_invoice.getStopDate(), current_payment.getStopDate()) self.assertEqual(current_invoice.getStopDate(), current_payment.getStopDate())
self.assertEqual(current_invoice.getSimulationState(), "confirmed") self.assertEqual(current_invoice.getSimulationState(), "confirmed")
self.assertEqual(current_invoice["1"].getQuantity(), quantity) self.assertEqual(current_invoice["1"].getTotalQuantity(), quantity)
def test_creation_of_related_sale_invoice_transaction_q1(self): def test_creation_of_related_sale_invoice_transaction_q1(self):
self._test_creation_of_related_sale_invoice_transaction(1) self._test_creation_of_related_sale_invoice_transaction(1)
......
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