diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-05-10 14:43:15 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-05-10 14:43:15 +0700 |
| commit | 844339e517540826f6990456a63945dc879e37d5 (patch) | |
| tree | a635964dbd0b9729c1d161e16ca7e8dabb02a3c8 /indoteknik_custom/models/purchase_order.py | |
| parent | 1c0c7be74b11371299bead2626840b3ebc2632f7 (diff) | |
| parent | cb9ae6021dd4858372ed78d16ab491226c95f1d2 (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-x | indoteknik_custom/models/purchase_order.py | 29 |
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: |
