Fix: Create POST Order Line
This commit is contained in:
parent
2c64f80f9c
commit
becf5f929a
74
routes.py
74
routes.py
@ -10,30 +10,6 @@ import json
|
||||
sale_order_application = user_application('sale_order')
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/order', methods=['POST'])
|
||||
@allow_null_origin
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
@sale_order_application
|
||||
def post_order(request, pool):
|
||||
Order = pool.get('sale.order')
|
||||
with Transaction().set_context(
|
||||
{'company': 1, 'locations': [3]}):
|
||||
if request.method == 'POST':
|
||||
data = json.loads(
|
||||
request.get_data().decode()
|
||||
)
|
||||
order, = Order.create([dict(data)])
|
||||
|
||||
response_data = {
|
||||
'id': order.id,
|
||||
'status': 'success',
|
||||
'message': 'Order created successfully',
|
||||
}
|
||||
return json.dumps(response_data), 201
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/order/<order>', methods=['GET'])
|
||||
@allow_null_origin
|
||||
@ -59,6 +35,56 @@ def get_order(request, pool, order: int):
|
||||
return orders
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/order', methods=['POST'])
|
||||
@allow_null_origin
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
@sale_order_application
|
||||
def post_order(request, pool):
|
||||
Order = pool.get('sale.order')
|
||||
with Transaction().set_context(
|
||||
{'company': 1, 'locations': [3]}):
|
||||
if request.method == 'POST':
|
||||
data = json.loads(
|
||||
request.get_data().decode()
|
||||
)
|
||||
order, = Order.create([dict(data)])
|
||||
|
||||
response_data = {
|
||||
'id': order.id,
|
||||
'status': 'success',
|
||||
'message': 'Order created successfully',
|
||||
}
|
||||
return json.dumps(response_data), 201
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/<order>/order_line', methods=['POST'])
|
||||
@allow_null_origin
|
||||
@with_pool
|
||||
@with_transaction()
|
||||
@sale_order_application
|
||||
def order_line(request, pool, order: int):
|
||||
OrderLine = pool.get('order.line')
|
||||
with Transaction().set_context(
|
||||
{'company': 1,
|
||||
'locations': [3]}):
|
||||
if request.method == 'POST':
|
||||
data = json.loads(
|
||||
request.get_data().decode()
|
||||
)
|
||||
|
||||
order_lines = OrderLine.create([dict(data)])
|
||||
|
||||
response_data = {
|
||||
'order_lines': [line.id for line in order_lines],
|
||||
'status': 'success',
|
||||
'message': 'Order lines created successfully',
|
||||
}
|
||||
return json.dumps(response_data), 201
|
||||
|
||||
|
||||
@app.route(
|
||||
'/<database_name>/sale_order/confirm_order/<order>', methods=['POST'])
|
||||
@allow_null_origin
|
||||
|
2
setup.py
2
setup.py
@ -107,7 +107,7 @@ setup(name=name,
|
||||
],
|
||||
license='GPL-3',
|
||||
python_requires='>=3.8',
|
||||
install_requires=requires,
|
||||
# install_requires=requires,
|
||||
extras_require={
|
||||
'test': tests_require,
|
||||
},
|
||||
|
@ -27,10 +27,25 @@ post_sale_order = requests.post(
|
||||
})
|
||||
)
|
||||
|
||||
order = json.loads(json.loads(post_sale_order.text)[0]).get("id")
|
||||
|
||||
get_sale_order = requests.get(
|
||||
base_url + '/order/1',
|
||||
headers={
|
||||
'Authorization': f'bearer {key}',
|
||||
})
|
||||
|
||||
post_line_order = requests.post(
|
||||
base_url.replace(
|
||||
'sale_don_confiao', 'sale_order') + f'/{order}/order_line',
|
||||
headers={
|
||||
'Authorization': f'bearer {key}',
|
||||
}, data=json.dumps({
|
||||
"order": order,
|
||||
"product": "1",
|
||||
"unit": "1",
|
||||
"quantity": "5",
|
||||
"unitprice": "10"
|
||||
}))
|
||||
|
||||
pudb.set_trace()
|
||||
|
@ -138,3 +138,31 @@ class SaleOrderApiRouteTestCase(RouteTestCase):
|
||||
|
||||
self.assertEqual(response.status_code, HTTPStatus.OK)
|
||||
self.assertEqual(response_data['state'], 'confirmed')
|
||||
|
||||
def test_post_line_order(self):
|
||||
client = self.client()
|
||||
|
||||
response = 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'})
|
||||
)
|
||||
|
||||
order = json.loads(json.loads(response.text)[0]).get("id")
|
||||
|
||||
response = client.post(
|
||||
f'/{self.db_name}/sale_order/{order}/order_line',
|
||||
headers={
|
||||
'Authorization': f'bearer {self.key}',
|
||||
}, data=json.dumps({
|
||||
"order": order,
|
||||
"product": self.product.id,
|
||||
"unit": self.unit,
|
||||
"quantity": "5",
|
||||
"unitprice": "10"
|
||||
}))
|
||||
|
||||
self.assertEqual(response.status_code, HTTPStatus.OK)
|
||||
|
Loading…
Reference in New Issue
Block a user