summaryrefslogtreecommitdiff
path: root/indoteknik_api/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-13 10:41:41 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-13 10:41:41 +0700
commitcfa0aa5c242b14332f7bc970bb65f1fbde0a9f3b (patch)
tree91f855964cadb0c76094cd2cc6b51f7994ce0c6d /indoteknik_api/models
parentfb04f8f3c533740c79c130ab4bc097b8529cae8e (diff)
parent7478616937cff56ccb994138831f90eae904e724 (diff)
fix conflict
Diffstat (limited to 'indoteknik_api/models')
-rw-r--r--indoteknik_api/models/account_move.py4
-rw-r--r--indoteknik_api/models/rest_api.py32
-rw-r--r--indoteknik_api/models/sale_order.py2
3 files changed, 35 insertions, 3 deletions
diff --git a/indoteknik_api/models/account_move.py b/indoteknik_api/models/account_move.py
index f77ded16..5c31f010 100644
--- a/indoteknik_api/models/account_move.py
+++ b/indoteknik_api/models/account_move.py
@@ -1,6 +1,5 @@
import datetime
from odoo import models
-import hashlib
class AccountMove(models.Model):
@@ -8,6 +7,7 @@ class AccountMove(models.Model):
def api_v1_single_response(self, account_move, context=False):
data = {
+ 'token': self.env['rest.api'].md5_salt(account_move.id, 'account.move'),
'id': account_move.id,
'name': account_move.name,
'purchase_order_name': account_move.ref or '',
@@ -16,7 +16,7 @@ class AccountMove(models.Model):
'amount_total': account_move.amount_total,
'amount_residual': account_move.amount_residual,
'invoice_date': '',
- 'efaktur_token': self.env['rest.api'].md5_salt(account_move.id, 'account.move') if account_move.efaktur_document else '',
+ 'efaktur': True if account_move.efaktur_document else False,
}
if isinstance(object, datetime.date):
data['invoice_date'] = account_move.invoice_date.strftime('%d/%m/%Y')
diff --git a/indoteknik_api/models/rest_api.py b/indoteknik_api/models/rest_api.py
index 052800b7..65119b52 100644
--- a/indoteknik_api/models/rest_api.py
+++ b/indoteknik_api/models/rest_api.py
@@ -1,7 +1,9 @@
from odoo import models
+from odoo.http import request
import datetime
from pytz import timezone
import hashlib
+import base64
class RestApi(models.TransientModel):
@@ -14,4 +16,32 @@ class RestApi(models.TransientModel):
return time
def md5_salt(self, value, salt):
- return hashlib.md5((salt + '$' + str(value)).encode()).hexdigest() \ No newline at end of file
+ return hashlib.md5((salt + '$' + str(value)).encode()).hexdigest()
+
+ def md5_salt_valid(self, value, salt, token):
+ return hashlib.md5((salt + '$' + str(value)).encode()).hexdigest() == token
+
+ def get_single_attachment(self, model, field, id):
+ domain = [
+ ('res_model', '=', model),
+ ('res_field', '=', field),
+ ('res_id', '=', id),
+ ]
+ fields = ['datas', 'mimetype']
+ result = self.env['ir.attachment'].sudo().search_read(domain, fields)
+ return result[0] if len(result) > 0 else None
+
+ def response_attachment(self, data = {}):
+ decode_content = data.get('decode_content', False)
+ if decode_content:
+ data['content'] = base64.b64decode(data['content'])
+
+ return request.make_response(
+ data['content'],
+ [
+ ('Content-Type', data['mimetype']),
+ ('Content-Disposition', 'attachment; filename=%s' % data['filename']),
+ ('Content-Length', len(data['content']))
+ ]
+ )
+ \ No newline at end of file
diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py
index afaf6ae6..7ce8ff61 100644
--- a/indoteknik_api/models/sale_order.py
+++ b/indoteknik_api/models/sale_order.py
@@ -6,11 +6,13 @@ class SaleOrder(models.Model):
def api_v1_single_response(self, sale_order, context=False):
data = {
+ 'token': self.env['rest.api'].md5_salt(sale_order.id, 'sale.order'),
'id': sale_order.id,
'name': sale_order.name,
'sales': sale_order.user_id.name,
'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,
'invoice_count': sale_order.invoice_count,
'status': 'draft',
}