summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-01-19 22:25:00 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-01-19 22:25:00 +0700
commitbbffc7f7092ad28994d511b3b7022e55b07ec2a8 (patch)
tree03c2056d042e94878302fc971ee1119c048982d0 /indoteknik_custom/models
parentb40989dc9dc36056f4e416aa5d2e040be595fd61 (diff)
<MIqdad> revisi date
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/gudang_service.py55
1 files changed, 35 insertions, 20 deletions
diff --git a/indoteknik_custom/models/gudang_service.py b/indoteknik_custom/models/gudang_service.py
index 0cdee5af..e401a65c 100644
--- a/indoteknik_custom/models/gudang_service.py
+++ b/indoteknik_custom/models/gudang_service.py
@@ -15,7 +15,18 @@ class GudangService(models.Model):
partner_id = fields.Many2one('res.partner', string='Customer', readonly=True)
origin = fields.Many2one('sale.order', string='Origin SO', required=True)
# picking_id = fields.Many2one('stock.picking', string = 'Picking ID', domain="[('sale_id', '=', origin)]")
- date = fields.Datetime('Date', default=fields.Datetime.now, tracking=True, copy=False)
+ schedule_date = fields.Date(
+ string="Schedule Date",
+ required=True,
+ tracking=True
+ )
+
+ start_date = fields.Datetime(
+ string="Date Processed",
+ copy=False,
+ tracking=True
+ )
+
done_date = fields.Datetime(string='Date Done', copy=False, tracking=True)
gudang_service_lines = fields.One2many('gudang.service.line', 'gudang_service_id', string='Gudang Service Lines')
remaining_date = fields.Char('Remaining Date', compute='_compute_remaining_date')
@@ -67,9 +78,9 @@ class GudangService(models.Model):
'user_id': user.id,
'summary': 'Gudang Service On Progress',
'note': _(
- 'Gudang Service <b>%s</b> masih <b>On Progress</b> sejak %s'
- ) % (rec.name, rec.date),
- 'date_deadline': fields.Date.today(),
+ 'Ada Jadwal Service Barang di Document <b>%s</b> Jadwal Service 📅 <b>%s</b>'
+ ) % (rec.name, rec.schedule_date),
+ # 'date_deadline': fields.Date.today(),
})
# kirim ke private message odoo
@@ -77,7 +88,7 @@ class GudangService(models.Model):
if not channel:
continue
res = self.env['mail.channel'].browse(channel)
- res.with_user(self.env.user.browse(25)).message_post(body=_('Gudang Service <b>%s</b> masih <b>On Progress</b> sejak %s') % (rec.name, rec.date), message_type='comment', subtype_xmlid='mail.mt_comment')
+ res.with_user(self.env.user.browse(25)).message_post(body=_('Ada Jadwal Service Barang di Document <b>%s</b> Jadwal Service 📅 <b>%s</b>') % (rec.name, rec.schedule_date), message_type='comment', subtype_xmlid='mail.mt_comment')
@api.model
def cron_notify_onprogress_gudang_service(self):
@@ -89,30 +100,32 @@ class GudangService(models.Model):
records._send_logistic_notification()
- @api.depends('date', 'state', 'done_date')
+ @api.depends('start_date', 'done_date', 'state')
def _compute_remaining_date(self):
today = fields.Date.today()
+
for rec in self:
- if not rec.date:
- rec.remaining_date = 0
+ if not rec.start_date:
+ rec.remaining_date = "-"
continue
- if rec.state in ['draft', 'cancel']:
- rec.remaining_date = 0
- continue
+ start = rec.start_date.date()
if rec.state == 'done' and rec.done_date:
- days = (rec.done_date.date() - rec.date.date()).days
- rec.remaining_date = "Since %s days" % days
- continue
+ end = rec.done_date.date()
+ else:
+ end = today
+
+ days = (end - start).days
+ rec.remaining_date = _("Since %s days") % days
- rec.remaining_date = (today - rec.date.date()).days
def action_submit(self):
for rec in self:
rec.state = 'onprogress'
- rec.date = fields.Datetime.now()
+ rec.start_date = fields.Datetime.now()
+ # rec.date = fields.Datetime.now()
def action_done(self):
for rec in self:
@@ -146,13 +159,14 @@ class GudangService(models.Model):
raise UserError("You cannot cancel a done record")
if not rec.cancel_reason:
raise UserError("Cancel Reason must be filled")
+ rec.start_date = False
+ rec.done_date = False
rec.state = 'cancel'
@api.model
def create(self, vals):
# Send notification
- self._send_logistic_notification()
if not vals.get('name') or vals['name'] == 'New':
vals['name'] = self.env['ir.sequence'].next_by_code('gudang.service')
@@ -160,7 +174,10 @@ class GudangService(models.Model):
so = self.env['sale.order'].browse(vals['origin'])
vals['partner_id'] = so.partner_id.id
- return super(GudangService, self).create(vals)
+ res = super(GudangService, self).create(vals)
+ # Send notification
+ res._send_logistic_notification()
+ return res
def write(self, vals):
if vals.get('origin'):
@@ -169,8 +186,6 @@ class GudangService(models.Model):
return super(GudangService, self).write(vals)
-
-
@api.onchange('origin')
def _onchange_origin(self):
if not self.origin: