Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
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
Xavier Thompson
erp5
Commits
b7f87dac
Commit
b7f87dac
authored
Apr 26, 2022
by
Xiaowu Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_accounting_ui_test: update tests
parent
88f60f5c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
131 additions
and
24 deletions
+131
-24
bt5/erp5_accounting_ui_test/TestTemplateItem/portal_components/test.erp5.testConversionInSimulation.py
...portal_components/test.erp5.testConversionInSimulation.py
+131
-24
No files found.
bt5/erp5_accounting_ui_test/TestTemplateItem/portal_components/test.erp5.testConversionInSimulation.py
View file @
b7f87dac
...
...
@@ -313,7 +313,7 @@ class TestConversionInSimulation(AccountingTestCase):
delivery_movement
.
getPriceCurrencyValue
())
self
.
assertEquals
\
(
invoice_transaction_movement_1
.
getDestinationTotalAssetPrice
(),
round
(
655.957
*
delivery_movement
.
getTotalPrice
()
))
655.957
*
invoice_transaction_movement_1
.
getTotalPrice
(
))
self
.
assertEquals
\
(
invoice_transaction_movement_1
.
getSourceTotalAssetPrice
(),
None
)
...
...
@@ -325,7 +325,7 @@ class TestConversionInSimulation(AccountingTestCase):
delivery_movement
.
getPriceCurrencyValue
())
self
.
assertEquals
\
(
invoice_transaction_movement_2
.
getDestinationTotalAssetPrice
(),
round
(
655.957
*
delivery_movement
.
getTotalPrice
()
))
655.957
*
invoice_transaction_movement_2
.
getTotalPrice
(
))
def
test_01_simulation_movement_source_asset_price
(
self
,
quiet
=
0
,
run
=
run_all_test
):
...
...
@@ -405,7 +405,7 @@ class TestConversionInSimulation(AccountingTestCase):
delivery_movement
.
getPriceCurrencyValue
())
self
.
assertEquals
\
(
invoice_transaction_movement
.
getSourceTotalAssetPrice
(),
round
(
655.957
*
delivery_movement
.
getTotalPrice
()
))
-
655.957
*
invoice_transaction_movement
.
getTotalPrice
(
))
self
.
assertEquals
\
(
invoice_transaction_movement
.
getDestinationTotalAssetPrice
(),
None
)
...
...
@@ -478,11 +478,6 @@ class TestConversionInSimulation(AccountingTestCase):
related_packing_list
.
stop
()
self
.
tic
()
self
.
buildInvoices
()
related_applied_rule
=
order
.
getCausalityRelatedValue
(
portal_type
=
'Applied Rule'
)
order_movement
=
related_applied_rule
.
contentValues
()[
0
]
delivery_applied_rule
=
order_movement
.
contentValues
()[
0
]
delivery_movement
=
delivery_applied_rule
.
contentValues
()[
0
]
related_invoice
=
related_packing_list
.
getCausalityRelatedValue
(
portal_type
=
'Sale Invoice Transaction'
)
self
.
assertNotEquals
(
related_invoice
,
None
)
...
...
@@ -491,9 +486,113 @@ class TestConversionInSimulation(AccountingTestCase):
line_list
=
related_invoice
.
contentValues
(
portal_type
=
self
.
portal
.
getPortalAccountingMovementTypeList
())
self
.
assertNotEquals
(
line_list
,
None
)
result_list
=
[]
for
line
in
line_list
:
self
.
assertEqual
(
line
.
getDestinationTotalAssetPrice
(),
round
(
655.957
*
delivery_movement
.
getTotalPrice
()))
result_list
.
append
((
line
.
getSource
(),
line
.
getDestinationTotalAssetPrice
()))
self
.
assertEqual
(
line
.
getSourceTotalAssetPrice
(),
None
)
self
.
assertEquals
(
sorted
(
result_list
),
sorted
([
(
'account_module/customer'
,
round
(
-
2
*
(
1
+
0.196
)
*
655.957
)),
(
'account_module/receivable_vat'
,
round
(
2
*
0.196
*
655.957
)),
(
'account_module/sale'
,
round
(
2
*
655.957
))
])
)
self
.
assertEqual
(
len
(
related_invoice
.
checkConsistency
()),
0
)
def
test_01_source_total_asset_price_on_accounting_lines
(
self
,
quiet
=
0
,
run
=
run_all_test
):
"""
tests that the delivery builder of the invoice transaction lines
copies the source asset price on the accounting_lines of the invoice
"""
if
not
run
:
return
if
not
quiet
:
printAndLog
(
'test_01_source_total_asset_price_on_accounting_lines'
)
resource
=
self
.
portal
.
product_module
.
newContent
(
portal_type
=
'Product'
,
title
=
'Resource'
,
product_line
=
'apparel'
)
currency
=
self
.
portal
.
currency_module
.
newContent
(
portal_type
=
'Currency'
,
title
=
'euro'
)
currency
.
setBaseUnitQuantity
(
0.01
)
new_currency
=
\
self
.
portal
.
currency_module
.
newContent
(
portal_type
=
'Currency'
)
new_currency
.
setReference
(
'XOF'
)
new_currency
.
setTitle
(
'Francs CFA'
)
new_currency
.
setBaseUnitQuantity
(
1.00
)
self
.
tic
()
#execute transaction
x_curr_ex_line
=
currency
.
newContent
(
portal_type
=
'Currency Exchange Line'
,
price_currency
=
new_currency
.
getRelativeUrl
())
x_curr_ex_line
.
setTitle
(
'Euro to Francs CFA'
)
x_curr_ex_line
.
setBasePrice
(
655.957
)
x_curr_ex_line
.
setStartDate
(
DateTime
(
2008
,
10
,
21
))
x_curr_ex_line
.
setStopDate
(
DateTime
(
2008
,
10
,
22
))
x_curr_ex_line
.
validate
()
self
.
createBusinessProcess
(
currency
)
self
.
tic
()
#execute transaction
client
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
,
title
=
'Client'
,
default_address_region
=
self
.
default_region
)
vendor
=
self
.
portal
.
organisation_module
.
newContent
(
portal_type
=
'Organisation'
,
title
=
'Vendor'
,
price_currency
=
new_currency
.
getRelativeUrl
(),
default_address_region
=
self
.
default_region
)
order
=
self
.
portal
.
sale_order_module
.
newContent
(
portal_type
=
'Sale Order'
,
source_value
=
vendor
,
source_section_value
=
vendor
,
destination_value
=
client
,
destination_section_value
=
client
,
start_date
=
DateTime
(
2008
,
10
,
21
),
price_currency_value
=
currency
,
specialise_value
=
self
.
business_process
,
title
=
'Order'
)
order
.
newContent
(
portal_type
=
'Sale Order Line'
,
resource_value
=
resource
,
quantity
=
1
,
price
=
2
)
order
.
confirm
()
self
.
tic
()
self
.
buildPackingLists
()
related_packing_list
=
order
.
getCausalityRelatedValue
(
portal_type
=
'Sale Packing List'
)
self
.
assertNotEquals
(
related_packing_list
,
None
)
related_packing_list
.
start
()
related_packing_list
.
stop
()
self
.
tic
()
self
.
buildInvoices
()
related_invoice
=
related_packing_list
.
getCausalityRelatedValue
(
portal_type
=
'Sale Invoice Transaction'
)
self
.
assertNotEquals
(
related_invoice
,
None
)
related_invoice
.
start
()
self
.
tic
()
line_list
=
related_invoice
.
contentValues
(
portal_type
=
self
.
portal
.
getPortalAccountingMovementTypeList
())
self
.
assertNotEquals
(
line_list
,
None
)
result_list
=
[]
for
line
in
line_list
:
result_list
.
append
((
line
.
getSource
(),
line
.
getSourceTotalAssetPrice
()))
self
.
assertEqual
(
line
.
getDestinationTotalAssetPrice
(),
None
)
self
.
assertEquals
(
sorted
(
result_list
),
sorted
([
(
'account_module/customer'
,
round
(
2
*
(
1
+
0.196
)
*
655.957
)),
(
'account_module/receivable_vat'
,
round
(
-
2
*
0.196
*
655.957
)),
(
'account_module/sale'
,
round
(
-
2
*
655.957
))
])
)
self
.
assertEqual
(
len
(
related_invoice
.
checkConsistency
()),
0
)
def
test_01_diverged_sale_packing_list_destination_total_asset_price
(
self
,
quiet
=
0
,
run
=
run_all_test
):
...
...
@@ -565,8 +664,6 @@ class TestConversionInSimulation(AccountingTestCase):
related_packing_list_line_list
=
related_packing_list
.
getMovementList
()
related_packing_list_line
=
related_packing_list_line_list
[
0
]
self
.
assertEqual
(
related_packing_list_line
.
getQuantity
(),
5.0
)
old_destination_asset_price
=
\
round
(
655.957
*
related_packing_list_line
.
getTotalPrice
())
related_packing_list_line
.
edit
(
quantity
=
3.0
)
self
.
tic
()
...
...
@@ -587,11 +684,17 @@ class TestConversionInSimulation(AccountingTestCase):
invoice_applied_rule
=
delivery_movement
.
contentValues
()[
0
]
invoice_movement
=
invoice_applied_rule
.
contentValues
()[
0
]
invoice_transaction_applied_rule
=
invoice_movement
.
contentValues
()[
0
]
invoice_transaction_movement
=
\
invoice_transaction_applied_rule
.
contentValues
()[
0
]
self
.
assertEqual
(
invoice_transaction_movement
.
getDestinationTotalAssetPrice
(),
old_destination_asset_price
*
(
3.0
/
5.0
))
result_list
=
[]
for
invoice_transaction_movement
in
invoice_transaction_applied_rule
.
contentValues
():
result_list
.
append
((
invoice_transaction_movement
.
getSource
(),
invoice_transaction_movement
.
getDestinationTotalAssetPrice
()))
self
.
assertEquals
(
sorted
(
result_list
),
sorted
([
(
'account_module/customer'
,
-
2
*
3
*
(
1
+
0.196
)
*
655.957
),
(
'account_module/receivable_vat'
,
2
*
3
*
0.196
*
655.957
),
(
'account_module/sale'
,
2
*
3
*
655.957
)
])
)
def
test_01_diverged_purchase_packing_list_source_total_asset_price
(
...
...
@@ -664,8 +767,6 @@ class TestConversionInSimulation(AccountingTestCase):
related_packing_list_line_list
=
related_packing_list
.
getMovementList
()
related_packing_list_line
=
related_packing_list_line_list
[
0
]
self
.
assertEqual
(
related_packing_list_line
.
getQuantity
(),
5.0
)
old_source_asset_price
=
\
round
(
655.957
*
related_packing_list_line
.
getTotalPrice
())
related_packing_list_line
.
edit
(
quantity
=
3.0
)
self
.
tic
()
...
...
@@ -687,11 +788,17 @@ class TestConversionInSimulation(AccountingTestCase):
invoice_applied_rule
=
delivery_movement
.
contentValues
()[
0
]
invoice_movement
=
invoice_applied_rule
.
contentValues
()[
0
]
invoice_transaction_applied_rule
=
invoice_movement
.
contentValues
()[
0
]
invoice_transaction_movement
=
\
invoice_transaction_applied_rule
.
contentValues
()[
0
]
self
.
assertEqual
(
invoice_transaction_movement
.
\
getSourceTotalAssetPrice
(),
old_source_asset_price
*
(
3.0
/
5.0
))
result_list
=
[]
for
invoice_transaction_movement
in
invoice_transaction_applied_rule
.
contentValues
():
result_list
.
append
((
invoice_transaction_movement
.
getSource
(),
invoice_transaction_movement
.
getSourceTotalAssetPrice
()))
self
.
assertEquals
(
sorted
(
result_list
),
sorted
([
(
'account_module/customer'
,
2
*
3
*
(
1
+
0.196
)
*
655.957
),
(
'account_module/receivable_vat'
,
-
2
*
3
*
0.196
*
655.957
),
(
'account_module/sale'
,
-
2
*
3
*
655.957
)
])
)
def
test_01_delivery_mode_on_sale_packing_list_and_invoice
(
self
,
quiet
=
0
,
run
=
run_all_test
):
...
...
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