diff options
| author | trisusilo48 <tri.susilo@altama.co.id> | 2025-02-25 14:29:52 +0700 |
|---|---|---|
| committer | trisusilo48 <tri.susilo@altama.co.id> | 2025-02-25 14:29:52 +0700 |
| commit | 49a90fdef07cb9262eb43e63c7023e30925a3c0c (patch) | |
| tree | 81d975a43034188463dfce49edacb22c8256e87e | |
| parent | 1d2011c7b1b9766b0254479733b2ec226e8201bd (diff) | |
webhook biteship
| -rw-r--r-- | indoteknik_api/controllers/api_v1/stock_picking.py | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py index 9da9575b..15aac3cd 100644 --- a/indoteknik_api/controllers/api_v1/stock_picking.py +++ b/indoteknik_api/controllers/api_v1/stock_picking.py @@ -144,19 +144,6 @@ class StockPicking(controller.Controller): data = request.jsonrequest # Ambil data JSON dari request event = data.get('event') - # Log Webhook ke Model Odoo - request.env['webhook.logs'].sudo().create({ - 'event': event, - 'order_id': data.get('order_id'), - 'courier_tracking_id': data.get('courier_tracking_id'), - 'courier_waybill_id': data.get('courier_waybill_id'), - 'status': data.get('status'), - 'order_price': data.get('price'), - 'cash_on_delivery_fee': data.get('cash_on_delivery_fee'), - 'proof_of_delivery_fee': data.get('proof_of_delivery_fee'), - 'shippment_fee': data.get('shippment_fee'), - }) - # Handle Event Berdasarkan Jenisnya if event == "order.status": self.process_order_status(data) @@ -170,8 +157,26 @@ class StockPicking(controller.Controller): return {'success': False, 'message': str(e)} def process_order_status(self, data): - """Update status order di Odoo""" - order = request.env['sale.order'].sudo().search([('id', '=', data.get('order_id'))], limit=1) + picking_model = request.env['stock.picking'].sudo().search([('biteship_id', '=', data.get('order_id'))], limit=1) + if data.get('status') == 'picked': + picking_model.write({'driver_departure_date': datetime.utcnow()}) + elif data.get('status') == 'delivered': + picking_model.write({'driver_arrival_date': datetime.utcnow()}) + + def process_order_price(self, data): + picking_model = request.env['stock.picking'].sudo().search([('biteship_id', '=', data.get('order_id'))], limit=1) + order = request.env['sale.order'].sudo().search([('name', '=', picking_model.sale_id.name)], limit=1) if order: - order.write({'state': data.get('status')}) + order.write({ + 'delivery_amt': data.get('price') + }) + + def process_order_waybill(self, data): + picking_model = request.env['stock.picking'].sudo().search([('biteship_id', '=', data.get('order_id'))], limit=1) + if picking_model: + picking_model.write({ + 'biteship_waybill_id': data.get('courier_waybill_id'), + 'delivery_tracking_no': data.get('courier_waybill_id'), + 'biteship_tracking_id':data.get('courier_tracking_id') + })
\ No newline at end of file |
