summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/purchase_order.py
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-09-29 02:32:56 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-09-29 02:32:56 +0000
commit78f205302c35cab2512971d64c8152aab2dcfa95 (patch)
tree72be75ad949fe9efaf7b55c8f7f5722225538b28 /indoteknik_custom/models/purchase_order.py
parent50b5bd7bd984ef108e8bd324440050a222d8262f (diff)
parent0bb47005022b33c79ecfb5924d41f35ce794c5fb (diff)
Merged in production (pull request #126)
Production
Diffstat (limited to 'indoteknik_custom/models/purchase_order.py')
-rwxr-xr-xindoteknik_custom/models/purchase_order.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index 3fb61955..8ad25228 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -46,6 +46,11 @@ class PurchaseOrder(models.Model):
summary_qty_receipt = fields.Float('Summary Qty Receipt', compute='_compute_summary_qty')
count_line_product = fields.Float('Total Item', compute='compute_count_line_product')
note_description = fields.Char(string='Note', help='bisa diisi sebagai informasi indent barang tertentu atau apapun')
+ has_active_invoice = fields.Boolean(string='Has Active Invoice', compute='_compute_has_active_invoice')
+
+ def _compute_has_active_invoice(self):
+ for order in self:
+ order.has_active_invoice = any(invoice.state != 'cancel' for invoice in order.invoice_ids)
def add_product_to_pricelist(self):
for line in self.order_line:
@@ -195,6 +200,7 @@ class PurchaseOrder(models.Model):
'product_qty': order_line.product_qty,
'qty_available_store': qty_available,
'suggest': suggest,
+ 'so_line_id': order_line.id,
}
self.order_line.create(values)
@@ -258,8 +264,6 @@ class PurchaseOrder(models.Model):
self.env['po.sync.price'].create([{
'order_line_id': line.id,
}])
-
-
def _send_mail(self):
output = io.BytesIO()
@@ -325,7 +329,7 @@ class PurchaseOrder(models.Model):
def re_calculate(self):
for line in self.order_line:
sale_order_line = self.env['sale.order.line'].search([
- ('product_id', '=', line.product_id.id),
+ ('id', '=', line.so_line_id.id),
('order_id', '=', line.order_id.sale_order_id.id)
], limit=1, order='price_reduce_taxexcl')
for so_line in sale_order_line:
@@ -340,9 +344,13 @@ class PurchaseOrder(models.Model):
def compute_total_margin(self):
sum_so_margin = sum_sales_price = sum_margin = 0
for line in self.order_line:
- sale_order_line = self.env['sale.order.line'].search(
- [('product_id', '=', line.product_id.id),
- ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl')
+ sale_order_line = line.so_line_id
+ if not sale_order_line:
+ sale_order_line = self.env['sale.order.line'].search([
+ ('product_id', '=', line.product_id.id),
+ ('order_id', '=', line.order_id.sale_order_id.id)
+ ], limit=1, order='price_reduce_taxexcl')
+
sum_so_margin += sale_order_line.item_margin
sales_price = sale_order_line.price_reduce_taxexcl * sale_order_line.product_uom_qty
if sale_order_line.order_id.shipping_cost_covered == 'indoteknik':