summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/requisition.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-10-23 15:26:16 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-10-23 15:26:16 +0700
commit3fa5e5bfe91969b4ab74a43a63ab673a76aff9da (patch)
tree3633af58bc72fba60db84da4e2a2b2cc442b85cf /indoteknik_custom/models/requisition.py
parent25645d93db289ea4855486630dba8d578efb2851 (diff)
cr requisition
Diffstat (limited to 'indoteknik_custom/models/requisition.py')
-rw-r--r--indoteknik_custom/models/requisition.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/indoteknik_custom/models/requisition.py b/indoteknik_custom/models/requisition.py
index 2b148c96..c4104ec5 100644
--- a/indoteknik_custom/models/requisition.py
+++ b/indoteknik_custom/models/requisition.py
@@ -214,6 +214,7 @@ class RequisitionLine(models.Model):
last_price = fields.Float(string='Last Price')
last_order_id = fields.Many2one('purchase.order', string='Last Order')
last_orderline_id = fields.Many2one('purchase.order.line', string='Last Order Line')
+ taxes_id = fields.Many2one('account.tax', string='Tax')
is_po = fields.Boolean(String='Is PO')
current_po_id = fields.Many2one('purchase.order', string='Current')
current_po_line_id = fields.Many2one('purchase.order.line', string='Current Line')
@@ -221,6 +222,23 @@ class RequisitionLine(models.Model):
qty_available_store = fields.Float(string='Available')
suggest = fields.Char(string='Suggest')
+ def _get_valid_purchase_price(self, purchase_price):
+ price = 0
+ taxes = ''
+ human_last_update = purchase_price.human_last_update or datetime.min
+ system_last_update = purchase_price.system_last_update or datetime.min
+
+ if purchase_price.taxes_product_id.type_tax_use == 'purchase':
+ price = purchase_price.product_price
+ taxes = purchase_price.taxes_product_id.id
+
+ if system_last_update > human_last_update:
+ if purchase_price.taxes_system_id.type_tax_use == 'purchase':
+ price = purchase_price.system_price
+ taxes = purchase_price.taxes_system_id.id
+
+ return price, taxes
+
@api.onchange('price_unit')
def _onchange_price_unit(self):
for line in self:
@@ -230,6 +248,15 @@ class RequisitionLine(models.Model):
def _onchange_product(self):
for line in self:
line.brand_id = line.product_id.product_tmpl_id.x_manufacture.id
+ purchase_pricelist = self.env['purchase.pricelist'].search([
+ ('product_id', '=', line.product_id.id)
+ ],order='count_trx_po desc, count_trx_po_vendor desc', limit=1)
+
+ price, taxes = line._get_valid_purchase_price(purchase_pricelist)
+ line.price_unit = price
+ line.taxes_id = taxes
+ line.partner_id = purchase_pricelist.vendor_id.id
+
class RequisitionPurchaseMatch(models.Model):
_name = 'requisition.purchase.match'