summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/requisition.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2023-06-27 09:54:00 +0700
committerstephanchrst <stephanchrst@gmail.com>2023-06-27 09:54:00 +0700
commit9704530832cbb70a8209e556a9a67a25fe8c11fc (patch)
tree0c92d7c479fd81d998d2cc0dec8334b9dc6fa48c /indoteknik_custom/models/requisition.py
parent72888c5c59078195420f6a6da3ae1c65766390d7 (diff)
parent45dc1483342d9ec195c53711b5194e7ddf88b343 (diff)
Merge branch 'release' into nathan-dev
Diffstat (limited to 'indoteknik_custom/models/requisition.py')
-rw-r--r--indoteknik_custom/models/requisition.py63
1 files changed, 61 insertions, 2 deletions
diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py
index 5bb3272e..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')
@@ -44,6 +81,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 +121,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)
@@ -127,6 +172,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 +185,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
@@ -163,6 +216,12 @@ 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')
+
+ @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'