diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-07-28 15:09:55 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-07-28 15:09:55 +0700 |
| commit | d15ce4e186e2b77f01e8dfd03886298cc733d4c1 (patch) | |
| tree | 1b32a4c29c4fcea85070fcecb5b77a7d55d30029 /indoteknik_api/models | |
| parent | deba962d7368a5c4e30441b5a640102608e3dde6 (diff) | |
| parent | 36a53535dbdc5777266fd9276b4c557259dab6be (diff) | |
<hafid> merging odoo-backup
Diffstat (limited to 'indoteknik_api/models')
| -rw-r--r-- | indoteknik_api/models/sale_order.py | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py index 4fc96386..5427ed07 100644 --- a/indoteknik_api/models/sale_order.py +++ b/indoteknik_api/models/sale_order.py @@ -30,20 +30,24 @@ class SaleOrder(models.Model): 'payment_type': sale_order.payment_type, 'pickings': [] } - # Urutkan picking berdasarkan create_date descending - sorted_pickings = sale_order.picking_ids.sorted(key=lambda p: p.create_date, reverse=True) - - for picking in sorted_pickings: + for picking in sale_order.picking_ids: + picking_model = self.env['stock.picking'].sudo().search([('id', '=', picking.id), ('name', 'like', '%BU/OUT/%')], limit=1) + if not picking_model: + continue + response = picking_model.get_tracking_detail() + data['pickings'].append({ + 'waybill_number' : response['waybill_number'] or '', + 'delivered_date': response['delivered_date'], + 'delivery_order' : { + 'carrier' : response['delivery_order']['carrier'] or '', + 'service' : response['delivery_order']['service'] or '' + }, + 'eta' : response['eta'], 'id': picking.id, 'name': picking.name, - 'tracking_number': picking.delivery_tracking_no or '', - 'carrier_name': picking.carrier_id.name or '', - 'delivered': picking.waybill_id.delivered or picking.driver_arrival_date != False or picking.sj_return_date != False, - 'date': self.env['rest.api'].datetime_to_str(picking.driver_departure_date, '%d/%m/%Y'), - 'eta': picking.generate_eta_delivery(), - 'service_type': sale_order.delivery_service_type or '', - 'weight_total': picking.weight or 0, + # 'tracking_number': picking.delivery_tracking_no or '', + # 'delivered': picking.waybill_id.delivered or picking.driver_arrival_date != False or picking.sj_return_date != False, }) if sale_order.state == 'cancel': data['status'] = 'cancel' |
