Commit 7d09b24c authored by Romain Courteaud's avatar Romain Courteaud

slapos_accounting: testSlapOSAccountingBuilder: update quantity unit of software product

parent 9949fecd
......@@ -19,13 +19,14 @@ class TestSlapOSSalePackingListBuilder(SlapOSTestCaseMixin):
self.assertNotEqual(None, simulation_movement.getDeliveryValue())
def checkDeliveryLine(self, simulation_movement, delivery_line,
line_portal_type, cell_portal_type, has_date_on_line):
line_portal_type, cell_portal_type):
self.assertEqual(line_portal_type, delivery_line.getPortalType())
self.assertSameSet([
'use/trade/sale',
'quantity_unit/unit/piece',
'base_contribution/base_amount/invoicing/discounted',
'base_contribution/base_amount/invoicing/taxable'] \
+ convertCategoryList('quantity_unit',
simulation_movement.getQuantityUnitList())
+ convertCategoryList('aggregate',
simulation_movement.getAggregateList())
+ convertCategoryList('resource',
......@@ -36,8 +37,8 @@ class TestSlapOSSalePackingListBuilder(SlapOSTestCaseMixin):
delivery_line.getQuantity())
self.assertEqual(simulation_movement.getPrice(),
delivery_line.getPrice())
self.assertEqual(delivery_line.hasStartDate(), has_date_on_line)
self.assertEqual(delivery_line.hasStopDate(), has_date_on_line)
self.assertFalse(delivery_line.hasStartDate())
self.assertFalse(delivery_line.hasStopDate())
self.assertEqual([], delivery_line.contentValues(
portal_type=cell_portal_type))
self.assertSameSet([simulation_movement.getRelativeUrl()],
......@@ -52,13 +53,17 @@ class TestSlapOSSalePackingListBuilder(SlapOSTestCaseMixin):
self.assertEqual('building', delivery.getCausalityState())
delivery.updateCausalityState(solve_automatically=False)
self.assertEqual('solved', delivery.getCausalityState())
self.assertTrue(delivery.hasStartDate())
self.assertTrue(delivery.hasStopDate())
if expected_start_date is None:
expected_start_date = simulation_movement.getStartDate()
self.assertEqual(expected_start_date, delivery.getStartDate())
self.assertEqual(simulation_movement.getStartDate(), delivery.getStartDate())
if expected_stop_date is None:
expected_stop_date = simulation_movement.getStopDate()
self.assertEqual(expected_stop_date, delivery.getStopDate())
self.assertEqual(simulation_movement.getStopDate(), delivery.getStopDate())
self.assertSameSet([
'ledger/automated'] \
......@@ -112,7 +117,7 @@ class TestSlapOSSalePackingListBuilder(SlapOSTestCaseMixin):
destination_section_value=destination,
destination_project_value=project,
price_currency_value=currency,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
resource_value=resource,
source_value=source,
source_section_value=source,
......@@ -150,8 +155,7 @@ class TestSlapOSSalePackingListBuilder(SlapOSTestCaseMixin):
delivery_line_2.getRelativeUrl())
line_kw = dict(line_portal_type='Sale Packing List Line',
cell_portal_type='Sale Packing List Cell',
has_date_on_line=False)
cell_portal_type='Sale Packing List Cell')
self.checkDeliveryLine(simulation_movement_1, delivery_line_1, **line_kw)
self.checkDeliveryLine(simulation_movement_2, delivery_line_2, **line_kw)
......@@ -194,7 +198,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
portal_type='Sale Packing List Line',
resource_value=resource,
use='trade/sale',
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
base_contribution_list=['base_amount/invoicing/discounted',
'base_amount/invoicing/taxable'],
)
......@@ -230,7 +234,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
batch_mode=1)
delivery_line_1_bis.edit(
price=0.0,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
# Create second delivery
......@@ -272,7 +277,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
destination_section_value=destination,
destination_project_value=project,
price_currency_value=currency,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
resource_value=resource,
source_value=source,
source_section_value=source,
......@@ -299,7 +304,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
delivery=delivery_line_1_bis.getRelativeUrl(),
**simulation_movement_kw
)
simulation_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
simulation_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
simulation_movement_2 = applied_rule_2.newContent(
quantity=delivery_line_2.getQuantity(),
price=delivery_line_2.getPrice(),
......@@ -349,7 +357,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
quantity=delivery_line_1_bis.getQuantity(),
price=delivery_line_1_bis.getPrice(),
**invoice_movement_kw)
invoice_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
invoice_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
invoice_rule_2 = simulation_movement_2.newContent(
portal_type='Applied Rule',
......@@ -381,8 +392,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
invoice_line_1_bis.getParentValue())
line_kw = dict(line_portal_type='Invoice Line',
cell_portal_type='Invoice Cell',
has_date_on_line=True)
cell_portal_type='Invoice Cell')
self.checkDeliveryLine(invoice_movement_1, invoice_line_1, **line_kw)
self.checkDeliveryLine(invoice_movement_1_bis, invoice_line_1_bis,
**line_kw)
......@@ -415,7 +425,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
# Keep price different else this line will be merged with delivery_line_1_bis
# on the invoice side
price=1.1,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
simulation_movement_2_bis = applied_rule_2.newContent(
quantity=delivery_line_2_bis.getQuantity(),
......@@ -425,7 +436,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
delivery=delivery_line_2_bis.getRelativeUrl(),
**simulation_movement_kw
)
simulation_movement_2_bis.edit(resource=delivery_line_2_bis.getResource())
simulation_movement_2_bis.edit(
resource=delivery_line_2_bis.getResource(),
quantity_unit=delivery_line_2_bis.getQuantityUnit()
)
invoice_rule_2_bis = simulation_movement_2_bis.newContent(
portal_type='Applied Rule',
specialise='portal_rules/slapos_invoice_simulation_rule')
......@@ -435,7 +449,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
quantity=delivery_line_2_bis.getQuantity(),
price=delivery_line_2_bis.getPrice(),
**invoice_movement_kw)
invoice_movement_2_bis.edit(resource=delivery_line_2_bis.getResource())
invoice_movement_2_bis.edit(
resource=delivery_line_2_bis.getResource(),
quantity_unit=delivery_line_2_bis.getQuantityUnit()
)
self.tic()
# test the test
delivery_2.updateCausalityState(solve_automatically=False)
......@@ -509,7 +526,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
portal_type='Sale Packing List Line',
resource_value=resource,
use='trade/sale',
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
base_contribution_list=['base_amount/invoicing/discounted',
'base_amount/invoicing/taxable'],
)
......@@ -546,7 +563,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
batch_mode=1)
delivery_line_1_bis.edit(
price=0.0,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
# Create second delivery
......@@ -589,7 +607,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
destination_section_value=destination,
destination_project_value=project,
price_currency_value=currency,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
resource_value=resource,
source_value=source,
source_section_value=source,
......@@ -615,7 +633,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
delivery=delivery_line_1_bis.getRelativeUrl(),
**simulation_movement_kw
)
simulation_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
simulation_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
simulation_movement_2 = applied_rule_2.newContent(
quantity=delivery_line_2.getQuantity(),
price=delivery_line_2.getPrice(),
......@@ -665,7 +686,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
quantity=delivery_line_1_bis.getQuantity(),
price=delivery_line_1_bis.getPrice(),
**invoice_movement_kw)
invoice_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
invoice_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
invoice_rule_2 = simulation_movement_2.newContent(
portal_type='Applied Rule',
......@@ -725,7 +749,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
batch_mode=1)
delivery_line_2_bis.edit(
price=0.0,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
simulation_movement_2_bis = applied_rule_2.newContent(
quantity=delivery_line_2_bis.getQuantity(),
......@@ -772,6 +797,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
)
def test_with_different_date(self):
self.portal.testromain()
resource, _, _, _, _, instance_tree = self.bootstrapAllocableInstanceTree(is_accountable=True)
project = instance_tree.getFollowUpValue()
trade_condition = project.getSpecialiseValue()
......@@ -793,7 +819,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
portal_type='Sale Packing List Line',
resource_value=resource,
use='trade/sale',
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
base_contribution_list=['base_amount/invoicing/discounted',
'base_amount/invoicing/taxable'],
)
......@@ -828,7 +854,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
batch_mode=1)
delivery_line_1_bis.edit(
price=0.0,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
# Create second delivery
......@@ -869,7 +896,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
destination_section_value=destination,
destination_project_value=project,
price_currency_value=currency,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
resource_value=resource,
source_value=source,
source_section_value=source,
......@@ -895,7 +922,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
delivery=delivery_line_1_bis.getRelativeUrl(),
**simulation_movement_kw
)
simulation_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
simulation_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
simulation_movement_2 = applied_rule_2.newContent(
quantity=delivery_line_2.getQuantity(),
price=delivery_line_2.getPrice(),
......@@ -945,7 +975,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
quantity=delivery_line_1_bis.getQuantity(),
price=delivery_line_1_bis.getPrice(),
**invoice_movement_kw)
invoice_movement_1_bis.edit(resource=delivery_line_1_bis.getResource())
invoice_movement_1_bis.edit(
resource=delivery_line_1_bis.getResource(),
quantity_unit=delivery_line_1_bis.getQuantityUnit()
)
invoice_rule_2 = simulation_movement_2.newContent(
portal_type='Applied Rule',
......@@ -977,8 +1010,7 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
invoice_line_1_bis.getParentValue())
line_kw = dict(line_portal_type='Invoice Line',
cell_portal_type='Invoice Cell',
has_date_on_line=True)
cell_portal_type='Invoice Cell')
self.checkDeliveryLine(invoice_movement_1, invoice_line_1, **line_kw)
self.checkDeliveryLine(invoice_movement_1_bis, invoice_line_1_bis,
**line_kw)
......@@ -1016,7 +1048,8 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
# Keep price different else this line will be merged with delivery_line_1_bis
# on the invoice side
price=1.1,
resource='service_module/slapos_instance_setup'
resource='service_module/slapos_instance_setup',
quantity_unit='unit/piece'
)
simulation_movement_2_bis = applied_rule_2.newContent(
quantity=delivery_line_2_bis.getQuantity(),
......@@ -1026,7 +1059,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
delivery=delivery_line_2_bis.getRelativeUrl(),
**simulation_movement_kw
)
simulation_movement_2_bis.edit(resource=delivery_line_2_bis.getResource())
simulation_movement_2_bis.edit(
resource=delivery_line_2_bis.getResource(),
quantity_unit=delivery_line_2_bis.getQuantityUnit()
)
invoice_rule_2_bis = simulation_movement_2_bis.newContent(
portal_type='Applied Rule',
specialise='portal_rules/slapos_invoice_simulation_rule')
......@@ -1036,7 +1072,10 @@ class TestSlapOSSaleInvoiceBuilder(TestSlapOSSalePackingListBuilder):
quantity=delivery_line_2_bis.getQuantity(),
price=delivery_line_2_bis.getPrice(),
**invoice_movement_kw)
invoice_movement_2_bis.edit(resource=delivery_line_2_bis.getResource())
invoice_movement_2_bis.edit(
resource=delivery_line_2_bis.getResource(),
quantity_unit=delivery_line_2_bis.getQuantityUnit()
)
self.tic()
# test the test
delivery_2.updateCausalityState(solve_automatically=False)
......@@ -1113,7 +1152,7 @@ class TestSlapOSSaleInvoiceTransactionBuilder(TestSlapOSSalePackingListBuilder):
portal_type='Invoice Line',
use='trade/sale',
resource_value=resource,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
base_contribution=['base_amount/invoicing/discounted',
'base_amount/invoicing/taxable'],
)
......@@ -1184,7 +1223,7 @@ class TestSlapOSSaleInvoiceTransactionBuilder(TestSlapOSSalePackingListBuilder):
destination_decision_value=destination,
destination_project_value=project,
price_currency_value=currency,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
resource_value=resource,
source_value=source,
source_section_value=source,
......@@ -1644,7 +1683,7 @@ class TestSlapOSSaleInvoiceTransactionTradeModelBuilder(TestSlapOSSalePackingLis
use='trade/sale',
ledger='automated',
resource_value=resource,
quantity_unit='unit/piece',
quantity_unit=resource.getQuantityUnit(),
base_contribution=['base_amount/invoicing/discounted',
'base_amount/invoicing/taxable'],
)
......
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