summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/purchase_order.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-05-10 14:43:15 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-05-10 14:43:15 +0700
commit844339e517540826f6990456a63945dc879e37d5 (patch)
treea635964dbd0b9729c1d161e16ca7e8dabb02a3c8 /indoteknik_custom/models/purchase_order.py
parent1c0c7be74b11371299bead2626840b3ebc2632f7 (diff)
parentcb9ae6021dd4858372ed78d16ab491226c95f1d2 (diff)
Merge branch 'production' into dev/request-by-abl
# Conflicts: # indoteknik_custom/models/res_partner.py
Diffstat (limited to 'indoteknik_custom/models/purchase_order.py')
-rwxr-xr-xindoteknik_custom/models/purchase_order.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index caad90d3..5946399d 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -1,5 +1,6 @@
from odoo import fields, models, api, _
from odoo.exceptions import AccessError, UserError, ValidationError
+from dateutil.relativedelta import relativedelta
from datetime import datetime, timedelta
import logging
from pytz import timezone, utc
@@ -55,6 +56,33 @@ class PurchaseOrder(models.Model):
revisi_po = fields.Boolean(string='Revisi', tracking=3)
from_apo = fields.Boolean(string='From APO', tracking=3)
approval_edit_line = fields.Boolean(string='Approval Edit Line', tracking=3)
+ sale_order = fields.Char(string='Sale Order')
+
+ def _prepare_picking(self):
+ if not self.group_id:
+ self.group_id = self.group_id.create({
+ 'name': self.name,
+ 'partner_id': self.partner_id.id
+ })
+
+ if self.sale_order_id:
+ sale_order = self.sale_order_id
+ else:
+ sale_order = self.sale_order
+
+ if not self.partner_id.property_stock_supplier.id:
+ raise UserError(_("You must set a Vendor Location for this partner %s", self.partner_id.name))
+ return {
+ 'picking_type_id': self.picking_type_id.id,
+ 'partner_id': self.partner_id.id,
+ 'user_id': False,
+ 'date': self.date_order,
+ 'origin': self.name,
+ 'location_dest_id': self._get_destination_location(),
+ 'location_id': self.partner_id.property_stock_supplier.id,
+ 'company_id': self.company_id.id,
+ 'sale_order': sale_order,
+ }
@api.model
def action_multi_cancel(self):
@@ -288,6 +316,7 @@ class PurchaseOrder(models.Model):
'qty_available_store': qty_available,
# 'suggest': suggest,
'so_line_id': order_line.id,
+ 'so_id': order_line.order_id.id,
}
self.order_line.create(values)
for order_line in self.order_line: