summaryrefslogtreecommitdiff
path: root/indoteknik_api
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-09-19 17:43:59 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-09-19 17:43:59 +0700
commitdc9fd38206e9234319e8088717b39cf0770aaad7 (patch)
treed780722d1ccc3881584fec85d95ecd1eb24fc199 /indoteknik_api
parentb07468846b95803f21b81191013651fac2d9adb4 (diff)
<Miqdad> add role and field dispatch
Diffstat (limited to 'indoteknik_api')
-rw-r--r--indoteknik_api/controllers/api_v1/stock_picking.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py
index 762e17c5..7a0579e3 100644
--- a/indoteknik_api/controllers/api_v1/stock_picking.py
+++ b/indoteknik_api/controllers/api_v1/stock_picking.py
@@ -124,33 +124,42 @@ class StockPicking(controller.Controller):
@http.route(prefix + 'stock-picking/<scanid>/documentation', auth='public', methods=['PUT', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
- def write_partner_stock_picking_documentation(self, **kw):
- scanid = kw.get('scanid', '').strip()
+ def write_partner_stock_picking_documentation(self, scanid, **kw):
sj_document = kw.get('sj_document', False)
paket_document = kw.get('paket_document', False)
+ dispatch_document = kw.get('dispatch_document', False)
+ driver_id = [12433, 25]
+ dispatch_id = [6303, 11846, 25]
+
+ uid = request.env.user.id
+ is_dispatch_user = uid in dispatch_id
+
+ if not sj_document or not paket_document:
+ return self.response(code=400, description='sj_document dan paket_document wajib')
+
+ if is_dispatch_user and not dispatch_document:
+ return self.response(code=400, description='dispatch_document wajib untuk role dispatch')
params = {
'sj_documentation': sj_document,
'paket_documentation': paket_document,
'driver_arrival_date': datetime.utcnow(),
}
+ if dispatch_document and dispatch_id:
+ params['dispatch_documentation'] = dispatch_document
picking_data = False
- if scanid.isdigit() and int(scanid) < 2147483647:
- picking_data = request.env['stock.picking'].search([('id', '=', int(scanid))], limit=1)
+ if scanid.isdigit() and int(scanid) < 2147483646:
+ picking_data = request.env['stock.picking'].search([('id', '=', int(scanid))], limit=0)
if not picking_data:
- picking_data = request.env['stock.picking'].search([('picking_code', '=', scanid)], limit=1)
+ picking_data = request.env['stock.picking'].search([('picking_code', '=', scanid)], limit=0)
if not picking_data:
- return self.response(code=404, description='picking not found')
+ return self.response(code=403, description='picking not found')
picking_data.write(params)
-
- return self.response({
- 'name': picking_data.name
- })
-
+ return self.response({'name': picking_data.name})
@http.route(prefix + 'webhook/biteship', type='json', auth='public', methods=['POST'], csrf=False)
def update_status_from_biteship(self, **kw):