diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2024-05-30 13:59:30 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2024-05-30 13:59:30 +0700 |
| commit | 57a4031de5524df546ca43b9cc205c106cc90402 (patch) | |
| tree | d994598163a086ce20836a72fe1d07d36aaaaac7 | |
| parent | 614ee8d9c8ba5862810a331ca67734d96ab1644e (diff) | |
add api confirm sale order
| -rw-r--r-- | fixco_api/controllers/api_v1/sale.py | 54 |
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): |
