diff --git a/odex25_benefit/takaful_core/TaqnyatSms.py b/odex25_benefit/takaful_core/TaqnyatSms.py new file mode 100644 index 000000000..ac25f9224 --- /dev/null +++ b/odex25_benefit/takaful_core/TaqnyatSms.py @@ -0,0 +1,161 @@ +import http +import json +import re + +class client: + auth = '' + base = 'api.taqnyat.sa' + result='' + method='' + json ={} + error ='' + + def __init__(self, auth): + self.auth = auth + def checkUserInfo(self): + if self.auth: + self.json.update({'auth' : self.auth}) + else: + self.error = 'Add Authentication' + return self.error + def sendMsg(self,body, recipients, sender , scheduled ): + self.checkUserInfo() + #getSendMethod + + if not self.error: + data = { + 'recipients': recipients, + 'sender': sender, + 'body': body, + 'scheduled': scheduled, + } + self.json.update(data) + self.json = json.dumps(self.json) + + conn = http.client.HTTPSConnection(self.base) + headers = { + 'Authorization': 'Bearer ' + self.auth, + 'Content-Type': 'application/json' + } + + + conn.request("POST", "/v1/messages", self.json, headers) + res = conn.getresponse() + data = res.read() + return data.decode("utf-8") + + else: + return self.error + def sendStatus(self ): + self.checkUserInfo() + #getSendMethod + + if not self.error: + data = { + } + self.json.update(data) + self.json = json.dumps(self.json) + + conn = http.client.HTTPSConnection(self.base) + headers = { + 'Authorization': 'Bearer ' + self.auth, + 'Content-Type': 'application/json' + } + + + conn.request("GET", "/system/status", self.json, headers) + res = conn.getresponse() + data = res.read() + return data.decode("utf-8") + + else: + return self.error + def balance(self ): + self.checkUserInfo() + #getSendMethod + + if not self.error: + data = { + } + self.json.update(data) + self.json = json.dumps(self.json) + + conn = http.client.HTTPSConnection(self.base) + headers = { + 'Authorization': 'Bearer ' + self.auth, + 'Content-Type': 'application/json' + } + + + conn.request("GET", "/account/balance", self.json, headers) + res = conn.getresponse() + data = res.read() + return data.decode("utf-8") + + else: + return self.error + def senders(self ): + self.checkUserInfo() + #getSendMethod + + if not self.error: + data = { + } + self.json.update(data) + self.json = json.dumps(self.json) + + conn = http.client.HTTPSConnection(self.base) + headers = { + 'Authorization': 'Bearer ' + self.auth, + 'Content-Type': 'application/json' + } + + + conn.request("GET", "/v1/messages/senders", self.json, headers) + res = conn.getresponse() + data = res.read() + return data.decode("utf-8") + + else: + return self.error + def deleteMsg(self , deleteKey ): + self.checkUserInfo() + #getSendMethod + + if not self.error: + data = { + } + self.json.update(data) + self.json = json.dumps(self.json) + + conn = http.client.HTTPSConnection(self.base) + headers = { + 'Authorization': 'Bearer ' + self.auth, + 'Content-Type': 'application/json' + } + + + conn.request("DELETE", "/v1/messages", self.json, headers) + res = conn.getresponse() + data = res.read() + return data.decode("utf-8") + + else: + return self.error + + +def make_http_response(message): + try: + response = re.sub('(message)\s', '', message) + response = json.loads(response) + except Exception as e: + return {} + + dict_response = { + "statusCode": response.get('statusCode', False), + "message": response.get('message', ''), + "totalCount": response.get('totalCount', 0), + "accepted": response.get('accepted', []), + "rejected": response.get('rejected', []), + } + return dict_response \ No newline at end of file diff --git a/odex25_benefit/takaful_core/__init__.py b/odex25_benefit/takaful_core/__init__.py new file mode 100644 index 000000000..9a7e03ede --- /dev/null +++ b/odex25_benefit/takaful_core/__init__.py @@ -0,0 +1 @@ +from . import models \ No newline at end of file diff --git a/odex25_benefit/takaful_core/__manifest__.py b/odex25_benefit/takaful_core/__manifest__.py new file mode 100644 index 000000000..43abb402f --- /dev/null +++ b/odex25_benefit/takaful_core/__manifest__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- + +{ + 'name': 'Odex Takaful Core Management', + 'version': '1', + 'license': 'GPL-3', + 'category': 'Odex25-Takaful/Odex25-Takaful', + 'summary': 'Takaful Management', + 'description': """ + Takaful Mangement + """, + 'author': 'Expert co.Ltd', + 'website': 'exp-sa.com', + 'depends': ['mail', 'base', 'account'], + 'data': [ + # 'security/ir.model.access.csv', + 'data/server_action.xml', + 'views/res_city_view.xml', + 'views/config_view.xml', + 'views/bank_transfer_payment_view.xml', + 'views/takaful_account_move_view.xml', + 'views/res_partner_title_views.xml', + 'views/menus_and_actions.xml', + ], + # 'installable': True, + # 'application': True, +} \ No newline at end of file diff --git a/odex25_benefit/takaful_core/data/server_action.xml b/odex25_benefit/takaful_core/data/server_action.xml new file mode 100644 index 000000000..85b264a1a --- /dev/null +++ b/odex25_benefit/takaful_core/data/server_action.xml @@ -0,0 +1,15 @@ + + + + + + Migrate Account Type to Booleans + + code + +env['res.partner'].migrate_account_type_to_booleans() + + + + + \ No newline at end of file diff --git a/odex25_benefit/takaful_core/i18n/ar_001.po b/odex25_benefit/takaful_core/i18n/ar_001.po new file mode 100644 index 000000000..7d4c4b022 --- /dev/null +++ b/odex25_benefit/takaful_core/i18n/ar_001.po @@ -0,0 +1,1043 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * takaful_core +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-17 00:25+0000\n" +"PO-Revision-Date: 2024-10-17 00:25+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Accept" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_bank_transfer_payment__state__accept +msgid "Accepted" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__account_type +#: model:ir.model.fields,field_description:takaful_core.field_res_users__account_type +#: model_terms:ir.ui.view,arch_db:takaful_core.res_partner_data +msgid "Account Type" +msgstr "نوع الحساب" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__activation_mode +#: model:ir.model.fields,field_description:takaful_core.field_res_users__activation_mode +msgid "Activation Mode" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__age +#: model:ir.model.fields,field_description:takaful_core.field_res_users__age +msgid "Age" +msgstr "العمر" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__amount +msgid "Amount" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__amount +msgid "Amount With Vat" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__amount_without_vat +msgid "Amount Without Vat" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__transfer_attachment +msgid "Attachment" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__attachment_ids +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__attachment_ids +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__attachment_ids +msgid "Attachments" +msgstr "المرفقات" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__bank_id +#: model:ir.model.fields,field_description:takaful_core.field_res_users__bank_id +msgid "Bank" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_partner_bank +#: model:ir.model.fields,field_description:takaful_core.field_res_company__bank_account_count +msgid "Bank Accounts" +msgstr "الحسابات البنكية" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.bank_account_image_add_view +msgid "Bank Image" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_account_setup_bank_manual_config__bank_img +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_bank__bank_img +msgid "Bank Img" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__type__transfer +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_tree +#, python-format +msgid "Bank Transfer" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#, python-format +msgid "Bank Transfer State %s" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__account_type__benefit +msgid "Benefit" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_country_city +msgid "Benefits - City" +msgstr "المدينة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__birth_date +#: model:ir.model.fields,field_description:takaful_core.field_res_users__birth_date +msgid "Birth Date" +msgstr "تاريخ الميلاد" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Cancel" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_bank_transfer_payment__state__cancel +msgid "Canceled" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Cannot sending SMS verification %s " +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Cannot sending email verification" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__company_type__charity +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__user_type__charity +#, python-format +msgid "Charity" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_res_city_tree +msgid "Cities" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__city_id +#: model:ir.model.fields,field_description:takaful_core.field_res_users__city_id +#: model_terms:ir.ui.view,arch_db:takaful_core.view_res_city_form +msgid "City" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__code +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__code +#: model:ir.model.fields,field_description:takaful_core.field_res_users__code +msgid "Code" +msgstr "الكود" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__note +msgid "Comment" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__user_type__company +msgid "Company" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__company_name +msgid "Company Name" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__company_type +#: model:ir.model.fields,field_description:takaful_core.field_res_users__company_type +msgid "Company Type" +msgstr "نوع المؤسسة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__country_id +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__country_id +#: model:ir.model.fields,field_description:takaful_core.field_res_users__country_id +msgid "Country" +msgstr "الدولة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__create_uid +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__create_uid +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__create_uid +msgid "Created by" +msgstr "انشئ بواسطة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__create_date +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__create_date +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__create_date +msgid "Created on" +msgstr "تاريخ الانشاء" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__type__card +#, python-format +msgid "Credit Card" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__partner_id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__partner_id +msgid "Customer" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__email +msgid "Customer Email" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__name_of +msgid "Customer Name" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__date +msgid "Date" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#, python-format +msgid "" +"Dear %s,
Your bank transfer has been changed accepted. Please check " +"your balance" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#, python-format +msgid "" +"Dear %s,
Your bank transfer has been changed to canceled. Please " +"check with your bank" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:0 +#, python-format +msgid "Dear %s,

