summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-02-09 09:32:52 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-02-09 09:32:52 +0700
commitc76e3d6126c3d595a6c3c5d6802a9f5e7015f378 (patch)
treef5f1cb171693d62961b6100562c6f976632a2499
parentf6be42d37a363b86f4a9ec71ccb38c78cbe2d887 (diff)
change request purchasing job
-rw-r--r--indoteknik_custom/models/automatic_purchase.py30
-rw-r--r--indoteknik_custom/models/purchasing_job.py2
-rw-r--r--indoteknik_custom/views/automatic_purchase.xml4
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>