summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/sale_monitoring.py
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-11-10 13:40:58 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-11-10 13:40:58 +0700
commit2aee5a44abbe36961dfe23cc3d656aa48e11e0f9 (patch)
tree8ec2b6552aaef4e14539aa52ed796552e24180d6 /indoteknik_custom/models/sale_monitoring.py
parent6a87e59e7220bdfa78e98b23003ccc4ef41bd0ce (diff)
parentb4e74170aeaf00937f78e5af9047218ddb17516c (diff)
Merge branch 'production' into change/feature/promotion-program
Diffstat (limited to 'indoteknik_custom/models/sale_monitoring.py')
-rwxr-xr-xindoteknik_custom/models/sale_monitoring.py34
1 files changed, 32 insertions, 2 deletions
diff --git a/indoteknik_custom/models/sale_monitoring.py b/indoteknik_custom/models/sale_monitoring.py
index ad15e0c2..107d5296 100755
--- a/indoteknik_custom/models/sale_monitoring.py
+++ b/indoteknik_custom/models/sale_monitoring.py
@@ -21,12 +21,42 @@ class SaleMonitoring(models.Model):
status = fields.Char(string="Status")
po_number = fields.Char(string="PO Number")
qty_reserved = fields.Integer(string="Qty Reserved")
- note = fields.Char(string="Note", compute='compute_note')
+ note_so_line = fields.Selection([
+ ('eta', 'ETA'),
+ ('info_sales', 'Info Sales'),
+ ('info_vendor', 'Info Vendor'),
+ ('penggabungan', 'Penggabungan'),
+ ], string="Note", compute='compute_note')
+ note = fields.Char(string="Note Detail", compute='compute_note_detail')
+ purchase_representative_id = fields.Many2one('res.users', string="Purchase Representative", readonly=True, compute='compute_purchase_representative')
+
+ def compute_purchase_representative(self):
+ for sale in self:
+ po = self.env['purchase.order'].search([
+ ('sale_order_id', '=', sale.sale_order_id.id),
+ ('user_id', '!=', False)
+ ])
+
+ user_id = False
+
+ if po:
+ user_id = po[0].user_id
+
+ sale.purchase_representative_id = user_id
def compute_note(self):
for sale in self:
lines = self.env['sale.order.line'].search([
('order_id', '=', sale.sale_order_id.id),
+ ('note', '!=', False)
+ ], limit=1)
+
+ sale.note_so_line = lines.note
+
+ def compute_note_detail(self):
+ for sale in self:
+ lines = self.env['sale.order.line'].search([
+ ('order_id', '=', sale.sale_order_id.id),
('note_procurement', '!=', False)
])
@@ -51,12 +81,12 @@ class SaleMonitoring(models.Model):
SUM(smd.qty_so_invoiced) AS qty_so_invoiced,
sum(smd.qty_reserved) as qty_reserved,
CASE
- when sum(qty_so_invoiced) = sum(qty_so) then 'Invoiced'
when sum(qty_so_delivered) = sum(qty_so) then 'Delivered'
when sum(qty_reserved) >= sum(qty_so) then 'Siap kirim'
when sum(qty_po) + sum(qty_reserved) - sum(qty_po_received) < sum(qty_so) then 'Belum/Kurang PO'
when sum(qty_po_received) = 0 then 'Belum terima'
when sum(qty_po_received) < sum(qty_po) then 'Terima sebagian'
+ when sum(qty_so_invoiced) = sum(qty_so) then 'Invoiced'
END AS status,
get_po_number(smd.sale_order_id) as po_number
FROM sale_monitoring_detail smd