85 lines
2.8 KiB
Python
85 lines
2.8 KiB
Python
from odoo.addons.point_of_sale.tests.common import TestPointOfSaleCommon
|
|
from odoo.addons.account_edi.tests.common import AccountTestInvoicingCommon
|
|
from odoo.tests import tagged
|
|
from odoo import fields
|
|
|
|
|
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
|
class TestHash(TestPointOfSaleCommon):
|
|
|
|
@classmethod
|
|
@AccountTestInvoicingCommon.setup_country('fr')
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
|
|
def test_hashes_should_be_equal_if_no_alteration(self):
|
|
product1 = self.env['product.product'].create({
|
|
'name': 'product1',
|
|
})
|
|
|
|
self.pos_config.open_ui()
|
|
pos_session = self.pos_config.current_session_id
|
|
draft_order = {
|
|
'access_token': False,
|
|
'amount_paid': 0,
|
|
'amount_return': 0,
|
|
'amount_tax': 0,
|
|
'amount_total': 0,
|
|
'date_order': fields.Datetime.to_string(fields.Datetime.now()),
|
|
'lines': [],
|
|
'name': '/',
|
|
'partner_id': False,
|
|
'session_id': pos_session.id,
|
|
'sequence_number': 2,
|
|
'payment_ids': [],
|
|
'uuid': '12345-123-1234',
|
|
'last_order_preparation_change': '{}',
|
|
'user_id': self.env.uid,
|
|
'state': 'draft',
|
|
}
|
|
|
|
self.PosOrder.sync_from_ui([draft_order])
|
|
self.env.invalidate_all()
|
|
|
|
paid_order = {
|
|
'access_token': False,
|
|
'amount_paid': 20,
|
|
'amount_return': 5.0,
|
|
'amount_tax': 0,
|
|
'amount_total': 15.0,
|
|
'date_order': fields.Datetime.to_string(fields.Datetime.now()),
|
|
'lines': [[0,
|
|
0,
|
|
{'discount': 0,
|
|
'pack_lot_ids': [],
|
|
'price_unit': 15.0,
|
|
'product_id': product1.id,
|
|
'price_subtotal': 15.0,
|
|
'price_subtotal_incl': 15.0,
|
|
'qty': 1,
|
|
'tax_ids': []}]],
|
|
'name': 'Order 12345-123-1234',
|
|
'partner_id': False,
|
|
'session_id': pos_session.id,
|
|
'sequence_number': 2,
|
|
'payment_ids': [[0,
|
|
0,
|
|
{'amount': 20.0,
|
|
'name': fields.Datetime.now(),
|
|
'payment_method_id': self.cash_payment_method.id}]],
|
|
'uuid': '12345-123-1234',
|
|
'last_order_preparation_change': '{}',
|
|
'user_id': self.env.uid,
|
|
'state': 'paid',
|
|
}
|
|
|
|
self.PosOrder.sync_from_ui([paid_order])
|
|
self.env.invalidate_all()
|
|
|
|
posted_order = self.env['pos.order'].search([('uuid', '=', '12345-123-1234')])
|
|
self.assertEqual(posted_order.state, 'paid')
|
|
|
|
self.pos_config.current_session_id.action_pos_session_closing_control()
|
|
|
|
self.assertEqual(posted_order.l10n_fr_hash, posted_order._compute_hash(''))
|