diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-02-09 09:32:52 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-02-09 09:32:52 +0700 |
| commit | c76e3d6126c3d595a6c3c5d6802a9f5e7015f378 (patch) | |
| tree | f5f1cb171693d62961b6100562c6f976632a2499 | |
| parent | f6be42d37a363b86f4a9ec71ccb38c78cbe2d887 (diff) | |
change request purchasing job
| -rw-r--r-- | indoteknik_custom/models/automatic_purchase.py | 30 | ||||
| -rw-r--r-- | indoteknik_custom/models/purchasing_job.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/views/automatic_purchase.xml | 4 |
3 files changed, 27 insertions, 9 deletions
diff --git a/indoteknik_custom/models/automatic_purchase.py b/indoteknik_custom/models/automatic_purchase.py index 5919467f..713853e9 100644 --- a/indoteknik_custom/models/automatic_purchase.py +++ b/indoteknik_custom/models/automatic_purchase.py @@ -13,14 +13,14 @@ class AutomaticPurchase(models.Model): _rec_name = 'number' number = fields.Char(string='Document No', index=True, copy=False, readonly=True) - date_doc = fields.Date(string='Date', required=True, help='Isi tanggal hari ini') + date_doc = fields.Date(string='Date', readonly=True, help='Isi tanggal hari ini') description = fields.Char(string='Description', help='bebas isi nya apa') purchase_lines = fields.One2many('automatic.purchase.line', 'automatic_purchase_id', string='Lines', auto_join=True) notification = fields.Char(string='Notification') is_po = fields.Boolean(string='Is PO') purchase_match = fields.One2many('automatic.purchase.match', 'automatic_purchase_id', string='PO Matches', auto_join=True) vendor_id = fields.Many2one('res.partner', string='Vendor', help='boleh kosong, jika diisi, maka hanya keluar data untuk vendor tersebut') - responsible_id = fields.Many2one('res.users', string='Responsible', required=True) + responsible_id = fields.Many2one('res.users', string='Responsible', readonly=True) apo_type = fields.Selection([ ('regular', 'Regular Fulfill SO'), ('reordering', 'Reordering Rule'), @@ -63,6 +63,13 @@ class AutomaticPurchase(models.Model): def create_po_from_automatic_purchase(self): + po = self.env['purchase.order'].search([ + ('state', '=', 'draft') + ]) + + if po: + raise UserError('Ada PO yang statusnya draft, proses dulu') + if not self.purchase_lines: raise UserError('Tidak ada Lines, belum bisa create PO') if self.is_po: @@ -152,10 +159,15 @@ class AutomaticPurchase(models.Model): auto_purchase_line = self.env['automatic.purchase.line'] + last_po = self.env['purchase.order'].search([ + ('partner_id', '=', vendor_id), + ('state', '=', 'done'), + ], order='id desc', limit=1) + param_header = { 'partner_id': vendor_id, 'currency_id': 12, - 'user_id': self.env.user.id, + 'user_id': last_po.user_id.id, 'company_id': 1, # indoteknik dotcom gemilang 'picking_type_id': 28, # indoteknik bandengan receipts 'date_order': current_time, @@ -264,16 +276,20 @@ class AutomaticPurchase(models.Model): raise UserError('Vendor tidak dapat diisi jika Regular Fulfill SO') if self.purchase_lines: raise UserError('Sudah digenerate sebelumnya, hapus line terlebih dahulu') + + self.responsible_id = self.env.user.id + self.date_doc = datetime.utcnow() + #TODO must add order by for fifo mechanism #change the view of v.purchasing.job and use order by in query query = [ - ('action', '=', 'kurang beli') + ('action', '=', 'kurang') ] jobs = self.env['v.purchasing.job'].search(query) count = 0 for job in jobs: - qty_purchase = job.outgoing - job.onhand + job.incoming - qty_available = job.onhand + job.incoming - job.outgoing + qty_purchase = job.outgoing - (job.onhand + job.incoming) + qty_available = (job.onhand + job.incoming) - job.outgoing domain = [ ('product_id.id', '=', job.product_id.id), @@ -361,6 +377,8 @@ class AutomaticPurchase(models.Model): if self.purchase_lines: raise UserError('Sudah digenerate sebelumnya, hapus line terlebih dahulu') + self.responsible_id = self.env.user.id + query = [ ('product_min_qty', '>', 0), ('product_id.x_manufacture.user_id.id', '=', self.responsible_id.id) diff --git a/indoteknik_custom/models/purchasing_job.py b/indoteknik_custom/models/purchasing_job.py index 7ac678c4..4afb3e03 100644 --- a/indoteknik_custom/models/purchasing_job.py +++ b/indoteknik_custom/models/purchasing_job.py @@ -25,7 +25,7 @@ class PurchasingJob(models.Model): CREATE OR REPLACE VIEW %s AS ( select product_id as id, product_id, brand, item_code, product, onhand, incoming, outgoing, action from v_procurement_monitoring_by_product - where action = 'kurang beli' + where action = 'kurang' ) """ % self._table) diff --git a/indoteknik_custom/views/automatic_purchase.xml b/indoteknik_custom/views/automatic_purchase.xml index 8c381844..17abd888 100644 --- a/indoteknik_custom/views/automatic_purchase.xml +++ b/indoteknik_custom/views/automatic_purchase.xml @@ -6,13 +6,13 @@ <field name="arch" type="xml"> <tree> <field name="number"/> - <field name="date_doc"/> + <field name="date_doc" readonly="1"/> <field name="apo_type"/> <field name="vendor_id"/> <field name="description"/> <field name="notification" readonly="1"/> <field name="is_po" readonly="1"/> - <field name="responsible_id"/> + <field name="responsible_id" readonly="1"/> </tree> </field> </record> |