Your bank transfer has been rejected." +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "" +"Dear Customer,\n" +" %s is your one time password (OTP). Please enter the OTP to proceed.\n" +" Thank you,\n" +" Team Takaful" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Default Vat Value" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__display_name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__display_name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__display_name +msgid "Display Name" +msgstr "الاسم" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Divorced" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_bank_transfer_payment__state__draft +msgid "Draft" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__education_institution +#: model:ir.model.fields,field_description:takaful_core.field_res_users__education_institution +msgid "Education Institution" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__education_level +#: model:ir.model.fields,field_description:takaful_core.field_res_users__education_level +msgid "Educational level" +msgstr "المرحلة التعليمية" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__activation_mode__email +msgid "Email" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Email verification is successfully sent" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Enter a valid Saudi mobile number" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Exceeded the limit, please request after the clock %s" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__state__failed +#, python-format +msgid "Failed" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__account_type__family +msgid "Family" +msgstr "الأسرة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__family_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__family_name +msgid "Family Name" +msgstr "اسم العائلة\n" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__father_family_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__father_family_name +msgid "Father Family Name" +msgstr "اسم عائلة الأب" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__father_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__father_name +msgid "Father First Name" +msgstr "الاسم الأول" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__father_second_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__father_second_name +msgid "Father Second Name" +msgstr "الاسم الثاني" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__father_third_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__father_third_name +msgid "Father Third Name" +msgstr "الاسم الثالث" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__gender__female +msgid "Female" +msgstr "أنثى" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__filename +msgid "Filename" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__financial_donation +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__financial_donation +msgid "Financial Donation" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__financial_gift +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__financial_gift +msgid "Financial Gift" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__first_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__first_name +msgid "First Name" +msgstr "الاسم الاول" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__gender +msgid "Gender" +msgstr "الجنس" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__health_status +#: model:ir.model.fields,field_description:takaful_core.field_res_users__health_status +msgid "Health Status" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__health_status__healthy +msgid "Healthy" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__iban +#: model:ir.model.fields,field_description:takaful_core.field_res_users__iban +msgid "IBAN" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__id +msgid "ID" +msgstr "المُعرف" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__id_expiry +#: model:ir.model.fields,field_description:takaful_core.field_res_users__id_expiry +msgid "Id Expiry Date" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__id_number_attach +#: model:ir.model.fields,field_description:takaful_core.field_res_users__id_number_attach +msgid "Id Number Attachment" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__id_number +#: model:ir.model.fields,field_description:takaful_core.field_res_users__id_number +msgid "Identity NO" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__illiterate +msgid "Illiterate" +msgstr "محو الأمية" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__in_kind_donation +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__in_kind_donation +msgid "In-Kind Donation" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__state__initiated +#, python-format +msgid "Initiated" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Invalid OTP, Reset Password Failed" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Invalid OTP, Verification Failed" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Invalid Saudi mobile number" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__move_id +msgid "Invoice" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.takaful_account_move_form +msgid "Invoice Number" +msgstr "" + +#. module: takaful_core +#: model:ir.ui.menu,name:takaful_core.takaful_account_move_menu +#: model_terms:ir.ui.view,arch_db:takaful_core.takaful_account_move_tree_viewx +msgid "Invoices" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_account_move +msgid "Journal Entry" +msgstr "قيد اليومية" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__kindergarten +msgid "Kindergarten" +msgstr "روضة أطفال" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city____last_update +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move____last_update +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment____last_update +msgid "Last Modified on" +msgstr "آخر تعديل في" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__write_uid +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__write_uid +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__write_date +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__write_date +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__gender__male +msgid "Male" +msgstr "ذكر" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Marital Status" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Married" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__middle +msgid "Middle" +msgstr "المتوسطة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Missing Password Values or OTP" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Missing mobile number" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Moyaser Integration" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__moyaser_public_key +msgid "Moyaser Public Key" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Moyaser Publicy Key" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__name +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__name +msgid "Name" +msgstr "الاسم" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__name_of +msgid "Name Of" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__need_contribution +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__need_contribution +msgid "Needs Contribution" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__number +msgid "Number" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users__otp +msgid "OTP" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users__otp_date +msgid "OTP Date" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "OTP Information" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__otp_provider_token +msgid "OTP Provider Token" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users__otp_count +msgid "OTP Request Count" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users__otp_password +msgid "OTP Reset Password" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__otp_sender_name +msgid "OTP Sender Name" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "OTP code is successfully sent" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "OTP does not exist or expired, please request it again" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_account_bank_statement_line__operation_id +#: model:ir.model.fields,field_description:takaful_core.field_account_move__operation_id +#: model:ir.model.fields,field_description:takaful_core.field_account_payment__operation_id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__operation_id +msgid "Operation" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_account_bank_statement_line__operation_type +#: model:ir.model.fields,field_description:takaful_core.field_account_move__operation_type +#: model:ir.model.fields,field_description:takaful_core.field_account_payment__operation_type +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__operation_type +msgid "Operation Type" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__name +msgid "Order Name" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__remote_id +msgid "Order Number" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#, python-format +msgid "Paid" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Password is successfully reset" +msgstr "" + +#. module: takaful_core +#: model:ir.actions.act_window,name:takaful_core.takaful_account_move_list_action +msgid "Paycards Account Moves" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_bank_transfer_payment__state__pending +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Pending" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__user_type__person +msgid "Person" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__postgraduate +msgid "Postgraduate" +msgstr "دراسات عليا" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__primary +msgid "Primary" +msgstr "الابتدائية" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Publicy Key" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__qty_ordered +msgid "Qty Ordered" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Reject" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:0 +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__state__rejected +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_bank_transfer_payment__state__reject +#, python-format +msgid "Rejected" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_partner +msgid "Renter" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_company +msgid "Res Company SMS Configuration" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__activation_mode__sms +msgid "SMS" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "SMS Information" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__sms_provider_token +msgid "SMS Provider Token" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__sms_sender_name +msgid "SMS Sender Name" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "SMS service is unavilable" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__second_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__second_name +msgid "Second Name" +msgstr "الاسم الثاني" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__secondary +msgid "Secondary" +msgstr "الثانوية" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Sender information does not exist" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Set Draft" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__health_status__sick +msgid "Sick" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Single" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__sponsorship +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__sponsorship +msgid "Sponsorship" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__state_id +#: model:ir.model.fields,field_description:takaful_core.field_res_users__state_id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__state +msgid "State" +msgstr "الحالة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__state +msgid "Status" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__account_move__operation_type__subscription +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__operation_type__subscription +msgid "Subscription" +msgstr "" + +#. module: takaful_core +#: model:ir.ui.menu,name:takaful_core.takaful_online_paycard_menu +msgid "Takaful Online Payments" +msgstr "" + +#. module: takaful_core +#: model:ir.model.constraint,message:takaful_core.constraint_res_partner_mobile_uniq +msgid "The Mobile Already Exist!" +msgstr "رقم الجوال موجود بالفعل!" + +#. module: takaful_core +#: model:ir.model.constraint,message:takaful_core.constraint_res_partner_phone_uniq +msgid "The Phone Already Exist!" +msgstr "رقم الجوال موجود بالفعل!" + +#. module: takaful_core +#: model:ir.model.constraint,message:takaful_core.constraint_res_partner_user_id_uniq +msgid "The User Already Exist!" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "The entered password does not match" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__middle_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users__middle_name +msgid "Third Name" +msgstr "الاسم الثالث" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__transfer_id +msgid "Transfer" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment__transfer_date +msgid "Transfer Date" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__type +msgid "Type" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__education_level__university +msgid "University" +msgstr "الجامعية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__use_otp_login +msgid "Use Otp Login" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__use_sms_notification +msgid "Use SMS Notifications" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__user_type +#: model:ir.model.fields,field_description:takaful_core.field_res_users__user_type +msgid "User Type" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_users +msgid "Users" +msgstr "المستخدمون" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move__tax_amount +msgid "Vat" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company__vat_default_percent +msgid "Vat Percent" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:0 +#, python-format +msgid "Verification is successful" +msgstr "" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:0 +#, python-format +msgid "Widower" +msgstr "" + +#. module: takaful_core +#: model_terms:ir.ui.view,arch_db:takaful_core.takaful_account_move_form +msgid "server" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__account_type__sponsor +msgid "sponsor" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_takaful_account_move +msgid "takaful.account.move" +msgstr "" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_takaful_bank_transfer_payment +msgid "takaful.bank.transfer.payment" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__marital_status__widower +msgid "ارملة" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__marital_status__single +msgid "اعزب" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__marital_status +#: model:ir.model.fields,field_description:takaful_core.field_res_users__marital_status +msgid "الحالة الاجتماعية" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__marital_status__married +msgid "متزوجة" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__takaful_account_move__state__paid +msgid "مدفوع" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner__marital_status__divorced +msgid "مطلقة" +msgstr "" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city__state_id +msgid "State" +msgstr "المحافظة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__is_family +#: model:ir.model.fields,field_description:takaful_core.field_res_users__is_family +msgid "Is Family" +msgstr "عائلة؟" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__is_sponsor_portal +#: model:ir.model.fields,field_description:takaful_core.field_res_users__is_sponsor +msgid "Is Sponsor" +msgstr "كافل؟" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__is_benefit +#: model:ir.model.fields,field_description:takaful_core.field_res_users__is_benefit +msgid "Is Benefit" +msgstr "مستفيد؟" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__is_vendor +#: model:ir.model.fields,field_description:takaful_core.field_res_users__is_vendor +msgid "Is Vendor" +msgstr "مورد؟" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner__is_donor +#: model:ir.model.fields,field_description:takaful_core.field_res_users__is_donor +msgid "Is Donor" +msgstr "متبرع؟" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner_title__position__prefix +msgid "Prefix" +msgstr "بادئة" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner_title__position__suffix +msgid "Suffix" +msgstr "لاحقة" + +#. module: takaful_core +#: model:ir.model.fields.selection,name:takaful_core.selection__res_partner_title__position__both +msgid "Both" +msgstr "كلاهما" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_title__position +msgid "Position" +msgstr "الموضع" + diff --git a/odex25_benefit/takaful_core/i18n/ar_SY.po b/odex25_benefit/takaful_core/i18n/ar_SY.po new file mode 100644 index 000000000..1227320ea --- /dev/null +++ b/odex25_benefit/takaful_core/i18n/ar_SY.po @@ -0,0 +1,889 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * takaful_core +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-11-29 08:00+0000\n" +"PO-Revision-Date: 2022-11-29 10:01+0200\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.2.1\n" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Accept" +msgstr "قبول" + +#. module: takaful_core +#: selection:takaful.bank.transfer.payment,state:0 +msgid "Accepted" +msgstr "مقبول" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_account_move +msgid "Account Entry" +msgstr "القيد" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_age +#: model:ir.model.fields,field_description:takaful_core.field_res_users_age +msgid "Age" +msgstr "العمر" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_amount +msgid "Amount" +msgstr "المبلغ" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_amount +msgid "Amount With Vat" +msgstr "المبلغ مع ضريبة القيمة المضافة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_amount_without_vat +msgid "Amount Without Vat" +msgstr "المبلغ بدون ضريبة القيمة المضافة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_transfer_attachment +msgid "Attachment" +msgstr "المرفقات" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_bank_id_4032 +#: model:ir.model.fields,field_description:takaful_core.field_res_users_bank_id +msgid "Bank" +msgstr "البنك" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_partner_bank +#: model:ir.model.fields,field_description:takaful_core.field_res_company_bank_account_count +msgid "Bank Accounts" +msgstr "الحسابات البنكية" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.bank_account_image_add_view +msgid "Bank Image" +msgstr "صورة البنك" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_bank_bank_img +msgid "Bank Img" +msgstr "صورة البنك" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:48 +#: model:ir.actions.act_window,name:takaful_core.act_takaful_bank_transfer_view +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_search +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_tree +#: selection:takaful.account.move,type:0 +#, python-format +msgid "Bank Transfer" +msgstr "التحويل البنكي" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:46 +#: code:addons/takaful_core/models/bank_transfer_payment.py:61 +#: code:addons/takaful_core/models/bank_transfer_payment.py:71 +#: code:addons/takaful_core/models/bank_transfer_payment.py:93 +#, python-format +msgid "Bank Transfer State %s" +msgstr "حالة التحويل المصرفي %s" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_order_form_inherit_res_comapny +msgid "Bank account(s)" +msgstr "الحسابات البنكية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_birth_date +#: model:ir.model.fields,field_description:takaful_core.field_res_users_birth_date +msgid "Birth Date" +msgstr "تاريخ الميلاد" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Cancel" +msgstr "إلغاء" + +#. module: takaful_core +#: selection:takaful.bank.transfer.payment,state:0 +msgid "Canceled" +msgstr "ملغية" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:127 +#, python-format +msgid "Cannot sending SMS verification %s " +msgstr " %s لم يتم إرسال الرسالة للجوال" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:204 +#, python-format +msgid "Cannot sending email verification" +msgstr "لم يتم إرسال البريد الإلكتروني" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:25 +#, python-format +msgid "Charity" +msgstr "جهة خيرية" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_res_city_tree +msgid "Cities" +msgstr "المدن" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_city_id +#: model:ir.model.fields,field_description:takaful_core.field_res_users_city_id +#: model:ir.ui.view,arch_db:takaful_core.view_res_city_form +msgid "City" +msgstr "المدينة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_code +msgid "Code" +msgstr "الرمز" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_note +msgid "Comment" +msgstr "تعليق" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_company +msgid "Companies" +msgstr "الشركات" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_company_name +msgid "Company Name" +msgstr "اسم الشركة" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_partner +msgid "Contact" +msgstr "جهة الاتصال" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_country_id +msgid "Country" +msgstr "دولة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_create_uid +msgid "Created by" +msgstr "أنشئ بواسطة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_create_date +msgid "Created on" +msgstr "أنشئ في" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:47 +#: selection:takaful.account.move,type:0 +#, python-format +msgid "Credit Card" +msgstr "بطاقة ائتمانية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_partner_id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_partner_id +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_search +msgid "Customer" +msgstr "العميل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_email +msgid "Customer Email" +msgstr "بريد العميل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_name_of +msgid "Customer Name" +msgstr "اسم العميل " + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_date +msgid "Date" +msgstr "التاريخ" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:72 +#, python-format +msgid "Dear %s,
Your bank transfer has been changed accepted. Please check your balance" +msgstr "عزيزي %s ،
تم تغيير التحويل المصرفي الخاص بك. يرجى التحقق من رصيدك" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:94 +#, python-format +msgid "Dear %s,
Your bank transfer has been changed to canceled. Please check with your bank" +msgstr "عزيزي %s ،
تم تغيير التحويل المصرفي الخاص بك إلى إلغاء. يرجى التحقق من البنك الذي تتعامل معه" + +#. module: takaful_core +#: code:addons/takaful_core/models/bank_transfer_payment.py:47 +#, python-format +msgid "Dear %s,

