summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2025-02-25 14:29:52 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2025-02-25 14:29:52 +0700
commit49a90fdef07cb9262eb43e63c7023e30925a3c0c (patch)
tree81d975a43034188463dfce49edacb22c8256e87e
parent1d2011c7b1b9766b0254479733b2ec226e8201bd (diff)
webhook biteship
-rw-r--r--indoteknik_api/controllers/api_v1/stock_picking.py37
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