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
|
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(
|
self.assertEqual(len(
|
||||||
json.loads(response.text)
|
json.loads(response.text)
|
||||||
), 1)
|
), 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