diff options
Diffstat (limited to 'indoteknik_custom/models')
| -rw-r--r-- | indoteknik_custom/models/requisition.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py index dbf236e2..3aa564df 100644 --- a/indoteknik_custom/models/requisition.py +++ b/indoteknik_custom/models/requisition.py @@ -51,6 +51,27 @@ class Requisition(models.Model): sales_approve = fields.Boolean(string='Sales Approve', tracking=3, copy=False) merchandise_approve = fields.Boolean(string='Merchandise Approve', tracking=3, copy=False) + def generate_requisition_from_so(self): + state = ['done', 'sale'] + if not self.sale_order_id: + raise UserError('Sale Order Wajib Diisi dan Harus Draft') + if self.sale_order_id.state in state: + raise UserError('SO sudah Confirm, akan berakibat double Purchase melalui PJ') + if not self.sale_order_id.order_line: + raise UserError('Line SO masih kosong, harus diisi dulu') + for order_line in self.sale_order_id.order_line: + param = { + 'requisition_id': self.id, + 'product_id': order_line.product_id.id, + 'partner_id': order_line.vendor_id.id, + 'qty_purchase': order_line.product_uom_qty, + 'price_unit': order_line.purchase_price, + 'taxes_id': order_line.purchase_tax_id.id, + 'subtotal': order_line.purchase_price * order_line.product_uom_qty, + 'brand_id': order_line.product_id.x_manufacture.id + } + self.env['requisition.line'].create([param]) + @api.model def create(self, vals): vals['number'] = self.env['ir.sequence'].next_by_code('requisition') or '0' |
