Feat: Confirm order
This commit is contained in:
parent
58a600c17d
commit
2c64f80f9c
25
routes.py
25
routes.py
@ -57,3 +57,28 @@ def get_order(request, pool, order: int):
|
||||
])
|
||||
|
||||
return orders
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/confirm_order/<order>', methods=['POST'])
|
||||
@allow_null_origin
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
@sale_order_application
|
||||
def confirm_order(request, pool, order: int):
|
||||
Order = pool.get('sale.order')
|
||||
if request.method == 'POST':
|
||||
order, = Order.search([
|
||||
('id', '=', order)
|
||||
])
|
||||
|
||||
Order.confirm([order])
|
||||
|
||||
response_data = {
|
||||
'id': order.id,
|
||||
'status': 'success',
|
||||
'state': order.state,
|
||||
'message': 'Order confirm successfully',
|
||||
}
|
||||
|
||||
return json.dumps(response_data), 201
|
||||
|
@ -103,3 +103,38 @@ class SaleOrderApiRouteTestCase(RouteTestCase):
|
||||
self.assertEqual(len(
|
||||
json.loads(response.text)
|
||||
), 1)
|
||||
|
||||
def test_confirm_sale_order(self):
|
||||
client = self.client()
|
||||
|
||||
order = json.loads(
|
||||
client.post(
|
||||
f'/{self.db_name}/sale_order/order',
|
||||
headers={
|
||||
'Authorization': f'bearer {self.key}',
|
||||
}, data=json.dumps({
|
||||
"party": self.party.id,
|
||||
"pickup_location": 'on_site',
|
||||
"lines": [[
|
||||
"create", [{
|
||||
"product": self.product.id,
|
||||
"unit": self.unit,
|
||||
"quantity": "5",
|
||||
"unitprice": "10"
|
||||
}]
|
||||
]]
|
||||
})).get_data().decode())
|
||||
|
||||
confirm_url = f"/{self.db_name}/sale_order/confirm_order/"
|
||||
order_id = json.loads(order[0])['id']
|
||||
response = client.post(
|
||||
f"{confirm_url}{order_id}",
|
||||
headers={
|
||||
'Authorization': f'bearer {self.key}',
|
||||
})
|
||||
|
||||
response_data = json.loads(
|
||||
json.loads(response.text)[0])
|
||||
|
||||
self.assertEqual(response.status_code, HTTPStatus.OK)
|
||||
self.assertEqual(response_data['state'], 'confirmed')
|
||||
|
Loading…
Reference in New Issue
Block a user