From c99a62f139fd7dfad7ffb2911eaaa7e7b95c7dd5 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 28 Jul 2025 15:19:50 +0700 Subject: push --- fixco_custom/models/detail_order.py | 8 +++----- fixco_custom/models/sale.py | 34 ++++++++++++++++++++++++++++++++++ fixco_custom/models/upload_ginee.py | 2 +- fixco_custom/views/account_move.xml | 3 ++- fixco_custom/views/sale_order.xml | 9 +++++++++ fixco_custom/views/stock_picking.xml | 2 +- fixco_custom/views/upload_bills.xml | 2 +- 7 files changed, 51 insertions(+), 9 deletions(-) diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py index e8e87aa..1211aad 100755 --- a/fixco_custom/models/detail_order.py +++ b/fixco_custom/models/detail_order.py @@ -134,12 +134,10 @@ class DetailOrder(models.Model): def process_queue_item_detail(self, limit=100): domain = [ ('execute_status', '=', 'detail_order'), + '!', '|', - ('detail_order', 'not like', '"orderStatus": "PENDING_PAYMENT"'), - ('json_ginee', 'not like', '"orderStatus": "PENDING_PAYMENT"'), - '|', - ('detail_order', 'not like', '"channel":"BLIBLI_ID"'), - ('json_ginee', 'not like', '"channel":"BLIBLI_ID"'), + ('json_ginee', 'like', '"orderStatus": "PENDING_PAYMENT"'), + ('json_ginee', 'like', '"channel":"BLIBLI_ID"'), ] records = self.search(domain, order='create_date desc', limit=limit) diff --git a/fixco_custom/models/sale.py b/fixco_custom/models/sale.py index a36be0f..b77c92c 100755 --- a/fixco_custom/models/sale.py +++ b/fixco_custom/models/sale.py @@ -11,6 +11,40 @@ class SaleOrder(models.Model): address = fields.Char('Address') note_by_buyer = fields.Char('Note By Buyer') + count_payment = fields.Integer('Count Payment', compute='_compute_count_payment') + + def _compute_count_payment(self): + for rec in self: + if rec.invoice_ids: + invoice_ids_set = set(rec.invoice_ids.ids) + payments = self.env['account.payment'].search([]).filtered( + lambda p: any(inv.id in invoice_ids_set for inv in p.reconciled_invoice_ids) + ) + rec.count_payment = len(payments) + else: + rec.count_payment = 0 + + + def action_view_related_payment(self): + self.ensure_one() + + for rec in self: + if rec.invoice_ids: + invoice_ids_set = set(rec.invoice_ids.ids) + payments = self.env['account.payment'].search([]).filtered( + lambda p: any(inv.id in invoice_ids_set for inv in p.reconciled_invoice_ids) + ) + + return { + 'name': 'Payments', + 'type': 'ir.actions.act_window', + 'res_model': 'account.payment', + 'view_mode': 'tree,form', + 'target': 'current', + 'domain': [('id', 'in', payments.ids)], + } + + def _check_duplicate_order_id(self): for rec in self: so_duplicate = self.search([ diff --git a/fixco_custom/models/upload_ginee.py b/fixco_custom/models/upload_ginee.py index f1ce9ce..8cb07cf 100644 --- a/fixco_custom/models/upload_ginee.py +++ b/fixco_custom/models/upload_ginee.py @@ -286,7 +286,7 @@ class UploadGineeLine(models.Model): if self.env['sale.order'].search([('invoice_mp', 'ilike', line.invoice_marketplace)]): raise UserError(_( - "Invoice Marketplace %s already exists in Detail Orders") % line.invoice_marketplace) + "Invoice Marketplace %s already exists in Sale Orders") % line.invoice_marketplace) data = line._call_api(BATCH_GET_URI, {"orderIds": [line.order_id]}) detail_order = self.env['detail.order'].create({ diff --git a/fixco_custom/views/account_move.xml b/fixco_custom/views/account_move.xml index 3615fb7..daa5707 100644 --- a/fixco_custom/views/account_move.xml +++ b/fixco_custom/views/account_move.xml @@ -10,7 +10,8 @@ diff --git a/fixco_custom/views/sale_order.xml b/fixco_custom/views/sale_order.xml index 137ded1..0dfd9af 100755 --- a/fixco_custom/views/sale_order.xml +++ b/fixco_custom/views/sale_order.xml @@ -6,6 +6,15 @@ sale.order + + + diff --git a/fixco_custom/views/upload_bills.xml b/fixco_custom/views/upload_bills.xml index a90546f..472fefc 100644 --- a/fixco_custom/views/upload_bills.xml +++ b/fixco_custom/views/upload_bills.xml @@ -52,7 +52,7 @@ -- cgit v1.2.3