summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_api/controllers/api_v1/blog.py4
-rw-r--r--indoteknik_api/controllers/api_v1/manufacture.py2
-rw-r--r--indoteknik_api/controllers/api_v1/product.py8
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py6
-rw-r--r--indoteknik_api/models/account_move.py5
-rw-r--r--indoteknik_api/models/product_product.py5
-rw-r--r--indoteknik_api/models/sale_order.py6
-rwxr-xr-xindoteknik_custom/__init__.py3
-rw-r--r--indoteknik_custom/controllers/__init__.py1
-rw-r--r--indoteknik_custom/controllers/website.py36
-rw-r--r--indoteknik_custom/views/account_move.xml2
11 files changed, 67 insertions, 11 deletions
diff --git a/indoteknik_api/controllers/api_v1/blog.py b/indoteknik_api/controllers/api_v1/blog.py
index 5f4f728e..fcca2f32 100644
--- a/indoteknik_api/controllers/api_v1/blog.py
+++ b/indoteknik_api/controllers/api_v1/blog.py
@@ -6,7 +6,7 @@ from odoo.http import request
class Blog(controller.Controller):
prefix = '/api/v1/'
- @http.route(prefix + 'blog', auth='public', methods=['GET'])
+ @http.route(prefix + 'blog', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
def get_blog(self, **kw):
limit = int(kw.get('limit', 0))
@@ -24,7 +24,7 @@ class Blog(controller.Controller):
}
return self.response(data)
- @http.route(prefix + 'blog/<id>', auth='public', methods=['GET'])
+ @http.route(prefix + 'blog/<id>', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
def get_blog_by_id(self, **kw):
id = kw.get('id')
diff --git a/indoteknik_api/controllers/api_v1/manufacture.py b/indoteknik_api/controllers/api_v1/manufacture.py
index e49872be..345fd660 100644
--- a/indoteknik_api/controllers/api_v1/manufacture.py
+++ b/indoteknik_api/controllers/api_v1/manufacture.py
@@ -32,7 +32,7 @@ class Manufacture(controller.Controller):
'manufactures': [request.env['x_manufactures'].api_single_response(x) for x in manufactures]
}
- return self.response(data)
+ return self.response(data, headers=[('Cache-Control', 'max-age=3600, public')])
@http.route(prefix + 'manufacture/<id>', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
diff --git a/indoteknik_api/controllers/api_v1/product.py b/indoteknik_api/controllers/api_v1/product.py
index 6789a8f5..736fd68e 100644
--- a/indoteknik_api/controllers/api_v1/product.py
+++ b/indoteknik_api/controllers/api_v1/product.py
@@ -12,7 +12,7 @@ _logger = logging.getLogger(__name__)
class Product(controller.Controller):
prefix = '/api/v1/'
- @http.route(prefix + 'product/template/price/<id>', auth='public', methods=['GET'])
+ @http.route(prefix + 'product/template/price/<id>', auth='public', methods=['GET', 'OPTIONS'])
def get_product_template_price_by_id(self, **kw):
if not self.authenticate():
return self.response(code=401, description='Unauthorized')
@@ -48,9 +48,9 @@ class Product(controller.Controller):
}
data.update(start_from)
- return self.response(data)
+ return self.response(data, headers=[('Cache-Control', 'max-age=180, private')])
- @http.route(prefix + 'product/product/price/<id>', auth='public', methods=['GET'])
+ @http.route(prefix + 'product/product/price/<id>', auth='public', methods=['GET', 'OPTIONS'])
def get_product_product_price_by_id(self, **kw):
if not self.authenticate():
return self.response(code=401, description='Unauthorized')
@@ -67,7 +67,7 @@ class Product(controller.Controller):
'tax': product_product._get_website_tax()
}
- return self.response(data)
+ return self.response(data, headers=[('Cache-Control', 'max-age=180, private')])
@http.route(prefix + 'new_product', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized()
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index 34583c37..76fbfddb 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -253,14 +253,14 @@ class SaleOrder(controller.Controller):
order_line = json.loads(params['value']['order_line'])
parameters = []
for line in order_line:
- price = request.env['product.pricelist'].compute_price(product_pricelist_default_discount_id, line['product_id'])
+ product = request.env['product.product'].search([('id', '=', line['product_id'])], limit=1)
parameters.append({
'company_id': 1,
'order_id': sale_order.id,
'product_id': line['product_id'],
'product_uom_qty': line['quantity'],
- 'price_subtotal': price['price'],
- 'discount': price['discount_percentage']
+ 'price_subtotal': product._get_website_price_exclude_tax(),
+ 'discount': product._get_website_disc(0)
})
request.env['sale.order.line'].create(parameters)
return self.response({
diff --git a/indoteknik_api/models/account_move.py b/indoteknik_api/models/account_move.py
index 9bbe8c94..54e06f84 100644
--- a/indoteknik_api/models/account_move.py
+++ b/indoteknik_api/models/account_move.py
@@ -37,6 +37,11 @@ class AccountMove(models.Model):
}
for line in account_move.invoice_line_ids:
product = self.env['product.product'].api_single_response(line.product_id)
+ product['price'] = {
+ 'price': line.price_unit,
+ 'discount_percentage': line.discount,
+ 'price_discount': line.price_unit - (line.price_unit * (line.discount/100))
+ }
product['quantity'] = line.quantity
data_with_detail['products'].append(product)
data.update(data_with_detail)
diff --git a/indoteknik_api/models/product_product.py b/indoteknik_api/models/product_product.py
index f83ede27..284900de 100644
--- a/indoteknik_api/models/product_product.py
+++ b/indoteknik_api/models/product_product.py
@@ -19,6 +19,11 @@ class ProductProduct(models.Model):
'code': product_product.default_code or '',
'name': product_product.display_name,
'price': self.env['product.pricelist'].compute_price(product_pricelist_default_discount_id, product_product.id),
+ 'price': {
+ 'price': product_product._get_website_price_exclude_tax(),
+ 'discount_percentage': product_product._get_website_disc(0),
+ 'price_discount': product_product._get_website_price_after_disc_and_tax()
+ },
'stock': product_product.qty_stock_vendor,
'weight': product_product.weight,
'attributes': [x.name for x in product_product.product_template_attribute_value_ids],
diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py
index ca6baff0..76532d20 100644
--- a/indoteknik_api/models/sale_order.py
+++ b/indoteknik_api/models/sale_order.py
@@ -10,6 +10,7 @@ class SaleOrder(models.Model):
'id': sale_order.id,
'name': sale_order.name,
'sales': sale_order.user_id.name,
+ 'amount_tax': sale_order.amount_tax,
'amount_total': sale_order.amount_total,
'purchase_order_name': sale_order.partner_purchase_order_name,
'purchase_order_file': True if sale_order.partner_purchase_order_file else False,
@@ -56,6 +57,11 @@ class SaleOrder(models.Model):
}
for line in sale_order.order_line:
product = self.env['product.product'].api_single_response(line.product_id)
+ product['price'] = {
+ 'price': line.price_unit,
+ 'discount_percentage': line.discount,
+ 'price_discount': line.price_unit - (line.price_unit * (line.discount/100))
+ }
product['quantity'] = line.product_uom_qty
data_with_detail['products'].append(product)
for invoice in sale_order.invoice_ids:
diff --git a/indoteknik_custom/__init__.py b/indoteknik_custom/__init__.py
index 0650744f..19240f4e 100755
--- a/indoteknik_custom/__init__.py
+++ b/indoteknik_custom/__init__.py
@@ -1 +1,2 @@
-from . import models
+from . import controllers
+from . import models \ No newline at end of file
diff --git a/indoteknik_custom/controllers/__init__.py b/indoteknik_custom/controllers/__init__.py
new file mode 100644
index 00000000..02ab5287
--- /dev/null
+++ b/indoteknik_custom/controllers/__init__.py
@@ -0,0 +1 @@
+from . import website \ No newline at end of file
diff --git a/indoteknik_custom/controllers/website.py b/indoteknik_custom/controllers/website.py
new file mode 100644
index 00000000..2e3df519
--- /dev/null
+++ b/indoteknik_custom/controllers/website.py
@@ -0,0 +1,36 @@
+from odoo.http import request, Controller
+from odoo import http, _
+
+class Website(Controller):
+ @http.route('/content', auth='public')
+ def content(self, **kw):
+ url = kw.get('url', '')
+ iframe = f"<iframe src='{url}' onload='hideHeader(this)' ></iframe>"
+ style = '''
+ <style>
+ iframe {
+ border: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ }
+ </style>
+ '''
+ script = '''
+ <script>
+ const hideHeader = (iframe) => {
+ var header = iframe.contentWindow.document.querySelector('header');
+ if (header) {
+ header.style.display = 'none';
+ }
+ var footer = iframe.contentWindow.document.querySelector('footer');
+ if (footer) {
+ footer.style.display = 'none';
+ }
+ }
+ </script>
+ '''
+ content = '<!DOCTYPE html><html>' + '<body>' + iframe + style + script + '</body>' + '</html>'
+ return request.make_response(content, [('Access-Control-Allow-Origin', '*'), ('Access-Control-Allow-Headers', '*')]) \ No newline at end of file
diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml
index 4c99692d..9faf3149 100644
--- a/indoteknik_custom/views/account_move.xml
+++ b/indoteknik_custom/views/account_move.xml
@@ -34,6 +34,8 @@
<field name="payment_state" position="after">
<field name="invoice_payment_term_id"/>
<field name="date_kirim_tukar_faktur"/>
+ <field name="shipper_faktur_id" optional="1"/>
+ <field name="resi_tukar_faktur" optional="1"/>
<field name="date_terima_tukar_faktur"/>
</field>
</field>