summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2024-11-15 09:57:49 +0700
committerstephanchrst <stephanchrst@gmail.com>2024-11-15 09:57:49 +0700
commit0c0cf00f50f78bc74aeedd8096eb161673a4ada7 (patch)
treeb8642b76cf171f397e36927095e6cb88ca28ba63
parent7b60204cb96af3d180fa21570c7540722184ab4e (diff)
bf matches so in purchase order
-rw-r--r--indoteknik_custom/models/automatic_purchase.py60
1 files changed, 32 insertions, 28 deletions
diff --git a/indoteknik_custom/models/automatic_purchase.py b/indoteknik_custom/models/automatic_purchase.py
index 548115e6..46cc9fa5 100644
--- a/indoteknik_custom/models/automatic_purchase.py
+++ b/indoteknik_custom/models/automatic_purchase.py
@@ -401,36 +401,40 @@ class AutomaticPurchase(models.Model):
domain = [
('product_id', '=', line.product_id.id)
]
- sale = self.env['v.sales.outstanding'].search(domain, order='sale_order_create_date desc', limit=1)
-
- existing_match = self.env['automatic.purchase.sales.match'].search([
- ('automatic_purchase_id', '=', self.id),
- ('sale_id', '=', sale.sale_id.id),
- ('product_id', '=', sale.product_id.id),
- ])
+ sales = self.env['v.sales.outstanding'].search(domain, order='sale_order_create_date desc')
- price_so = self.env['sale.order.line'].search([
- ('id', '=', sale.sale_line_id.id),
- ])
-
- if existing_match:
- continue
+ for sale in sales:
+ existing_match = self.env['automatic.purchase.sales.match'].search([
+ ('automatic_purchase_id', '=', self.id),
+ ('sale_id', '=', sale.sale_id.id),
+ ('sale_line_id', '=', sale.sale_line_id.id),
+ ('product_id', '=', sale.product_id.id),
+ ])
- self.env['automatic.purchase.sales.match'].create([{
- 'automatic_purchase_id': self.id,
- 'sale_id': sale.sale_id.id,
- 'sale_line_id': sale.sale_line_id.id,
- 'picking_id': sale.picking_id.id,
- 'move_id': sale.move_id.id,
- 'partner_id': sale.partner_id.id,
- 'partner_invoice_id': sale.partner_invoice_id.id,
- 'salesperson_id': sale.salesperson_id.id,
- 'product_id': sale.product_id.id,
- 'qty_so': sale.outgoing,
- 'qty_po': line.qty_purchase,
- 'purchase_price': price_so.purchase_price,
- 'purchase_tax_id': price_so.purchase_tax_id.id if price_so.purchase_tax_id.id else None,
- }])
+ # price_so = self.env['sale.order.line'].search([
+ # ('id', '=', sale.sale_line_id.id),
+ # ])
+
+ if existing_match:
+ continue
+
+ self.env['automatic.purchase.sales.match'].create([{
+ 'automatic_purchase_id': self.id,
+ 'sale_id': sale.sale_id.id,
+ 'sale_line_id': sale.sale_line_id.id,
+ 'picking_id': sale.picking_id.id,
+ 'move_id': sale.move_id.id,
+ 'partner_id': sale.partner_id.id,
+ 'partner_invoice_id': sale.partner_invoice_id.id,
+ 'salesperson_id': sale.salesperson_id.id,
+ 'product_id': sale.product_id.id,
+ 'qty_so': sale.outgoing,
+ 'qty_po': line.qty_purchase,
+ 'purchase_price': sale.sale_line_id.purchase_price,
+ 'purchase_tax_id': sale.sale_line_id.purchase_tax_id.id if sale.sale_line_id.purchase_tax_id.id else None,
+ # 'purchase_price': price_so.purchase_price,
+ # 'purchase_tax_id': price_so.purchase_tax_id.id if price_so.purchase_tax_id.id else None,
+ }])
def _create_sync_purchasing_job(self, jobs):
date = datetime.utcnow()