summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2024-05-30 13:59:30 +0700
committerstephanchrst <stephanchrst@gmail.com>2024-05-30 13:59:30 +0700
commit57a4031de5524df546ca43b9cc205c106cc90402 (patch)
treed994598163a086ce20836a72fe1d07d36aaaaac7
parent614ee8d9c8ba5862810a331ca67734d96ab1644e (diff)
add api confirm sale order
-rw-r--r--fixco_api/controllers/api_v1/sale.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/fixco_api/controllers/api_v1/sale.py b/fixco_api/controllers/api_v1/sale.py
index fe8e38f..e2e9bdc 100644
--- a/fixco_api/controllers/api_v1/sale.py
+++ b/fixco_api/controllers/api_v1/sale.py
@@ -35,6 +35,60 @@ class Sales(controller.Controller):
})
return self.response(data)
+ @http.route(prefix + 'sale/confirm', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
+ @controller.Controller.must_authorized()
+ def confirm_sale_order(self, **kw):
+ sale_id = int(kw.get('id', '0'))
+ ref = str(kw.get('ref', '0'))
+ if sale_id == 0 and ref == '0':
+ return self.response(code=500, description='Internal Server Error')
+ if sale_id > 0:
+ query = [('id', '=', sale_id)]
+ else:
+ query = [('client_order_ref', '=', ref)]
+
+ sales = request.env['sale.order'].search(query)
+ data = []
+ for sale in sales:
+ sale.action_confirm()
+ data.append({
+ 'id': sale.id,
+ 'name': sale.name,
+ 'state': sale.state
+ })
+ return self.response(data)
+
+ @http.route(prefix + 'sale/update_shipper', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
+ @controller.Controller.must_authorized()
+ def cancel_sale_order(self, **kw):
+ sale_id = int(kw.get('id', '0'))
+ ref = str(kw.get('ref', '0'))
+ shipper = str(kw.get('shipper', '0'))
+ if sale_id == 0 and ref == '0':
+ return self.response(code=500, description='Internal Server Error')
+ if shipper == '0':
+ return self.response(code=500, description='Internal Server Error')
+
+ if sale_id > 0:
+ query = [('id', '=', sale_id)]
+ else:
+ query = [('client_order_ref', '=', ref)]
+
+ sales = request.env['sale.order'].search(query)
+ carrier = request.env['delivery.carrier'].search([('name', '=', shipper)])
+ if not carrier:
+ return self.response(code=500, description='Internal Server Error')
+
+ data = []
+ for sale in sales:
+ sale.carrier_id = carrier.id
+ data.append({
+ 'id': sale.id,
+ 'name': sale.name,
+ 'shipper': carrier.name
+ })
+ return self.response(data)
+
@http.route(prefix + 'sale/create', type='json', auth='public', methods=['POST', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def create_sale_order(self, **kw):