summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-07-05 15:54:17 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-07-05 15:54:17 +0700
commita78f8184c2e7d45a65315eff0ea354996adb9cce (patch)
tree0e925c10c3f4844132f742f997d6eeab426b0839 /indoteknik_api
parent9357a194e8b85343160f30b131c5802be954650d (diff)
(andri) info tambahan webhook
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/stock_picking.py44
1 files changed, 30 insertions, 14 deletions
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py
index 0525adc3..85b0fbba 100644
--- a/indoteknik_api/controllers/api_v1/stock_picking.py
+++ b/indoteknik_api/controllers/api_v1/stock_picking.py
@@ -213,22 +213,38 @@ class StockPicking(controller.Controller):
def process_order_price(self, data):
- picking_model = request.env['stock.picking'].sudo().search([('biteship_id', '=', data.get('order_id'))],
- limit=1)
- if not picking_model:
+ picking = request.env['stock.picking'].sudo().search([('biteship_id', '=', data.get('order_id'))], limit=1)
+
+ if not picking:
_logger.warning(f"Tidak ditemukan picking untuk order_id {data.get('order_id')}")
return
- picking_model.write({
- 'biteship_shipping_price': data.get('price')
- })
+ picking.log_biteship_event_from_webhook(
+ status='order.price',
+ timestamp=data.get('updated_at') or datetime.utcnow().isoformat(),
+ description='Biaya pengiriman telah diperbarui berdasarkan informasi terbaru dari Biteship.',
+ extra_data={
+ "order_price": 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')
- })
+ picking = request.env['stock.picking'].sudo().search([
+ ('biteship_id', '=', data.get('order_id'))
+ ], limit=1)
+
+ if not picking:
+ _logger.warning(f"Tidak ditemukan picking untuk order_id {data.get('order_id')}")
+ return
+
+ picking.log_biteship_event_from_webhook(
+ status='order.waybill_id',
+ timestamp=data.get('updated_at') or datetime.utcnow().isoformat(),
+ description="Nomor waybill dan tracking diperbarui melalui Biteship.",
+ extra_data={
+ "tracking_id": data.get("courier_tracking_id"),
+ "waybill_id": data.get("courier_waybill_id")
+ }
+ )
+