From 8eaffe2f3590e52b90835fada67460e119032dee Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 13 Aug 2024 14:08:54 +0700 Subject: approval date doc --- indoteknik_custom/models/stock_picking.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index c151a543..47ac3166 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -26,7 +26,6 @@ class StockPicking(models.Model): # Delivery Order driver_departure_date = fields.Datetime( string='Driver Departure Date', - readonly=True, copy=False ) driver_arrival_date = fields.Datetime( @@ -91,6 +90,16 @@ class StockPicking(models.Model): date_availability = fields.Datetime(string="Date Availability", copy=False, tracking=True) sale_order = fields.Char(string='Matches SO', copy=False) printed_sj = fields.Boolean('Printed Surat Jalan', help='flag which is internal use or not') + invoice_status = fields.Selection([ + ('upselling', 'Upselling Opportunity'), + ('invoiced', 'Fully Invoiced'), + ('to invoice', 'To Invoice'), + ('no', 'Nothing to Invoice') + ], string='Invoice Status', related="sale_id.invoice_status") + + @api.constrains('driver_departure_date') + def constrains_driver_departure_date(self): + self.date_doc_kirim = self.driver_departure_date def reset_status_printed(self): for rec in self: -- cgit v1.2.3 From 844cfbdf7a961dddb8c6c0b63f1dcaf72bc84f51 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 14 Aug 2024 09:44:48 +0700 Subject: arrival_time do --- indoteknik_custom/models/stock_picking.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 47ac3166..9fb4ae82 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -28,6 +28,10 @@ class StockPicking(models.Model): string='Driver Departure Date', copy=False ) + arrival_time = fields.Datetime( + string='Jam Kedatangan', + copy=False + ) driver_arrival_date = fields.Datetime( string='Driver Arrival Date', readonly=True, @@ -98,9 +102,14 @@ class StockPicking(models.Model): ], string='Invoice Status', related="sale_id.invoice_status") @api.constrains('driver_departure_date') - def constrains_driver_departure_date(self): + def constrains_driver_departure_date(self): self.date_doc_kirim = self.driver_departure_date + @api.constrains('arrival_time') + def constrains_arrival_time(self): + if self.arrival_time > datetime.datetime.utcnow(): + raise UserError('Jam kedatangan harus kurang dari Effective Date') + def reset_status_printed(self): for rec in self: rec.status_printed = 'not_printed' @@ -350,6 +359,9 @@ class StockPicking(models.Model): if not self.picking_code: self.picking_code = self.env['ir.sequence'].next_by_code('stock.picking.code') or '0' + if not self.arrival_time: + raise UserError('Jam Kedatangan harus diisi') + if self.picking_type_id.code == 'incoming' and self.group_id.id == False and self.is_internal_use == False: raise UserError(_('Tidak bisa Validate jika tidak dari Document SO / PO')) @@ -381,6 +393,7 @@ class StockPicking(models.Model): res = super(StockPicking, self).button_validate() self.calculate_line_no() + self.date_done = datetime.datetime.utcnow() return res @api.model -- cgit v1.2.3 From c091a99de4e3c3bb4f85a8b0c91d75735ebefbd4 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 14 Aug 2024 09:57:25 +0700 Subject: cr arrival time --- indoteknik_custom/models/stock_picking.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 9fb4ae82..5029a770 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -359,7 +359,7 @@ class StockPicking(models.Model): if not self.picking_code: self.picking_code = self.env['ir.sequence'].next_by_code('stock.picking.code') or '0' - if not self.arrival_time: + if not self.arrival_time and 'BU/IN/' in self.name: raise UserError('Jam Kedatangan harus diisi') if self.picking_type_id.code == 'incoming' and self.group_id.id == False and self.is_internal_use == False: -- cgit v1.2.3