From cd51ac345b0898034428aab3b8ded24d03c0fdfd Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 21 Apr 2025 15:06:14 +0700 Subject: approval invoice date --- indoteknik_custom/models/approval_invoice_date.py | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 indoteknik_custom/models/approval_invoice_date.py (limited to 'indoteknik_custom/models/approval_invoice_date.py') diff --git a/indoteknik_custom/models/approval_invoice_date.py b/indoteknik_custom/models/approval_invoice_date.py new file mode 100644 index 00000000..48546e55 --- /dev/null +++ b/indoteknik_custom/models/approval_invoice_date.py @@ -0,0 +1,46 @@ +from odoo import models, api, fields +from odoo.exceptions import AccessError, UserError, ValidationError +from datetime import timedelta, date, datetime +import logging + +_logger = logging.getLogger(__name__) + +class ApprovalInvoiceDate(models.Model): + _name = "approval.invoice.date" + _description = "Approval Invoice Date" + _rec_name = 'number' + + picking_id = fields.Many2one('stock.picking', string='Picking') + number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True) + date_invoice = fields.Datetime( + string='Invoice Date', + copy=False + ) + date_doc_do = fields.Datetime( + string='Tanggal Kirim di SJ', + copy=False + ) + state = fields.Selection([('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Cancel')], string='State', default='draft', tracking=True) + approve_date = fields.Datetime(string='Approve Date', copy=False) + approve_by = fields.Many2one('res.users', string='Approve By', copy=False) + sale_id = fields.Many2one('sale.order', string='Sale Order') + partner_id = fields.Many2one('res.partner', string='Partner') + move_id = fields.Many2one('account.move', string='Invoice') + note = fields.Char(string='Note') + + def button_approve(self): + if not self.env.user.is_accounting: + raise UserError("Hanya Accounting Yang Bisa Approve") + self.move_id.invoice_date = self.date_doc_do + self.state = 'done' + self.approve_date = datetime.utcnow() + self.approve_by = self.env.user.id + + def button_cancel(self): + self.state = 'cancel' + + @api.model + def create(self, vals): + vals['number'] = self.env['ir.sequence'].next_by_code('approval.invoice.date') or '0' + result = super(ApprovalInvoiceDate, self).create(vals) + return result -- cgit v1.2.3 From c40dc2dafb93759c9fdcda8581eb0c402d304886 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 15 May 2025 09:13:00 +0700 Subject: fix date approval invoice date --- indoteknik_custom/models/approval_invoice_date.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/approval_invoice_date.py') diff --git a/indoteknik_custom/models/approval_invoice_date.py b/indoteknik_custom/models/approval_invoice_date.py index 48546e55..b58d55d4 100644 --- a/indoteknik_custom/models/approval_invoice_date.py +++ b/indoteknik_custom/models/approval_invoice_date.py @@ -31,7 +31,7 @@ class ApprovalInvoiceDate(models.Model): def button_approve(self): if not self.env.user.is_accounting: raise UserError("Hanya Accounting Yang Bisa Approve") - self.move_id.invoice_date = self.date_doc_do + self.move_id.invoice_date = self.date_doc_do.date() self.state = 'done' self.approve_date = datetime.utcnow() self.approve_by = self.env.user.id -- cgit v1.2.3 From 8fefc2e71c5e8a9f040f2fe6c9310b20cd88db3f Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 26 May 2025 09:00:23 +0700 Subject: fix approval invoice date --- indoteknik_custom/models/approval_invoice_date.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_custom/models/approval_invoice_date.py') diff --git a/indoteknik_custom/models/approval_invoice_date.py b/indoteknik_custom/models/approval_invoice_date.py index b58d55d4..e1bc4c9b 100644 --- a/indoteknik_custom/models/approval_invoice_date.py +++ b/indoteknik_custom/models/approval_invoice_date.py @@ -32,6 +32,7 @@ class ApprovalInvoiceDate(models.Model): if not self.env.user.is_accounting: raise UserError("Hanya Accounting Yang Bisa Approve") self.move_id.invoice_date = self.date_doc_do.date() + self.picking_id.date_doc_kirim = self.date_doc_do self.state = 'done' self.approve_date = datetime.utcnow() self.approve_by = self.env.user.id -- cgit v1.2.3