summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-05-23 09:05:27 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-05-23 09:05:27 +0700
commitfad209db285b0a6204dc1fcbf2e2e0cb13f872b0 (patch)
treefb54bcb29f5b06332b149763b03de8367b88f864
parent34174e95638e1337169dfa5f3be56b9ef57021a1 (diff)
(andri) penyesuaian data quotation SO ke delivery biteship
-rwxr-xr-xindoteknik_custom/models/sale_order.py6
-rw-r--r--indoteknik_custom/models/stock_picking.py5
-rwxr-xr-xindoteknik_custom/views/sale_order.xml6
3 files changed, 14 insertions, 3 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 5a5255b3..38d2505d 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -249,7 +249,7 @@ class SaleOrder(models.Model):
string="Attachment Bukti Cancel", readonly=False,
)
nomor_so_pengganti = fields.Char(string='Nomor SO Pengganti', copy=False, tracking=3)
- shipping_option_id = fields.Many2one("shipping.option", string="Selected Shipping Option", domain="['|', ('sale_order_id', '=', False), ('sale_order_id', '=', id)]")
+ shipping_option_id = fields.Many2one("shipping.option", string="Selected Service Option", domain="['|', ('sale_order_id', '=', False), ('sale_order_id', '=', id)]")
select_shipping_option = fields.Selection([
('biteship', 'Biteship'),
@@ -296,7 +296,8 @@ class SaleOrder(models.Model):
@api.onchange('shipping_option_id')
def _onchange_shipping_option_id(self):
if self.shipping_option_id:
- self.delivery_amt = self.shipping_option_id.price
+ self.delivery_amt = self.shipping_option_id.price
+ self.delivery_service_type = self.shipping_option_id.courier_service_code
def _get_biteship_courier_codes(self):
return [
@@ -786,6 +787,7 @@ class SaleOrder(models.Model):
if selected_option:
self.shipping_option_id = selected_option.id
self.delivery_amt = selected_option.price
+ self.delivery_service_type = selected_option.courier_service_code
if use_coordinate:
origin_info = f"Koordinat ({origin_data.get('origin_latitude')}, {origin_data.get('origin_longitude')})"
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 39c74aa2..5548db75 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -565,7 +565,7 @@ class StockPicking(models.Model):
"latitude": -6.3031123,
"longitude" : 106.7794934999
},
- "reference_id " : self.sale_id.name,
+ "reference_id" : self.sale_id.name,
"shipper_contact_name": self.carrier_id.pic_name or '',
"shipper_contact_phone": self.carrier_id.pic_phone or '',
"shipper_organization": self.carrier_id.name,
@@ -585,6 +585,8 @@ class StockPicking(models.Model):
"items": items_data_standard
}
+ _logger.info(f"Payload untuk Biteship: {payload}")
+
# Cek jika pengiriman instant atau same_day
if self.sale_id.delivery_service_type and ("instant" in self.sale_id.delivery_service_type or "same_day" in self.sale_id.delivery_service_type):
payload.update({
@@ -603,6 +605,7 @@ class StockPicking(models.Model):
# Kirim request ke Biteship
response = requests.post(_biteship_url+'/orders', headers=headers, json=payload)
+ _logger.info(f"Response dari Biteship: {response.text}")
if response.status_code == 200:
data = response.json()
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index 34397fc7..7e01ba0b 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -279,6 +279,12 @@
<field name="picking_iu_id" />
<field name="note_ekspedisi" />
</field>
+ <field name="select_shipping_option" position="attributes">
+ <attribute name="attrs">
+ {'readonly': [('approval_status', '=', 'approved'), ('state', 'not in',
+ ['cancel','draft'])]}
+ </attribute>
+ </field>
<field name="carrier_id" position="attributes">
<attribute name="attrs">
{'readonly': [('approval_status', '=', 'approved'), ('state', 'not in',