summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py14
-rw-r--r--indoteknik_api/controllers/api_v1/stock_picking.py12
2 files changed, 16 insertions, 10 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index 56b49f9a..cff1921d 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -231,10 +231,11 @@ class SaleOrder(controller.Controller):
for so in filtered_orders_paginated:
item = request.env['sale.order'].api_v1_single_response(so)
+ approval_ok = (so.approval_status in ('pengajuan1', 'pengajuan2'))
source_ok = _is_website_order(so)
term_ok = bool(so.payment_term_id and so.payment_term_id.id == CBD_PAYMENT_TERM_ID)
pay_status = (getattr(so, 'payment_status', '') or '').strip().lower()
- eligible = bool(source_ok and term_ok and pay_status in ALLOWED_CONTINUE)
+ eligible = bool(approval_ok and source_ok and term_ok and pay_status in ALLOWED_CONTINUE)
redirect_url = getattr(so, 'payment_link_midtrans', '') or ''
@@ -242,6 +243,7 @@ class SaleOrder(controller.Controller):
'eligibleContinue': eligible,
'paymentSummary': {
'eligible': eligible,
+ 'approvalStatus': so.approval_status or '',
'paymentStatus': pay_status,
'paymentTermId': so.payment_term_id.id if so.payment_term_id else None,
'sourceId': so.source_id.id if so.source_id else None,
@@ -283,6 +285,7 @@ class SaleOrder(controller.Controller):
pay_status = (getattr(sale_order, 'payment_status', '') or '').strip().lower()
eligible = (
+ sale_order.approval_status in ('pengajuan1', 'pengajuan2') and
_is_website_order(sale_order) and
sale_order.payment_term_id and sale_order.payment_term_id.id == CBD_PAYMENT_TERM_ID and
pay_status in ALLOWED_CONTINUE
@@ -314,6 +317,7 @@ class SaleOrder(controller.Controller):
'eligible_continue': eligible,
'payment_summary': {
'eligible': eligible,
+ 'approval_status': sale_order.approval_status or '',
'payment_status': pay_status,
'payment_term_id': sale_order.payment_term_id.id if sale_order.payment_term_id else None,
'source_id': sale_order.source_id.id if sale_order.source_id else None,
@@ -723,9 +727,9 @@ class SaleOrder(controller.Controller):
_logger.info(f"Updated user_id from partner: {parameters['user_id']}")
if params['value']['type'] == 'sale_order':
- # parameters['approval_status'] = 'pengajuan1'
- parameters['approval_status'] = False
- _logger.info("Setting approval_status to 'false'")
+ parameters['approval_status'] = 'pengajuan1'
+ # parameters['approval_status'] = False
+ _logger.info("Setting approval_status to 'pengajuan1'")
sale_order = request.env['sale.order'].with_context(from_website_checkout=True).create([parameters])
sale_order.onchange_partner_contact()
@@ -785,7 +789,7 @@ class SaleOrder(controller.Controller):
order_line.product_id_change()
order_line.weight = order_line.product_id.weight
- order_line.onchange_vendor_id()
+ order_line._onchange_vendor_id_custom()
_logger.info(f"After onchanges - Price: {order_line.price_unit}, Disc: {order_line.discount}")
elif cart['cart_type'] == 'promotion':
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py
index 2ec1ec2a..fe82e665 100644
--- a/indoteknik_api/controllers/api_v1/stock_picking.py
+++ b/indoteknik_api/controllers/api_v1/stock_picking.py
@@ -1,5 +1,5 @@
from .. import controller
-from odoo import http
+from odoo import http, fields
from odoo.http import request, Response
from pytz import timezone
from datetime import datetime
@@ -8,7 +8,6 @@ import logging
_logger = logging.getLogger(__name__)
-_logger = logging.getLogger(__name__)
class StockPicking(controller.Controller):
prefix = '/api/v1/'
@@ -128,6 +127,7 @@ class StockPicking(controller.Controller):
sj_document = kw.get('sj_document') if 'sj_document' in kw else None
paket_document = kw.get('paket_document') if 'paket_document' in kw else None
dispatch_document = kw.get('dispatch_document') if 'dispatch_document' in kw else None
+ self_pu= kw.get('self_pu') if 'self_pu' in kw else None
# ===== Cari picking by id / picking_code =====
picking_data = False
@@ -140,19 +140,21 @@ class StockPicking(controller.Controller):
if not picking_data:
return self.response(code=403, description='picking not found')
- params = {
- 'driver_arrival_date': datetime.utcnow(),
- }
+ params = {}
if sj_document:
params['sj_documentation'] = sj_document
+ if self_pu:
+ params['driver_arrival_date'] = datetime.utcnow()
if paket_document:
params['paket_documentation'] = paket_document
+ params['driver_arrival_date'] = datetime.utcnow()
if dispatch_document:
params['dispatch_documentation'] = dispatch_document
picking_data.write(params)
return self.response({'name': picking_data.name})
+
@http.route(prefix + 'webhook/biteship', type='json', auth='public', methods=['POST'], csrf=False)
def update_status_from_biteship(self, **kw):
_logger.info("Biteship Webhook: Request received at controller start (type='json').")