summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-07-01 11:19:19 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-07-01 11:19:19 +0700
commita54492e34db2a43d9aae2d575b2b3c073669631c (patch)
tree409d317bed22355f844a1f9e81873ca83f2f9bd6
parent53e3cacd7d32df44ce8637284c3ec16050e07e5b (diff)
<iman> update flash sale & get_request_params untuk boolean
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py2
-rw-r--r--indoteknik_api/controllers/controller.py19
-rwxr-xr-xindoteknik_custom/models/sale_order.py11
-rwxr-xr-xindoteknik_custom/views/sale_order.xml2
4 files changed, 20 insertions, 14 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index 5dc0f6aa..ea2d381c 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -331,7 +331,7 @@ class SaleOrder(controller.Controller):
'delivery_amount': ['number', 'default:0'],
'carrier_id': [],
'delivery_service_type': [],
- 'flash_sale': [],
+ 'flash_sale': ['boolean'],
'voucher': [],
'source': [],
'estimated_arrival_days': ['number', 'default:0']
diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py
index 017e5c12..a5a05c1b 100644
--- a/indoteknik_api/controllers/controller.py
+++ b/indoteknik_api/controllers/controller.py
@@ -80,9 +80,10 @@ class Controller(http.Controller):
'value': {},
'query': {}
}
-
+
for key, rules in queries.items():
is_number = 'number' in rules
+ is_boolean = 'boolean' in rules
is_exclude_if_null = 'exclude_if_null' in rules
alias = next((r.replace('alias:', '') for r in rules if r.startswith('alias:')), key)
default = next((r.replace('default:', '') for r in rules if r.startswith('default:')), None)
@@ -94,6 +95,13 @@ class Controller(http.Controller):
result['reason'].append(f"{key} is required")
if 'number' in rules and value and not value.isdigit():
result['reason'].append(f"{key} must be a number")
+ if is_boolean and value:
+ if value.lower() in ['true', '1']:
+ value = True
+ elif value.lower() in ['false', '0']:
+ value = False
+ else:
+ result['reason'].append(f"{key} must be a boolean")
result['query'][key] = value
@@ -102,13 +110,20 @@ class Controller(http.Controller):
if is_number and value.isdigit():
value = int(value)
+ # Assign the boolean value
+ if is_boolean:
+ if value.lower() in ['true', '1']:
+ value = True
+ elif value.lower() in ['false', '0']:
+ value = False
+
if not value and is_exclude_if_null:
continue
result['value'][alias] = value
result['valid'] = not result['reason']
-
+
return result
def time_to_str(self, object, format):
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 03b37229..6886f5a8 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -72,8 +72,7 @@ class SaleOrder(models.Model):
gross_amount = fields.Float(string='Gross Amount', help='Jumlah pembayaran yang dilakukan dengan Midtrans')
notification = fields.Char(string='Notification', help='Dapat membantu error dari approval')
delivery_service_type = fields.Char(string='Delivery Service Type', help='data dari rajaongkir')
- flash_sale = fields.Char(string='Flash Sale', help='data dari web')
- flash_sale_icon = fields.Html(string='Flash Sale', compute='_compute_flash_sale_icon')
+ flash_sale = fields.Boolean(string='Flash Sale', help='Data dari web')
grand_total = fields.Monetary(string='Grand Total', help='Amount total + amount delivery', compute='_compute_grand_total')
payment_link_midtrans = fields.Char(string='Payment Link', help='Url payment yg digenerate oleh midtrans, harap diserahkan ke customer agar dapat dilakukan pembayaran secara mandiri')
due_id = fields.Many2one('due.extension', string="Due Extension", readonly=True, tracking=True)
@@ -102,14 +101,6 @@ class SaleOrder(models.Model):
compute_fullfillment = fields.Boolean(string='Compute Fullfillment', compute="_compute_fullfillment")
note_ekspedisi = fields.Char(string="Note Ekspedisi")
- @api.depends('flash_sale')
- def _compute_flash_sale_icon(self):
- for order in self:
- if order.flash_sale and order.flash_sale.lower() == 'true':
- order.flash_sale_icon = '<span style="color:black;">✔</span>'
- else:
- order.flash_sale_icon = '<span style="color:black;">✖</span>'
-
def open_form_multi_create_uang_muka(self):
action = self.env['ir.actions.act_window']._for_xml_id('indoteknik_custom.action_sale_order_multi_uangmuka')
action['context'] = {
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index fcd83e38..7f0eedb3 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -73,7 +73,7 @@
<field name="sales_tax_id" domain="[('type_tax_use','=','sale'), ('active', '=', True)]" required="1"/>
<field name="carrier_id" required="1"/>
<field name="delivery_service_type" readonly="1"/>
- <field name="flash_sale_icon" widget="html"/>
+ <field name="flash_sale"/>
</field>
<field name="medium_id" position="after">
<field name="date_doc_kirim" readonly="1"/>