Your bank transfer has been rejected." +msgstr "عزيزي %s ،

تم رفض التحويل المصرفي الخاص بك." + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:92 +#, python-format +msgid "" +"Dear Customer,\n" +" %s is your one time password (OTP). Please enter the OTP to proceed.\n" +" Thank you,\n" +" Team Takaful" +msgstr "" +"عزيزنا العميل,\n" +" %s هو رمز التفعيل. الرجاء إدخال الرمز للمتابعة.\n" +" شكراً جزيلاً,\n" +" جمعية تكافل" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Default Vat Value" +msgstr "القيمة الافتراضية لضريبة القيمة المضافة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_display_name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_display_name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_display_name +msgid "Display Name" +msgstr "الاسم المعروض" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:53 +#: selection:res.partner,marital_status:0 +#, python-format +msgid "Divorced" +msgstr "مطلقة" + +#. module: takaful_core +#: selection:takaful.bank.transfer.payment,state:0 +msgid "Draft" +msgstr "مسودة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_education_institution +#: model:ir.model.fields,field_description:takaful_core.field_res_users_education_institution +msgid "Education Institution" +msgstr "المؤسسة التعليمية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_education_level +#: model:ir.model.fields,field_description:takaful_core.field_res_users_education_level +msgid "Educational level" +msgstr "مستوى التعليم" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:199 +#, python-format +msgid "Email verification is successfully sent" +msgstr "تم ارسال بريد للتحقق بنجاح" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:91 +#, python-format +msgid "Enter a valid Saudi mobile number" +msgstr "أدخل رقم جوال سعودي بشكل صحيح" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:179 +#, python-format +msgid "Exceeded the limit, please request after the clock %s" +msgstr "لقد جاوزت الحد المسموح، الرجاء الطلب بعد %s" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:54 +#: selection:takaful.account.move,state:0 +#, python-format +msgid "Failed" +msgstr "فشلت" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_family_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users_family_name +msgid "Family Name" +msgstr "اسم العائلة" + +#. module: takaful_core +#: selection:res.partner,gender:0 +msgid "Female" +msgstr "أنثي" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_filename +msgid "Filename" +msgstr "اسم الملف" + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "Financial Donation" +msgstr "تبرعات مالية" + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "Financial Gift" +msgstr "إهداء مالي" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_first_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users_first_name +msgid "First Name" +msgstr "الاسم الاول" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_gender +#: model:ir.model.fields,field_description:takaful_core.field_res_users_gender +msgid "Gender" +msgstr "الجنس" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_search +msgid "Group By..." +msgstr "تجميع حسب.." + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_health_status +#: model:ir.model.fields,field_description:takaful_core.field_res_users_health_status +msgid "Health Status" +msgstr "الحالة الصحية" + +#. module: takaful_core +#: selection:res.partner,health_status:0 +msgid "Healthy" +msgstr "سليم" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_iban +#: model:ir.model.fields,field_description:takaful_core.field_res_users_iban +msgid "IBAN" +msgstr "رقم الآي بان" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_id +msgid "ID" +msgstr "المعرف" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_id_expiry +#: model:ir.model.fields,field_description:takaful_core.field_res_users_id_expiry +msgid "Id Expiry Date" +msgstr "تاريخ انتهاء الهوية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_id_number +#: model:ir.model.fields,field_description:takaful_core.field_res_users_id_number +msgid "Id Number" +msgstr "رقم الهوية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_id_number_attach +#: model:ir.model.fields,field_description:takaful_core.field_res_users_id_number_attach +msgid "Id Number Attachment" +msgstr "مرفق الهوية" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Illiterate" +msgstr "أمي" + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "In-Kind Donation" +msgstr "تبرعات عينية" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:53 +#: selection:takaful.account.move,state:0 +#, python-format +msgid "Initiated" +msgstr "أنشئت" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:252 +#, python-format +msgid "Invalid OTP, Reset Password Failed" +msgstr "رمز تفعيل غير صحيح، فشل في تغيير كلمة المرور" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:279 +#, python-format +msgid "Invalid OTP, Verification Failed" +msgstr "رمز تفعيل غير صحيح، فشل في عملية التحقق" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:56 +#, python-format +msgid "Invalid Saudi mobile number" +msgstr "أدخل رقم جوال سعودي بشكل صحيح" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_account_invoice +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_move_id +msgid "Invoice" +msgstr "الفاتورة" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.takaful_account_move_form +msgid "Invoice Number" +msgstr "رقم الفاتورة" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.takaful_account_move_tree_viewx +msgid "Invoices" +msgstr "الفواتير" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Kindergarten" +msgstr "روضة أطفال" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city___last_update +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move___last_update +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment___last_update +msgid "Last Modified on" +msgstr "آخر تعديل في" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: takaful_core +#: selection:res.partner,gender:0 +msgid "Male" +msgstr "ذكر" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:54 +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_marital_status +#: model:ir.model.fields,field_description:takaful_core.field_res_users_marital_status +#, python-format +msgid "Marital Status" +msgstr "الحالة الاجتماعية" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:53 +#: selection:res.partner,marital_status:0 +#, python-format +msgid "Married" +msgstr "متزوج" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Middle" +msgstr "متوسطة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:218 +#, python-format +msgid "Missing Password Values or OTP" +msgstr "قيم كلمات المرور أو رمز التفعيل غير مكتملة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:47 +#: code:addons/takaful_core/models/res_users.py:153 +#, python-format +msgid "Missing mobile number" +msgstr "لايوجد قيمة رقم الجوال" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Moyaser Integration" +msgstr "التكامل مع خدمة ميسر" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_moyaser_public_key +msgid "Moyaser Public Key" +msgstr "مفتاح خدمة ميسر" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Moyaser Publicy Key" +msgstr "المفتاح العام لخدمة ميسر" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_name +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_name +msgid "Name" +msgstr "الاسم" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_name_of +msgid "Name Of" +msgstr "اسم صاحب الحساب الذي تم التحويل منه" + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "Needs Contribution" +msgstr "مساهمة أحتياجات" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_number +msgid "Number" +msgstr "الرقم" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users_otp +msgid "OTP" +msgstr "رمز التفعيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users_otp_date +msgid "OTP Date" +msgstr "تأريخ رمز التفعيل" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "OTP Information" +msgstr "معلومات رسائل التفعيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_otp_provider_token +msgid "OTP Provider Token" +msgstr "مفتاح مزود رمز التفعيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users_otp_count +msgid "OTP Request Count" +msgstr "عدد طلبات رمز التفعيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_users_otp_password +msgid "OTP Reset Password" +msgstr "أعادة تعيين كلمة السر بواسطة رمز التفعيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_otp_sender_name +msgid "OTP Sender Name" +msgstr "اسم مرسل رمز التفعيل" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:82 +#: code:addons/takaful_core/models/res_users.py:118 +#, python-format +msgid "OTP code is successfully sent" +msgstr "لقد تم إرسال رمز التفعيل بنجاح" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:260 +#: code:addons/takaful_core/models/res_users.py:295 +#, python-format +msgid "OTP does not exist or expired, please request it again" +msgstr "رمز التفعيل غير صالح أو غير موجود، فضلاً أطلبه مرة أخرى" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_operation_id +msgid "Operation" +msgstr "عملية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_account_invoice_operation_type +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_operation_type +msgid "Operation Type" +msgstr "نوع العملية" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_name +msgid "Order Name" +msgstr "اسم الطلب" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_remote_id +msgid "Order Number" +msgstr "رقم الطلب" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:56 +#: selection:takaful.account.move,state:0 +#, python-format +msgid "Paid" +msgstr "مدفوعة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:247 +#, python-format +msgid "Password is successfully reset" +msgstr "تم إعادة تعيين كلمة المرور بنجاح" + +#. module: takaful_core +#: model:ir.actions.act_window,name:takaful_core.takaful_account_move_list_action +msgid "Paycards Account Moves" +msgstr "قيود فواتير السداد الإلكتروني" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +#: selection:takaful.bank.transfer.payment,state:0 +msgid "Pending" +msgstr "معلق" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Postgraduate" +msgstr "دراسات عليا" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Primary" +msgstr "أساس" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_product_product +msgid "Product" +msgstr "المنتج" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_product_template +msgid "Product Template" +msgstr "قالب المنتج" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "Publicy Key" +msgstr "المفتاح العام" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_qty_ordered +msgid "Qty Ordered" +msgstr "الكمية المطلوبة" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_sale_order +msgid "Quotation" +msgstr "التسعيرة" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Reject" +msgstr "رفض" + +#. module: takaful_core +#: code:addons/takaful_core/models/takaful_account_move.py:55 +#: selection:takaful.account.move,state:0 +#: selection:takaful.bank.transfer.payment,state:0 +#, python-format +msgid "Rejected" +msgstr "مرفوض" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_company_form_inherit_otp +msgid "SMS Information" +msgstr "معلومات خدمة الرسائل القصيرة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_sms_provider_token +msgid "SMS Provider Token" +msgstr "اسم مزود خدمة الرسائل القصيرة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_sms_sender_name +msgid "SMS Sender Name" +msgstr "اسم مرسل الرسائل القصيرة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:140 +#, python-format +msgid "SMS service is unavilable" +msgstr "خدمة الرسائل غير متاحة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_second_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users_second_name +msgid "Second Name" +msgstr "الاسم الثاني" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "Secondary" +msgstr "ثانوي" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:131 +#, python-format +msgid "Sender information does not exist" +msgstr "معلومات المرسل غير موجود" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_form +msgid "Set Draft" +msgstr "وضع كممسودة" + +#. module: takaful_core +#: selection:res.partner,health_status:0 +msgid "Sick" +msgstr "مريض" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:53 +#: selection:res.partner,marital_status:0 +#, python-format +msgid "Single" +msgstr "عازب" + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "Sponsorship" +msgstr "الكفالة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_country_city_state_id +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_state +#: model:ir.ui.view,arch_db:takaful_core.view_takaful_bank_payment_transfer_search +msgid "State" +msgstr "المحافظة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_state +msgid "Status" +msgstr "الحالة " + +#. module: takaful_core +#: selection:account.invoice,operation_type:0 +#: selection:takaful.account.move,operation_type:0 +msgid "Subscription" +msgstr "إشتراكات" + +#. module: takaful_core +#: sql_constraint:res.partner:0 +msgid "The Email Already Exist!" +msgstr "The Email Already Exist!" + +#. module: takaful_core +#: sql_constraint:res.partner:0 +msgid "The ID Number Already Exist!" +msgstr "The ID Number Already Exist!" + +#. module: takaful_core +#: sql_constraint:res.partner:0 +msgid "The Mobile Already Exist!" +msgstr "The Mobile Already Exist!" + +#. module: takaful_core +#: sql_constraint:res.partner:0 +msgid "The Phone Already Exist!" +msgstr "The Phone Already Exist!" + +#. module: takaful_core +#: sql_constraint:res.partner:0 +msgid "The User Already Exist!" +msgstr "The User Already Exist!" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:227 +#, python-format +msgid "The entered password does not match" +msgstr "كلمة المرور المدخلة غير متطابقة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_partner_middle_name +#: model:ir.model.fields,field_description:takaful_core.field_res_users_middle_name +msgid "Third Name" +msgstr "الاسم الثالث" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_transfer_id +msgid "Transfer" +msgstr "التحويل البنكي" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_bank_transfer_payment_transfer_date +msgid "Transfer Date" +msgstr "Transfer Date" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_type +msgid "Type" +msgstr "النوع" + +#. module: takaful_core +#: selection:res.partner,education_level:0 +msgid "University" +msgstr "جامعي" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_use_otp_login +msgid "Use Otp Login" +msgstr "أستخدام رمز التفعيل للتسجيل" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_use_sms_notification +msgid "Use SMS Notifications" +msgstr "تنبيهات عبر الرسائل القصيرة" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_users +msgid "Users" +msgstr "المستخدمون" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_takaful_account_move_tax_amount +msgid "Vat" +msgstr "الضريبة المضافة" + +#. module: takaful_core +#: model:ir.model.fields,field_description:takaful_core.field_res_company_vat_default_percent +msgid "Vat Percent" +msgstr "نسبة الضريبة المضافة" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_users.py:291 +#, python-format +msgid "Verification is successful" +msgstr "تم التحقق بنجاح" + +#. module: takaful_core +#: code:addons/takaful_core/models/res_partner.py:53 +#: selection:res.partner,marital_status:0 +#, python-format +msgid "Widower" +msgstr "أرملة" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_config_settings +msgid "res.config.settings" +msgstr "الدقة.التكوين.إعدادات" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_res_country_city +msgid "res.country.city" +msgstr "res.country.city" + +#. module: takaful_core +#: model:ir.ui.view,arch_db:takaful_core.takaful_account_move_form +msgid "server" +msgstr "الخادم" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_takaful_account_move +msgid "takaful.account.move" +msgstr "takaful.account.move" + +#. module: takaful_core +#: model:ir.model,name:takaful_core.model_takaful_bank_transfer_payment +msgid "takaful.bank.transfer.payment" +msgstr "takaful.bank.transfer.payment" diff --git a/odex25_benefit/takaful_core/models/__init__.py b/odex25_benefit/takaful_core/models/__init__.py new file mode 100644 index 000000000..d83047a68 --- /dev/null +++ b/odex25_benefit/takaful_core/models/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +from . import res_city +from . import res_partner +from . import res_users +from . import res_config + +from . import takaful_account_move +from . import bank_transfer_payment diff --git a/odex25_benefit/takaful_core/models/bank_transfer_payment.py b/odex25_benefit/takaful_core/models/bank_transfer_payment.py new file mode 100644 index 000000000..3cbff1859 --- /dev/null +++ b/odex25_benefit/takaful_core/models/bank_transfer_payment.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api +from odoo.tools.translate import _ +# from odoo.tools import SUPERUSER_ID +from datetime import datetime + + +class CompanyBank(models.Model): + _inherit = 'res.partner.bank' + + bank_img = fields.Binary(attachment=True) + + +class BankPayment(models.Model): + _name = 'takaful.bank.transfer.payment' + _rec_name = 'number' + _order = 'id desc' + + number = fields.Char(string='Number', defualt='/', readonly=True) + name = fields.Char(string='Name', required=True) + name_of = fields.Char(string='Name Of') + amount = fields.Float(string='Amount') + partner_id = fields.Many2one(comodel_name='res.partner', string='Customer', required=True) + transfer_attachment = fields.Binary(attachment=True, string='Attachment') + filename = fields.Char(string='Filename', size=256, readonly=True) + state = fields.Selection(selection=[('draft', 'Draft'), ('pending', 'Pending'), ('reject', 'Rejected'), + ('accept', 'Accepted'), ('cancel', 'Canceled')], string='State', default='draft') + move_id = fields.Many2one(comodel_name='takaful.account.move', string='Invoice') + transfer_date=fields.Date() + + @api.model + def create(self, vals): + res = super(BankPayment, self).create(vals) + res.write({'number': self.env['ir.sequence'].sudo().next_by_code('bank.payment.transfer')}) + + return res + + # @api.multi + def action_pending(self): + self.write({'state': 'pending'}) + + # @api.multi + def action_rejected(self): + context = {'lang':self.partner_id.lang} + val_msg = { + 'name': _("Bank Transfer State %s")%self.number, + 'body': _("Dear %s,

