From 70dbe185533615aaedb7f05c75a7c5530be6eb42 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Mon, 19 Jun 2023 12:01:42 +0700 Subject: add available qty while create po from requisition --- indoteknik_custom/models/requisition.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/requisition.py') diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py index 5bb3272e..c1af4784 100644 --- a/indoteknik_custom/models/requisition.py +++ b/indoteknik_custom/models/requisition.py @@ -127,6 +127,12 @@ class Requisition(models.Model): # new_po = self.env['purchase.order'].create([param_header]) brand_id = product.brand_id.id count += 10 + + qty_available = product.product_id.qty_onhand_bandengan + product.product_id.qty_incoming_bandengan - product.product_id.outgoing_qty + suggest = 'harus beli' + if qty_available > product.qty_purchase: + suggest = 'masih cukup' + param_line = { 'order_id': new_po.id, 'sequence': count, @@ -134,7 +140,9 @@ class Requisition(models.Model): 'product_qty': product.qty_purchase, 'product_uom_qty': product.qty_purchase, 'price_unit': product.last_price, - 'taxes_id': product.tax_id + 'taxes_id': product.tax_id, + 'qty_available_store': qty_available, + 'suggest': suggest, } new_line = self.env['purchase.order.line'].create([param_line]) product.current_po_id = new_po.id -- cgit v1.2.3 From a3e6d8b8fa284f8f07d815c14c8e547321161261 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 20 Jun 2023 14:06:29 +0700 Subject: add qty available bandengan and suggest in requisition --- indoteknik_custom/models/requisition.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/requisition.py') diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py index c1af4784..9ae6fb3e 100644 --- a/indoteknik_custom/models/requisition.py +++ b/indoteknik_custom/models/requisition.py @@ -44,6 +44,12 @@ class Requisition(models.Model): purchase_price = 0 vendor_id = 0 + # get qty available bandengan + qty_available = order_line.product_id.qty_onhand_bandengan + order_line.product_id.qty_incoming_bandengan - order_line.product_id.outgoing_qty + suggest = 'harus beli' + if qty_available > order_line.product_qty: + suggest = 'masih cukup' + purchase_pricelist = self.env['purchase.pricelist'].search([ ('product_id.id', '=', order_line.product_id.id), ('vendor_id.id', '=', 5571) @@ -78,7 +84,9 @@ class Requisition(models.Model): 'tax_id': order_line.purchase_tax_id.id, 'price_unit': purchase_price, 'subtotal': purchase_price * order_line.product_uom_qty, - 'source': source + 'source': source, + 'qty_available_store': qty_available, + 'suggest': suggest, }]) count+=1 _logger.info('Create Requisition %s' % order_line.product_id.name) @@ -171,6 +179,8 @@ class RequisitionLine(models.Model): current_po_id = fields.Many2one('purchase.order', string='Current') current_po_line_id = fields.Many2one('purchase.order.line', string='Current Line') source = fields.Char(string='Source', help='data harga diambil darimana') + qty_available_store = fields.Float(string='Available') + suggest = fields.Char(string='Suggest') class RequisitionPurchaseMatch(models.Model): _name = 'requisition.purchase.match' -- cgit v1.2.3 From 046aebc189673851511f90f6291790e652b2cc74 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 23 Jun 2023 10:33:17 +0700 Subject: add button create requistion from sales order with price and calculate subtotal in requisition line --- indoteknik_custom/models/requisition.py | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'indoteknik_custom/models/requisition.py') diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py index 9ae6fb3e..19f0ba7e 100644 --- a/indoteknik_custom/models/requisition.py +++ b/indoteknik_custom/models/requisition.py @@ -26,6 +26,43 @@ class Requisition(models.Model): result = super(Requisition, self).create(vals) return result + def create_requisition_from_sales_with_price(self): + if self.requisition_lines: + raise UserError('Sudah digenerate sebelumnya, hapus line terlebih dahulu') + if not self.sale_order_id: + raise UserError('Sale Order harus diisi') + if self.is_po: + raise UserError('Sudah jadi PO, tidak bisa di create ulang PO nya') + + count = 0 + for order_line in self.sale_order_id.order_line: + # get purchase price altama, if nothing, then get other cheaper, if nothing then last po + purchase_price = order_line.purchase_price + vendor_id = order_line.vendor_id.id + + # get qty available bandengan + qty_available = order_line.product_id.qty_onhand_bandengan + order_line.product_id.qty_incoming_bandengan - order_line.product_id.outgoing_qty + suggest = 'harus beli' + if qty_available > order_line.product_qty: + suggest = 'masih cukup' + + self.env['requisition.line'].create([{ + 'requisition_id': self.id, + 'partner_id': vendor_id, + 'brand_id': order_line.product_id.product_tmpl_id.x_manufacture.id, + 'product_id': order_line.product_id.id, + 'qty_purchase': order_line.product_uom_qty, + 'tax_id': order_line.purchase_tax_id.id, + 'price_unit': purchase_price, + 'subtotal': purchase_price * order_line.product_uom_qty, + 'source': 'sales', + 'qty_available_store': qty_available, + 'suggest': suggest, + }]) + count+=1 + _logger.info('Create Requisition %s' % order_line.product_id.name) + self.notification = "Requisition Created %s lines" % count + def create_requisition_from_sales(self): if self.requisition_lines: raise UserError('Sudah digenerate sebelumnya, hapus line terlebih dahulu') @@ -182,6 +219,10 @@ class RequisitionLine(models.Model): qty_available_store = fields.Float(string='Available') suggest = fields.Char(string='Suggest') + @api.onchange('price_unit') + def _onchange_price_unit(self): + self.subtotal = self.price_unit * self.qty_purchase + class RequisitionPurchaseMatch(models.Model): _name = 'requisition.purchase.match' _order = 'requisition_id, id' -- cgit v1.2.3