summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2022-09-21 13:56:26 +0700
committerIT Fixcomart <it@fixcomart.co.id>2022-09-21 13:56:26 +0700
commit0dc4f97824e505912e0b8c63fad82722b8c2f238 (patch)
tree6ee94ad96d06ee49906d542e84b25789d486a428
parentde08a79ca870602ec45f396a8476cfdc3c38aee6 (diff)
tracking number mandatory in delivery order
-rw-r--r--indoteknik_custom/models/delivery_order.py23
-rw-r--r--indoteknik_custom/views/delivery_order.xml1
-rw-r--r--indoteknik_custom/views/ir_sequence.xml2
3 files changed, 24 insertions, 2 deletions
diff --git a/indoteknik_custom/models/delivery_order.py b/indoteknik_custom/models/delivery_order.py
index 06cdd878..9e5dafb7 100644
--- a/indoteknik_custom/models/delivery_order.py
+++ b/indoteknik_custom/models/delivery_order.py
@@ -27,15 +27,25 @@ class DeliveryOrder(models.TransientModel):
picking = self.env['stock.picking'].search([('picking_code', '=', delivery_order_line[2]['name'])], limit=1)
if picking:
+ line_tracking_no = delivery_order_line[2]['tracking_no']
+
if not picking.driver_id:
picking.driver_id = self.env.uid
- picking.delivery_tracking_no = delivery_order_line[2]['tracking_no']
+ picking.delivery_tracking_no = line_tracking_no
delivery_type = self.env['delivery.order.line'].get_delivery_type(picking.driver_departure_date, picking.driver_arrival_date)
if delivery_type == 'departure':
picking.driver_departure_date = current_time
elif delivery_type == 'arrival':
picking.driver_arrival_date = current_time
+
+ sale_order = False
+ if picking.origin:
+ sale_order = self.env['sale.order'].search([('name', '=', picking.origin)], limit=1)
+ if sale_order.carrier_id:
+ if not line_tracking_no and not (sale_order.carrier_id.id == 1 or sale_order.carrier_id.name == 'INDOTEKNIK DELIVERY'):
+ raise UserError('Pengiriman selain Indoteknik Delivery, nomor tracking harus diisi')
+
return super(DeliveryOrder, self).create(vals)
def save_delivery(self):
@@ -58,6 +68,7 @@ class DeliveryOrderLine(models.TransientModel):
driver_id = fields.Many2one(comodel_name='res.users', string='Driver')
departure_date = fields.Char(string='Departure Date')
arrival_date = fields.Char(string='Arrival Date')
+ carrier_id = fields.Many2one('delivery.carrier', string='Shipping Method')
tracking_no = fields.Char(string='Tracking No')
delivery_order_id = fields.Many2one('delivery.order', string='Delivery Order')
@@ -75,6 +86,16 @@ class DeliveryOrderLine(models.TransientModel):
else:
self.driver_id = self.env.uid
+ sale_order = False
+ if picking.origin:
+ sale_order = self.env['sale.order'].search([('name', '=', picking.origin)], limit=1)
+
+ if sale_order.carrier_id:
+ self.carrier_id = sale_order.carrier_id
+ # if sale_order.carrier_id and not self.tracking_no and (
+ # sale_order.carrier_id.id != 1 or sale_order.carrier_id.name != 'INDOTEKNIK DELIVERY'):
+ # raise UserError('Nomor Tracking harus diisi')
+
self.tracking_no = picking.delivery_tracking_no
delivery_type = self.get_delivery_type(picking.driver_departure_date, picking.driver_arrival_date)
diff --git a/indoteknik_custom/views/delivery_order.xml b/indoteknik_custom/views/delivery_order.xml
index da6a571c..29ca7365 100644
--- a/indoteknik_custom/views/delivery_order.xml
+++ b/indoteknik_custom/views/delivery_order.xml
@@ -19,6 +19,7 @@
<field name="driver_id" readonly="1"/>
<field name="departure_date" readonly="1"/>
<field name="arrival_date" readonly="1"/>
+ <field name="carrier_id" readonly="1"/>
<field name="tracking_no"/>
</tree>
</field>
diff --git a/indoteknik_custom/views/ir_sequence.xml b/indoteknik_custom/views/ir_sequence.xml
index 754457da..df4a5a22 100644
--- a/indoteknik_custom/views/ir_sequence.xml
+++ b/indoteknik_custom/views/ir_sequence.xml
@@ -15,7 +15,7 @@
<field name="name">Stock Picking Code</field>
<field name="code">stock.picking.code</field>
<field name="active">TRUE</field>
- <field name="prefix">1%(y)s%(month)s</field>
+ <field name="prefix">1%(y)s%(month)s%(day)s</field>
<field name="padding">5</field>
<field name="number_next">1</field>
<field name="number_increment">1</field>