summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2024-12-05 16:30:39 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2024-12-05 16:30:39 +0700
commit8c2d918c9d1adcaa6b3411f3cc9a68c89958b7b2 (patch)
treee36e1f73fdb55ebb63a2ab9593e17b294a199ba2
parent4daa1f70f7f390831c1b64f054f93fe3be81eebe (diff)
parent32a33b7ef6c61424bc9785bdb4246a9be58e5b42 (diff)
Merge branch 'production' of https://bitbucket.org/altafixco/indoteknik-addons into production
-rw-r--r--indoteknik_api/controllers/controller.py2
-rw-r--r--indoteknik_custom/models/stock_picking.py29
2 files changed, 19 insertions, 12 deletions
diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py
index 80f45074..ebabfd03 100644
--- a/indoteknik_api/controllers/controller.py
+++ b/indoteknik_api/controllers/controller.py
@@ -12,7 +12,7 @@ from odoo.http import request
from odoo.modules import get_module_resource
from odoo.tools.config import config
from PIL import Image
-from PIL.WebPImagePlugin import Image
+# from PIL.WebPImagePlugin import Image
from PIL import features
from pytz import timezone
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 931da588..6d911470 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -1,7 +1,7 @@
from odoo import fields, models, api, _
from odoo.exceptions import AccessError, UserError, ValidationError
from odoo.tools.float_utils import float_is_zero
-from datetime import timedelta
+from datetime import timedelta, datetime
from itertools import groupby
import pytz, requests, json, requests
from dateutil import parser
@@ -119,17 +119,17 @@ class StockPicking(models.Model):
envio_id = fields.Char(string="Envio ID", readonly=True)
envio_code = fields.Char(string="Envio Code", readonly=True)
envio_ref_code = fields.Char(string="Envio Reference Code", readonly=True)
- envio_eta_at = fields.Char(string="Estimated Time of Arrival (ETA)", readonly=True)
- envio_ata_at = fields.Char(string="Actual Time of Arrival (ATA)", readonly=True)
- envio_etd_at = fields.Char(string="Estimated Time of Departure (ETD)", readonly=True)
- envio_atd_at = fields.Char(string="Actual Time of Departure (ATD)", readonly=True)
+ envio_eta_at = fields.Datetime(string="Estimated Time of Arrival (ETA)", readonly=True)
+ envio_ata_at = fields.Datetime(string="Actual Time of Arrival (ATA)", readonly=True)
+ envio_etd_at = fields.Datetime(string="Estimated Time of Departure (ETD)", readonly=True)
+ envio_atd_at = fields.Datetime(string="Actual Time of Departure (ATD)", readonly=True)
envio_received_by = fields.Char(string="Received By", readonly=True)
envio_status = fields.Char(string="Status", readonly=True)
envio_cod_value = fields.Float(string="COD Value", readonly=True)
envio_cod_status = fields.Char(string="COD Status", readonly=True)
envio_logs = fields.Text(string="Logs", readonly=True)
envio_latest_message = fields.Text(string="Latest Log Message", readonly=True)
- envio_latest_recorded_at = fields.Char(string="Log Recorded At", readonly=True)
+ envio_latest_recorded_at = fields.Datetime(string="Log Recorded At", readonly=True)
envio_latest_latitude = fields.Float(string="Log Latitude", readonly=True)
envio_latest_longitude = fields.Float(string="Log Longitude", readonly=True)
tracking_by = fields.Many2one('res.users', string='Tracking By', readonly=True, tracking=True)
@@ -141,7 +141,7 @@ class StockPicking(models.Model):
if not date_str:
return False
try:
- utc_time = datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ')
+ utc_time = datetime.datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ')
wib_time = utc_time + timedelta(hours=7)
return wib_time.strftime('%d-%m-%Y %H:%M:%S')
except ValueError:
@@ -153,11 +153,13 @@ class StockPicking(models.Model):
return False
try:
# Format waktu dengan milidetik
- return datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%fZ')
+ date = datetime.datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%fZ')
+ return date
except ValueError:
try:
# Format waktu tanpa milidetik
- return datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ')
+ date = datetime.datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ')
+ return date
except ValueError:
raise UserError(f"Format waktu tidak sesuai: {date_str}")
@@ -167,7 +169,7 @@ class StockPicking(models.Model):
('state', '=', 'done'),
('carrier_id', '=', 151)
])
- for picking in self:
+ for picking in pickings:
if not picking.name:
raise UserError("Name pada stock.picking tidak ditemukan.")
@@ -216,7 +218,12 @@ class StockPicking(models.Model):
picking.tracking_by = self.env.user.id
ata_at_str = data.get("ata_at")
- picking.driver_arrival_date = self._convert_to_datetime(ata_at_str) if ata_at_str else False
+ envio_ata = self._convert_to_datetime(data.get("ata_at"))
+
+ picking.driver_arrival_date = envio_ata
+ if data.get("status") == 'returned':
+ picking.driver_arrival_date = False
+ picking.envio_ata_at = False
except requests.exceptions.RequestException as e:
raise UserError(f"Terjadi kesalahan saat menghubungi API Envio: {str(e)}")
except Exception as e: