diff options
Diffstat (limited to 'indoteknik_custom')
| -rw-r--r-- | indoteknik_custom/models/product_pricelist.py | 6 | ||||
| -rwxr-xr-x | indoteknik_custom/models/product_template.py | 13 |
2 files changed, 17 insertions, 2 deletions
diff --git a/indoteknik_custom/models/product_pricelist.py b/indoteknik_custom/models/product_pricelist.py index 2edaeb80..49927d6b 100644 --- a/indoteknik_custom/models/product_pricelist.py +++ b/indoteknik_custom/models/product_pricelist.py @@ -1,5 +1,6 @@ from odoo import models, fields, api from odoo.exceptions import UserError +from datetime import datetime class ProductPricelist(models.Model): @@ -16,6 +17,11 @@ class ProductPricelist(models.Model): ], string='Flashsale Option') banner_top = fields.Binary(string='Banner Top') + def _remaining_time_in_second(self): + if not self.end_date: + return 0 + return round((self.end_date - datetime.now()).total_seconds()) + class ProductPricelistItem(models.Model): _inherit = 'product.pricelist.item' diff --git a/indoteknik_custom/models/product_template.py b/indoteknik_custom/models/product_template.py index e48136fa..acd592ab 100755 --- a/indoteknik_custom/models/product_template.py +++ b/indoteknik_custom/models/product_template.py @@ -29,8 +29,7 @@ class ProductTemplate(models.Model): digits='Product Price', inverse='_set_product_lst_price', help="Web Price with pricelist_id = 1") qty_stock_vendor = fields.Float('QTY Stock Vendor', compute='_compute_qty_stock_vendor') - have_promotion_program = fields.Boolean('Have Promotion Program', compute='_have_promotion_program', - help="Punya promotion program gak?") + have_promotion_program = fields.Boolean('Have Promotion Program', compute='_have_promotion_program', help="Punya promotion program gak?") product_rating = fields.Float('Product Rating', help="Digunakan untuk sorting product di website", default=0.0) virtual_rating = fields.Float('Virtual Rating', compute='_compute_virtual_rating', help="Column Virtual untuk product rating, digunakan oleh Solr", default=0.0) last_calculate_rating = fields.Datetime("Last Calculate Rating") @@ -155,6 +154,16 @@ class ProductTemplate(models.Model): else: template.have_promotion_program = False + def _get_flash_sale_remaining_time(self): + variant_ids = [x.id for x in self.product_variant_ids] + pricelist = self.env['product.pricelist'].search([ + ('is_flash_sale', '=', True), + ('item_ids.product_id', 'in', variant_ids) + ]) + if not pricelist: + return 0 + return pricelist._remaining_time_in_second() + @api.model def _calculate_rating_product(self, limit=1000, expiry_days=30, ids=False): current_time = datetime.now() |
