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')
|
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(
|
@app.route(
|
||||||
'/<database_name>/sale_order/order/<order>', methods=['GET'])
|
'/<database_name>/sale_order/order/<order>', methods=['GET'])
|
||||||
@allow_null_origin
|
@allow_null_origin
|
||||||
@ -59,6 +35,56 @@ def get_order(request, pool, order: int):
|
|||||||
return orders
|
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(
|
@app.route(
|
||||||
'/<database_name>/sale_order/confirm_order/<order>', methods=['POST'])
|
'/<database_name>/sale_order/confirm_order/<order>', methods=['POST'])
|
||||||
@allow_null_origin
|
@allow_null_origin
|
||||||
|
2
setup.py
2
setup.py
@ -107,7 +107,7 @@ setup(name=name,
|
|||||||
],
|
],
|
||||||
license='GPL-3',
|
license='GPL-3',
|
||||||
python_requires='>=3.8',
|
python_requires='>=3.8',
|
||||||
install_requires=requires,
|
# install_requires=requires,
|
||||||
extras_require={
|
extras_require={
|
||||||
'test': tests_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(
|
get_sale_order = requests.get(
|
||||||
base_url + '/order/1',
|
base_url + '/order/1',
|
||||||
headers={
|
headers={
|
||||||
'Authorization': f'bearer {key}',
|
'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()
|
pudb.set_trace()
|
||||||
|
@ -138,3 +138,31 @@ class SaleOrderApiRouteTestCase(RouteTestCase):
|
|||||||
|
|
||||||
self.assertEqual(response.status_code, HTTPStatus.OK)
|
self.assertEqual(response.status_code, HTTPStatus.OK)
|
||||||
self.assertEqual(response_data['state'], 'confirmed')
|
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