Your bank transfer has been rejected.")%self.partner_id.name, + 'partner_ids': [(6, 0, [self.partner_id.id])], + # 'author_id': self.env['res.users'].sudo().browse(SUPERUSER_ID).partner_id.id, + 'author_id': self.env['res.users'].sudo()._is_admin().partner_id.id, + 'date': datetime.now(), + 'state': 'sent', + } + # val_mg + self.write({'state': 'reject'}) + + # @api.multi + def action_accepted(self): + if not self.move_id: + vals = { + 'name':_("Bank Transfer State %s")%self.number, + 'partner_id': self.partner_id.id, + 'amount': self.amount, + # 'operation_type': 'xxx', + 'type': 'transfert', + } + move = self.env['takaful.account.move'].sudo().create(vals) + self.write({'move_id': move.id}) + context = {'lang': self.partner_id.lang} + val_msg = { + 'name': _("Bank Transfer State %s")%self.number, + 'body': _("Dear %s,
Your bank transfer has been changed accepted. " + "Please check your balance")%self.partner_id.name, + 'partner_ids': [(6, 0, [self.partner_id.id])], + # 'author_id': self.env['res.users'].sudo().browse(SUPERUSER_ID).partner_id.id, + 'author_id': self.env['res.users'].sudo()._is_admin().partner_id.id, + 'date': datetime.now(), + 'state': 'sent', + } + # val_msg + self.move_id.write({'state': 'paid'}) + self.write({'state': 'accept'}) + + # @api.multi + def action_reset_to_draft(self): + self.write({'state': 'draft'}) + + # @api.multi + def action_canceled(self): + self.move_id.write({'state': 'rejected'}) + context = {'lang': self.partner_id.lang} + val_msg = { + 'name': _("Bank Transfer State %s")%self.number, + 'body': _("Dear %s,
Your bank transfer has been changed to canceled. " + "Please check with your bank")%self.partner_id.name, + 'partner_ids': [(6, 0, [self.partner_id.id])], + # 'author_id': self.env['res.users'].sudo().browse(SUPERUSER_ID).partner_id.id, + 'author_id': self.env['res.users'].sudo()._is_admin().partner_id.id, + 'date': datetime.now(), + 'state': 'sent', + } + # val_msg + self.write({'state': 'cancel'}) + diff --git a/odex25_benefit/takaful_core/models/res_city.py b/odex25_benefit/takaful_core/models/res_city.py new file mode 100644 index 000000000..cf416428a --- /dev/null +++ b/odex25_benefit/takaful_core/models/res_city.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +from odoo import api, models, fields, _ + + +class City(models.Model): + _name = 'res.country.city' + + + @api.depends('code', 'name') + def _load_country_id(self): + for r in self: + if r.code and r.name: + r.country_id = self.env.ref('base.sa') + + code = fields.Char(string='Code') + name = fields.Char(string='Name') + + state_id = fields.Many2one('res.country.state', string='State') + country_id = fields.Many2one('res.country', string='Country', ) + active = fields.Boolean(default=True) + diff --git a/odex25_benefit/takaful_core/models/res_config.py b/odex25_benefit/takaful_core/models/res_config.py new file mode 100644 index 000000000..769443114 --- /dev/null +++ b/odex25_benefit/takaful_core/models/res_config.py @@ -0,0 +1,32 @@ +# Customize settings for Takaful configrations. + +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError +from ast import literal_eval + +class ResCompany(models.Model): + _inherit = 'res.company' + + use_otp_login = fields.Boolean(string="Use Otp Login") + otp_provider_token = fields.Char(string="OTP Provider Token") + otp_sender_name = fields.Char(string="OTP Sender Name") + + use_sms_notification = fields.Boolean(string="Use SMS Notifications") + sms_provider_token = fields.Char(string="SMS Provider Token") + sms_sender_name = fields.Char(string="SMS Sender Name") + + # Moyaser + moyaser_public_key = fields.Char(string='Moyaser Public Key') + vat_default_percent=fields.Float(string='Vat Percent') + + bank_account_count = fields.Integer(compute='_compute_bank_count', string="Bank Accounts") + company_name=fields.Char(string='Company Name',translate=True) + + # @api.multi + def _compute_bank_count(self): + bank_data = self.env['res.partner.bank'].read_group([('company_id', 'in', self.ids)], ['company_id'], + ['company_id']) + mapped_data = dict([(bank['company_id'][0], bank['company_id_count']) for bank in bank_data]) + + for company in self: + company.bank_account_count = mapped_data.get(company.id, 0) \ No newline at end of file diff --git a/odex25_benefit/takaful_core/models/res_partner.py b/odex25_benefit/takaful_core/models/res_partner.py new file mode 100644 index 000000000..14d1e84df --- /dev/null +++ b/odex25_benefit/takaful_core/models/res_partner.py @@ -0,0 +1,221 @@ +# -*- coding: utf-8 -*- + +from ..TaqnyatSms import client, make_http_response +from odoo import models, fields, api, _ +from datetime import datetime, date +from odoo.tools import DEFAULT_SERVER_DATE_FORMAT +from dateutil.relativedelta import relativedelta as rd +from odoo.osv import expression +from odoo.exceptions import UserError, ValidationError, Warning + +import re +import logging + +_logger = logging.getLogger(__name__) +SAUDI_MOBILE_PATTERN = "(^(05|5)(5|0|3|6|4|9|1|8|7)([0-9]{7})$)" + + +class Partner(models.Model): + _inherit = 'res.partner' + + def get_default_country(self): + country = self.env["res.country"].search([('code','=','SA')],limit=1) + return country.id + def get_default_state(self): + country = self.env["res.country.state"].search([('code','=','001')],limit=1) + return country.id + + @api.model + def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None): + if not args: + args = [] + + # Extend the domain filter with custom search conditions + if name and hasattr(self, 'identification_number') and 'identification_number' in self._fields: + args = expression.OR([args, [('identification_number', operator, name)]]) + + return super(Partner, self)._name_search(name, args, operator, limit, name_get_uid) + + account_type = fields.Selection( + string='', + selection=[('family', 'Family'), + ('sponsor', 'sponsor'), + ('benefit', 'Benefit'), + ('member', 'Member'), + ('vendor', 'Vendor'), + ('donor', 'Donor')], + required=False, ) + is_family = fields.Boolean() + is_sponsor_portal = fields.Boolean(string='Is Sponsor') + is_benefit = fields.Boolean() + is_vendor = fields.Boolean() + is_donor = fields.Boolean() + code = fields.Char(string="Code", copy=False) + sponsor_title = fields.Many2one('res.partner.title',string='Title') + suffix_title_id = fields.Many2one('res.partner.title',string='Suffix Title') + company_type = fields.Selection(selection_add=[('charity', _('Charity'))]) + first_name = fields.Char(string="First Name", tracking=True) + second_name = fields.Char(string="Second Name", tracking=True) + middle_name = fields.Char(string="Third Name", tracking=True) + family_name = fields.Char(string="Family Name", tracking=True) + father_name = fields.Char(string="Father First Name", tracking=True) + father_second_name = fields.Char(string="Father Second Name", tracking=True) + father_third_name = fields.Char(string="Father Third Name", tracking=True) + father_family_name = fields.Char(string="Father Family Name") + birth_date = fields.Date() + age = fields.Integer(string="Age", compute='_compute_get_age_date', store=True) + iban = fields.Char("IBAN") + bank_id = fields.Many2one('res.bank') + id_number = fields.Char(string="Id Number", tracking=True) + id_expiry = fields.Date(string="Id Expiry Date") + gender = fields.Selection(selection=[('male', 'Male'), ('female', 'Female')], string="Gender") + id_number_attach = fields.Binary(string="Id Number Attachment") + health_status = fields.Selection(string='Health Status', selection=[('healthy', 'Healthy'), ('sick', 'Sick')]) + education_level = fields.Selection( + string='Educational level', + selection=[ + ('illiterate', 'Illiterate'), + ('kindergarten', 'Kindergarten'), + ('primary', 'Primary'), + ('middle', 'Middle'), + ('secondary', 'Secondary'), + ('university', 'University'), + ('postgraduate', 'Postgraduate'), + ]) + education_institution = fields.Char() + country_id = fields.Many2one('res.country',default=get_default_country) + state_id = fields.Many2one('res.country.state',default=get_default_state) + city_id = fields.Many2one('res.country.city',domain=[('state_id.code','=','001')]) + marital_status = fields.Selection( + [('single', _('Single')), ('married', _('Married')), ('widower', _('Widower')), ('divorced', _('Divorced'))], + _('Marital Status')) + activation_mode = fields.Selection([ + ('sms', 'SMS'), + ('email', 'Email')]) + user_type = fields.Selection([ + ('person', 'Person'), + ('company', 'Company'), + ('charity', 'Charity'), + ]) + + _sql_constraints = [ + ('mobile_uniq', 'unique (mobile)', 'The Mobile Already Exist!'), + ('phone_uniq', 'unique (phone)', 'The Phone Already Exist!'), + ('user_id_uniq', 'unique (user_id)', 'The User Already Exist!'), + ] + + + def get_partner_target_account_type(self, acc_type): + # Special mappings for account_type -> boolean field names + special_map = { + 'sponsor': 'is_sponsor_portal', + } + + # Determine the target boolean field name + target_field = special_map.get(acc_type, f'is_{acc_type}') + + return target_field + + def set_partner_account_type(self, acc_type): + self.ensure_one() + + # Determine the target boolean field name + target_field = self.get_partner_target_account_type(acc_type) + + # Validate that acc_type is one of the selection values and field exists + valid_types = {key for key, _ in self._fields['account_type'].selection} + if target_field in self._fields and (acc_type in valid_types or target_field == 'is_sponsor_portal'): + update_vals = {target_field: True} + self.write(update_vals) + + def migrate_account_type_to_booleans(self): + """ + Server action method to migrate the old `account_type` selection + to the new `is_` boolean fields for the given recordset. + """ + records = self.search([]) + _logger.info(f"-> Starting account type migration for {len(records)} partner(s).") + for partner in records: + acc_type = partner.account_type + if not acc_type: + continue + partner.set_partner_account_type(acc_type) + _logger.info("-> Partner account type migration finished.") + return True + + # Function Get age by birthdate + @api.depends('birth_date') + def _compute_get_age_date(self): + for rec in self: + if rec.birth_date: + today = date.today() + day = datetime.strptime(str(rec.birth_date), DEFAULT_SERVER_DATE_FORMAT) + age = rd(today, day) + rec.age = age.years + + # Validate mobile .. + # @api.constrains('mobile') + # def check_mobile_value(self): + # if self.mobile: + # if re.match(SAUDI_MOBILE_PATTERN, self.mobile) == None: + # raise ValidationError( + # _('Enter a valid Saudi mobile number')) + + @api.onchange('mobile', 'country_id', 'company_id') + def _onchange_mobile_validation(self): + if self.mobile: + if self.mobile.startswith('+966'): + mobile = self.mobile[4:] + self.mobile = mobile + if re.match(SAUDI_MOBILE_PATTERN, self.mobile) == None: + raise ValidationError( + _('Enter a valid Saudi mobile number')) + + # @api.multi + def send_sms_notification(self, body=None, phone=None): + self.ensure_one() + + if not phone: + phone = self.mobile + + if not all([phone, body]): + return False + + if re.match(SAUDI_MOBILE_PATTERN, str(phone)) == None: + return False + + company_id = self.env.user.company_id or self.env['res.company'].sudo().search([('id', '=', 1)]) + + if company_id and company_id.use_sms_notification: + token = company_id.sms_provider_token or '' + sender = company_id.sms_sender_name or '' + if token and sender: + + taqnyt = client(token) + mobile = '966' + str(phone).lstrip('0') + + recipients = [mobile] + scheduled = '' + # Sending a SMS for a Notification + message = taqnyt.sendMsg(body, recipients, sender, scheduled) + + result = make_http_response(message) + + code = int(result['statusCode']) + total_count = int(result['totalCount']) + msg = result['message'] + + if code == 201 and total_count >= 1: + return True + else: + return False + else: + return False + else: + return False + + +class PartnerTitle(models.Model): + _inherit = 'res.partner.title' + + position = fields.Selection([('prefix', 'Prefix'), ('suffix', 'Suffix'),('both','Both')], default='prefix') \ No newline at end of file diff --git a/odex25_benefit/takaful_core/models/res_users.py b/odex25_benefit/takaful_core/models/res_users.py new file mode 100644 index 000000000..635dcd9de --- /dev/null +++ b/odex25_benefit/takaful_core/models/res_users.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- + +from ..TaqnyatSms import client, make_http_response +from odoo import models, fields, api, _ +from datetime import datetime, date +from odoo.tools import DEFAULT_SERVER_DATE_FORMAT +from dateutil.relativedelta import relativedelta as rd + +from odoo.exceptions import UserError, ValidationError, Warning + +from datetime import timedelta +from dateutil import parser +import pytz + +import math +import random +import re +import logging + +_logger = logging.getLogger(__name__) + +SAUDI_MOBILE_PATTERN = "(^(05|5)(5|0|3|6|4|9|1|8|7)([0-9]{7})$)" +OTP_HOUR_LIMIT = 7 +OTP_COUNT_LIMIT = 3 + +def generateOTP() : + digits = "0123456789" + OTP = "" + for i in range(4) : + OTP += digits[int(math.floor(random.random() * 10))] + return OTP + + +class ResUser(models.Model): + _inherit = 'res.users' + + otp = fields.Char(string="OTP", required=False, readonly=True) + otp_password = fields.Char(string="OTP Reset Password", required=False, readonly=True) + otp_count = fields.Integer(string='OTP Request Count', required=False, readonly=True) + otp_date = fields.Datetime(string='OTP Date', required=False, readonly=True) + + # @api.multi + def remove_access_groups(self): + """ Remove any access group from a user """ + self.ensure_one() + groups_list = self.env['res.groups'].sudo().search([]) + for group in groups_list: + if self in (group.users): + # Remove the access group + self.sudo().write({'groups_id': [(3, group.id)]}) + + # << Send OTP >> + # @api.multi + def send_otp(self, mobile): + self.ensure_one() + if not mobile: + error_descrip = _('Missing mobile number') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'missing_data', + 'error_descrip': error_descrip, + } + + if re.match(SAUDI_MOBILE_PATTERN, str(mobile)) == None: + error_descrip = _('Invalid Saudi mobile number') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'invalid_mobile', + 'error_descrip': error_descrip, + } + + company_id = self.env['res.company'].sudo().search([('id','=',1)]) + + if company_id and company_id.use_otp_login: + token = company_id.otp_provider_token or '' + sender = company_id.otp_sender_name or '' + if token and sender: + otp = generateOTP() + + # Start demo for test + self.otp = otp + self.otp_password = otp + self.otp_count = self.otp_count + 1 + if int(self.otp_count) == 1: + self.otp_date = fields.Datetime.now() + + return { + 'code': 200, + 'results': { + 'message': _('OTP code is successfully sent'), + "mobile": mobile, + "otp": otp, + 'note': "OTP returned just for test, will be removed!", + } + } + # End demo/test + + taqnyt = client(token) + mobile = '966' + str(mobile).lstrip('0') + body = _("""Dear Customer, + %s is your one time password (OTP). Please enter the OTP to proceed. + Thank you, + Team Takaful""") % otp + + recipients = [mobile] + scheduled='' + # Sending a SMS for Verification using OTP + message = taqnyt.sendMsg(body, recipients, sender,scheduled) + + result = make_http_response(message) + + code = int(result['statusCode']) + total_count = int(result['totalCount']) + msg = result['message'] + + if code == 201 and total_count >=1: + self.otp = otp + self.otp_password = otp + self.otp_count = self.otp_count + 1 + if int(self.otp_count) == 1: + self.otp_date = fields.Datetime.now() + + return { + 'code': 200, + 'results': { + 'message': _('OTP code is successfully sent'), + "mobile": mobile, + } + } + else: + _logger.error(msg) + return { + 'code': 424, + 'error': 'failed_dependency', + 'error_descrip': _('Cannot sending SMS verification %s ') %("\n" + msg), + } + + else: + error_descrip = _('Sender information does not exist') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'does_not_exist', + 'error_descrip': error_descrip, + } + + else: + error_descrip = _('SMS service is unavilable') + _logger.error(error_descrip) + return { + 'code': 424, + 'error': 'failed_dependency', + 'error_descrip': error_descrip, + } + + # Request OPT + # @api.multi + def request_otp(self, mobile): + self.ensure_one() + if not mobile: + error_descrip = _('Missing mobile number') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'missing_data', + 'error_descrip': error_descrip, + } + + if self.otp and self.otp_date: + now = fields.Datetime.now() + + otp_date = self.otp_date + otp_date_timte = parser.parse(str(self.otp_date)) + + current_date_timte = parser.parse(str(now)) + limit_date_timte = otp_date_timte + timedelta(hours=OTP_HOUR_LIMIT) + + counter = int(self.otp_count) + if current_date_timte > limit_date_timte and current_date_timte > otp_date_timte and counter >= OTP_COUNT_LIMIT: + self.otp_count = 0 + counter = 0 + + if current_date_timte < limit_date_timte and counter >= OTP_COUNT_LIMIT: + tz = pytz.timezone('Asia/Riyadh') + remines = limit_date_timte.replace(tzinfo=tz).strftime("%I:%M") + error_descrip = _('Exceeded the limit, please request after the clock %s') % remines + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'exceeded_otp_limit', + 'error_descrip': error_descrip, + } + + return self.sudo().send_otp(mobile) + + # Reset Password using email account + # @api.multi + def reset_password_using_email(self): + self.ensure_one() + # Reset Password using email.. login email of user! + try: + self.action_reset_password() + return { + 'code': 200, + 'results': { + 'message': _('Email verification is successfully sent'), + "email": self.login, + } + } + except Exception as e: + error_descrip = _('Cannot sending email verification') + _logger.error(error_descrip) + return { + 'code': 424, + 'error': 'failed_dependency', + 'error_descrip': error_descrip, + } + + # Reset Password using Verified OTP + # @api.multi + def reset_password_using_otp(self, password1, password2, otp): + self.ensure_one() + # Reset Password using OTP processing..Should be verified otp! + if not all([password1, password2, otp]): + error_descrip = _('Missing Password Values or OTP') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'missing_data', + 'error_descrip': error_descrip, + } + + if password1 != password2: + error_descrip = _('The entered password does not match') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'password_not_match', + 'error_descrip': error_descrip, + } + + if self.otp_password: + otp_original = str(self.otp_password) + otp_customer = str(otp) + + if otp_customer == otp_original: + # Reset password processing.. + self.password = password1 + self.otp_password = None + self.env.cr.commit() + return { + 'code': 200, + 'results': { + 'message': _('Password is successfully reset'), + } + } + + else: + error_descrip = _('Invalid OTP, Reset Password Failed') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'invalid_otp', + 'error_descrip': error_descrip, + } + else: + error_descrip = _('OTP does not exist or expired, please request it again') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'expired_otp', + 'error_descrip': error_descrip, + } + + + # Verify OTP + # @api.multi + def verify_otp(self, otp): + self.ensure_one() + # OTP verify processing.. + if self.otp: + otp_original = str(self.otp) + otp_customer = str(otp) + if otp_customer != otp_original: + error_descrip = _('Invalid OTP, Verification Failed') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'invalid_otp', + 'error_descrip': error_descrip, + } + else: + self.otp = None + return { + 'code': 200, + 'results': { + 'message': _('Verification is successful'), + } + } + else: + error_descrip = _('OTP does not exist or expired, please request it again') + _logger.error(error_descrip) + return { + 'code': 400, + 'error': 'expired_otp', + 'error_descrip': error_descrip, + } + diff --git a/odex25_benefit/takaful_core/models/takaful_account_move.py b/odex25_benefit/takaful_core/models/takaful_account_move.py new file mode 100644 index 000000000..d1350a8ff --- /dev/null +++ b/odex25_benefit/takaful_core/models/takaful_account_move.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +from odoo import api, models, fields, _ +from odoo.addons import decimal_precision as dp +import logging + +_logger = logging.getLogger(__name__) + + +class AccountInvoice(models.Model): + _inherit = "account.move" + + operation_type = fields.Selection([ + ('in_kind_donation', 'In-Kind Donation'), + ('financial_donation', 'Financial Donation'), + ('subscription', 'Subscription'), + ('sponsorship', 'Sponsorship'), + ('financial_gift', 'Financial Gift'), + ('need_contribution', 'Needs Contribution')], + string='Operation Type', + ) + operation_id = fields.Integer(readonly=True) + + +class TakafulAccountMove(models.Model): + _name = 'takaful.account.move' + + name = fields.Char(string='Order Name') + remote_id = fields.Char(string='Order Number') + partner_id = fields.Many2one('res.partner', string='Customer') + + name_of = fields.Char(string='Customer Name', readonly=True) + email = fields.Char(string='Customer Email', readonly=True) + note = fields.Text(string='Comment') + + amount = fields.Float(string='Amount With Vat') + operation_type = fields.Selection([ + ('in_kind_donation', 'In-Kind Donation'), + ('financial_donation', 'Financial Donation'), + ('subscription', 'Subscription'), + ('sponsorship', 'Sponsorship'), + ('financial_gift', 'Financial Gift'), + ('need_contribution', 'Needs Contribution')], + string='Operation Type', + ) + operation_id = fields.Integer(readonly=True) + type = fields.Selection(selection=[ + ('card', _('Credit Card')), + ('transfer', _('Bank Transfer')), + ], string='Type') + date = fields.Date('Date', default=fields.Date.context_today) + qty_ordered = fields.Float(string='Qty Ordered',default=1) + state = fields.Selection(selection=[ + ('initiated', _('Initiated')), + ('failed', _('Failed')), + ('rejected', _('Rejected')), + ('paid', _('Paid')), + ], default='paid', string='Status') + transfer_id = fields.Many2one('takaful.bank.transfer.payment', string='Transfer') + amount_without_vat = fields.Float(string='Amount Without Vat', compute='_get_vat_amount') + tax_amount = fields.Float(string='Vat', compute='_get_vat_amount',digits= dp.get_precision('Product Price')) + + # @api.one + @api.depends('amount', 'type') + def _get_vat_amount(self): + for rec in self: + if not rec.type: + tax_percent = float( + self.env['ir.config_parameter'].sudo().get_param('vat_default_percent', default=0.0)) + rec.amount_without_vat = rec.amount/(1+(tax_percent/100)) + rec.tax_amount = round(rec.amount - rec.amount_without_vat,2) + else: + rec.amount_without_vat = rec.amount + rec.tax_amount = 0 + + def get_company(self): + return self.env.user.company_id + + +TakafulAccountMove() + +""" +vals = { + 'name': _('Server Update'), + 'partner_id': request.env.user.partner_id.id, + 'amount': diff, + 'qty_ordered': num_months, + 'operation_type': 'credit', + 'state': 'paid', + } + request.env['takaful.account.move'].sudo().create(vals) +""" \ No newline at end of file diff --git a/odex25_benefit/takaful_core/views/bank_transfer_payment_view.xml b/odex25_benefit/takaful_core/views/bank_transfer_payment_view.xml new file mode 100644 index 000000000..1975076b4 --- /dev/null +++ b/odex25_benefit/takaful_core/views/bank_transfer_payment_view.xml @@ -0,0 +1,157 @@ + + + + + Bank Transfer + bank.payment.transfer + Trans/ + 4 + + + + res.company.form + res.company + + + +

+ +

+
+ + + + + + + + + + + +
+
+ + + + res.partner.bank.form + res.partner.bank + + + + + + + + + + takaful.bank.transfer.payment.tree + takaful.bank.transfer.payment + + + + + + + + + + + + + + takaful.bank.transfer.payment.form + takaful.bank.transfer.payment + + +
+
+
+ +
+

+ + + + +
+ +
+

+
+ + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/odex25_benefit/takaful_core/views/config_view.xml b/odex25_benefit/takaful_core/views/config_view.xml new file mode 100644 index 000000000..ec49be521 --- /dev/null +++ b/odex25_benefit/takaful_core/views/config_view.xml @@ -0,0 +1,39 @@ + + + + res.company.form.default + res.company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odex25_benefit/takaful_core/views/menus_and_actions.xml b/odex25_benefit/takaful_core/views/menus_and_actions.xml new file mode 100644 index 000000000..e80ab136d --- /dev/null +++ b/odex25_benefit/takaful_core/views/menus_and_actions.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/odex25_benefit/takaful_core/views/res_city_view.xml b/odex25_benefit/takaful_core/views/res_city_view.xml new file mode 100644 index 000000000..a99f02453 --- /dev/null +++ b/odex25_benefit/takaful_core/views/res_city_view.xml @@ -0,0 +1,72 @@ + + + + + + res.partner.account.type + res.partner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Odex - City tree + res.country.city + + + + + + + + + + + + Odex - City form + res.country.city + +
+ + + + + + + + + + + + + +
+
+
+
+
diff --git a/odex25_benefit/takaful_core/views/res_partner_title_views.xml b/odex25_benefit/takaful_core/views/res_partner_title_views.xml new file mode 100644 index 000000000..0b82f7314 --- /dev/null +++ b/odex25_benefit/takaful_core/views/res_partner_title_views.xml @@ -0,0 +1,15 @@ + + + + + res.partner.title.form.inherit + res.partner.title + + + + + + + + + diff --git a/odex25_benefit/takaful_core/views/takaful_account_move_view.xml b/odex25_benefit/takaful_core/views/takaful_account_move_view.xml new file mode 100644 index 000000000..515dc7be4 --- /dev/null +++ b/odex25_benefit/takaful_core/views/takaful_account_move_view.xml @@ -0,0 +1,69 @@ + + + + takaful.account.move.tree + takaful.account.move + + + + + + + + + + + + + + + + + + takaful.account.move.form + takaful.account.move + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Paycards Account Moves + takaful.account.move + + tree,form + + + + + + tree + + + +
+