From 0c3abd74ac9aa0b3f1b6fe4e2435698922387b0b Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 27 Jun 2023 16:44:25 +0700 Subject: add new field subtotal_vendot to so line --- indoteknik_custom/models/sale_order.py | 19 ++++++++++++++++++- indoteknik_custom/views/sale_order.xml | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 0a794f6d..d980e1fe 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -462,7 +462,7 @@ class SaleOrderLine(models.Model): 'res.partner', string='Vendor', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, change_default=True, index=True, tracking=1, - domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]", ) + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]",) purchase_price = fields.Float('Purchase', required=True, digits='Product Price', default=0.0) purchase_tax_id = fields.Many2one('account.tax', string='Tax', domain=['|', ('active', '=', False), ('active', '=', True)]) @@ -470,6 +470,23 @@ class SaleOrderLine(models.Model): fee_third_party_line = fields.Float('FeeThirdPartyLine', compute='compute_fee_third_party_line', default=0) line_no = fields.Integer('No', default=0, copy=False) note_procurement = fields.Char(string='Note', help="Harap diisi jika ada keterangan tambahan dari Procurement, agar dapat dimonitoring") + vendor_subtotal = fields.Float( + string='Vendor Subtotal', compute="compute_vendor_subtotal") + + def compute_vendor_subtotal(self): + # self.vendor_subtotal = 1 + for line in self: + if line.vendor_id: + product = line.product_id + + if product: + vendor_price = line.purchase_price + if line.purchase_tax_id.price_include: + vendor_price = line.purchase_price + else: + vendor_price = line.purchase_price + (line.purchase_price*11/100) + + line.vendor_subtotal = vendor_price * line.product_uom_qty def compute_item_margin(self): for line in self: diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml index 85f687c1..ef72c10f 100755 --- a/indoteknik_custom/views/sale_order.xml +++ b/indoteknik_custom/views/sale_order.xml @@ -63,6 +63,7 @@ + -- cgit v1.2.3 From e4f968ba874b899aa4af89b06abe83674ced938b Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 10:34:32 +0700 Subject: change id of produk sementara --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 0a794f6d..2fc1055b 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -324,7 +324,7 @@ class SaleOrder(models.Model): # must add product can sell validation if not line.product_id.product_tmpl_id.sale_ok: raise UserError('Product %s belum bisa dijual, harap hubungi finance' % line.product_id.display_name) - if line.product_id.id == 232383: + if line.product_id.id == 224484: raise UserError(_('Tidak bisa Confirm menggunakan Produk Sementara')) if not line.vendor_id or not line.purchase_price: raise UserError(_('Isi Vendor dan Harga Beli sebelum Request Approval')) -- cgit v1.2.3 From ecf9d25de623c5cef7f051b650c065c054a08a14 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 12:09:45 +0700 Subject: fix error vendor subtotal --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 09ee88fa..a15a2572 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -476,7 +476,7 @@ class SaleOrderLine(models.Model): def compute_vendor_subtotal(self): # self.vendor_subtotal = 1 for line in self: - if line.vendor_id: + if line.purchase_price: product = line.product_id if product: -- cgit v1.2.3 From 4501a0a17ae56ca822827a7aa500ce269391ee78 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 12:17:53 +0700 Subject: bug fix --- indoteknik_custom/models/sale_order.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index a15a2572..3b3ce13a 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -476,17 +476,17 @@ class SaleOrderLine(models.Model): def compute_vendor_subtotal(self): # self.vendor_subtotal = 1 for line in self: - if line.purchase_price: - product = line.product_id + if line.purchase_price > 0: + # product = line.product_id - if product: - vendor_price = line.purchase_price - if line.purchase_tax_id.price_include: - vendor_price = line.purchase_price - else: - vendor_price = line.purchase_price + (line.purchase_price*11/100) + # if product: + # vendor_price = line.purchase_price + # if line.purchase_tax_id.price_include: + # vendor_price = line.purchase_price + # else: + # vendor_price = line.purchase_price + (line.purchase_price*11/100) - line.vendor_subtotal = vendor_price * line.product_uom_qty + line.vendor_subtotal = line.purchase_price * line.product_uom_qty def compute_item_margin(self): for line in self: -- cgit v1.2.3 From ff7390468fb11915b35c9f522379132dde19a54d Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 12:29:12 +0700 Subject: bug fix vendor subtotal --- indoteknik_custom/models/sale_order.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 3b3ce13a..5f37e3b2 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -470,13 +470,11 @@ class SaleOrderLine(models.Model): fee_third_party_line = fields.Float('FeeThirdPartyLine', compute='compute_fee_third_party_line', default=0) line_no = fields.Integer('No', default=0, copy=False) note_procurement = fields.Char(string='Note', help="Harap diisi jika ada keterangan tambahan dari Procurement, agar dapat dimonitoring") - vendor_subtotal = fields.Float( - string='Vendor Subtotal', compute="compute_vendor_subtotal") + vendor_subtotal = fields.Float(string='Vendor Subtotal', compute="_compute_vendor_subtotal") - def compute_vendor_subtotal(self): - # self.vendor_subtotal = 1 + def _compute_vendor_subtotal(self): for line in self: - if line.purchase_price > 0: + if line.purchase_price > 0 and line.product_uom_qty > 0: # product = line.product_id # if product: @@ -485,8 +483,10 @@ class SaleOrderLine(models.Model): # vendor_price = line.purchase_price # else: # vendor_price = line.purchase_price + (line.purchase_price*11/100) - - line.vendor_subtotal = line.purchase_price * line.product_uom_qty + subtotal = line.purchase_price * line.product_uom_qty + line.vendor_subtotal = subtotal + else: + line.vendor_subtotal = 0 def compute_item_margin(self): for line in self: -- cgit v1.2.3 From 595b7a5d6409d218802bcc6437201a8fad13749a Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 15:53:06 +0700 Subject: add customer in delivery order scan --- indoteknik_custom/models/delivery_order.py | 3 +++ indoteknik_custom/views/delivery_order.xml | 1 + 2 files changed, 4 insertions(+) diff --git a/indoteknik_custom/models/delivery_order.py b/indoteknik_custom/models/delivery_order.py index 3f8da384..be5fd2e0 100644 --- a/indoteknik_custom/models/delivery_order.py +++ b/indoteknik_custom/models/delivery_order.py @@ -74,6 +74,7 @@ class DeliveryOrderLine(models.TransientModel): carrier_id = fields.Many2one('delivery.carrier', string='Shipping Method') tracking_no = fields.Char(string='Tracking No') delivery_order_id = fields.Many2one('delivery.order', string='Delivery Order') + partner_id = fields.Many2one('res.partner', string='Customer') @api.onchange('name') def onchange_name(self): @@ -98,6 +99,8 @@ class DeliveryOrderLine(models.TransientModel): self.tracking_no = picking.delivery_tracking_no + self.partner_id = picking.partner_id + delivery_type = self.get_delivery_type(picking.driver_departure_date, picking.driver_arrival_date) if delivery_type != 'departure': self.departure_date = picking.driver_departure_date.astimezone(timezone('Asia/Jakarta')).strftime('%Y-%m-%d %H:%M:%S') diff --git a/indoteknik_custom/views/delivery_order.xml b/indoteknik_custom/views/delivery_order.xml index 29ca7365..c1dd8a71 100644 --- a/indoteknik_custom/views/delivery_order.xml +++ b/indoteknik_custom/views/delivery_order.xml @@ -21,6 +21,7 @@ + -- cgit v1.2.3 From b555a10fe638f644fbb001f3557c6ae04b6d00c9 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 16:08:45 +0700 Subject: add readonly in customer delivery order --- indoteknik_custom/views/delivery_order.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/views/delivery_order.xml b/indoteknik_custom/views/delivery_order.xml index c1dd8a71..0b2fd576 100644 --- a/indoteknik_custom/views/delivery_order.xml +++ b/indoteknik_custom/views/delivery_order.xml @@ -21,7 +21,7 @@ - + -- cgit v1.2.3 From 43ac0072bbf65bc7feb882bc3da8bbaefed5a6fe Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Wed, 28 Jun 2023 17:12:22 +0700 Subject: add sum purchase total --- indoteknik_custom/models/sale_order.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 5f37e3b2..7741aab7 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -78,6 +78,14 @@ class SaleOrder(models.Model): delivery_service_type = fields.Char(string='Delivery Service Type', help='data dari rajaongkir') 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') + purchase_total = fields.Char(string='Purchase Total', compute='_compute_purchase_total') + + def _compute_purchase_total(self): + for order in self: + total = 0 + for line in order.order_line: + total += line.vendor_subtotal + order.purchase_total = total def generate_payment_link_midtrans_sales_order(self): # midtrans_url = 'https://app.sandbox.midtrans.com/snap/v1/transactions' # dev - sandbox -- cgit v1.2.3 From 08bab33de9381b9a6d7ed53bb64976d52f0d7ecc Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 30 Jun 2023 10:24:17 +0700 Subject: change type of purchase total in sale order --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 7741aab7..9407db30 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -78,7 +78,7 @@ class SaleOrder(models.Model): delivery_service_type = fields.Char(string='Delivery Service Type', help='data dari rajaongkir') 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') - purchase_total = fields.Char(string='Purchase Total', compute='_compute_purchase_total') + purchase_total = fields.Monetary(string='Purchase Total', compute='_compute_purchase_total') def _compute_purchase_total(self): for order in self: -- cgit v1.2.3 From 96012a58c6115809801588ac97553bb00de60601 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 30 Jun 2023 13:40:36 +0700 Subject: Add user activity log api --- indoteknik_api/controllers/api_v1/__init__.py | 1 + indoteknik_api/controllers/api_v1/activity.py | 18 ++++++++++++++++++ indoteknik_api/controllers/controller.py | 1 - 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 indoteknik_api/controllers/api_v1/activity.py diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py index d05cdf3a..2afefb34 100644 --- a/indoteknik_api/controllers/api_v1/__init__.py +++ b/indoteknik_api/controllers/api_v1/__init__.py @@ -1,3 +1,4 @@ +from . import activity from . import banner from . import blog from . import cart diff --git a/indoteknik_api/controllers/api_v1/activity.py b/indoteknik_api/controllers/api_v1/activity.py new file mode 100644 index 00000000..dfc0951c --- /dev/null +++ b/indoteknik_api/controllers/api_v1/activity.py @@ -0,0 +1,18 @@ +from .. import controller +from odoo import http +from odoo.http import request + + +class Activity(controller.Controller): + @http.route('/api/v1/activity', auth='public', csrf=False, methods=['POST', 'OPTIONS']) + @controller.Controller.must_authorized() + def create_user_activity(self, **kw): + user_data = self.verify_user_token() + user_id = user_data['user_id'] if user_data else False + request.env['user.activity.log'].create({ + 'page_title': kw.get('page_title', ''), + 'url': kw.get('url', ''), + 'res_user_id': user_id, + 'ip_address': kw.get('url', '') + }) + return self.response(True) \ No newline at end of file diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py index 90bc50ed..826f45b4 100644 --- a/indoteknik_api/controllers/controller.py +++ b/indoteknik_api/controllers/controller.py @@ -108,7 +108,6 @@ class Controller(http.Controller): return time def response(self, data=[], code=200, description='OK', headers=[]): - request.env['user.activity.log'].record_activity() response = { 'status': { 'code': code, -- cgit v1.2.3 From 9d9bed911f56afb8b8bd3eba6fdd2f26a6183613 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 30 Jun 2023 14:55:04 +0700 Subject: Fix create user activity api --- indoteknik_api/controllers/api_v1/activity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/activity.py b/indoteknik_api/controllers/api_v1/activity.py index dfc0951c..142db845 100644 --- a/indoteknik_api/controllers/api_v1/activity.py +++ b/indoteknik_api/controllers/api_v1/activity.py @@ -13,6 +13,6 @@ class Activity(controller.Controller): 'page_title': kw.get('page_title', ''), 'url': kw.get('url', ''), 'res_user_id': user_id, - 'ip_address': kw.get('url', '') + 'ip_address': kw.get('ip_address', '') }) return self.response(True) \ No newline at end of file -- cgit v1.2.3 From a0426045e10729442f7483a9b8ddf825d0e44f62 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 30 Jun 2023 16:18:04 +0700 Subject: Add get ip address function --- indoteknik_api/controllers/controller.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py index 826f45b4..0846ccb0 100644 --- a/indoteknik_api/controllers/controller.py +++ b/indoteknik_api/controllers/controller.py @@ -168,6 +168,12 @@ class Controller(http.Controller): def get_api_token(self, **kw): return self.response(request.env['ir.config_parameter'].sudo().get_param('rest_api_token') or '') + @http.route('/api/ip-address', auth='public', methods=['GET']) + def get_ip_address(self): + address = request.httprequest.remote_addr + address = address if address != '127.0.0.1' else False + return self.response(address) + @http.route('/api/image///', auth='public', methods=['GET']) def get_image(self, model, field, id): model = request.env[model].sudo().search([('id', '=', id)], limit=1) -- cgit v1.2.3 From c21a4e6d2341152b9e4f96c2ecc4a791352f63b0 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 30 Jun 2023 16:20:01 +0700 Subject: Add options method on get ip address API --- indoteknik_api/controllers/controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/controller.py b/indoteknik_api/controllers/controller.py index 0846ccb0..0fcf4814 100644 --- a/indoteknik_api/controllers/controller.py +++ b/indoteknik_api/controllers/controller.py @@ -168,7 +168,7 @@ class Controller(http.Controller): def get_api_token(self, **kw): return self.response(request.env['ir.config_parameter'].sudo().get_param('rest_api_token') or '') - @http.route('/api/ip-address', auth='public', methods=['GET']) + @http.route('/api/ip-address', auth='public', methods=['GET', 'OPTIONS']) def get_ip_address(self): address = request.httprequest.remote_addr address = address if address != '127.0.0.1' else False -- cgit v1.2.3 From 1c472d84a45ba1b6fbed64562f0d6c410b7c306a Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Sat, 1 Jul 2023 09:55:36 +0700 Subject: Add update customer ref on upload po API --- indoteknik_api/controllers/api_v1/sale_order.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 671ff5a8..c1665b72 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -153,6 +153,7 @@ class SaleOrder(controller.Controller): sale_order = request.env['sale.order'].search(domain) if sale_order: sale_order.partner_purchase_order_name = params['value']['name'] + sale_order.client_order_ref = params['value']['name'] sale_order.partner_purchase_order_file = params['value']['file'] data = sale_order.id return self.response(data) -- cgit v1.2.3