diff --git a/odex25_realstate/country_city/__init__.py b/odex25_realstate/country_city/__init__.py
deleted file mode 100644
index 9aefc85a1..000000000
--- a/odex25_realstate/country_city/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import models
\ No newline at end of file
diff --git a/odex25_realstate/country_city/__manifest__.py b/odex25_realstate/country_city/__manifest__.py
deleted file mode 100644
index 65419cc6b..000000000
--- a/odex25_realstate/country_city/__manifest__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-{
- 'name': "City and District",
- 'summary': """Base City and District""",
- 'description': "",
- 'author': 'Expert Co. Ltd.',
- 'website': 'http://exp-sa.com',
- 'category': 'Odex25-Realstate/dex25-Realstate',
- 'version': '0.1',
- 'depends': ['base', 'mail',],
- 'data': [
- 'security/ir.model.access.csv',
- 'views/city_district_views.xml',
- ],
- 'installable': True,
- 'application': True,
-}
diff --git a/odex25_realstate/country_city/i18n/ar_001.po b/odex25_realstate/country_city/i18n/ar_001.po
deleted file mode 100644
index ceba2f4d5..000000000
--- a/odex25_realstate/country_city/i18n/ar_001.po
+++ /dev/null
@@ -1,341 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * country_city
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-04 19:21+0000\n"
-"PO-Revision-Date: 2022-01-04 19:21+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: country_city
-#: model_terms:ir.ui.view,arch_db:country_city.city_form_view
-#: model_terms:ir.ui.view,arch_db:country_city.district_form_view
-msgid ""
-"Restore \n"
-" Archive "
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_needaction
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_needaction
-msgid "Action Needed"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__active
-#: model:ir.model.fields,field_description:country_city.field_re_city__active
-msgid "Active"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_ids
-msgid "Activities"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_exception_decoration
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_exception_decoration
-msgid "Activity Exception Decoration"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_state
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_state
-msgid "Activity State"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_type_icon
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_type_icon
-msgid "Activity Type Icon"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_attachment_count
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_attachment_count
-msgid "Attachment Count"
-msgstr ""
-
-#. module: country_city
-#: model:ir.actions.act_window,name:country_city.city_action
-#: model:ir.model,name:country_city.model_re_city
-#: model:ir.model.fields,field_description:country_city.field_district__city_id
-msgid "City"
-msgstr "المدينة"
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__company_id
-#: model:ir.model.fields,field_description:country_city.field_re_city__company_id
-msgid "Company"
-msgstr "الشركة"
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__create_uid
-#: model:ir.model.fields,field_description:country_city.field_re_city__create_uid
-msgid "Created by"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__create_date
-#: model:ir.model.fields,field_description:country_city.field_re_city__create_date
-msgid "Created on"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__display_name
-#: model:ir.model.fields,field_description:country_city.field_re_city__display_name
-msgid "Display Name"
-msgstr ""
-
-#. module: country_city
-#: model:ir.actions.act_window,name:country_city.district_action
-#: model:ir.model,name:country_city.model_district
-#: model:ir.model.fields,field_description:country_city.field_re_city__district_ids
-#: model_terms:ir.ui.view,arch_db:country_city.city_form_view
-msgid "District"
-msgstr "الحي"
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_follower_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_follower_ids
-msgid "Followers"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_channel_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_channel_ids
-msgid "Followers (Channels)"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_partner_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_partner_ids
-msgid "Followers (Partners)"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__activity_type_icon
-#: model:ir.model.fields,help:country_city.field_re_city__activity_type_icon
-msgid "Font awesome icon e.g. fa-tasks"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__id
-#: model:ir.model.fields,field_description:country_city.field_re_city__id
-msgid "ID"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_exception_icon
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_exception_icon
-msgid "Icon"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__activity_exception_icon
-#: model:ir.model.fields,help:country_city.field_re_city__activity_exception_icon
-msgid "Icon to indicate an exception activity."
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__message_needaction
-#: model:ir.model.fields,help:country_city.field_district__message_unread
-#: model:ir.model.fields,help:country_city.field_re_city__message_needaction
-#: model:ir.model.fields,help:country_city.field_re_city__message_unread
-msgid "If checked, new messages require your attention."
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__message_has_error
-#: model:ir.model.fields,help:country_city.field_district__message_has_sms_error
-#: model:ir.model.fields,help:country_city.field_re_city__message_has_error
-#: model:ir.model.fields,help:country_city.field_re_city__message_has_sms_error
-msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_is_follower
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_is_follower
-msgid "Is Follower"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district____last_update
-#: model:ir.model.fields,field_description:country_city.field_re_city____last_update
-msgid "Last Modified on"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__write_uid
-#: model:ir.model.fields,field_description:country_city.field_re_city__write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__write_date
-#: model:ir.model.fields,field_description:country_city.field_re_city__write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_main_attachment_id
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_main_attachment_id
-msgid "Main Attachment"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_has_error
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_has_error
-msgid "Message Delivery error"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_ids
-msgid "Messages"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__name
-#: model:ir.model.fields,field_description:country_city.field_re_city__name
-msgid "Name"
-msgstr "الأسم"
-
-#. module: country_city
-#: code:addons/country_city/models/city_configuration.py:0
-#: code:addons/country_city/models/city_configuration.py:0
-#, python-format
-msgid "Name field cannot accept numbers or special character"
-msgstr "الاسم لا يقبل قيمة رقمية فقط حروف"
-
-#. module: country_city
-#: code:addons/country_city/models/city_configuration.py:0
-#: code:addons/country_city/models/city_configuration.py:0
-#, python-format
-msgid "Name field is required (cannot accept white space)"
-msgstr "حقل الأسم لا يقبل أرقام فقط حروف"
-
-#. module: country_city
-#: code:addons/country_city/models/city_configuration.py:0
-#: code:addons/country_city/models/city_configuration.py:0
-#, python-format
-msgid "Name field must be literal"
-msgstr "حقل الأسم يجب أن يكون قيمة حرفية"
-
-#. module: country_city
-#: code:addons/country_city/models/city_configuration.py:0
-#: code:addons/country_city/models/city_configuration.py:0
-#: model:ir.model.constraint,message:country_city.constraint_district_name
-#: model:ir.model.constraint,message:country_city.constraint_re_city_name
-#, python-format
-msgid "Name must be unique."
-msgstr "يجب أن يكون الأسم فريد"
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_date_deadline
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_date_deadline
-msgid "Next Activity Deadline"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_summary
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_summary
-msgid "Next Activity Summary"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_type_id
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_type_id
-msgid "Next Activity Type"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_needaction_counter
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_needaction_counter
-msgid "Number of Actions"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_has_error_counter
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_has_error_counter
-msgid "Number of errors"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__message_needaction_counter
-#: model:ir.model.fields,help:country_city.field_re_city__message_needaction_counter
-msgid "Number of messages which requires an action"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__message_has_error_counter
-#: model:ir.model.fields,help:country_city.field_re_city__message_has_error_counter
-msgid "Number of messages with delivery error"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__message_unread_counter
-#: model:ir.model.fields,help:country_city.field_re_city__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__activity_user_id
-#: model:ir.model.fields,field_description:country_city.field_re_city__activity_user_id
-msgid "Responsible User"
-msgstr "المستخدم المدرج"
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_has_sms_error
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_has_sms_error
-msgid "SMS Delivery error"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__activity_state
-#: model:ir.model.fields,help:country_city.field_re_city__activity_state
-msgid ""
-"Status based on activities\n"
-"Overdue: Due date is already passed\n"
-"Today: Activity date is today\n"
-"Planned: Future activities."
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__activity_exception_decoration
-#: model:ir.model.fields,help:country_city.field_re_city__activity_exception_decoration
-msgid "Type of the exception activity on record."
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_unread
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__message_unread_counter
-#: model:ir.model.fields,field_description:country_city.field_re_city__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,field_description:country_city.field_district__website_message_ids
-#: model:ir.model.fields,field_description:country_city.field_re_city__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: country_city
-#: model:ir.model.fields,help:country_city.field_district__website_message_ids
-#: model:ir.model.fields,help:country_city.field_re_city__website_message_ids
-msgid "Website communication history"
-msgstr ""
\ No newline at end of file
diff --git a/odex25_realstate/country_city/models/__init__.py b/odex25_realstate/country_city/models/__init__.py
deleted file mode 100644
index f71e1d53d..000000000
--- a/odex25_realstate/country_city/models/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import city_configuration
diff --git a/odex25_realstate/country_city/models/city_configuration.py b/odex25_realstate/country_city/models/city_configuration.py
deleted file mode 100644
index 79f34bebd..000000000
--- a/odex25_realstate/country_city/models/city_configuration.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-import re
-from odoo import models, fields, api,_
-from odoo.exceptions import ValidationError
-
-class Cities(models.Model):
- _name = 're.city'
- _description = 'City'
- _inherit = ['mail.thread','mail.activity.mixin']
- _order = "id desc"
-
- active = fields.Boolean(default=True)
- name = fields.Char(string="Name")
- district_ids = fields.One2many('district','city_id',string="District")
- company_id = fields.Many2one('res.company', string='Company',
- default=lambda self: self.env.user.company_id)
-
- _sql_constraints = [
- ('name', 'unique(name)', _('Name must be unique.')),
- ]
-
- @api.constrains('name')
- def fields_check(self):
- """
- Check if name field contain an invalid value
- :raise exception
- """
- num_pattern = re.compile(r'\d', re.I | re.M)
- white_space = re.compile(r'^\s')
- if not re.match(
- "^[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z-_]*$",
- self.name.replace(" ", "")):
- raise ValidationError(_('Name field must be literal'))
- if num_pattern.search(self.name):
- raise ValidationError(_("Name field cannot accept numbers or special character"))
- if white_space.search(self.name):
- raise ValidationError(_("Name field is required (cannot accept white space)"))
-
-
-class District(models.Model):
- _name = 'district'
- _description = 'District'
- _inherit = ['mail.thread','mail.activity.mixin']
- _order = "id desc"
-
- active = fields.Boolean(default=True)
- name = fields.Char(string="Name")
- company_id = fields.Many2one('res.company', string='Company',
- default=lambda self: self.env.user.company_id)
- city_id = fields.Many2one('re.city', string="City")
-
- _sql_constraints = [
- ('name', 'unique(name,city_id)', _('Name must be unique.')),
- ]
-
- @api.constrains('name')
- def fields_check(self):
- """
- Check if name field contain an invalid value
- :raise exception
- """
- num_pattern = re.compile(r'\d', re.I | re.M)
- white_space = re.compile(r'^\s')
- if not re.match(
- "^[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z]+[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z-_]*$",
- self.name.replace(" ", "")):
- raise ValidationError(_('Name field must be literal'))
- if num_pattern.search(self.name):
- raise ValidationError(_("Name field cannot accept numbers or special character"))
- if white_space.search(self.name):
- raise ValidationError(_("Name field is required (cannot accept white space)"))
diff --git a/odex25_realstate/country_city/security/ir.model.access.csv b/odex25_realstate/country_city/security/ir.model.access.csv
deleted file mode 100644
index 39e5d1e57..000000000
--- a/odex25_realstate/country_city/security/ir.model.access.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_city,re.city,model_re_city,real_estate.group_real_estate_user,1,1,1,1
-access_district,res.district,model_district,real_estate.group_real_estate_user,1,1,1,1
-
diff --git a/odex25_realstate/country_city/static/description/icon.png b/odex25_realstate/country_city/static/description/icon.png
deleted file mode 100644
index 5b1ba2a62..000000000
Binary files a/odex25_realstate/country_city/static/description/icon.png and /dev/null differ
diff --git a/odex25_realstate/country_city/views/city_district_views.xml b/odex25_realstate/country_city/views/city_district_views.xml
deleted file mode 100644
index 847827725..000000000
--- a/odex25_realstate/country_city/views/city_district_views.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
- City
- re.city
-
-
-
-
-
-
-
- City
- ir.actions.act_window
- re.city
- tree,form
-
-
-
-
-
- District
- district
-
-
-
-
-
-
- Restore
- Archive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- District List
- district
-
-
-
-
-
-
-
-
-
-
- District
- ir.actions.act_window
- district
- tree,form
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_project/__init__.py b/odex25_realstate/khawald_project/__init__.py
deleted file mode 100644
index 9844d9a84..000000000
--- a/odex25_realstate/khawald_project/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-
-from . import models
\ No newline at end of file
diff --git a/odex25_realstate/khawald_project/__manifest__.py b/odex25_realstate/khawald_project/__manifest__.py
deleted file mode 100644
index 2c36ba29e..000000000
--- a/odex25_realstate/khawald_project/__manifest__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-{
- 'name': "Project Management - Khawald",
- 'summary': """Real Estate Project - Khawald""",
- 'description': """ """,
- 'author': 'Expert Co. Ltd.',
- 'website': 'http://exp-sa.com',
- 'category': 'Odex25-Realstate/Odex25-Realstate',
- 'version': '0.1',
- 'depends': ['project_management_custom', 'real_estate_marketing','odex25_web_map', 'dhx_gantt'],
- 'data': [
- 'data/templates.xml',
- 'security/ir.model.access.csv',
- 'views/khawald_project_config_views.xml',
- 'views/khawald_project_view.xml',
- 'views/internal_property_view.xml',
- 'views/re_unit_view.xml',
- 'views/project_task_view.xml',
- 'views/resource_calendar_view.xml',
- 'report/sub_contractor_report_template.xml',
- 'report/sample_report_template.xml',
- 'report/inspection_report_template.xml',
- 'report/daily_report_template.xml',
- 'report/report_action.xml',
- ],
-
- 'installable': True,
- 'application': False,
-}
diff --git a/odex25_realstate/khawald_project/data/templates.xml b/odex25_realstate/khawald_project/data/templates.xml
deleted file mode 100644
index 722a4062d..000000000
--- a/odex25_realstate/khawald_project/data/templates.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- Marketing Task Done
-
- Al-Khawalid Real Estate Company - Marketing Task
- ${object.email_formatted}
-
- Dear colleague,
-
-
-
- You have a task waiting for you to perform
-
-
-
-
- With sincere affection and appreciation,
- Al-Khawalid Real Estate Company - Projects Department
-
- ]]>
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_project/i18n/ar_001.po b/odex25_realstate/khawald_project/i18n/ar_001.po
deleted file mode 100644
index b27c691eb..000000000
--- a/odex25_realstate/khawald_project/i18n/ar_001.po
+++ /dev/null
@@ -1,1839 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * khawald_project
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-04-06 14:51+0000\n"
-"PO-Revision-Date: 2022-04-06 14:51+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: khawald_project
-#: model:mail.template,body_html:khawald_project.template_marketing_task_complete
-msgid ""
-"\n"
-"
\n"
-" Dear colleague,\n"
-"
\n"
-" \n"
-" \n"
-" You have a task waiting for you to perform\n"
-" \n"
-" \n"
-" \n"
-" \n"
-" With sincere affection and appreciation, \n"
-" Al-Khawalid Real Estate Company - Projects Department \n"
-"
\n"
-" \n"
-" "
-msgstr ""
-"\n"
-" \n"
-" الزميل العزيز،\n"
-"
\n"
-" \n"
-" \n"
-" لديكم مهمة في إنتظار إجرائكم\n"
-" \n"
-" \n"
-" \n"
-" \n"
-" مع خالص الود والتقدير، \n"
-" شركة الخوالد العقارية - قسم المشاريع \n"
-"
\n"
-" \n"
-" "
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "1- مقاول الدفان "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "10 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "11 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "12 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "13 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "14 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "2- مقاول زهرة رغد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "2- مقاول لم يتم ارسال العقد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "25 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "45 "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "ألة ثني الحديد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "إجمالي المعدات بالموقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "إجمالي عدد عمالة مقاولي الباطن "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "اجمالي العماله "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "اجمالي الفنيين والاداريين "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "الإستشاري : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "الاسم : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "التوقيــــع : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "الجهاز الفني والإداري "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "العمالة "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "المعدات "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "المعدات "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "المقـــاول : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"اليوم : التاريخ : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "بلدوز "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "بوبكات "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "بوكلين "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "تريلة "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "جاك همر "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "حارس "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "حالة الطقس : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "حداد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "دكاكة صغيرة "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "رصاصه كبيره "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "سائق "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"ساعات العمل من : 6.00 ص إلى : 3:00 "
-"م "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "سيارات صغيره "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "عدد عمالة مقاول الباطن "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "عدد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "عمال موقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "غريدر "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "كرين "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "كمبروسر كبير "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "محمد امين "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مدير المشروع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مساعد حداد "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مساعد نجار "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مضخة مياه "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مقاولي الباطن "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "منشار خشب "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مهندس الكهرباء "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مهندس المقـــــاول : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مهندس موقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "مولد كهرباء "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "نجار "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "هزاز خرسانه "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"العمالة "
-"بالموقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"المعدات "
-"بالموقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"مقاولي الباطن وعمالتهم "
-"بالمشروع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"الأعمال المتوقع تنفيذها في اليوم "
-"التالي : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "المشاكل الموجودة بالموقع "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid "المواد المورده للموقع : "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"ملخص أعمال اليوم الجاري "
-"تنفيذها "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"تــقريـــر يومـــــي رقم (01) "
-"لمشــــــروع : ................................................. "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.view_project_state_kanban
-msgid ""
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.view_project_state_kanban
-msgid ""
-" "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.view_project_state_kanban
-msgid "Tasks: "
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "AC"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__advantage_ids
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__advantage_ids
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__advantage_ids
-msgid "Advantage"
-msgstr "المميزات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__name
-msgid "Advantage Name"
-msgstr "الميزة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__advantage_price
-msgid "Advantage Price"
-msgstr "قيمة المميزات"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.unit_form_view_khawald
-msgid "Advantage and Price"
-msgstr "المميزات و الأسعار"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.property_form_view_khawald
-msgid "Advantage and Unit"
-msgstr "المميزات"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-#: model_terms:ir.ui.view,arch_db:khawald_project.property_form_view_khawald
-#: model_terms:ir.ui.view,arch_db:khawald_project.unit_form_view_khawald
-msgid "Advantages"
-msgstr "المميزات"
-
-#. module: khawald_project
-#: model:mail.template,subject:khawald_project.template_marketing_task_complete
-msgid "Al-Khawalid Real Estate Company - Marketing Task"
-msgstr "شركة الخوالد العقارية - مهمة تسويق"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__amount
-msgid "Amount"
-msgstr "المبلغ"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_type__name__apartment
-msgid "Apartment"
-msgstr "شقق"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Approve"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Approved As Noted"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__basement
-msgid "Basement Available ?"
-msgstr "هل يوجد قبو ؟"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__bathroom_no
-msgid "Bathroom Count"
-msgstr "عدد الحمامات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__building_service
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__building_certificate
-msgid "Building Certificate"
-msgstr "رقم شهادة إتمام البناء"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__building_factor
-msgid "Building Factor"
-msgstr "معامل البناء"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__building_license
-msgid "Building License"
-msgstr "رقم رخصة البناء و الهدم"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__building_count
-msgid "Building count"
-msgstr "عدد العمائر"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__state__cancel
-msgid "Cancelled"
-msgstr "ملغي"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__change_price
-msgid "Change Meter Price"
-msgstr "تغير إجمالي السعر"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Civil."
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__color
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__color
-msgid "Color"
-msgstr "اللون"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__company_id
-msgid "Company"
-msgstr "الشركة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__company_currency_id
-msgid "Company Currency"
-msgstr "عملة الشركة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__completion_rate
-msgid "Completion Rate"
-msgstr "نسبة الإنجاز"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__invoice_ref
-msgid "Contract/Invoice REF"
-msgstr " مرجع الفاتورة أو عقد الشراء"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Contractor"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Create Building and unit"
-msgstr "إنشاء عقارات و وحدات"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Create invoice"
-msgstr "إنشاء فاتورة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__created
-msgid "Created"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__create_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__create_uid
-msgid "Created by"
-msgstr "انشئ بواسطة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__create_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__create_date
-msgid "Created on"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__rating_active
-msgid "Customer Ratings"
-msgstr "تقييمات العملاء"
-
-#. module: khawald_project
-#: model:ir.actions.report,name:khawald_project.action_daily_report
-msgid "Daily Report"
-msgstr "التقرير اليومي"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__date
-msgid "Date"
-msgstr "التاريخ"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__date_to
-msgid "Date To"
-msgstr "تاريخ نهاية الضمان"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__date_from
-msgid "Date from"
-msgstr "تاريخ بداية الضمان"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__days
-msgid "Days To be done"
-msgstr "عدد الأيام للإنجاز"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__default
-msgid "Default"
-msgstr "إفتراضي"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__dependency_id
-msgid "Dependency"
-msgstr "الإعتمادية"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__name
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__name
-msgid "Description"
-msgstr "الوصف"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_account_move__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__display_name
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__display_name
-msgid "Display Name"
-msgstr "الاسم المعروض"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_task__state__done
-msgid "Done"
-msgstr "مكتمل"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Done تم Not Done لم يتم"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_task__state__draft
-msgid "Draft"
-msgstr "مسودة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__duration_kind
-msgid "Duration Kind"
-msgstr "نوع المدة"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.view_project_state_kanban
-msgid "Edit"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Elc."
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__electric_service
-msgid "Electric Service"
-msgstr "الكهرباء"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__engineer_payment_amount
-msgid "Engineering Payment"
-msgstr "مدفوعات المكاتب الهندسية"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_expense_ids
-msgid "Expense"
-msgstr "بنود الصرف"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__name
-msgid "Face"
-msgstr "واجهة المشروع"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Finishing"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__floor_count
-msgid "Floor count"
-msgstr "عدد الأدوار في العمارة الواحدة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__email_formatted
-msgid "Formatted Email"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__agent_id
-msgid "GOV Agent"
-msgstr "الوكيل"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__hall_no
-msgid "Hall Count"
-msgstr "عدد الصالات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_account_move__id
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__id
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__id
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__id
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__id
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__id
-msgid "ID"
-msgstr "المُعرف"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__state__in_progess
-msgid "In Executing"
-msgstr "جاري التنفيذ"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__state__draft
-msgid "In Progress"
-msgstr "بدء التنفيذ"
-
-#. module: khawald_project
-#: model:ir.actions.report,name:khawald_project.action_inspection_report
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Inspection Request"
-msgstr "طلب فحص أعمال"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_insurance_ids
-msgid "Insurance"
-msgstr "الضمان"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__duration
-msgid "Insurance Duration"
-msgstr "مدة الضمان"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__insurance_policy
-msgid "Insurance Policy"
-msgstr "رقم وثيقة التأمين"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__partner_id
-msgid "Insurance Provider"
-msgstr "مقدم الضمان"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__invoice_id
-msgid "Invoice"
-msgstr "الفاتورة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__name
-msgid "Issue"
-msgstr "المشكلة"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__building_service__issued
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__electric_service__issued
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__stamp_service__issued
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__water_service__issued
-msgid "Issued"
-msgstr "تم الإصدار"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_account_move
-msgid "Journal Entry"
-msgstr "قيد اليومية"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Land Info"
-msgstr "معلومات الأرض"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__name
-msgid "Land Sate"
-msgstr "حالة الأرض"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__land_space
-msgid "Land Space"
-msgstr "مساحة الأرض"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_land_state
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__land_state_id
-msgid "Land State"
-msgstr "حالة الأرض"
-
-#. module: khawald_project
-#: model:ir.model.constraint,message:khawald_project.constraint_land_state_name_uniq
-msgid "Land State name already exists!"
-msgstr "حالة الأرض موجود مسبقا"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_account_move____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_land_state____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_face____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_project____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_state____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_status____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_task____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_project_type____last_update
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit____last_update
-msgid "Last Modified on"
-msgstr "آخر تعديل في"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__write_uid
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_land_state__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_face__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_issue__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__write_date
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Location"
-msgstr "الموقع"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__location_x
-msgid "Location X"
-msgstr "الموقع س"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__location_y
-msgid "Location Y"
-msgstr "الموقع ص"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__marketing
-msgid "Marketing"
-msgstr "مهام التسويق"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Mech."
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__meter_price
-msgid "Meter Price"
-msgstr "سعر المتر"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_insurance__duration_kind__month
-msgid "Month"
-msgstr "شهر/أشهر"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__basement__no
-msgid "NO"
-msgstr "لا"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__name
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense_conf__name
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__name
-#: model:ir.model.fields,field_description:khawald_project.field_project_type__name
-msgid "Name"
-msgstr "الإسم"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__new_price
-msgid "New Price"
-msgstr "السعر الجديد"
-
-#. module: khawald_project
-#: model_terms:ir.actions.act_window,help:khawald_project.custome_action_view_all_task
-msgid "No tasks found. Let's create one!"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__building_service__not
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__electric_service__not
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__stamp_service__not
-#: model:ir.model.fields.selection,name:khawald_project.selection__internal_property__water_service__not
-msgid "Not Issued"
-msgstr "لم يتم الإصدار"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__owner_id
-msgid "Owner"
-msgstr "المالك"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__paid
-msgid "Paid"
-msgstr "مدفوعة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__parent_id
-msgid "Parent"
-msgstr "المرحلة الأساسية"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__parent_id
-msgid "Parent Task"
-msgstr "المهمة الرئيسية"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Payment Expense"
-msgstr "بنود الصرف"
-
-#. module: khawald_project
-#: model:ir.model.fields,help:khawald_project.field_project_state__rating_percentage_satisfaction
-msgid "Percentage of happy ratings"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.view_project_state_kanban
-msgid "Percentage of happy ratings over the past 30 days."
-msgstr ""
-
-#. module: khawald_project
-#: code:addons/khawald_project/models/project_expense.py:0
-#, python-format
-msgid "Please Contact Administrator to configure your project accounts."
-msgstr "فضلا تواصل مع مسؤول الحسابات لإعداد الحسابات"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Plumb"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_project_state_tree_view
-msgid "Predecessors"
-msgstr "المرحلة الفرعية"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__price
-msgid "Price"
-msgstr "السعر"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__project_id
-#: model:ir.model.fields,field_description:khawald_project.field_project_advantage__project_id
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__project_id
-#: model:ir.model.fields,field_description:khawald_project.field_project_insurance__project_id
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__project_id
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__project_id
-msgid "Project"
-msgstr "المشروع"
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.khawald_project_advantage_action
-#: model:ir.model,name:khawald_project.model_project_advantage
-#: model:ir.ui.menu,name:khawald_project.project_advantage_menu
-msgid "Project Advantage"
-msgstr "مميزات المشروع"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__engineer_id
-msgid "Project Engineer"
-msgstr "مهندس المشروع"
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.khawald_project_expense_action
-#: model:ir.model,name:khawald_project.model_project_expense
-#: model:ir.model,name:khawald_project.model_project_expense_conf
-#: model:ir.model.fields,field_description:khawald_project.field_account_bank_statement_line__project_expense_id
-#: model:ir.model.fields,field_description:khawald_project.field_account_move__project_expense_id
-#: model:ir.model.fields,field_description:khawald_project.field_account_payment__project_expense_id
-#: model:ir.ui.menu,name:khawald_project.project_expense_menu
-msgid "Project Expense"
-msgstr "بنود الصرف"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_face
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_face_ids
-msgid "Project Face"
-msgstr "واجهة المشروع"
-
-#. module: khawald_project
-#: model:ir.model.constraint,message:khawald_project.constraint_project_face_name_uniq
-msgid "Project Face already exists!"
-msgstr "واجهة المشروعى موجودة مسبقا"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_insurance
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Project Insurance"
-msgstr "ضمانات المشروع"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_issue
-msgid "Project Issue"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_project
-msgid "Project Kh Custom"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Project Manager"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__space
-msgid "Project Space"
-msgstr "مساحة المشروع"
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.khawald_project_state_action
-#: model:ir.model,name:khawald_project.model_project_state
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_state_ids
-#: model:ir.ui.menu,name:khawald_project.project_state_menu
-msgid "Project State"
-msgstr "مراحل المشروع"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Project State & Tasks"
-msgstr "المراحل و المهام"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_status
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_status_id
-msgid "Project Status"
-msgstr "حالة المشروع"
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.khawald_project_task_custom_action
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_task_ids
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__project_task_id
-#: model:ir.ui.menu,name:khawald_project.khawald_project_task_custom_menu
-msgid "Project Task"
-msgstr "المهام"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_khawald_project_task
-msgid "Project Task Custom"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.khawald_project_type_action
-#: model:ir.model,name:khawald_project.model_project_type
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__project_type_id
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__project_type_ids
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__project_type_id
-#: model:ir.ui.menu,name:khawald_project.project_type_menu
-msgid "Project Type"
-msgstr "نوع المشروع"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_internal_property
-msgid "Property"
-msgstr "العقار"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_re_unit
-msgid "Property Unit"
-msgstr "وحدات العقار"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__rating_percentage_satisfaction
-msgid "Rating Satisfaction"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Rejected"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Resubmit"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__room_no
-msgid "Room Count"
-msgstr "عدد الغرف"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__sale_space
-msgid "Sale Space"
-msgstr "المساحة المباعة"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid "Sample Approval Report"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.actions.report,name:khawald_project.action_sample_report
-msgid "Sample Approvals"
-msgstr "إعتماد عينة"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__state__sale
-msgid "Selling"
-msgstr "بدء البيع"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.property_form_view_khawald
-msgid "Services"
-msgstr "الخدمات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__is_favorite
-msgid "Show Project on dashboard"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__state__done
-msgid "Sold"
-msgstr "مباع"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__stamp
-msgid "Stamp"
-msgstr "الصك"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__stamp_service
-msgid "Stamp Service"
-msgstr "صك التجزئة"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.property_form_view_khawald
-msgid "Stamping"
-msgstr "الصك"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__stamping_attach
-msgid "Stamping Attach"
-msgstr "مرفق الصك"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__stamping_date
-msgid "Stamping Date"
-msgstr "تاريخ الصك"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__stamping
-msgid "Stamping Number"
-msgstr "رقم الصك"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Start Sale"
-msgstr "بدء البيع"
-
-#. module: khawald_project
-#: model:ir.model.constraint,message:khawald_project.constraint_project_state_name_uniq
-msgid "State name already exists!"
-msgstr "مرحلة المشروع موجودة مسبقا"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__state
-#: model:ir.model.fields,field_description:khawald_project.field_project_status__name
-#: model:ir.model.fields,field_description:khawald_project.field_project_task__state
-msgid "Status"
-msgstr "الحالة"
-
-#. module: khawald_project
-#: model:ir.model.constraint,message:khawald_project.constraint_project_status_name_uniq
-msgid "Status name already exists!"
-msgstr "حالة المشروع موجودة مسبقا"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "Sub-Contractor Approval"
-msgstr "إعتماد مقاول باطن"
-
-#. module: khawald_project
-#: model:ir.actions.report,name:khawald_project.action_sub_contractor_report
-msgid "Sub-Contractor Approvals"
-msgstr "إعتماد مقاول باطن"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__subcontractor_payment_amount
-msgid "Subcontractor Payment"
-msgstr "مدفوعات المقاولين"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "Supervision"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__supervisor_id
-msgid "Supervisor"
-msgstr "مشرف المشروع"
-
-#. module: khawald_project
-#: code:addons/khawald_project/models/project_custom.py:0
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-#, python-format
-msgid "Supplier Payments"
-msgstr "مدفوعات الموردين"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__suppl_payment_amount
-msgid "Supplier Payments Amount"
-msgstr "مبلغ مدفوعات الموردين"
-
-#. module: khawald_project
-#: model:ir.model,name:khawald_project.model_project_task
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__project_task_ids
-msgid "Task"
-msgstr "المهمة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__tasks_time
-msgid "Task Days"
-msgstr "عدد أيام المهمة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_khawald_project_task__description
-msgid "Task Description"
-msgstr "وصف المهمة"
-
-#. module: khawald_project
-#: model:ir.actions.act_window,name:khawald_project.custome_action_view_all_task
-#: model:ir.ui.menu,name:khawald_project.task_menu_project_management
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_project_state_form_view
-msgid "Tasks"
-msgstr "المهام"
-
-#. module: khawald_project
-#: model_terms:ir.actions.act_window,help:khawald_project.custome_action_view_all_task
-msgid ""
-"To get things done, use activities and status on tasks. \n"
-" Chat in real time or by email to collaborate efficiently."
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__total_days
-msgid "Total Days"
-msgstr "إجمالي عدد الأيام"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__total_payment
-msgid "Total Payment"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Total Payments"
-msgstr "الإجمالي"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_re_unit__rent_price
-msgid "Total Price"
-msgstr "إجمالي السعر"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_state__total_tasks
-msgid "Total Tasks"
-msgstr "عدد المهام"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__total_unit
-msgid "Total Unit"
-msgstr "العدد الإجمالي للوحدات"
-
-#. module: khawald_project
-#: model:ir.model.constraint,message:khawald_project.constraint_project_advantage_name_uniq
-#: model:ir.model.constraint,message:khawald_project.constraint_project_type_name_uniq
-msgid "Type name already exists!"
-msgstr "نوع المشروع موجود مسبقا"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__unit_counts
-msgid "Unit Count"
-msgstr "عدد الوحدات"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-msgid "Unit Information"
-msgstr "بيانات الوحدات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__unit_space
-msgid "Unit Space"
-msgstr "مساحة الوحدة"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__unit_count
-msgid "Unit in floor count"
-msgstr "عدد الوحدات في الدور الواحد"
-
-#. module: khawald_project
-#: code:addons/khawald_project/models/project_custom.py:0
-#: model_terms:ir.ui.view,arch_db:khawald_project.khawald_edit_project_customs
-#, python-format
-msgid "Units"
-msgstr "الوحدات"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_expense__partner_id
-msgid "Vendor"
-msgstr "المورد"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_type__name__vila
-msgid "Vila"
-msgstr "فيلا"
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_internal_property__water_service
-msgid "Water Service"
-msgstr "المياه و الصرف"
-
-#. module: khawald_project
-#: model:ir.model.fields,help:khawald_project.field_project_state__is_favorite
-msgid "Whether this project should be displayed on your dashboard."
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.ui.menu,name:khawald_project.project_resource_calendar_menu
-msgid "Working Times"
-msgstr "فترات العمل"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_insurance__duration_kind__year
-msgid "Year"
-msgstr "سنة"
-
-#. module: khawald_project
-#: model:ir.model.fields.selection,name:khawald_project.selection__project_project__basement__yes
-msgid "Yes"
-msgstr "نعم"
-
-#. module: khawald_project
-#: code:addons/khawald_project/models/project_conf.py:0
-#, python-format
-msgid "You cannot create recursive state."
-msgstr "لا يمكن إنشاء مراحل متكررة"
-
-#. module: khawald_project
-#: code:addons/khawald_project/models/project_conf.py:0
-#, python-format
-msgid "You cannot create recursive task."
-msgstr "لا يمكن إنشاء مهام متكررة"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "_________________________________"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid ""
-"____________________________________________________________________________________________________________________\n"
-" الملاحظات/Notes"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"_______________________________________________________________________________________________________________________\n"
-" القرارات و التوصيات/Recommendation"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"_______________________________________________________________________________________________________________________________________________________________"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid ""
-"____________________________________________________________________________________وصف\n"
-" المواد/Material Description"
-msgstr ""
-
-#. module: khawald_project
-#: model:ir.model.fields,field_description:khawald_project.field_project_project__kitchen_no
-msgid "kitchen Count"
-msgstr "عدد المطابخ"
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "إدارة المشروعات/Project Management"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid ""
-"إسم\n"
-" المقاول/Contractor"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"إسم المقاول الرئيسي المطلوب\n"
-" إعتمادة"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid "إسم المورد/"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "إعتماد مقاول من الباطن"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "استلام المقاول"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"اسم\n"
-" المبنى/Building Name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "اسم المشروع/Project Name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid "اسم المقاول/Contractor"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "اعتيادي"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "الأسم/Name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "الأسم/name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "الأسم:"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid ""
-"الأعمال\n"
-" المطلوب فحصها"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "البند السايق"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "التاريخ/Date"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "التاريخ:"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "التحقق من إنتهاء الملاحظات/Verification"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "التقيم/Evaluation"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "التوقيع/Signature"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "التوقيع/signature"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "التوقيع:"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "المدير العام/General Manager"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "المرفقات"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "المستلم/Receiver"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "المشرف"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"المقاول\n"
-" الرئيسي/Contractor"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "المهندس"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "بملاحظات/Approved As Noted"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"بيان\n"
-" الأعمال/Items Name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid ""
-"بيان\n"
-" المواد/Material Name"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"تاريخ\n"
-" الإستلام/Date Receive"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"تاريخ\n"
-" الطلب/Request Date"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "تاريخ التحقق/verification date"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "تشطيبات"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-msgid "تقرير إعتماد عينة"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "تكيف"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "تم"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid ""
-"رقم\n"
-" الطلب/Request No"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.daily_report_template
-msgid ""
-"صحو ماطر"
-" رياح"
-" غبار"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "صحي"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "طلب فحص أعمال"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "كهرباء"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "لم يتم"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "مدير المشاريع/Project Manager"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "مدير المشروع"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "مدير المشروع/Project Manager"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "مرفوض"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "مرفوض/Rejected"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "معتمد"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "معتمد بشروط"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "مقبول/Approve"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "مهندس الإشراف/Supervisor"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "ميكانيكا"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.inspection_report_template
-msgid "نتائج الفحص/Inspector"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "نتيجة الفحص/Inspection Result"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "نوع الأعمال/Type of"
-msgstr ""
-
-#. module: khawald_project
-#: model_terms:ir.ui.view,arch_db:khawald_project.sample_report_template
-#: model_terms:ir.ui.view,arch_db:khawald_project.sub_contractor_report_template
-msgid "يعاد التقيم"
-msgstr ""
-
-#. module: project
-#: code:addons/project/models/project.py:0
-#: model:ir.model.fields,field_description:project.field_project_task__partner_id
-#: model:ir.model.fields,field_description:project.field_report_project_task_user__partner_id
-#, python-format
-msgid "Customer"
-msgstr "المورد/ المكتب الهندسي"
-
-#. module: resource
-#: model:ir.model.fields,field_description:resource.field_resource_calendar__hours_per_day
-msgid "Average Hour per Day"
-msgstr "متوسط ساعات العمل"
-
-#. module: resource
-#: model:ir.model.fields,field_description:resource.field_resource_calendar__global_leave_ids
-#: model_terms:ir.ui.view,arch_db:resource.resource_calendar_form
-msgid "Global Time Off"
-msgstr "الإجازات الرسمية"
-
diff --git a/odex25_realstate/khawald_project/models/__init__.py b/odex25_realstate/khawald_project/models/__init__.py
deleted file mode 100644
index 187f3e963..000000000
--- a/odex25_realstate/khawald_project/models/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import project_conf
-from . import project_task
-from . import project_expense
-from . import project_insurance
-from . import internal_property
-from . import re_unit
-from . import project_custom
diff --git a/odex25_realstate/khawald_project/models/internal_property.py b/odex25_realstate/khawald_project/models/internal_property.py
deleted file mode 100644
index b90eaea19..000000000
--- a/odex25_realstate/khawald_project/models/internal_property.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-
-class InternalProperty(models.Model):
- _inherit = "internal.property"
-
- project_id = fields.Many2one('project.project', string="Project")
- advantage_ids = fields.Many2many('project.advantage', related="project_id.advantage_ids", string="Advantage",
- ondelete="cascade")
- advantage_price = fields.Float(string="Advantage Price", compute="get_advantage_price")
- electric_service = fields.Selection([('issued', 'Issued'),
- ('not', 'Not Issued')], string="Electric Service", default='not')
- water_service = fields.Selection([('issued', 'Issued'),
- ('not', 'Not Issued')], string="Water Service", default='not')
- stamp_service = fields.Selection([('issued', 'Issued'),
- ('not', 'Not Issued')], string="Stamp Service", default='not')
- building_service = fields.Selection([('issued', 'Issued'),
- ('not', 'Not Issued')], string="Building Certificate", default='not')
-
- @api.depends('property_space', 'meter_price', 'advantage_price')
- def get_total_price(self):
- for rec in self:
- rec.total_price = rec.advantage_price + (rec.meter_price * rec.property_space)
-
- @api.depends('advantage_ids', 'advantage_ids.price')
- def get_advantage_price(self):
- price = 0.0
- for rec in self:
- if rec.advantage_ids:
- price = sum([line.price for line in rec.advantage_ids])
- rec.advantage_price = price
diff --git a/odex25_realstate/khawald_project/models/project_conf.py b/odex25_realstate/khawald_project/models/project_conf.py
deleted file mode 100644
index cd0a71391..000000000
--- a/odex25_realstate/khawald_project/models/project_conf.py
+++ /dev/null
@@ -1,161 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
-from random import randint
-
-class ProjectExpenseConf(models.Model):
- _name = 'project.expense.conf'
- _description = "Project Expense"
-
- name = fields.Char(string="Name")
-
-
-class ProjectTasks(models.Model):
- _name = 'khawald.project.task'
- _description = "Project Task Custom"
-
- name = fields.Char(string="Name")
- tasks_time = fields.Char(string="Task Days")
- description = fields.Text(string="Task Description")
- parent_id = fields.Many2one('khawald.project.task', string="Parent Task")
-
- @api.constrains('parent_id')
- def _check_parent_id(self):
- if not self._check_recursion():
- raise ValidationError(_('You cannot create recursive task.'))
-
-
-class ProjectState(models.Model):
- _name = 'project.state'
- _description = "Project State"
-
- def _get_default_color(self):
- return randint(1, 11)
-
- name = fields.Char(string="Name")
- dependency_id = fields.Many2one('project.state', string="Dependency")
- parent_id = fields.Many2one('project.state', string="Parent")
- project_type_ids = fields.Many2many('project.type', 'project_type_state_rel', string="Project Type")
- project_id = fields.Many2one('project.project', string="Project", ondelete="cascade")
- project_task_ids = fields.Many2many('khawald.project.task', string="Task")
- total_tasks = fields.Integer(dtring="Total of Tasks", compute="get_total_task", store=True)
- default = fields.Boolean(string="Default")
- color = fields.Integer(string='Color', default=_get_default_color)
- rating_active = fields.Boolean('Customer Ratings',
- default=lambda self: self.env.user.has_group('project.group_project_rating'))
- rating_percentage_satisfaction = fields.Integer(
- "Rating Satisfaction",
- default=1, help="Percentage of happy ratings")
- is_favorite = fields.Boolean( string='Show Project on dashboard',default=True,
- help="Whether this project should be displayed on your dashboard.")
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "State name already exists!"),
- ]
-
- @api.depends('project_task_ids')
- def get_total_task(self):
- print(self, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>111111111")
- for rec in self:
- rec.total_tasks = len(rec.project_task_ids)
-
-
- @api.constrains('parent_id')
- def _check_parent_id(self):
- if not self._check_recursion():
- raise ValidationError(_('You cannot create recursive state.'))
-
-
-class ProjectType(models.Model):
- _name = 'project.type'
- _description = 'Project Type'
-
- def _get_default_color(self):
- return randint(1, 11)
-
- name = fields.Selection([('apartment', 'Apartment'),
- ('vila', 'Vila'),
- ('construction','Construction'),
- ('general_service','General Service'),
- ('oil_gas','Oil & Gas'),
- ('mining','Mining')], string="Name")
- color = fields.Integer(string='Color', default=_get_default_color)
-
-
- @api.depends('name')
- def name_get(self):
- res = []
- for record in self:
- name = dict(record.fields_get(allfields=['name'])['name']['selection'])[record.name]
- res.append((record.id, name))
- return res
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Type name already exists!"),
- ]
-
-
-
-class ProjectIssues(models.Model):
- _name = 'project.issue'
- _description = 'Project Issue'
-
- name = fields.Char(string="Issue")
-
-
-class ProjectStatus(models.Model):
- _name = 'project.status'
- _description = 'Project Status'
-
- name = fields.Char(string="Status", required=True)
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Status name already exists!"),
- ]
-
-
-class LandState(models.Model):
- _name = 'land.state'
- _description = 'Land State'
-
- name = fields.Char(string="Land Sate", required=True)
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Land State name already exists!"),
- ]
-
-
-class ProjectFace(models.Model):
- _name = 'project.face'
- _description = 'Project Face'
-
- name = fields.Char(string="Face", required=True)
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Project Face already exists!"),
- ]
-
-
-class ProjectAdvantage(models.Model):
- _name = 'project.advantage'
- _description = 'Project Advantage'
-
- name = fields.Char(string="Advantage Name")
- price = fields.Monetary(string="Price", currency_field='company_currency_id')
- company_id = fields.Many2one('res.company', required=True, readonly=True, default=lambda self: self.env.company)
- company_currency_id = fields.Many2one(string='Company Currency', readonly=True,
- related='company_id.currency_id')
- project_id = fields.Many2one('project.project', string="Project", ondelete="cascade")
-
-
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Type name already exists!"),
- ]
diff --git a/odex25_realstate/khawald_project/models/project_custom.py b/odex25_realstate/khawald_project/models/project_custom.py
deleted file mode 100644
index a75fc49d9..000000000
--- a/odex25_realstate/khawald_project/models/project_custom.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-import string
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-from odoo import models, fields, api, _
-from odoo.exceptions import UserError
-
-
-class ProjectCustom(models.Model):
- _inherit = 'project.project'
- _description = "Khawald Project"
-
- project_type_id = fields.Many2one('project.type', string="Project Type")
- # project_status_id = fields.Many2one('project.status', string="Project Status")
- land_state_id = fields.Many2one('land.state', string="Land State")
- project_face_ids = fields.Many2many('project.face', string="Project Face")
- basement = fields.Selection([('yes', 'Yes'),
- ('no', 'NO')], string="Basement Available ?", default='no')
- owner_id = fields.Many2one('res.partner', string="Owner")
- agent_id = fields.Many2one('res.partner', string="GOV Agent")
- supervisor_id = fields.Many2one('res.partner', string="Supervisor")
- engineer_id = fields.Many2one('res.partner', string="Project Engineer")
- stamp = fields.Char(string="Stamp")
- building_license = fields.Char(string="Building License")
- building_certificate = fields.Char(string="Building Certificate")
- insurance_policy = fields.Char(string="Insurance Policy")
- space = fields.Float(string="Project Space")
- land_space = fields.Float(string="Land Space")
- building_factor = fields.Char(string="Building Factor")
- sale_space = fields.Char(string="Sale Space")
- location_x = fields.Char(string="Location X")
- location_y = fields.Char(string="Location Y")
- total_days = fields.Char(string="Total Days", compute="get_work_days", stroe=True)
- building_count = fields.Integer(string="Building count")
- floor_count = fields.Integer(string="Floor count")
- unit_count = fields.Integer(string="Unit in floor count")
- unit_space = fields.Float(string="Unit Space")
- total_unit = fields.Float(string="Total Unit", compute="get_unit_count", store=True)
- advantage_ids = fields.Many2many('project.advantage', string="Advantage", ondelete="cascade")
- project_state_ids = fields.Many2many('project.state', string="Project State", ondelete="cascade")
- project_task_ids = fields.Many2many('khawald.project.task', string="Project Task", ondelete="cascade")
- project_insurance_ids = fields.One2many('project.insurance', 'project_id', string="Insurance")
- invoice_ref = fields.Char(string="Contract/Invoice REF")
- state = fields.Selection([('draft', 'In Progress'),
- ('in_progess', 'In Executing'),
- ('sale', 'Selling'),
- ('done', 'Sold'),
- ('cancel', 'Cancelled'), ], string="Status", default='draft')
- created = fields.Boolean(string="Created")
- unit_counts = fields.Integer(string='Unit Count', compute='count_unit_number')
- project_expense_ids = fields.One2many('project.expense', 'project_id', string="Expense")
- stamping = fields.Char(string="Stamping Number")
- stamping_date = fields.Date(string="Stamping Date")
- stamping_attach = fields.Binary("Stamping Attach", attachment=True)
-
- room_no = fields.Integer(string="Room Count")
- bathroom_no = fields.Integer(string="Bathroom Count")
- hall_no = fields.Integer(string="Hall Count")
- kitchen_no = fields.Integer(string="kitchen Count")
-
- suppl_payment_amount = fields.Float('Supplier Payments Amount', compute="get_payment_amount")
- engineer_payment_amount = fields.Float('Engineering Payment', compute="get_payment_amount")
- subcontractor_payment_amount = fields.Float('Subcontractor Payment', compute="get_payment_amount")
- total_payment = fields.Float('Total Payment', compute="get_payment_amount")
-
-
- def count_unit_number(self):
- unit_count = self.env['re.unit'].search_count([('project_id', '=', self.id)])
- self.unit_counts = unit_count
-
- def get_unit(self):
- unit_ids = self.env['re.unit'].search(
- [('project_id', '=', self.id)])
- form_id = self.env.ref('real_estate.unit_form_view').id
- domain = [('id', 'in', unit_ids.ids)]
- return {
- 'name': _('Units'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 're.unit',
- 'views': [(False, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
-
- def get_payment_amount(self):
- suppl_payment_amount = sum(self.project_expense_ids.mapped('amount'))
- engineering_payment_ids = self.env['project.payment.request'].search([('project_id', '=', self.id),
- ('type', '=', 'eng_office')])
- subcontractor_payment_ids = self.env['project.payment.request'].search([('project_id', '=', self.id),
- ('type', '=', 'subcontractor')])
-
- self.suppl_payment_amount = suppl_payment_amount
- self.engineer_payment_amount = sum(engineering_payment_ids.mapped('amount'))
- self.subcontractor_payment_amount = sum(subcontractor_payment_ids.mapped('amount'))
- self.total_payment = suppl_payment_amount + sum(engineering_payment_ids.mapped('amount')) + sum(subcontractor_payment_ids.mapped('amount'))
-
-
- def get_supplier_payment(self):
- domain = [('id', 'in', self.project_expense_ids.ids)]
- tree_id = self.env.ref('khawald_project.project_expense_tree_view').id
- return {
- 'name': _('Supplier Payments'),
- 'view_type': 'form',
- 'view_mode': 'tree',
- 'res_model': 'project.expense',
- 'views': [(tree_id, 'tree')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
- @api.model
- def create(self, vals):
- res = super(ProjectCustom, self).create(vals)
- for line in res:
- for tasks in line.project_task_ids:
- self.env['project.task'].create({
- 'name': tasks.name,
- 'project_id': line.id,
- 'days': tasks.tasks_time,
- 'description': tasks.description,
- 'project_type_id': line.project_type_id.id,
- 'project_task_id': tasks.id,
- 'state': 'draft'
- })
- return res
-
- def create_unit_building(self):
- letters = list(string.ascii_uppercase)
- for rec in self:
- no_unit = rec.total_unit / rec.building_count
- for building in range(rec.building_count):
- build = self.env['internal.property'].create({
- 'name': rec.code + '/' + letters[
- building] if building <= 26 else rec.code + '/' + building if rec.project_type_id.name == 'apartment' else rec.code,
- 'city_id': rec.city.id,
- 'project_id': rec.id,
- 'floors_count': rec.floor_count,
- 'unit_floor_count': rec.unit_count,
- 'district_id': rec.district.id,
- 'stamping': rec.stamping,
- 'stamping_date': rec.stamping_date,
- 'stamping_attach': rec.stamping_attach,
- 'room_no':rec.room_no * rec.total_unit,
- 'bathroom_no':rec.bathroom_no * rec.total_unit,
- 'hall_no':rec.hall_no * rec.total_unit,
- 'kitchen_no':rec.kitchen_no * rec.total_unit,})
- for unit in range(int(no_unit)):
- self.env['re.unit'].create({
- 'name': build.name + '/' + str(unit + 1),
- 'project_id': rec.id,
- 'space': rec.unit_space,
- 'property_id': build.id,
- 'stamping': rec.stamping,
- 'stamping_date': rec.stamping_date,
- 'stamping_attach': rec.stamping_attach,
- 'room_no':rec.room_no,
- 'bathroom_no':rec.bathroom_no,
- 'hall_no':rec.hall_no,
- 'kitchen_no':rec.kitchen_no,})
- rec.created = True
-
- def action_selling(self):
- self.state = 'sale'
-
- @api.onchange('project_type_id')
- def set_state_project(self):
- """
- set project tasks and state based on project type
- :return:
- """
- task_ids = []
- if self._context.get('project_type_id'):
- for record in self:
- state_ids = self.env['project.state'].search(
- [('project_type_ids', 'in', [self._context.get('project_type_id')]), ('default', '=', True)])
- for state in state_ids:
- for line in state.project_task_ids:
- task_ids.append(line.id)
- record.write({'project_state_ids': state_ids.ids,
- 'project_task_ids': task_ids })
-
-
- @api.onchange('project_state_ids')
- def onchange_project_state_ids(self):
- """ get task related with state """
-
- self.project_task_ids = self.project_state_ids.mapped('project_task_ids').ids
-
-
- @api.depends('floor_count', 'unit_count')
- def get_unit_count(self):
- for rec in self:
- rec.total_unit = (rec.floor_count * rec.unit_count) * rec.building_count
-
- @api.depends('resource_calendar_id', 'date_start', 'date')
- def get_work_days(self):
- for rec in self:
- rec.total_days = 0.0
- if rec.date_start and rec.date_end:
- date_start = datetime.strptime(datetime.strftime(rec.date_start, '%Y-%m-%d'), '%Y-%m-%d')
- date_end = datetime.strptime(datetime.strftime(rec.date_end, '%Y-%m-%d'), '%Y-%m-%d')
- duration_data = self.resource_calendar_id.get_work_duration_data(date_start, date_end)
- rec.total_days = duration_data['days']
-
-
diff --git a/odex25_realstate/khawald_project/models/project_expense.py b/odex25_realstate/khawald_project/models/project_expense.py
deleted file mode 100644
index 5294484d3..000000000
--- a/odex25_realstate/khawald_project/models/project_expense.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import UserError
-
-class ProjectExpense(models.Model):
- _name = 'project.expense'
- _description = "Project Expense"
-
- name = fields.Many2one('project.expense.conf',string="Description")
- partner_id = fields.Many2one('res.partner', string="Vendor")
- project_id = fields.Many2one('project.project', string="Project")
- date = fields.Date(string="Date", default=fields.Date.context_today)
- amount = fields.Float(string="Amount")
- paid = fields.Boolean(string="Paid")
- invoice_id = fields.Many2one('account.move', string="Invoice")
-
- def _prepare_invoice_values(self, expense, name_spec, account_id, amount):
- invoice_vals = {
- 'ref': expense.name.name,
- 'move_type': 'in_invoice',
- 'invoice_origin': expense.name.name,
- 'invoice_user_id': self.env.user.id,
- 'invoice_date': expense.date,
- 'project_expense_id': expense.id,
- 'invoice_date_due': expense.date,
- 'narration': expense.name.name,
- 'partner_id': expense.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': name_spec,
- 'price_unit': amount,
- 'quantity': 1.0,
- 'account_id': account_id.id,
- })],
- }
-
- return invoice_vals
-
- def create_invoice(self):
- if not self.project_id.project_expenses_account_id or not self.project_id.project_investment_account_id:
- raise UserError(_('Please Contact Administrator to configure your project accounts.'))
- if self.project_id.project_owner_type == 'company':
- account_id = self.project_id.project_expenses_account_id
- else:
- account_id = self.project_id.project_investment_account_id
- name_spec = 'Expense Reference:' + str(self.name.name) + '-' + str(self.project_id.name)
- invoice = self._prepare_invoice_values(self, name_spec, account_id, self.amount)
- invoice_id = self.env['account.move'].sudo().create(invoice).with_user(self.env.uid)
- self.write({'invoice_id': invoice_id.id})
-
-
-class AccountInvoice(models.Model):
- _inherit = 'account.move'
-
- project_expense_id = fields.Many2one('project.expense', string='Project Expense')
-
- def action_post(self):
- res = super(AccountInvoice, self).action_post()
- if self.project_expense_id:
- self.project_expense_id.paid = True
- return res
diff --git a/odex25_realstate/khawald_project/models/project_insurance.py b/odex25_realstate/khawald_project/models/project_insurance.py
deleted file mode 100644
index a360ad43c..000000000
--- a/odex25_realstate/khawald_project/models/project_insurance.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from datetime import datetime
-from odoo import models, fields, api, _
-from odoo.exceptions import UserError
-from dateutil.relativedelta import relativedelta
-
-class ProjectInsurance(models.Model):
- _name = 'project.insurance'
- _description = "Project Insurance"
- _rec_name = ''
-
- partner_id = fields.Many2one('res.partner', string="Insurance Provider")
- project_insur_line_id = fields.Many2one('project.insurance.line',string='Description')
- project_id = fields.Many2one('project.project', string="Project")
- duration = fields.Integer(string="Insurance Duration", default=1)
- duration_kind = fields.Selection([('year', 'Year'),
- ('month', 'Month'),
- ], string="Duration Kind", default='year')
- date_from = fields.Date(string="Date from", default=fields.Date.today)
- date_to = fields.Date(string="Date To", compute="get_to_date", store=True)
-
- @api.depends('date_from', 'duration', 'duration_kind')
- def get_to_date(self):
- for rec in self:
- if rec.date_from and rec.duration and rec.duration_kind:
- date_from = datetime.strptime(datetime.strftime(rec.date_from, '%Y-%m-%d'), '%Y-%m-%d').date()
- date_from = date_from - relativedelta(days=int(1))
- if rec.duration_kind == 'year':
- date_to = date_from + relativedelta(years=int(rec.duration))
- rec.date_to = date_to.strftime('%Y-%m-%d')
- elif rec.duration_kind == 'month':
- date_to = date_from + relativedelta(months=int(rec.duration))
- rec.date_to = date_to.strftime('%Y-%m-%d')
-
-
-class ProjectInsuranceLine(models.Model):
- _name = 'project.insurance.line'
- _description = "Project Insurance Line"
-
- name = fields.Char(string='Name', required=True)
diff --git a/odex25_realstate/khawald_project/models/project_task.py b/odex25_realstate/khawald_project/models/project_task.py
deleted file mode 100644
index 3d4271b36..000000000
--- a/odex25_realstate/khawald_project/models/project_task.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-
-from odoo import models, fields, tools, _
-
-class ProjectTask(models.Model):
- _inherit = "project.task"
-
- days = fields.Integer(string="Days To be done")
- project_type_id = fields.Many2one('project.type', string="Project Type", ondelete="cascade")
- project_task_id = fields.Many2one('khawald.project.task')
- state = fields.Selection([('draft', 'Draft'),
- ('done', 'Done')], string="Status", default='draft')
- marketing = fields.Boolean(string="Marketing")
- email_formatted = fields.Char(string="Formatted Email")
- completion_rate = fields.Float('Completion Rate')
-
- # def notification_message(self, group):
- # receiver = []
- # groups = []
- # for ref in group:
- # group_id = self.env.ref(ref).id
- # groups.append(group_id)
- # domain = [('id', 'in', groups)]
- # group_ids = self.env['res.groups'].search(domain)
- # if len(group_ids)> 1:
- # for group in group_ids:
- # for user in group.users:
- # if user.partner_id not in receiver:
- # receiver.append(user.partner_id)
- # else:
- # for user in group_ids.users:
- # if user.partner_id not in receiver:
- # receiver.append(user.partner_id)
- # return receiver
-
- # def compute_email(self, receiver):
- # email_formatted = []
- # final_receiver = receiver[0]
- # count = len(final_receiver)
- # for partner in range(count):
- # if final_receiver[partner].email:
- # email_formatted.append(tools.formataddr((final_receiver[partner].name or u"False", final_receiver[partner].email or u"False")))
- # else:
- # email_formatted = []
- # return email_formatted
-
- # def action_draft(self):
- # self.write({'state': 'draft'})
-
- # def action_done(self):
- # for rec in self:
- # rec.write({'state': 'done'})
- # # Internal User Notification
- # if rec.marketing:
- # receiver = rec.notification_message(['real_estate_marketing.group_marketer_manager_user', 'real_estate_marketing.group_marketer_normal_user'])
- # email = rec.compute_email(receiver)
- # email = ','.join(email)
- # rec.email_formatted = email
- # template = rec.env.ref('khawald_project.template_marketing_task_complete', raise_if_not_found=False)
- # ctx = dict(rec._context)
- # ctx.update({
- # 'model': rec._name
- # })
- # if template:
- # template.sudo().with_context(ctx).send_mail(rec.id, force_send=True)
-
diff --git a/odex25_realstate/khawald_project/models/re_unit.py b/odex25_realstate/khawald_project/models/re_unit.py
deleted file mode 100644
index 9557b401c..000000000
--- a/odex25_realstate/khawald_project/models/re_unit.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-
-class ReUnit(models.Model):
- _inherit = "re.unit"
-
- project_id = fields.Many2one('project.project', string="Project")
- change_price = fields.Boolean(string="Change Meter Price", tracking=True)
- new_price = fields.Float(string="New Price", tracking=True)
- meter_price = fields.Float(string="Meter Price", store=True, digits=(16, 2), tracking=True)
- rent_price = fields.Float(string="Total Price", compute="get_rent_price", tracking=True, store=True)
- advantage_ids = fields.Many2many('project.advantage', related="project_id.advantage_ids", string="Advantage",
- ondelete="cascade")
-
- @api.depends('external_space', 'change_price', 'meter_price', 'new_price', 'advantage_ids', 'advantage_ids.price')
- def get_rent_price(self):
- rent_price = 0.0
- advantage_price = 0.0
- for rec in self:
- if rec.advantage_ids:
- advantage_price = sum([rec.price for rec in self.advantage_ids])
- if rec.meter_price:
- rent_price = rec.meter_price * rec.space
- if rec.external_price and rec.external_space:
- rent_price += rec.external_space * rec.external_price
- if rec.change_price:
- rent_price = rec.new_price
- rec.rent_price = rent_price + advantage_price
diff --git a/odex25_realstate/khawald_project/report/daily_report_template.xml b/odex25_realstate/khawald_project/report/daily_report_template.xml
deleted file mode 100644
index dc074e50e..000000000
--- a/odex25_realstate/khawald_project/report/daily_report_template.xml
+++ /dev/null
@@ -1,274 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
تــقريـــر يومـــــي رقم ( ) لمشــــــروع :
-
-
-
-
-
-
-
- العمالة
- العدد
- الجهاز الفني والإداري
- العدد
-
-
- حارس
-
- مدير مشروع
-
-
-
-
- عمال موقع
-
- مهندس موقع
-
-
-
-
- سائق
-
- مهندس كهربا
-
-
-
-
- حداد
-
-
-
-
-
-
- مساعد حداد
-
-
-
-
-
-
- نجار
-
-
-
-
-
-
- مساعد نجار
-
-
-
-
-
-
-
-
-
-
-
-
- إجمالي العمالة
-
- إجمالي الفنيين والإداريين
-
-
-
- مقاولي الباطن
- العدد
-
-
-
- مقاول الدفان
-
-
-
-
- مقاول لم يتم ارسال العقد
-
-
-
-
- مقاول زهرة رغد
-
-
-
-
-
-
-
-
- الإجمالي
-
-
-
-
- المعدات
- العدد
- المعدات
- العدد
-
-
-
- سيارات صغيره
-
- بلدوز
-
-
-
- ألة ثني الحديد
-
- بوكلين
-
-
-
- جاك همر
-
- كرين
-
-
-
- منشار خشب
-
- تريلة
-
-
-
- دكاكة صغيرة
-
- كمبروسر كبير
-
-
-
- هزاز خرسانه
-
- رصاصه كبيره
-
-
-
- مضخة مياه
-
- بوبكات
-
-
-
- مولد كهرباء
-
- غريدر
-
-
-
-
-
-
-
-
-
-
- إجمالي المعدات بالموقع
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/report/inspection_report_template.xml b/odex25_realstate/khawald_project/report/inspection_report_template.xml
deleted file mode 100644
index 902663fc9..000000000
--- a/odex25_realstate/khawald_project/report/inspection_report_template.xml
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- طلب فحص أعمال
-
-
-
-
- Inspection Request
-
-
-
- اسم المبنى/Building Name
- اسم المشروع/Project Name:
-
-
-
- تاريخ الطلب/Request Date
- رقم الطلب/Request No
- إسم المقاول/Contractor
-
-
-
-
-
- الأعمال المطلوب فحصها
-
-
- نوع الأعمال/Type of work
-
- التفاصيل
-
-
-
- ميكانيكا
- Mech.
-
-
- كهرباء
- Elc.
-
-
- تشطيبات
- Finishing
-
-
- اعتيادي
- Civil.
-
-
-
-
- التوقيع/signature
- الأسم/Name
-
- المهندس
-
-
-
-
- ميكانيكا
- Mech.
-
-
- تكيف
- AC
-
-
- كهرباء
- Elc.
-
-
- صحي
- Plumb
-
-
- اعتيادي
- Civil.
-
- البند السابق
-
-
-
- تم
- لم يتم
- تم
- لم يتم
- تم
- لم يتم
- تم
- لم يتم
- تم
- لم يتم
-
-
-
-
-
-
-
-
-
- نتائج الفحص/Inspector
-
-
-
- مقبول/Approve
- مقبول بملاحظات/Approved As Noted
- مرفوض/Rejected
-
-
-
- الملاحظات/Notes
-
-
-
-
-
- المشرف
- Supervision
-
-
- الأسم/name
- التوقيع/signature
- التاريخ/Date
-
-
- مدير المشروع
- Project Manager
-
-
- الأسم/name
- التوقيع/signature
- التاريخ/Date
-
-
-
- التحقق من إنتهاء الملاحظات/Verification
-
-
-
-
- تاريخ التحقق/verification date
- مهندس الإشراف/Supervisor
- التوقيع/Signature
-
-
-
-
-
-
-
- Done تم Not Done لم يتم
- مدير المشروع/Project Manager
- التاريخ/Date
-
-
-
-
-
-
-
-
-
- استلام المقاول
- Contractor
-
-
- الأسم:
-
-
- التوقيع:
-
-
- التاريخ:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/report/report_action.xml b/odex25_realstate/khawald_project/report/report_action.xml
deleted file mode 100644
index a3d454a5d..000000000
--- a/odex25_realstate/khawald_project/report/report_action.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
- Project Report
-
- custom
- Portrait
- 15
- 15
- 5
- 5
-
- 5
- 150
-
-
-
- Sub-Contractor Approvals
- project.project
- qweb-pdf
- khawald_project.sub_contractor_report_template
- khawald_project.sub_contractor_report_template
-
- True
-
-
-
- Sample Approvals
- project.project
- qweb-pdf
- khawald_project.sample_report_template
- khawald_project.sample_report_template
-
- True
-
-
-
-
- Inspection Request
- project.project
- qweb-pdf
- khawald_project.inspection_report_template
- khawald_project.inspection_report_template
-
- True
-
-
-
- Daily Report
- project.project
- qweb-pdf
- khawald_project.daily_report_template
- khawald_project.daily_report_template
-
- True
-
-
-
diff --git a/odex25_realstate/khawald_project/report/sample_report_template.xml b/odex25_realstate/khawald_project/report/sample_report_template.xml
deleted file mode 100644
index 633fb6998..000000000
--- a/odex25_realstate/khawald_project/report/sample_report_template.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- تقرير إعتماد عينة
-
-
-
-
- Sample Approval Report
-
-
-
- اسم المبنى/Building Name
- اسم المشروع/Project Name:
-
-
- تاريخ الطلب/Request Date
- رقم الطلب/Request No
-
- اسم المقاول/Contractor
-
-
-
-
-
-
- بيان المواد/Material Name
-
-
-
-
- نوع الأعمال/Type of work
-
-
- بيان الأعمال/Items Name
-
-
-
-
- ميكانيكا
- Mech.
-
-
- كهرباء
- Elc.
-
-
- تشطيبات
- Finishing
-
-
- اعتيادي
- Civil.
-
- وصف المواد/Material Description
-
-
- إسم المورد/
- المرفقات
-
-
-
- نتيجة الفحص/Inspection Result
-
-
-
- التقيم/Evaluation
- تاريخ الإستلام/Date Receive
-
-
-
- معتمد
- Approve
-
- A
-
- معتمد بشروط
- Approved As Noted
-
- B
-
- يعاد التقيم
- Resubmit
-
- C
-
- مرفوض
- Rejected
-
- D
- المستلم/Receiver
-
-
-
- القرارات و التوصيات/Recommendation
-
-
-
-
-
-
-
-
-
- إدارة المشروعات/Project Management
-
-
-
-
- الأسم/name
- التوقيع/signature
- التاريخ/Date
-
-
- المدير العام/General Manager
-
-
- الأسم/name
-
- التوقيع/signature
- التاريخ/Date
-
-
- مدير المشاريع/Project Manager
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/report/sub_contractor_report_template.xml b/odex25_realstate/khawald_project/report/sub_contractor_report_template.xml
deleted file mode 100644
index d9f34d60b..000000000
--- a/odex25_realstate/khawald_project/report/sub_contractor_report_template.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- إعتماد مقاول من الباطن
-
-
-
- Sub-Contractor Approval
-
-
-
- اسم المبنى/Building Name
- اسم المشروع/Project Name:
-
-
- تاريخ الطلب/Request Date
- رقم الطلب/Request No
-
- المقاول الرئيسي/Contractor
-
-
-
-
-
-
- نوع الأعمال/Type of work
-
- بيان الأعمال/Items Name
-
-
-
- ميكانيكا
- Mech.
-
-
- كهرباء
- Elc.
-
-
- تشطيبات
- Finishing
-
-
- اعتيادي
- Civil.
-
-
-
-
-
- إسم المقاول الرئيسي المطلوب إعتمادة
-
-
-
-
- المرفقات
-
-
- نتيجة الفحص/Inspection Result
-
-
- التقيم/Evaluation
- تاريخ الإستلام/Date Receive
-
-
-
- معتمد
- Approve
-
- A
-
- معتمد بشروط
- Approved As Noted
-
- B
-
- يعاد التقيم
- Resubmit
-
- C
-
- مرفوض
- Rejected
-
- D
- المستلم/Receiver
-
-
-
- القرارات و التوصيات/Recommendation
-
-
-
-
-
-
-
-
-
-
-
-
- إدارة المشروعات/Project Management
-
-
-
-
- الأسم/name
- التوقيع/signature
- التاريخ/Date
-
-
- المدير العام/General Manager
-
-
- الأسم/name
-
- التوقيع/signature
- التاريخ/Date
-
-
- مدير المشاريع/Project Manager
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/security/ir.model.access.csv b/odex25_realstate/khawald_project/security/ir.model.access.csv
deleted file mode 100644
index 7074694a0..000000000
--- a/odex25_realstate/khawald_project/security/ir.model.access.csv
+++ /dev/null
@@ -1,23 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_project_state,project.state,model_project_state,project.group_project_manager,1,1,1,1
-access_project_expense,project.expense,model_project_expense,project.group_project_manager,1,1,1,1
-access_project_expense_conf,project.expense.conf,model_project_expense_conf,project.group_project_manager,1,1,1,1
-access_project_expense_conf_user,project.expense.conf,model_project_expense_conf,project.group_project_user,1,1,1,0
-access_project_expense_user,project.expense,model_project_expense,project.group_project_user,1,1,1,0
-access_khawald_project_task,khawald.project.task,model_khawald_project_task,project.group_project_manager,1,1,1,1
-access_project_state_user,project.state,model_project_state,project.group_project_user,1,0,0,0
-access_khawald_project_task_user,khawald.project.task,model_khawald_project_task,project.group_project_user,1,0,0,0
-access_project_type,project.type,model_project_type,project.group_project_manager,1,1,1,1
-access_project_type_user,project.type,model_project_type,project.group_project_user,1,0,0,0
-access_project_face,project.face,model_project_face,project.group_project_manager,1,1,1,1
-access_project_face_user,project.face,model_project_face,project.group_project_user,1,0,0,0
-access_project_status,project.status,model_project_status,project.group_project_manager,1,1,1,1
-access_project_status_user,project.status,model_project_status,project.group_project_user,1,0,0,0
-access_project_advantage,project.advantage,model_project_advantage,project.group_project_manager,1,1,1,1
-access_project_advantage_user,project.advantage,model_project_advantage,project.group_project_user,1,0,0,0
-access_project_project,project.project,project.model_project_project,project.group_project_manager,1,1,1,1
-access_project_project_user,project.project,project.model_project_project,project.group_project_user,1,1,1,0
-access_project_insurance,project_insurance,model_project_insurance,project.group_project_manager,1,1,1,1
-access_project_insurance_user,project_insurance,model_project_insurance,project.group_project_user,1,1,1,0
-access_project_land_state_user,land_state,model_land_state,project.group_project_user,1,1,1,0
-access_project_insurance_line,project_insurance_line,model_project_insurance_line,,1,1,1,1
diff --git a/odex25_realstate/khawald_project/static/description/icon.png b/odex25_realstate/khawald_project/static/description/icon.png
deleted file mode 100644
index 34385cd65..000000000
Binary files a/odex25_realstate/khawald_project/static/description/icon.png and /dev/null differ
diff --git a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.eot b/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.eot
deleted file mode 100644
index 4b8e53189..000000000
Binary files a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.eot and /dev/null differ
diff --git a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.svg b/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.svg
deleted file mode 100644
index f1a4dd3ec..000000000
--- a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.svg
+++ /dev/null
@@ -1,321 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.ttf b/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.ttf
deleted file mode 100644
index bbd813185..000000000
Binary files a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.ttf and /dev/null differ
diff --git a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff b/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff
deleted file mode 100644
index 81446bfcd..000000000
Binary files a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff and /dev/null differ
diff --git a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff2 b/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff2
deleted file mode 100644
index f3c9a0286..000000000
Binary files a/odex25_realstate/khawald_project/static/fonts/tajawal-v3-arabic-regular.woff2 and /dev/null differ
diff --git a/odex25_realstate/khawald_project/views/internal_property_view.xml b/odex25_realstate/khawald_project/views/internal_property_view.xml
deleted file mode 100644
index 80b46bbd3..000000000
--- a/odex25_realstate/khawald_project/views/internal_property_view.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
- Property Khawald
- internal.property
-
-
-
-
- {'readonly':[('project_id','!=',False)]}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Property List
- internal.property
-
-
-
- 1
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/views/khawald_project_config_views.xml b/odex25_realstate/khawald_project/views/khawald_project_config_views.xml
deleted file mode 100644
index be55a8cea..000000000
--- a/odex25_realstate/khawald_project/views/khawald_project_config_views.xml
+++ /dev/null
@@ -1,434 +0,0 @@
-
-
-
-
-
- Project State
- project.state
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project State
- project.state
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.state.kanban
- project.state
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.state.search
- project.state
-
-
-
-
-
-
-
-
-
-
- Project State
- project.state
- kanban,tree,form
-
-
-
-
-
-
-
-
-
- Project Task
- khawald.project.task
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Task list
- khawald.project.task
-
-
-
-
-
-
-
-
-
-
-
- khawald.project.task.kanban
- khawald.project.task
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- khawald.project.task.search
- khawald.project.task
-
-
-
-
-
-
-
-
-
-
-
- Project Task
- khawald.project.task
- kanban,tree,form
-
-
-
-
-
-
-
-
- Project Type
- project.type
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Type
- project.type
-
-
-
-
-
-
-
-
-
-
- project.type.search
- project.type
-
-
-
-
-
-
-
-
- Project Type
- project.type
- tree,form
-
-
-
-
-
-
-
-
-
-
- Project Advantage
- project.advantage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Advantage List
- project.advantage
-
-
-
-
-
-
-
-
-
-
-
- Project Advantage Search
- project.advantage
-
-
-
-
-
-
-
-
-
- Project Advantage
- project.advantage
- tree,form
-
-
-
-
-
-
-
-
-
-
- Project Expense
- project.expense.conf
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Expense
- project.expense.conf
-
-
-
-
-
-
-
-
-
- project.expense.conf.search
- project.expense.conf
-
-
-
-
-
-
-
-
- Project Expense
- project.expense.conf
- tree,form
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/views/khawald_project_view.xml b/odex25_realstate/khawald_project/views/khawald_project_view.xml
deleted file mode 100644
index 5eac764ca..000000000
--- a/odex25_realstate/khawald_project/views/khawald_project_view.xml
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-
-
- Project
- project.project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale
- project.group_project_manager
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- kanban,tree,form,calendar,pivot,graph,activity,map,dhx_gantt
-
-
-
- kanban,tree,form,calendar,pivot,graph,activity,map,dhx_gantt
-
-
-
- Project Expense
- project.expense
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_project/views/project_task_view.xml b/odex25_realstate/khawald_project/views/project_task_view.xml
deleted file mode 100644
index 3b92e2fbe..000000000
--- a/odex25_realstate/khawald_project/views/project_task_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- khawald.project.task.custom
- project.task
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_project/views/re_unit_view.xml b/odex25_realstate/khawald_project/views/re_unit_view.xml
deleted file mode 100644
index 76ddacf76..000000000
--- a/odex25_realstate/khawald_project/views/re_unit_view.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
- Unit Khawald
- re.unit
-
-
-
- {'readonly':[('project_id','!=',False)]}
-
-
-
- 0
- 1
-
-
-
-
-
-
-
-
-
- 1
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Unit Filter
- re.unit
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_project/views/resource_calendar_view.xml b/odex25_realstate/khawald_project/views/resource_calendar_view.xml
deleted file mode 100644
index 3c899ac74..000000000
--- a/odex25_realstate/khawald_project/views/resource_calendar_view.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
- resource.calendar.form
- resource.calendar
-
-
-
- 1
-
-
-
- 1
-
-
-
- 1
-
-
-
- date
-
-
-
- date
-
-
-
-
-
-
-
- resource.calendar.attendance.tree
- resource.calendar.attendance
-
-
-
- 1
-
-
-
- 1
-
-
-
-
-
-
-
- resource.calendar.leaves.tree
- resource.calendar.leaves
-
-
-
- 1
-
-
-
- 1
-
-
-
- date
-
-
-
- date
-
-
-
-
-
-
-
- resource.calendar.leaves.form
- resource.calendar.leaves
-
-
-
- 1
-
-
-
- 1
-
-
-
- 1
-
-
-
- date
-
-
-
- date
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/__init__.py b/odex25_realstate/khawald_real_estate_marketing/__init__.py
deleted file mode 100644
index c783b93eb..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import models
-from . import wizard
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/__manifest__.py b/odex25_realstate/khawald_real_estate_marketing/__manifest__.py
deleted file mode 100644
index 62c0b0130..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/__manifest__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-{
- 'name': "Real Estate Marketing - Khawald",
- 'summary': """Real Estate Marketing""",
- 'description': """ """,
- 'author': 'Expert Co. Ltd.',
- 'website': 'http://exp-sa.com',
- 'category': 'Odex25-Realstate/dex25-Realstate',
- 'version': '0.1',
- 'depends': ['real_estate_marketing', 'khawald_project_contract','contract'],
- 'data': [
- 'security/security_groups.xml',
- 'security/ir.model.access.csv',
- 'wizard/return_payment_view.xml',
- 'views/res_partner_view.xml',
- 'views/property_reservation_payment_view.xml',
- 'views/real_estate_view.xml',
- 'views/re_sale_view.xml',
- 'views/client_requirement_view.xml',
- 'views/property_reservation_view.xml',
- 'views/re_unit_view.xml',
- 'data/templates.xml',
- 'data/ir_seq_data.xml',
- 'views/contract_view.xml',
-
- ],
- 'installable': True,
- 'application': False,
-}
diff --git a/odex25_realstate/khawald_real_estate_marketing/data/ir_seq_data.xml b/odex25_realstate/khawald_real_estate_marketing/data/ir_seq_data.xml
deleted file mode 100644
index 4310ced11..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/data/ir_seq_data.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- Property Reservation
- property.reservation
- UN/R/%(year)s/
- 5
-
-
-
-
-
- Property Reservation Payment
- property.reservation.payment
- pay/
- 3
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/data/templates.xml b/odex25_realstate/khawald_real_estate_marketing/data/templates.xml
deleted file mode 100644
index 01b7e32da..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/data/templates.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
- Property Sale Request
-
- شركة الخوالد العقارية - بيع وحدة سكنية
- ${object.partner_id.email}
-
-
- مرحباً
- ${object.partner_id.name}
-
-
-
-
قد تم تقييد أمر بيع وحدة سكنية حسب رغبتك وتجد إدناه موعد التسليم:
-
معلومات أمر البيع:
-
مرجع أمر البيع: ${object.name}
-
الوحدة السكنية: ${object.unit_id.name}
-
تاريخ التسليم للعميل: ${object.handover_to_client_date}
-
المبلغ: ${object.amount or '-'}
-
العقد: ${object.contract_id.name_seq or '-'}
-
-
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.
-
-
-
-
-
-
-
- مع خالص الود والتقدير
- شركة الخوالد العقارية - قسم التسويق العقاري
-
- ]]>
-
-
-
-
- Property Reservation
-
- شركة الخوالد العقارية - حجز وحدة سكنية
- ${object.partner_id.email}
- ${object.marketer_user_id.partner_id.email}
-
- مرحباً
- ${object.partner_id.name}
-
-
-
-
قد تم حجز وحدة سكنية حسب رغبتك وتجد إدناه معلومات المسوق المسؤول عن الحجز ومعلومات الحجز:
-
أسم المسوق: ${object.marketer_user_id.partner_id.name}
-
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}
-
معلومات الحجز:
-
مرجع الحجز: ${object.name}
-
الوحدة السكنية: ${object.unit_id.name}
-
تاريخ إنتهاء الحجز: ${object.end_date}
-
نوع الحجز: ${dict(object.fields_get(allfields=['reserve_type'])['reserve_type']['selection'])[object.reserve_type]}
-
مبلغ العربون: ${object.payment_amount or '-'}
-
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.
-
-
-
-
-
-
-
- مع خالص الود والتقدير
- شركة الخوالد العقارية - قسم التسويق العقاري
-
- ]]>
-
-
-
-
- Register Client Requirement
-
- شركة الخوالد العقارية - طلبك قيد الإجراء
- ${object.partner_id.email}
- ${object.marketer_user_id.partner_id.email}
-
- مرحباً
- ${object.partner_id.name}
-
-
-
-
طلبك قيد الإجراء ، وتجد إدناه معلومات المسوق المسؤول عن طلبك:
-
أسم المسوق: ${object.marketer_user_id.partner_id.name}
-
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}
-
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.
-
-
-
-
-
-
-
- مع خالص الود والتقدير
- شركة الخوالد العقارية - قسم خدمات العملاء
-
- ]]>
-
-
-
-
- Closed Client Requirement
-
- شركة الخوالد العقارية - تم إغلاق طلبك
- ${object.partner_id.email}
- ${object.marketer_user_id.partner_id.email}
-
- مرحباً
- ${object.partner_id.name}
-
-
-
-
طلبك تم إغلاقه ، وتجد إدناه معلومات المسوق المسؤول عن طلبك:
-
أسم المسوق: ${object.marketer_user_id.partner_id.name}
-
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}
-
الرجاء الضغط علي الرابط ادناه لتقييم الخدمة.
-
-
-
-
-
-
-
-
مع خالص الود والتقدير
-
شركة الخوالد العقارية - قسم خدمات العملاء
-
- ]]>
-
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/i18n/ar_001.po b/odex25_realstate/khawald_real_estate_marketing/i18n/ar_001.po
deleted file mode 100644
index 4bf0120e9..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/i18n/ar_001.po
+++ /dev/null
@@ -1,1187 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * khawald_real_estate_marketing
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-04-08 12:40+0000\n"
-"PO-Revision-Date: 2022-04-08 12:40+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: khawald_real_estate_marketing
-#: model:mail.template,body_html:khawald_real_estate_marketing.template_client_requirement_closed
-msgid ""
-"\n"
-" \n"
-" \n"
-"
\n"
-"
طلبك تم إغلاقه ، وتجد إدناه معلومات المسوق المسؤول عن طلبك:\n"
-"
أسم المسوق: ${object.marketer_user_id.partner_id.name}\n"
-"
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}\n"
-"
الرجاء الضغط علي الرابط ادناه لتقييم الخدمة.\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
مع خالص الود والتقدير\n"
-"
شركة الخوالد العقارية - قسم خدمات العملاء\n"
-"
\n"
-" \n"
-" "
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,body_html:khawald_real_estate_marketing.template_client_requirement_register
-msgid ""
-"\n"
-" \n"
-" \n"
-"
\n"
-"
طلبك قيد الإجراء ، وتجد إدناه معلومات المسوق المسؤول عن طلبك:\n"
-"
أسم المسوق: ${object.marketer_user_id.partner_id.name}\n"
-"
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}\n"
-"
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-" مع خالص الود والتقدير
\n"
-" شركة الخوالد العقارية - قسم خدمات العملاء
\n"
-"
\n"
-" \n"
-" "
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,body_html:khawald_real_estate_marketing.template_sale_request_property
-msgid ""
-"\n"
-" \n"
-" \n"
-"
\n"
-"
قد تم تقييد أمر بيع وحدة سكنية حسب رغبتك وتجد إدناه موعد التسليم:\n"
-"
معلومات أمر البيع:\n"
-"
مرجع أمر البيع: ${object.name}\n"
-"
الوحدة السكنية: ${object.unit_id.name}\n"
-"
تاريخ التسليم للعميل: ${object.handover_to_client_date}\n"
-"
المبلغ: ${object.amount or '-'}\n"
-"
العقد: ${object.contract_id.name_seq or '-'}\n"
-"
\n"
-"
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-" مع خالص الود والتقدير
\n"
-" شركة الخوالد العقارية - قسم التسويق العقاري
\n"
-"
\n"
-" \n"
-" "
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,body_html:khawald_real_estate_marketing.template_property_reservation
-msgid ""
-"\n"
-" \n"
-" \n"
-"
\n"
-"
قد تم حجز وحدة سكنية حسب رغبتك وتجد إدناه معلومات المسوق المسؤول عن الحجز ومعلومات الحجز:\n"
-"
أسم المسوق: ${object.marketer_user_id.partner_id.name}\n"
-"
رقم الجوال: ${object.marketer_user_id.partner_id.mobile}\n"
-"
معلومات الحجز:\n"
-"
مرجع الحجز: ${object.name}\n"
-"
الوحدة السكنية: ${object.unit_id.name}\n"
-"
تاريخ إنتهاء الحجز: ${object.end_date}\n"
-"
نوع الحجز: ${dict(object.fields_get(allfields=['reserve_type'])['reserve_type']['selection'])[object.reserve_type]}\n"
-"
مبلغ العربون: ${object.payment_amount or '-'}\n"
-"
ولمزيد من المعلومات الرجاء الضغط علي الرابط إدناه.\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-"
\n"
-" مع خالص الود والتقدير
\n"
-" شركة الخوالد العقارية - قسم التسويق العقاري
\n"
-"
\n"
-" \n"
-" "
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_needaction
-msgid "Action Needed"
-msgstr "الإجراء المطلوب"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "Action Type"
-msgstr "نوع الأجراء"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_ids
-msgid "Activities"
-msgstr "الأنشطة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_exception_decoration
-msgid "Activity Exception Decoration"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_state
-msgid "Activity State"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_type_icon
-msgid "Activity Type Icon"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.unit_form_view_khawald_inherit_real_estate
-msgid "Additional Info"
-msgstr "معلومات آخري"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__agent_id
-msgid "Agent"
-msgstr "الوكيل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__return_amount
-msgid "Amount"
-msgstr "المبلغ"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Approve"
-msgstr "تأكيد"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid ""
-"Are you sure you want to cancel the reservation?!. Please be aware if you "
-"cancel the unit will be return Available"
-msgstr ""
-"هل تريد الغاء الحجز؟ ضع في الإعتبار الغائك للحجز سوف يجعل الوحدة السكنية "
-"متاحة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_attachment_count
-msgid "Attachment Count"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__available
-msgid "Available"
-msgstr "متاح"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__bank_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__bank_id
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__payment_type__bank
-msgid "Bank"
-msgstr "البنك"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__state__cancel
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__state__cancel
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.return_payment_form
-msgid "Cancel"
-msgstr "إلغاء"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Cancel Reservation"
-msgstr "الغاء الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__payment_type__cash
-msgid "Cash"
-msgstr "نقداً"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "City"
-msgstr "المدينة"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.actions.act_window,help:khawald_real_estate_marketing.view_res_partner_marketing
-msgid "Click to create a Client."
-msgstr "الرجاء الضغط هنا لإنشاء عميل"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.actions.act_window,help:khawald_real_estate_marketing.view_property_reservation_action
-msgid "Click to create a New Reservation."
-msgstr "إضغط هنا لإنشاء حجز وحدة سكنية"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__partner_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__partner_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__partner_id
-msgid "Client"
-msgstr "العميل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__client_check
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__client_check
-msgid "Client Check"
-msgstr "رقم صك العميل"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Client Information"
-msgstr "بيانات العميل"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "Client Type"
-msgstr "جدية العميل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__client_check_number
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__client_check_number
-msgid "Client check number"
-msgstr "رقم الشيك"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.view_res_partner_marketing
-#: model:ir.ui.menu,name:khawald_real_estate_marketing.res_partner_marketing_menu
-msgid "Clients"
-msgstr "العملاء"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__state__approve
-msgid "Closed"
-msgstr "تم إغلاق الطلب"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__company_id
-msgid "Company"
-msgstr "الشركة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_res_partner
-msgid "Contact"
-msgstr "جهة الاتصال"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_internal_property__contract_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__contract_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__sale_contract_id
-msgid "Contract"
-msgstr "العقد"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.view_re_sales_form_inherit
-msgid "Contract Information"
-msgstr "معلومات العقد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__contract_type
-msgid "Contract Type"
-msgstr "نوع العقد"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/real_estate.py:0
-#, python-format
-msgid "Contractor Contract"
-msgstr "العقد"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/re_sale.py:0
-#, python-format
-msgid "Contractor Payment"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_form_inherit
-msgid "Create Reservation Order"
-msgstr "إنشاء أمر حجز"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Create Sale Request"
-msgstr "إنشاء أمر بيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__create_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__create_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__create_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__create_uid
-msgid "Created by"
-msgstr "إنشاء بواسطة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__create_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__create_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__create_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__create_date
-msgid "Created on"
-msgstr "إنشاء في"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__date_of_birth
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_res_partner__date_of_birth
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_res_users__date_of_birth
-msgid "Date Of Birth"
-msgstr "تاريخ الميلاد"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_form
-msgid "Delivery Attachments"
-msgstr "مرفقات التسليم"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__delivery_check
-msgid "Delivery Check"
-msgstr "صورة سند التسليم"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__delivery_date
-msgid "Delivery Date"
-msgstr "تاريخ التسليم"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__discount
-msgid "Discount"
-msgstr "الخصم"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_internal_property__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement_property__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_res_partner__display_name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__display_name
-msgid "Display Name"
-msgstr "الاسم المعروض"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__payment_amount
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__payment_amount
-msgid "Down Payment Amount"
-msgstr "قيمة العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__payment_id
-msgid "Down Payment ID"
-msgstr "مرجع العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__move_id
-msgid "Down Payment Invoice"
-msgstr "فاتوره العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation_payment__state__return
-msgid "Down Payment Returned"
-msgstr "تم إسترجاع العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.property_reservation_action
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.property_reservation_payment_action
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_unit_down_payment_inherit
-msgid "Down Payments"
-msgstr "العرابين"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__state__draft
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation_payment__state__draft
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__draft
-msgid "Draft"
-msgstr "مبدئي"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__email
-msgid "Email"
-msgstr "البريد الإلكتروني"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__emptied
-msgid "Emptied"
-msgstr "تم الإفراغ"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__emptied_date
-msgid "Emptied Date"
-msgstr "تاريخ الإفراغ"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.unit_form_view_khawald_inherit_real_estate
-msgid "Emptied Done"
-msgstr "تم الإفراغ"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__total_price
-msgid "Final Price"
-msgstr "السعر النهائي"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Finance Details"
-msgstr "البيانات المالية"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_follower_ids
-msgid "Followers"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_channel_ids
-msgid "Followers (Channels)"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_partner_ids
-msgid "Followers (Partners)"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__activity_type_icon
-msgid "Font awesome icon e.g. fa-tasks"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_form
-msgid "General Information"
-msgstr "معلومات عامة"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_search_view
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "Group By..."
-msgstr "تجميع بواسطة ..."
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__handover_to_client_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__handover_to_client_date
-msgid "Handover to Client Date"
-msgstr "تاريخ التسليم للعميل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__handover
-msgid "Handover to client"
-msgstr "التسليم للعميل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__client_type
-msgid "How serious is the client?"
-msgstr "مدى جدية العميل؟"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_internal_property__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement_property__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_res_partner__id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__id
-msgid "ID"
-msgstr "المُعرف"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_exception_icon
-msgid "Icon"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__activity_exception_icon
-msgid "Icon to indicate an exception activity."
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__identification_number
-msgid "Identification Number"
-msgstr "هوية العميل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__identification_type
-msgid "Identification Type"
-msgstr "نوع الهوية"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_needaction
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_unread
-msgid "If checked, new messages require your attention."
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_has_error
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_has_sms_error
-msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__installment_count
-msgid "Installment Count"
-msgstr "عدد الدفعيات"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.view_re_sales_form_inherit
-msgid "Installments"
-msgstr "الدفعيات"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__invoice_count
-msgid "Invoice Count"
-msgstr "عدد الفواتير"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.view_re_sales_form_inherit
-msgid "Invoices"
-msgstr "الفواتير"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_is_follower
-msgid "Is Follower"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_internal_property____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement_property____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_res_partner____last_update
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment____last_update
-msgid "Last Modified on"
-msgstr "آخر تعديل في"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__write_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__write_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__write_uid
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__write_uid
-msgid "Last Updated by"
-msgstr "آخر تعديل بواسطة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__write_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__write_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__write_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__write_date
-msgid "Last Updated on"
-msgstr "آخر تعديل في"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_main_attachment_id
-msgid "Main Attachment"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__marketer_user_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__marketer_user_id
-msgid "Marketer"
-msgstr "المسوق"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_has_error
-msgid "Message Delivery error"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_ids
-msgid "Messages"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__mobile
-msgid "Mobile"
-msgstr "رقم الجوال"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/res_partner.py:0
-#, python-format
-msgid "Mobile number must be unique"
-msgstr "لا يمكن ان يتكرر رقم الجوال"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__title__mr
-msgid "Mr"
-msgstr "سيد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__title__mrs
-msgid "Mrs"
-msgstr "سيدة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__my_activity_date_deadline
-msgid "My Activity Deadline"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__country_id
-msgid "Nationality"
-msgstr "الجنسية"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.unit_form_view_khawald_inherit_real_estate
-msgid "New Stamping"
-msgstr "الصك الجديد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_date_deadline
-msgid "Next Activity Deadline"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_summary
-msgid "Next Activity Summary"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_type_id
-msgid "Next Activity Type"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__tax_exemption__no
-msgid "No"
-msgstr "لا يوجد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__client_type__not_serious
-msgid "Not serious"
-msgstr "غير جاد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_needaction_counter
-msgid "Number of Actions"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_has_error_counter
-msgid "Number of errors"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_needaction_counter
-msgid "Number of messages which requires an action"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_has_error_counter
-msgid "Number of messages with delivery error"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__state__draft
-msgid "Open Request"
-msgstr "طلب مفتوح"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__request_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__request_date
-msgid "Order Date"
-msgstr "تاريخ الأمر"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__return_payment__return_type__partial
-msgid "Partial"
-msgstr "جزئي"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_search_view
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "Partner"
-msgstr "العميل"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.view_re_sales_form_inherit
-msgid "Payment"
-msgstr "أوامر الدفع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__payment_count
-msgid "Payment Count"
-msgstr "عدد أوامر الدفع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__payment_type
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_search_view
-msgid "Payment Type"
-msgstr "طريقة الدفع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__phone
-msgid "Phone"
-msgstr "رقم الهاتف"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/property_reservation.py:0
-#: code:addons/khawald_real_estate_marketing/wizard/return_payment.py:0
-#, python-format
-msgid "Please Configure your Journal in Setting first"
-msgstr "فضلا قم بإدخال اليومية في الإعدادات أولا"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/re_sale.py:0
-#, python-format
-msgid "Please Configure your Sales Journal in Setting first"
-msgstr "الرجاء إعداد دفتر يومية المبيعات اولاً"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/client_requirement.py:0
-#, python-format
-msgid "Please first Register Your RequestThen You can Proceed"
-msgstr "الرجاء تسجيل العملية أولاً حتي يمكنك المتابعة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__client_type__possible
-msgid "Possible"
-msgstr "عميل محتمل"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__final_price
-msgid "Price"
-msgstr "السعر"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__project_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__project_id
-msgid "Project"
-msgstr "المشروع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_contract_contract
-msgid "Project Contract"
-msgstr "عقود المشاريع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_internal_property
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__property_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__property_id
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__search_type__property
-msgid "Property"
-msgstr "العقار"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__price
-msgid "Property Price"
-msgstr "سعر الوحدة السكنية"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.view_property_reservation_action
-#: model:ir.model,name:khawald_real_estate_marketing.model_property_reservation
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__reservation_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__reservation_id
-#: model:ir.ui.menu,name:khawald_real_estate_marketing.res_property_reservation_menu
-msgid "Property Reservation"
-msgstr "حجوزات الوحدات السكنية"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.property_sales_from_reservation_action
-#: model:ir.model,name:khawald_real_estate_marketing.model_re_sale
-msgid "Property Sales"
-msgstr "مبيعات العقارات"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__search_type
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.re_clients_requirement_select_list
-msgid "Property Type"
-msgstr "نوع العقار"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_re_unit
-msgid "Property Unit"
-msgstr "وحدات العقار"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__receive_check
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__receive_check
-msgid "Receive Check"
-msgstr "صورة سند الإستلام"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_form
-msgid "Received Attachments"
-msgstr "مرفقات الإستلام"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__name
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__name
-msgid "Reference"
-msgstr "المرجع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement_property__reservation_id
-msgid "Reservation"
-msgstr "رقم الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__state__approve
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation_payment__state__approve
-msgid "Reservation Done"
-msgstr "تم الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Reservation Information"
-msgstr "معلومات الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__total_days
-msgid "Reserve Days to end"
-msgstr "الأيام المتبقية لنهاية الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__end_date
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__end_date
-msgid "Reserve End Date"
-msgstr "تاريخ نهاية الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__reserve_type
-msgid "Reserve Type"
-msgstr "نوع الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__reserved
-msgid "Reserved"
-msgstr "محجوز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__user_id
-msgid "Responsible"
-msgstr "موظف المبيعات"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__activity_user_id
-msgid "Responsible User"
-msgstr "المسؤول"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.return_payment_form
-msgid "Return"
-msgstr "إرجاع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__return_amount
-msgid "Return Amount"
-msgstr "مبلغ الإسترجاع"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_form
-msgid "Return Down Payment"
-msgstr "إسترجاع العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__move_id
-msgid "Return Invoice"
-msgstr "فاتوره الإسترجاع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.actions.act_window,name:khawald_real_estate_marketing.return_payment_action
-#: model:ir.model,name:khawald_real_estate_marketing.model_return_payment
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.return_payment_form
-msgid "Return Payment"
-msgstr "الإسترجاع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_return_payment__return_type
-msgid "Return Type"
-msgstr "نوع الإسترجاع"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/wizard/return_payment.py:0
-#, python-format
-msgid "Return amount must be less than or equal to down payment amount"
-msgstr "المبلغ الاسترجاع يجب ان يكون اقل من او يساوي مبلغ العربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_has_sms_error
-msgid "SMS Delivery error"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__sale_contract_counts
-msgid "Sale Contract Counts"
-msgstr "عدد العقود"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__sale_creation
-msgid "Sale Creation"
-msgstr "إنشاء أمر البيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__sale_id
-msgid "Sale Order"
-msgstr "أمر البيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__sale_contract_id
-msgid "Sale Request"
-msgstr "أمر البيع"
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "Sales Request"
-msgstr "أوامر البيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__client_type__serious
-msgid "Serious"
-msgstr "عميل جاد"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__sold
-msgid "Sold"
-msgstr "تم البيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__state
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__state
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_clients_requirement__state
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__state
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_search_view
-msgid "Status"
-msgstr "الحالة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__activity_state
-msgid ""
-"Status based on activities\n"
-"Overdue: Due date is already passed\n"
-"Today: Activity date is today\n"
-"Planned: Future activities."
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__street
-msgid "Street Name"
-msgstr "الشارع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__tax_exemption
-msgid "Tax Exemption"
-msgstr "الإعفاء الضريبي"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/property_reservation.py:0
-#, python-format
-msgid "The Reserve end date cannot be before Today date."
-msgstr "تاريخ نهاية الحجز لايمكن ان يكون قبل تاريخ الحجز"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__title
-msgid "Title"
-msgstr "اللقب"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__return_payment__return_type__total
-msgid "Total"
-msgstr "كلي"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_sale__contract_total_amount
-msgid "Total Amount"
-msgstr "الإجمالي"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__total_sale_amount
-msgid "Total Sale Amount"
-msgstr "أجمالي أمر البيع"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__activity_exception_decoration
-msgid "Type of the exception activity on record."
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_clients_requirement__state__register
-msgid "Under Process"
-msgstr "طلب تحت المعالجة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_contract_contract__unit_id
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__search_type__unit
-msgid "Unit"
-msgstr "الوحدة"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__unit_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation_payment__unit_id
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit_waiting__unit_id
-msgid "Units"
-msgstr "الوحدات"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_re_unit__waiting_ids
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.unit_form_view_khawald_inherit_real_estate
-msgid "Waiting List"
-msgstr "قائمة الإنتظار"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,field_description:khawald_real_estate_marketing.field_property_reservation__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields,help:khawald_real_estate_marketing.field_property_reservation__website_message_ids
-msgid "Website communication history"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__reserve_type__with
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__with
-msgid "With Down Payment"
-msgstr "بعربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__reserve_type__without
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__re_unit__state__without
-msgid "Without Down Payment"
-msgstr "بدون عربون"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model.fields.selection,name:khawald_real_estate_marketing.selection__property_reservation__tax_exemption__yes
-msgid "Yes"
-msgstr "يوجد"
-
-#. module: khawald_real_estate_marketing
-#: code:addons/khawald_real_estate_marketing/models/client_requirement.py:0
-#, python-format
-msgid "You must have Search Result"
-msgstr "لابد ان يكون هناك نتائج للبحث"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_re_clients_requirement
-msgid "clients requirement"
-msgstr "طلبات علاقات العملاء"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_re_clients_requirement_property
-msgid "clients requirement Property"
-msgstr "طلبات عقارات العملاء"
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_property_reservation_payment
-msgid "property.reservation.payment"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_form
-msgid "property_reservation_form"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_form
-msgid "property_reservation_payment_form"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_payment_view_tree
-msgid "property_reservation_payment_tree"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model_terms:ir.ui.view,arch_db:khawald_real_estate_marketing.property_reservation_view_tree
-msgid "property_reservation_tree"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:ir.model,name:khawald_real_estate_marketing.model_re_unit_waiting
-msgid "re.unit.waiting"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,subject:khawald_real_estate_marketing.template_sale_request_property
-msgid "شركة الخوالد العقارية - بيع وحدة سكنية"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,subject:khawald_real_estate_marketing.template_client_requirement_closed
-msgid "شركة الخوالد العقارية - تم إغلاق طلبك"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,subject:khawald_real_estate_marketing.template_property_reservation
-msgid "شركة الخوالد العقارية - حجز وحدة سكنية"
-msgstr ""
-
-#. module: khawald_real_estate_marketing
-#: model:mail.template,subject:khawald_real_estate_marketing.template_client_requirement_register
-msgid "شركة الخوالد العقارية - طلبك قيد الإجراء"
-msgstr ""
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/__init__.py b/odex25_realstate/khawald_real_estate_marketing/models/__init__.py
deleted file mode 100644
index 41efc5ffe..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# This Module Created by Selective Systems Developers
-#
-##############################################################################
-from . import res_partner
-from . import client_requirement
-from . import property_reservation
-from . import real_estate
-from . import contract
-from . import re_sale
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/client_requirement.py b/odex25_realstate/khawald_real_estate_marketing/models/client_requirement.py
deleted file mode 100644
index fe6e725d7..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/client_requirement.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from odoo.exceptions import ValidationError, UserError, Warning
-from odoo import models, fields, api, exceptions, tools, _
-from datetime import datetime, date
-
-
-class ReClientRequirement(models.Model):
- _inherit = "re.clients.requirement"
-
- # action_type = fields.Selection([('rent', 'Rent'), ('sale', 'Sale')], string="Action Type", default='sale', readonly="True")
- client_type = fields.Selection([('serious', 'Serious'), ('possible', 'Possible'), ('not_serious', 'Not serious')], string="How serious is the client?", default='serious')
- state = fields.Selection([('draft', 'Open Request'),
- ('register', 'Under Process'),
- ('approve', 'Closed'),
- ('cancel', 'Cancel'),
- ], string="Status", default='draft')
- project_id = fields.Many2one('project.project', string='Project')
- marketer_user_id = fields.Many2one('res.users', string="Marketer", default=lambda self: self.env.user)
-
- def action_register(self):
- for rec in self:
- if rec.name == '/' or False:
- rec.name = self.env['ir.sequence'].next_by_code('re.clients.requirement')
- if rec.client_type != 'not_serious' and rec.client_line_ids:
- email_template = self.env.ref('khawald_real_estate_marketing.template_client_requirement_register')
- email_template.with_env(self.env).with_context(active_model=self._name).send_mail(rec.id)
- rec.write({'state': 'register'})
- elif rec.client_type != 'not_serious' and not rec.client_line_ids:
- raise exceptions.ValidationError(_("You must have Search Result"))
- else:
- rec.write({'state': 'approve'})
-
- def action_approve(self):
- for rec in self:
- if rec.client_type != 'not_serious':
- email_template = self.env.ref('khawald_real_estate_marketing.template_client_requirement_closed')
- email_template.with_env(self.env).with_context(active_model=self._name).send_mail(rec.id)
- rec.write({'state': 'approve'})
-
-
-class ReClientRequirementProperty(models.Model):
- _inherit = "re.clients.requirement.property"
-
- reservation_id = fields.Many2one('property.reservation', string="Reservation")
-
- def create_reservation_record(self):
- vals = {}
- reservation_obj = self.env['property.reservation']
- for record in self:
- if record.state != 'register':
- raise exceptions.ValidationError(_("Please first Register Your Request"
- "Then You can Proceed"))
- vals = {
- 'name': '/',
- 'search_type': self.search_type,
- 'property_id': record.property_id and record.property_id.id or False,
- 'state': 'draft',
- 'unit_id': record.unit_id and record.unit_id.id or False,
- 'partner_id': record.request_id.partner_id and record.request_id.partner_id.id or False,
- }
- reservation_id = reservation_obj.create(vals)
- if reservation_id:
- record.reservation_id = reservation_id.id
- record.flag = True
- return True
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/contract.py b/odex25_realstate/khawald_real_estate_marketing/models/contract.py
deleted file mode 100644
index e3b5c1fa2..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/contract.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from odoo.exceptions import ValidationError, UserError, Warning
-from odoo import models, fields, api, exceptions, tools, _
-from datetime import datetime, date
-
-
-class ContractContract(models.Model):
- _inherit = "contract.contract"
-
- sale_id = fields.Many2one('re.sale', string="Sale Order")
- property_id = fields.Many2one('internal.property', string="Property")
- unit_id = fields.Many2one('re.unit', string="Unit")
- total_sale_amount = fields.Float(string='Total Sale Amount', digits=(16, 2))
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/property_reservation.py b/odex25_realstate/khawald_real_estate_marketing/models/property_reservation.py
deleted file mode 100644
index 7239389c7..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/property_reservation.py
+++ /dev/null
@@ -1,235 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo.exceptions import ValidationError
-from odoo import models, fields, api, _
-from datetime import datetime, date
-
-
-class PropertyReservation(models.Model):
- _name = "property.reservation"
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _description = "Property Reservation"
-
- name = fields.Char(string='Reference', default='/')
- request_date = fields.Date('Order Date', index=True, default=fields.Date.context_today)
- reserve_type = fields.Selection([('with', 'With Down Payment'), ('without', 'Without Down Payment')], string="Reserve Type", default='with')
- title = fields.Selection([('mr', 'Mr'), ('mrs', 'Mrs')], string="Title", default='mr')
- partner_id = fields.Many2one('res.partner', string="Client")
- client_check_number = fields.Char(string='Client check number')
- phone = fields.Char(string='Phone', related='partner_id.phone')
- mobile = fields.Char(string='Mobile', related='partner_id.mobile')
- date_of_birth = fields.Date(string='Date Of Birth', related='partner_id.date_of_birth')
- country_id = fields.Many2one('res.country', string='Nationality', related='partner_id.country_id')
- email = fields.Char(string='Email', related='partner_id.email')
- street = fields.Char(string="Street Name", related='partner_id.street')
- identification_type = fields.Selection(related="partner_id.identification_type", string='Identification Type')
- identification_number = fields.Char(related="partner_id.identification_number", string='Identification Number')
- search_type = fields.Selection([('property', 'Property'), ('unit', 'Unit')], string="Property Type", default='unit')
- property_id = fields.Many2one('internal.property', string="Property", tracking=True)
- unit_id = fields.Many2one('re.unit', string="Units", tracking=True)
- project_id = fields.Many2one('project.project', string='Project')
- marketer_user_id = fields.Many2one('res.users', string="Marketer", default=lambda self: self.env.user)
- payment_type = fields.Selection([('cash', 'Cash'), ('bank', 'Bank')], string="Payment Type", default='cash')
- bank_id = fields.Many2one('res.bank', string="Bank")
- payment_amount = fields.Float(string='Down Payment Amount', digits=(16, 2))
- user_id = fields.Many2one('res.users', string="Responsible", default=lambda self: self.env.user)
- tax_exemption = fields.Selection([('yes', 'Yes'), ('no', 'No')], string="Tax Exemption", default='no')
- price = fields.Float(string='Property Price', digits=(16, 2), compute='get_price', store=True)
- discount = fields.Float(string='Discount', digits=(16, 2))
- final_price = fields.Float(string='Price', digits=(16, 2))
- total_price = fields.Float(string='Final Price', digits=(16, 2), compute='get_total_price', store=True)
- agent_id = fields.Many2one('res.partner', string="Agent")
- end_date = fields.Date('Reserve End Date',)
- state = fields.Selection([('draft', 'Draft'),
- ('approve', 'Reservation Done'),
- ('cancel', 'Cancel'),
- ], string="Status", default='draft')
- total_days = fields.Integer(string="Reserve Days to end", compute="compute_days", store=True)
- client_check = fields.Binary("Client Check", attachment=True)
- receive_check = fields.Binary("Receive Check", attachment=True)
- payment_id = fields.Many2one('property.reservation.payment', string="Down Payment ID")
- sale_contract_id = fields.Many2one('re.sale', string="Sale Request")
- sale_creation = fields.Boolean(compute='get_sale_creation')
- company_id = fields.Many2one('res.company', string="Company", default=lambda self: self.env.user.company_id)
- move_id = fields.Many2one('account.move', string="Down Payment Invoice")
-
- @api.depends('state', 'sale_contract_id')
- def get_sale_creation(self):
- for rec in self:
- if rec.state == 'approve' and not rec.sale_contract_id:
- rec.sale_creation = True
- else:
- rec.sale_creation = False
-
- @api.depends('request_date', 'end_date')
- def compute_days(self):
- for rec in self:
- days = 0
- today_date = date.today()
- if rec.request_date and rec.end_date:
- d1 = datetime.strptime(str(today_date), '%Y-%m-%d')
- d2 = datetime.strptime(str(rec.end_date), '%Y-%m-%d')
- daysDiff = (d2 - d1).days
- if daysDiff >= 0:
- days = int(daysDiff) + 1
- rec.total_days = days
-
- @api.constrains('end_date')
- def _check_dates_constraint(self):
- today_date = date.today()
- for rec in self:
- d1 = datetime.strptime(str(today_date), '%Y-%m-%d')
- d2 = datetime.strptime(str(rec.end_date), '%Y-%m-%d')
- if d2 < d1:
- raise ValidationError(_('The Reserve end date cannot be before Today date.'))
-
- @api.depends('search_type', 'property_id', 'unit_id')
- def get_price(self):
- for rec in self:
- if rec.search_type == 'property' and rec.property_id:
- rec.price = rec.property_id.rent_price
- elif rec.search_type == 'unit' and rec.unit_id:
- rec.price = rec.unit_id.rent_price
- else:
- rec.price = 0.0
-
- @api.depends('discount', 'final_price')
- def get_total_price(self):
- for rec in self:
- rec.total_price = rec.final_price - rec.discount or 0.0
-
-
- def _prepare_invoice_values(self, journal_id, account_id):
- invoice_vals = {
- 'ref': self.name,
- 'move_type': 'out_invoice',
- 'invoice_origin': self.name,
- 'narration': self.name,
- 'journal_id': journal_id,
- 'partner_id': self.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': self.name + ' - ' + str(self.request_date),
- 'price_unit': self.payment_amount,
- 'quantity': 1.0,
- 'account_id': account_id,
- })],
- }
- return invoice_vals
-
- def create_invoice(self):
- params = self.env['res.config.settings'].get_values()
- if not params['re_sale_journal_id']:
- raise ValidationError(_("Please Configure your Journal in Setting first"))
-
- account_id = self.env['account.account'].search([
- ('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id),
- ('company_id', '=', self.company_id.id)])
- invoice_vals = self._prepare_invoice_values(params['re_sale_journal_id'] or False, account_id)
- move_id = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- move_id.action_post()
- return move_id
-
-
- def action_approve(self):
- for rec in self:
- if rec.name == '/' or False:
- rec.name = self.env['ir.sequence'].next_by_code('property.reservation')
- email_template = self.env.ref('khawald_real_estate_marketing.template_property_reservation')
- email_template.with_env(self.env).with_context(active_model=self._name).send_mail(rec.id)
- if rec.reserve_type == 'with':
- payment_values = {}
- payment_seq = self.env['ir.sequence'].next_by_code('property.reservation.payment')
- payment_values ={
- 'name': rec.unit_id.name + '-' + payment_seq,
- 'reservation_id': rec.id,
- 'unit_id': rec.unit_id.id,
- 'bank_id': rec.bank_id.id,
- 'partner_id': rec.partner_id.id,
- 'client_check_number': rec.client_check_number,
- 'payment_amount': rec.payment_amount,
- 'end_date': rec.end_date,
- 'state': 'approve',
- 'client_check': rec.client_check,
- 'receive_check': rec.receive_check,
- }
- payment_id = self.env['property.reservation.payment'].sudo().create(payment_values)
- move_id = rec.create_invoice()
- rec.move_id = move_id
- rec.unit_id.state = 'with'
- rec.payment_id = payment_id and payment_id.id
- else:
- rec.unit_id.state = 'without'
- rec.state = 'approve'
-
- def action_cancel(self):
- for rec in self:
- rec.unit_id.state = 'available'
- rec.state = 'cancel'
- rec.move_id.button_cancel()
-
- def action_create_sale(self):
- vals = {}
- sale_obj = self.env['re.sale']
- for record in self:
- # if record.project_id.state not in ['','']:
- # raise ValidationError(_("Please first Register Your Request"
- # "Then You can Proceed"))
- vals = {
- 'name': '/',
- 'sell_method': self.search_type,
- 'property_id': record.property_id and record.property_id.id or False,
- 'state': 'draft',
- 'reservation_id': record.id,
- 'total_property_size': record.unit_id.space,
- 'amount': record.total_price - record.payment_amount,
- 'unit_id': record.unit_id and record.unit_id.id or False,
- 'partner_id': record.partner_id and record.partner_id.id or False,
- }
- sale_id = sale_obj.create(vals)
- if sale_id:
- sale_id.action_register()
- record.sale_contract_id = sale_id.id
- return True
-
-
-class PropertyReservationPayment(models.Model):
- _name = "property.reservation.payment"
-
- name = fields.Char(string='Reference', default='/')
- reservation_id = fields.Many2one('property.reservation', string="Property Reservation")
- unit_id = fields.Many2one('re.unit', string="Units", tracking=True)
- bank_id = fields.Many2one('res.bank', string="Bank")
- partner_id = fields.Many2one('res.partner', string="Client")
- client_check_number = fields.Char(string='Client check number')
- payment_amount = fields.Float(string='Down Payment Amount', digits=(16, 2))
- end_date = fields.Date('Reserve End Date',)
- request_date = fields.Date('Order Date', index=True, default=fields.Date.context_today)
- delivery_date = fields.Date('Delivery Date', index=True)
- state = fields.Selection([('draft', 'Draft'),
- ('approve', 'Reservation Done'),
- ('return', 'Down Payment Returned'),
- ], string="Status", default='draft')
- client_check = fields.Binary("Client Check", attachment=True)
- receive_check = fields.Binary("Receive Check", attachment=True)
- delivery_check = fields.Binary("Delivery Check", attachment=True)
- return_amount = fields.Float('Return Amount')
- move_id = fields.Many2one('account.move', string="Return Invoice")
-
- def action_return(self):
- for rec in self:
- rec.state = 'return'
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/re_sale.py b/odex25_realstate/khawald_real_estate_marketing/models/re_sale.py
deleted file mode 100644
index 9310baa6a..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/re_sale.py
+++ /dev/null
@@ -1,176 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo.exceptions import ValidationError
-from odoo import models, fields, api, _
-
-
-class ReSale(models.Model):
- _inherit = "re.sale"
-
- handover_to_client_date = fields.Date('Handover to Client Date', index=True)
- reservation_id = fields.Many2one('property.reservation', string="Property Reservation")
- contract_id = fields.Many2one('contract.contract', string="Contract")
- invoice_count = fields.Integer(compute="_compute_invoice_count")
- payment_count = fields.Integer(compute="_compute_payment_count")
- installment_count = fields.Integer(compute="compute_installment_count")
- contract_type = fields.Selection(selection=[('sale', 'Customer'), ('purchase', 'Supplier')],
- related="contract_id.contract_type", store=True)
- contract_total_amount = fields.Integer(related="contract_id.total_amount", readonly=True)
-
- def get_related_instalment(self):
- self.ensure_one()
- installments = (self.env['line.contract.installment'].search([('contract_id', '=', self.contract_id.id)]))
- return installments
-
- def compute_installment_count(self):
- for item in self:
- item.installment_count = len(item.get_related_instalment())
-
- def _compute_invoice_count(self):
- for rec in self:
- rec.invoice_count = len(rec._get_related_invoices())
-
- def _compute_payment_count(self):
- for rec in self:
- rec.payment_count = rec._get_related_payment()
-
- def _get_related_invoices(self):
- self.ensure_one()
- invoices = self.env['account.move'].search([('contract_id', '=', self.contract_id.id)])
- return invoices
-
- def _get_related_payment(self):
- self.ensure_one()
- contract_payment = self.env['account.payment'].search([('contract_id', '=', self.contract_id.id)])
- invoices = self.env['account.move'].search([('contract_id', '=', self.contract_id.id)]).ids
- inv_payment = self.env['account.payment'].search(
- ['|', ('reconciled_invoice_ids', 'in', invoices), ('reconciled_bill_ids', 'in', invoices)])
- count = len(contract_payment) + len(inv_payment)
- return count
-
- def action_register(self):
- for rec in self:
- if rec.name == '/' or False:
- rec.name = self.env['ir.sequence'].next_by_code('re.sale')
- if rec.sell_method == 'property':
- rec.property_id.state = 'sold'
- else:
- rec.unit_id.state = 'sold'
- rec.write({'state': 'register'})
- return True
-
- def _create_contract(self):
- params = self.env['res.config.settings'].get_values()
- if not params['re_sale_journal_id']:
- raise ValidationError(_("Please Configure your Sales Journal in Setting first"))
- for record in self:
- contract = self.env['contract.contract'].sudo().create({
- 'sale_id': record.id,
- 'property_id': record.property_id.id,
- 'unit_id': record.unit_id.id,
- 'date_start': record.request_date,
- 'type_of_contract': 'sales',
- 'contract_type': 'sale',
- 'name': record.partner_id.name + '-' + record.name,
- 'partner_id': record.partner_id.id,
- 'total_sale_amount': record.amount,
- 'journal_id': params['re_sale_journal_id'],
- })
- record.contract_id = contract and contract.id
- if record.sell_method == 'property':
- record.property_id.contract_id = contract and contract.id
- else:
- record.unit_id.sale_contract_id = contract and contract.id
- return True
-
- def action_approve(self):
- #self._create_move_entry()
- for rec in self:
- rec._create_contract()
- if rec.sell_method == 'property':
- rec.property_id.state = 'sold'
- else:
- rec.unit_id.state = 'handover'
- rec.unit_id.handover_to_client_date = rec.handover_to_client_date
- email_template = self.env.ref('khawald_real_estate_marketing.template_sale_request_property')
- email_template.with_env(self.env).with_context(active_model=self._name).send_mail(rec.id)
- rec.state = 'approve'
-
- def action_show_invoices(self):
- self.ensure_one()
- tree_view_ref = (
- 'account.move_supplier_tree'
- if self.contract_type == 'purchase'
- else 'account.move_tree_with_onboarding'
- )
- form_view_ref = (
- 'account.move_supplier_form'
- if self.contract_type == 'purchase'
- else 'account.move_form'
- )
- tree_view = self.env.ref(tree_view_ref, raise_if_not_found=False)
- form_view = self.env.ref(form_view_ref, raise_if_not_found=False)
- action = {
- 'type': 'ir.actions.act_window',
- 'name': 'Invoices',
- 'res_model': 'account.move',
- 'view_mode': 'tree,form',
- 'domain': [('contract_id', '=', self.contract_id.id)],
- 'context': {'default_contract_id': self.contract_id.id, 'create': False}
- }
- if tree_view and form_view:
- action['views'] = [(tree_view.id, 'tree'), (form_view.id, 'form')]
- return action
-
- def action_show_payment(self):
- self.ensure_one()
- invoices = self.env['account.move'].search([('contract_id', '=', self.contract_id.id)]).ids
- inv_payment = self.env['account.payment'].search(
- ['|', ('reconciled_invoice_ids', 'in', invoices), ('reconciled_bill_ids', 'in', invoices)]).ids
- tree_view_ref = (
- 'account.view_account_supplier_payment_tree'
- if self.contract_type == 'purchase'
- else 'account.view_account_payment_tree'
- )
- form_view_ref = (
- 'account.view_account_payment_form'
- if self.contract_type == 'purchase'
- else 'account.view_account_payment_form'
- )
- tree_view = self.env.ref(tree_view_ref, raise_if_not_found=False)
- form_view = self.env.ref(form_view_ref, raise_if_not_found=False)
- action = {
- 'type': 'ir.actions.act_window',
- 'name': 'Payments',
- 'res_model': 'account.payment',
- 'context': {'default_contract_id': self.contract_id.id, 'create': False},
- 'view_mode': 'tree,kanban,form,calendar,pivot,graph,activity',
- 'domain': ['|', ('contract_id', '=', self.contract_id.id), ('id', 'in', inv_payment)],
- }
- if tree_view and form_view:
- action['views'] = [(tree_view.id, 'tree'), (form_view.id, 'form')]
- return action
-
- def action_show_installment(self):
- installment_ids = self.env['line.contract.installment'].search([('contract_id', '=', self.contract_id.id)])
- form_id = self.env.ref('contract.contract_installment_form_view').id
- tree_id = self.env.ref('contract.contract_installment_tree').id
- domain = [('id', 'in', installment_ids.ids)]
- return {
- 'name': _('Contractor Payment'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'line.contract.installment',
- 'views': [(tree_id, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- 'context': {'default_contract_id': self.contract_id.id}
-
- }
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/real_estate.py b/odex25_realstate/khawald_real_estate_marketing/models/real_estate.py
deleted file mode 100644
index edef80a6c..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/real_estate.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from datetime import date
-
-
-class Property(models.Model):
- _inherit = 'internal.property'
-
- # contract_id = fields.Many2one('contract.contract', string="Contract")
-
-
-class Unit(models.Model):
- _inherit = 're.unit'
-
- state = fields.Selection([('draft', 'Draft'),
- ('available', 'Available'),
- ('reserved', 'Reserved'),
- ('with', 'With Down Payment'),
- ('without', 'Without Down Payment'),
- ('handover', 'Handover to client'),
- ('emptied', 'Emptied'),
- ('sold', 'Sold')], string="Status", default='draft')
- waiting_ids = fields.One2many('re.unit.waiting', 'unit_id', string="Waiting List")
- handover_to_client_date = fields.Date('Handover to Client Date', index=True)
- emptied_date = fields.Date('Emptied Date', index=True)
- # sale_contract_id = fields.Many2one('contract.contract', string="Contract")
- sale_contract_counts = fields.Integer(compute="compute_sale_contract_count")
-
- # def get_related_contract(self):
- # self.ensure_one()
- # contracts = (self.env['contract.contract'].search([('unit_id', '=', self.id)]))
- # return contracts
-
- # def compute_sale_contract_count(self):
- # for item in self:
- # item.sale_contract_counts = len(item.get_related_contract())
-
- def action_unit_emptied(self):
- for record in self:
- record.state = 'emptied'
- record.emptied_date = date.today()
-
- # def action_view_contract(self):
- # contract_ids = self.env['contract.contract'].search([('unit_id', '=', self.id)])
- # form_id = self.env.ref('contract.contract_contract_form_view').id
- # tree_id = self.env.ref('contract.contract_contract_tree_view').id
- # domain = [('id', 'in', contract_ids.ids)]
- # return {
- # 'name': _('Contractor Contract'),
- # 'view_type': 'form',
- # 'view_mode': 'form',
- # 'res_model': 'contract.contract',
- # 'views': [(tree_id, 'tree'), (form_id, 'form')],
- # 'type': 'ir.actions.act_window',
- # 'target': 'current',
- # 'domain': domain,
- # }
-
-
-class UnitWaiting(models.Model):
- _name = 're.unit.waiting'
- _rec_name = 'unit_id'
-
- unit_id = fields.Many2one('re.unit', string="Units", tracking=True)
- partner_id = fields.Many2one('res.partner', string="Client")
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/models/res_partner.py b/odex25_realstate/khawald_real_estate_marketing/models/res_partner.py
deleted file mode 100644
index 63b19950a..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/models/res_partner.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
-
-class ResPartner(models.Model):
- _inherit = 'res.partner'
-
- date_of_birth = fields.Date(string='Date Of Birth')
-
- @api.constrains('mobile')
- def check_unique_phone(self):
- for rec in self:
- if rec.mobile:
- exists_phone = self.env['res.partner'].sudo().search([('id', '!=', rec.id), ('mobile', '=', rec.mobile)])
- if exists_phone:
- raise ValidationError(_('Mobile number must be unique'))
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/security/ir.model.access.csv b/odex25_realstate/khawald_real_estate_marketing/security/ir.model.access.csv
deleted file mode 100644
index 5490132ca..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/security/ir.model.access.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_property_reservation_normal_user,property.reservation,model_property_reservation,,1,1,1,1
-access_property_reservation_payment_normal_user,property.reservation.payment,model_property_reservation_payment,,1,1,1,1
-access_e_unit_waiting_normal_user,re.unit.waiting,model_re_unit_waiting,,1,1,1,1
-access_return_payment,return.payment,model_return_payment,,1,1,1,1
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/security/security_groups.xml b/odex25_realstate/khawald_real_estate_marketing/security/security_groups.xml
deleted file mode 100644
index 3f5b15f21..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/security/security_groups.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- Call Center - Normal user
-
-
-
- Call Center - Manager
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/static/description/icon.png b/odex25_realstate/khawald_real_estate_marketing/static/description/icon.png
deleted file mode 100644
index 34385cd65..000000000
Binary files a/odex25_realstate/khawald_real_estate_marketing/static/description/icon.png and /dev/null differ
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/client_requirement_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/client_requirement_view.xml
deleted file mode 100644
index 2956df4ca..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/client_requirement_view.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
- re.clients.requirement.form.inherit
- re.clients.requirement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
- {}
- {'invisible':True}
- 1
-
-
- {}
- {'invisible':True}
- 1
-
-
-
-
-
- re.clients.requirement.select.list
- re.clients.requirement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/contract_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/contract_view.xml
deleted file mode 100644
index a1fd86cbf..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/contract_view.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- contract.contract.inherit.sale.marketing
- contract.contract
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_payment_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_payment_view.xml
deleted file mode 100644
index d7da2c890..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_payment_view.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
- property.reservation.payment.form.view
- property.reservation.payment
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- property.reservation.payment_view_tree
- property.reservation.payment
-
-
-
-
-
-
-
-
-
-
-
-
-
- Down Payments
- ir.actions.act_window
- property.reservation.payment
- tree,form
- [('unit_id','=', active_id)]
-
-
-
- Down Payments
- ir.actions.act_window
- property.reservation.payment
- tree,form
- [('reservation_id','=', active_id)]
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_view.xml
deleted file mode 100644
index 1721deaa5..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/property_reservation_view.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
- property_reservation_view_form
- property.reservation
-
-
-
-
-
-
- Down Payments
-
-
- Sales Request
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- property_reservation_view_tree
- property.reservation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- property.reservation.select.list
- property.reservation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Property Reservation
- property.reservation
- tree,form
-
-
-
-
- Click to create a New Reservation.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/re_sale_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/re_sale_view.xml
deleted file mode 100644
index 81a292d11..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/re_sale_view.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
- re.sale.inherit.view
- re.sale
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Property Sales
- ir.actions.act_window
- re.sale
- tree,form
- [('reservation_id','=', active_id)]
-
-
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/re_unit_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/re_unit_view.xml
deleted file mode 100644
index f6127a665..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/re_unit_view.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
- re.unit.real.estate.marketing
- re.unit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/real_estate_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/real_estate_view.xml
deleted file mode 100644
index b5630d5d6..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/real_estate_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- re.unit.inherit.downpayment
- re.unit
-
-
-
-
- Down Payments
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/views/res_partner_view.xml b/odex25_realstate/khawald_real_estate_marketing/views/res_partner_view.xml
deleted file mode 100644
index f1fa481e3..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/views/res_partner_view.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
- Clients
- res.partner
- kanban,tree,form
-
-
-
-
- Click to create a Client.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khawald_real_estate_marketing/wizard/__init__.py b/odex25_realstate/khawald_real_estate_marketing/wizard/__init__.py
deleted file mode 100644
index ecdfb2424..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/wizard/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import return_payment
diff --git a/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment.py b/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment.py
deleted file mode 100644
index 5523e99bf..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
-
-class ReturnPayment(models.TransientModel):
-
- _name = 'return.payment'
- _description = "Return Payment"
-
- return_type = fields.Selection([('total','Total'), ('partial', 'Partial')], 'Return Type', default="total")
- return_amount = fields.Float('Amount')
-
- def _prepare_invoice_values(self, reservation_payment_id, journal_id, account_id):
- invoice_vals = {
- 'ref': reservation_payment_id.name,
- 'move_type': 'out_refund',
- 'invoice_origin': reservation_payment_id.name,
- 'narration': reservation_payment_id.name,
- 'journal_id': journal_id,
- 'partner_id': reservation_payment_id.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': reservation_payment_id.name + ' - ' + (str(reservation_payment_id.request_date)),
- 'price_unit': reservation_payment_id.payment_amount if self.return_type == 'total' else self.return_amount,
- 'quantity': 1.0,
- 'account_id': account_id,
- })],
- }
- return invoice_vals
-
- def create_invoice(self, reservation_payment_id):
- params = self.env['res.config.settings'].get_values()
- if not params['re_sale_journal_id']:
- raise ValidationError(_("Please Configure your Journal in Setting first"))
-
- account_id = self.env['account.account'].search([
- ('user_type_id', '=', self.env.ref('account.data_account_type_revenue').id),
- ('company_id', '=', reservation_payment_id.reservation_id.company_id.id)])
- invoice_vals = self._prepare_invoice_values(reservation_payment_id, params['re_sale_journal_id'] or False, account_id)
- move_id = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- move_id.action_post()
- return move_id
-
- def action_return(self):
-
- reservation_payment_id = self.env['property.reservation.payment'].browse(self.env.context.get('active_ids', False))
- move_id = self.create_invoice(reservation_payment_id)
-
- if self.return_amount > reservation_payment_id.payment_amount:
- raise ValidationError(_("Return amount must be less than or equal to down payment amount"))
-
- reservation_payment_id.return_amount = reservation_payment_id.payment_amount if self.return_type == 'total' else self.return_amount
- reservation_payment_id.move_id = move_id
- reservation_payment_id.state = 'return'
-
diff --git a/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment_view.xml b/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment_view.xml
deleted file mode 100644
index 51089ea9f..000000000
--- a/odex25_realstate/khawald_real_estate_marketing/wizard/return_payment_view.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- return.payment.form
- return.payment
-
-
-
-
-
-
-
-
-
-
-
-
- Return Payment
- return.payment
- form
- new
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/__init__.py b/odex25_realstate/khwalid_real_estate_report/__init__.py
deleted file mode 100644
index 9aefc85a1..000000000
--- a/odex25_realstate/khwalid_real_estate_report/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import models
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/__manifest__.py b/odex25_realstate/khwalid_real_estate_report/__manifest__.py
deleted file mode 100644
index 216c521e0..000000000
--- a/odex25_realstate/khwalid_real_estate_report/__manifest__.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-
-{
- 'name': 'Khwalid Real Estate Report',
- 'version': '1.0',
- 'license': 'AGPL-3',
- 'category': 'Odex25-Realstate/Odex25-Realstate',
- 'author': 'Expert Co. Ltd.',
- 'website': 'http://exp-sa.com',
- 'summary': "Khwalid Real Estate Report ",
- 'depends': ['khawald_real_estate_marketing', 'report_xlsx'],
- 'data': [
- 'reports/property_reservation_cheque_report_template.xml',
- 'reports/receipt_voucher_report_template.xml',
- 'reports/refund_request_report_template.xml',
- 'reports/customer_Identi_without_image_report_template.xml',
- 'reports/receive_unit_report_template.xml',
- 'reports/report_invoice.xml',
- 'reports/permission_empty_unit_report_template.xml',
- ],
-
- 'installable': True,
- 'application': False,
-}
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/i18n/ar_001.po b/odex25_realstate/khwalid_real_estate_report/i18n/ar_001.po
deleted file mode 100644
index 775a8ef3d..000000000
--- a/odex25_realstate/khwalid_real_estate_report/i18n/ar_001.po
+++ /dev/null
@@ -1,853 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * khwalid_real_estate_report
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-04-06 11:21+0000\n"
-"PO-Revision-Date: 2022-04-06 11:21+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: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid ", Mobile"
-msgstr "، جوال رقم"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid ", Identification Number"
-msgstr "، هوية رقم"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid ", district"
-msgstr "، حي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid ", project"
-msgstr "، مشروع"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Cheque Details: "
-msgstr "تفاصيل الشيك: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Justifications for the refund request: "
-msgstr "مبررات طلب الإسترداد: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Notes: "
-msgstr "ملاحظات: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Unit Details: "
-msgstr "تفاصيل الوحدة: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid " Maid's Bath "
-msgstr " حمام الخادمة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Air Conditioner Electricity "
-msgstr "كهرباء المكيفات "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Amount "
-msgstr "المبلغ "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Bank "
-msgstr "بنك "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Bedroom 1 "
-msgstr "غرفة 1 "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Bedroom 2 "
-msgstr "غرفة 2 "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Birth Date "
-msgstr "تاريخ الميلاد "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Buyer Signature: "
-msgstr "توقيع المشتري: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Cheque No. "
-msgstr "رقم الشيك "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Cheque Receipt Date "
-msgstr "تاريخ إستلام الشيك "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Cheque "
-msgstr "الشيك "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Copy No. "
-msgstr "رقم النسخه "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Council "
-msgstr "المجلس "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Customer Name "
-msgstr "اسم العميل "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Customer Signature "
-msgstr "توقيع العميل "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Customer "
-msgstr "العميل "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Date "
-msgstr "التاريخ "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Discount "
-msgstr "الخصم "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "District "
-msgstr "الحي "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Down Payment Amount "
-msgstr "العربون "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Hall "
-msgstr "صالة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Heater "
-msgstr "سخان "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Identification Expiry Date "
-msgstr "تاريخ الإنتهاء "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Identification Number/ Iqama "
-msgstr "رقم الهوية/ الإقامه "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Identification Number "
-msgstr "رقم الهوية "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Issuer "
-msgstr "جهة الإصدار "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Lighting "
-msgstr "الإضاءه "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Majlis Bath "
-msgstr "حمام المجلس "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Master Bedroom Bath "
-msgstr "حمام غرفة النوم الرئيسية "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Master Bedroom "
-msgstr "غرفة النوم الرئيسية "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Mobile "
-msgstr "رقم الجوال "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Notes "
-msgstr "الملاحظات "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Ourity "
-msgstr "الصفاية "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Paint "
-msgstr "الدهان "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Payment Type "
-msgstr "نوع المدفوع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Project Name "
-msgstr "إسم المشروع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Project "
-msgstr "المشروع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Property No. "
-msgstr "رقم المبني "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Purpose "
-msgstr "الغرض "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Reason for requesting refund "
-msgstr "سبب طلب الإسترداد "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Receiver Signature: "
-msgstr "توقيع المستلم: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Receiver: "
-msgstr "المستلم: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Reserve Type "
-msgstr "اسلوب الدفع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Return Amount "
-msgstr "قيمة الإسترداد "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Return Type "
-msgstr "نوع المسترد "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Sale Price "
-msgstr "سعر البيع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Sales Employee "
-msgstr "موظف المبيعات "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Salesperson "
-msgstr "البائع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Section "
-msgstr "البند "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Service Bath "
-msgstr "حمام الخدمة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Shower and Rinse "
-msgstr "الدش والشطاف "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Signature "
-msgstr "التوقيع "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Siphon "
-msgstr "السيفون "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Suction Fan "
-msgstr "مروحة الشفط "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Tax "
-msgstr "قيمة الضريبة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "The Confession "
-msgstr "الإقرار "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Tiles "
-msgstr "البلاط "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Unit Amount "
-msgstr "سعر الوحدة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Unit No. "
-msgstr "رقم الوحدة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Unit "
-msgstr "الوحدة "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Valve "
-msgstr "المحبس "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Voucher No. "
-msgstr "رقم سند القبض "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Windows "
-msgstr "النوافذ "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "A copy of the financing contract"
-msgstr "نسخة من عقد التمويل"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "A copy of the housing unit cheque"
-msgstr "صورة من شيك الوحدة السكنية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "A copy of the tax cheque"
-msgstr "صورة من شيك الضريبة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Address"
-msgstr "العنوان"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Agent Empty"
-msgstr "الموكل بالإفراغ"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Amount of"
-msgstr "مبلغ وقدره "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "And this price of unit"
-msgstr "وذلك ثمن شقة رقم"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "And we received it:"
-msgstr "واستلمنا معه: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid ""
-"Anyone who has a first home certificate is exempted from real estate tax for"
-" an amount of less than one million riyals."
-msgstr "يُعفى من لديه شهادة المسكن الأول من ضريبة التصرفات العقارية لما دون مبلغ مليون ريال."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Apartment Amount"
-msgstr "قيمة الشقة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Attached is the cheque details below."
-msgstr "مرفق لكم بيانات الشيك أدناه."
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_cancel_sale_pdf
-msgid "Cancel Sale Request Unit"
-msgstr "إلغاء بيع وحده سكنية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid ""
-"Cancellation of the residential unit reservation with the consent of both "
-"parties."
-msgstr "إلغاء حجز الوحدة السكنية بموافقة الطرفين."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid ""
-"Cancellation of the sale of the housing unit with the consent of both "
-"parties."
-msgstr "إلغاء بيع الوحدة السكنية بموافقة الطرفين."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Cancellation of the sale."
-msgstr "إلغاء البيع"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Cheque 1"
-msgstr "شيك 1"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Cheque 2"
-msgstr "شيك 2"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Cheque 3"
-msgstr "شيك 3"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Cheque Deposit Origin"
-msgstr "أصل إيداع الشيك"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Customer"
-msgstr "العميل"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Customer Details:"
-msgstr "تفاصيل العميل"
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_customer_Identi_without_image_pdf
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Customer Identification without Image"
-msgstr "هوية العميل بدون صورة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Date"
-msgstr "التاريخ"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Dear Customer:"
-msgstr "عزيزنا العميل"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Deposit"
-msgstr "عربون"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "From"
-msgstr "من"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "I acknowledge receipt of each of:"
-msgstr "و أقر بإستلام كل من: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "I agree, I am the second party buyer"
-msgstr "أوافق انا الطرف الثاني المشتري: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Instrument Date"
-msgstr "تاريخ الصك"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Instrument No."
-msgstr "رقم الصك"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Invoice No"
-msgstr "رقم الفاتوره"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Kitchen"
-msgstr "المطبخ"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Mr/ Mrs"
-msgstr "السيد/ السيدة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Owner"
-msgstr "المالك"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Pay the first payment to the bank."
-msgstr "دفع الدفعة الأولى للبنك."
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_permission_empty_unit
-msgid "Permission to Empty Unit"
-msgstr "إذن إفراغ وحده سكنية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Permission to Empty a Residential Unit"
-msgstr "إذن إفراغ وحده سكنية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Project"
-msgstr "المشروع"
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_receipt_voucher_pdf
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Receipt Voucher"
-msgstr "سند قبض"
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_receive_unit_pdf
-msgid "Receive Unit"
-msgstr "إستلام وحدة سكنية"
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_refund_request_pdf
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Refund Request"
-msgstr "طلب الإسترداد"
-
-#. module: khwalid_real_estate_report
-#: model:ir.actions.report,name:khwalid_real_estate_report.action_property_reservation_cheque_pdf
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Reservation and Cheque Details"
-msgstr "حجز وبيانات الشيك"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid "Sale Unit"
-msgstr "شراء شقة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Sales Employee"
-msgstr "موظف المبيعات"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Sales Manager:"
-msgstr "مدير المبيعات: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "Section"
-msgstr "البند"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Signature"
-msgstr "التوقيع"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Signing and matching the sales contract"
-msgstr "توقيع ومطابقة عقد البيع"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Tax Amount"
-msgstr "قيمة الضريبة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Tax Cheque"
-msgstr "شيك الضريبة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Tax Invoice"
-msgstr "الفاتورة الضريبية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Tax Invoice Number"
-msgstr "رقم الفاتورة الضريبية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "Tax exemption certificate"
-msgstr "شهادة إعفاء ضريبي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "Thanks You."
-msgstr "شكرا لكم.."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "The apartment has been emptied."
-msgstr "تم إفراغ الوحدة السكنية."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid ""
-"The customer issues a cheque certified by the bank with the above data."
-msgstr "يصدر العميل شيك مصدق من البنك بالبيانات أعلاه."
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "To"
-msgstr "إلي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receive_unit_report
-msgid "To receive Unit"
-msgstr "استلام وحدة سكنية"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Unit"
-msgstr "الوحدة"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.refund_request_report
-msgid "Unit Details:"
-msgstr "تفاصيل الوحدة السكنية:"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.report_invoice_document_inherit
-msgid "Vat"
-msgstr "الرقم الضريبي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Verification Items"
-msgstr "بنود التحقق"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.receipt_voucher_report
-msgid "We are Khawald Real Estate Company, received from:"
-msgstr "نحن شركة خوالد العقارية، استلمنا من: "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "We inform you that the unit No. has been booked"
-msgstr "نفيدكم بأنه تم حجز الوحدة السكنية رقم "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid ""
-"We kindly ask you to hand over a cheque in the amount of the deposit / the "
-"value of the price of the housing unit before"
-msgstr "نرجو منكم تسليم شيك بقيمة العربون / بقيمة ثمن الوحدة السكنية قبل تاريخ "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "and located in the district"
-msgstr "والواقع في حي "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "in the date"
-msgstr "في تاريخ "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "for a period of"
-msgstr "وذلك لمده "
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "in order to avoid cancel the reservation."
-msgstr "تفادياً لإلغاء الحجز"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.property_reservation_cheque_report
-msgid "in project"
-msgstr "في مشروع"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.customer_Identi_without_image_report
-msgid ""
-"to take the data of the national identity card for official use with the "
-"first party, and I also acknowledge the validity of the information and data"
-" that it provided, and I bear any responsibility that may result from my "
-"failure to disclose any data that the agreement requires disclosure or its "
-"incorrectness. I have read, understood and accepted the terms and conditions"
-" of this Agreement and agree to be bound by its contents."
-msgstr "على أخذ بيانات بطاقة الهوية الوطنية للاستخدام الرسمي لدى الطرف الأول كما أقر بصحة المعلومات والبيانات التي قدمها وأتحمل أي مسؤولية قد تنتج عن عدم إفصاحي عن أي بيانات تتطلب الاتفاقية الإفصاح عنها أو عدم صحتها ولقد قرأت وفهمت وقبلت شروط هذه الاتفاقية أحكامها وأوافق على التقيد بما جاء فيها."
-
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state (draft, approve)."
-msgstr "تتم الطباعه في حاله (مبدئي، تم الحجز)."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state (register, approve)."
-msgstr "تتم الطباعه في حاله (مسجل، معتمد)."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state approve reservation."
-msgstr "تتم الطباعة في حاله تم الحجز."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state approve."
-msgstr "تتم الطباعه في حاله معتمد."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state cancel."
-msgstr "تتم الطباعه في حاله الإلغاء."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in state return."
-msgstr "تتم الطباعه في حاله تم استرجاع العربون."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Printed only in unit state emptied."
-msgstr "تتم الطباعه في حاله الوحدة تم الإخلاء."
-
-#. module: khwalid_real_estate_report
-#: code:addons/khwalid_real_estate_report/models/ir_actions_report.py:0
-#, python-format
-msgid "Only sell method in unit could be printed."
-msgstr "يتم طباعة طريقة البيع وحدة فقط"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Exist"
-msgstr "يوجد"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Exist (Tax Exemption)"
-msgstr "(يوجد (إعفاء ضريبي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Not Exist"
-msgstr "لا يوجد"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Not Exist (Tax Exemption)"
-msgstr "(لا يوجد (إعفاء ضريبي"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Instrument No. New"
-msgstr "رقم الصك الجديد"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Instrument Date New"
-msgstr "تاريخ الصك الجديد"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "The new instrument file has been uploaded to the drive"
-msgstr "تم رفع ملف الصك الجديد على الدرايف"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "All original files have been returned to the accountant"
-msgstr "تم إعادة جميع الملفات الأصل إلى المحاسب"
-
-#. module: khwalid_real_estate_report
-#: model_terms:ir.ui.view,arch_db:khwalid_real_estate_report.permission_empty_unit_report
-msgid "Tax"
-msgstr "الضريبة"
-
diff --git a/odex25_realstate/khwalid_real_estate_report/models/__init__.py b/odex25_realstate/khwalid_real_estate_report/models/__init__.py
deleted file mode 100644
index 91134b98a..000000000
--- a/odex25_realstate/khwalid_real_estate_report/models/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import ir_actions_report
diff --git a/odex25_realstate/khwalid_real_estate_report/models/ir_actions_report.py b/odex25_realstate/khwalid_real_estate_report/models/ir_actions_report.py
deleted file mode 100644
index d1deaa6af..000000000
--- a/odex25_realstate/khwalid_real_estate_report/models/ir_actions_report.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, api, _
-from odoo.exceptions import UserError
-
-class IrActionsReport(models.Model):
- _inherit = 'ir.actions.report'
-
-
- def _render_qweb_pdf(self, res_ids=None, data=None):
-
- if self.model == 'property.reservation.payment' and res_ids:
- refund_reports = (self.env.ref('khwalid_real_estate_report.action_refund_request_pdf'))
- if self in refund_reports:
- reservation_payment_ids = self.env['property.reservation.payment'].browse(res_ids)
- if any(pay.state != 'return' for pay in reservation_payment_ids):
- raise UserError(_("Printed only in state return."))
-
- if self.model == 'property.reservation' and res_ids:
- property_reservation_ids = self.env['property.reservation'].browse(res_ids)
- voucher_reports = (self.env.ref('khwalid_real_estate_report.action_receipt_voucher_pdf'))
- reservation_cheque_reports = (self.env.ref('khwalid_real_estate_report.action_property_reservation_cheque_pdf'))
- if self in voucher_reports:
- if any(prop.state != 'approve' for prop in property_reservation_ids):
- raise UserError(_("Printed only in state approve reservation."))
-
- if self in reservation_cheque_reports:
- if any(prop.state == 'cancel' for prop in property_reservation_ids):
- raise UserError(_("Printed only in state (draft, approve)."))
-
- if self.model == 're.sale' and res_ids:
- sale_ids = self.env['re.sale'].browse(res_ids)
- permission_empty_reports = (self.env.ref('khwalid_real_estate_report.action_permission_empty_unit'))
- cancel_sale_reports = (self.env.ref('khwalid_real_estate_report.action_cancel_sale_pdf'))
- receive_unit_reports = (self.env.ref('khwalid_real_estate_report.action_receive_unit_pdf'))
- customer_Identi_reports = (self.env.ref('khwalid_real_estate_report.action_customer_Identi_without_image_pdf'))
-
-
- if self in (permission_empty_reports, cancel_sale_reports, receive_unit_reports, customer_Identi_reports):
- if any(sale.sell_method != 'unit' for sale in sale_ids):
- raise UserError(_("Only sell method in unit could be printed."))
-
- if self in permission_empty_reports:
- if any(sale.unit_id.state != 'emptied' and sale.state == 'approve' for sale in sale_ids):
- raise UserError(_("Printed only in unit state emptied."))
-
- if self in cancel_sale_reports:
- if any(sale.state != 'cancel' for sale in sale_ids):
- raise UserError(_("Printed only in state cancel."))
-
- if self in receive_unit_reports:
- if any(sale.state != 'approve' for sale in sale_ids):
- raise UserError(_("Printed only in state approve."))
-
- if self in customer_Identi_reports:
- if any(sale.state not in ('register', 'approve') for sale in sale_ids):
- raise UserError(_("Printed only in state (register, approve)."))
-
-
- return super()._render_qweb_pdf(res_ids=res_ids, data=data)
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/customer_Identi_without_image_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/customer_Identi_without_image_report_template.xml
deleted file mode 100644
index e56565fa9..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/customer_Identi_without_image_report_template.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
- Customer Identification without Image
-
-
-
-
- Unit No.
- Customer Name
- Mobile
-
-
-
-
-
-
-
-
-
-
- Identification Number/ Iqama
-
-
-
-
-
-
-
-
- Birth Date
- Identification Expiry Date
- Issuer
- Copy No.
-
-
-
-
-
-
-
-
-
-
-
- The Confession
-
-
-
- I agree, I am the second party buyer to take the data of the national identity card for official use with the first party, and I also acknowledge the validity of the information and data that it provided, and I bear any responsibility that may result from my failure to disclose any data that the agreement requires disclosure or its incorrectness. I have read, understood and accepted the terms and conditions of this Agreement and agree to be bound by its contents.
I acknowledge receipt of each of:
-
-
-
-
-
- Purpose
- Customer Signature
-
-
-
- Sale Unit
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/permission_empty_unit_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/permission_empty_unit_report_template.xml
deleted file mode 100644
index 16017bf92..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/permission_empty_unit_report_template.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
- Permission to Empty a Residential Unit
-
-
-
- Project
-
-
- Unit
-
-
-
-
- Owner
-
-
- Customer
-
-
-
-
- Identification Number
- Mobile
- Identification Number
- Mobile
-
-
-
-
-
-
-
-
-
- Instrument No.
-
-
- Instrument Date
-
-
-
-
- Apartment Amount
-
-
- Tax Amount
-
-
- Tax Invoice Number
-
-
-
-
-
-
-
- Cheque
- Payment Type
- Amount
-
-
-
- Cheque 1
- Deposit
-
- Exist
- Not Exist
-
-
-
- Cheque 2
- Apartment Amount
-
-
-
- Cheque 3
- Tax
-
- Exist (Tax Exemption)
- Not Exist (Tax Exemption)
-
-
-
-
-
-
-
- Verification Items
-
-
-
-
- Signing and matching the sales contract
-
-
- A copy of the financing contract
-
-
-
-
- A copy of the housing unit cheque
-
-
- Cheque Deposit Origin
-
-
-
-
- Tax exemption certificate
-
-
- A copy of the tax cheque
-
-
-
-
- Tax Invoice
-
-
-
-
-
-
-
-
-
-
-
- Instrument No. New
-
-
-
- The new instrument file has been uploaded to the drive
-
-
-
- Instrument Date New
-
-
-
- All original files have been returned to the accountant
-
-
-
-
-
-
-
- Sales Employee
-
-
- Signature
-
-
-
-
- Agent Empty
-
-
- Signature
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/property_reservation_cheque_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/property_reservation_cheque_report_template.xml
deleted file mode 100644
index 8099f52e2..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/property_reservation_cheque_report_template.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
- Reservation and Cheque Details
-
- Dear Customer:
- We inform you that the unit No. has been booked in project and located in the district in the date for a period of
- We kindly ask you to hand over a cheque in the amount of the deposit / the value of the price of the housing unit before in order to avoid cancel the reservation.
-
- Attached is the cheque details below.
- Thanks You.
- Unit Details:
-
-
-
- Project
- District
- Unit
-
-
-
-
-
-
-
-
-
-
- Unit Amount
- Tax
- Reserve Type
-
-
-
-
-
-
-
-
-
-
- Down Payment Amount
- Discount
-
-
-
-
-
-
-
-
-
- Cheque Details:
-
-
- Customer Name
-
-
-
- Amount
-
-
-
- Purpose
-
-
-
-
- Notes:
-
- The customer issues a cheque certified by the bank with the above data.
- Anyone who has a first home certificate is exempted from real estate tax for an amount of less than one million riyals.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/receipt_voucher_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/receipt_voucher_report_template.xml
deleted file mode 100644
index f531e8762..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/receipt_voucher_report_template.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
- Receipt Voucher
-
- We are Khawald Real Estate Company, received from:
- Mr/ Mrs , Identification Number , Mobile
-
- Amount of
-
-
-
- Cheque No.
-
-
- Bank
-
-
- Date
-
-
-
-
- And this price of unit , project , , district
-
- And we received it:
-
- Tax exemption certificate
- Tax Cheque
-
-
-
-
- Receiver:
-
-
- Receiver Signature:
-
-
- Buyer Signature:
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/receive_unit_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/receive_unit_report_template.xml
deleted file mode 100644
index 09851c89b..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/receive_unit_report_template.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
-
-
-
-
-
-
-
- To receive Unit
-
-
-
-
- Customer Name
- Project
- District
- Unit No.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Section
- Paint
- Windows
- Tiles
- Lighting
- Air Conditioner Electricity
-
-
-
-
- Council
-
-
-
-
-
-
-
- Hall
-
-
-
-
-
-
-
-
- Bedroom 1
-
-
-
-
-
-
-
- Bedroom 2
-
-
-
-
-
-
-
-
- Master Bedroom
-
-
-
-
-
-
-
-
-
-
-
-
- Section
- Shower and Rinse
- Siphon
- Heater
- Suction Fan
- Ourity
-
-
-
-
- Majlis Bath
-
-
-
-
-
-
-
- Service Bath
-
-
-
-
-
-
-
-
- Master Bedroom Bath
-
-
-
-
-
-
-
- Maid's Bath
-
-
-
-
-
-
-
-
-
-
-
-
- Section
- Paint
- Valve
- Heater
- Suction Fan
- Ourity
-
-
-
- Kitchen
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sales Employee
-
-
- Signature
-
-
-
- Customer
-
-
- Signature
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/refund_request_report_template.xml b/odex25_realstate/khwalid_real_estate_report/reports/refund_request_report_template.xml
deleted file mode 100644
index bb15a3a9d..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/refund_request_report_template.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Refund Request
-
- Unit Details:
-
-
-
- Project Name
- Property No.
- Unit No.
- Sale Price
- Return Type
-
-
-
-
-
-
-
-
-
-
- Deposit
- Cancellation of the sale.
-
-
-
- Customer Details:
-
-
-
- Customer Name
- Mobile
- Return Amount
- Voucher No.
- Cheque Receipt Date
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Justifications for the refund request:
-
- The apartment has been emptied.
- Pay the first payment to the bank.
- Cancellation of the residential unit reservation with the consent of both parties.
- Cancellation of the sale of the housing unit with the consent of both parties.
-
-
-
-
-
- Reason for requesting refund
-
-
-
-
-
-
-
- Sales Manager:
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/khwalid_real_estate_report/reports/report_invoice.xml b/odex25_realstate/khwalid_real_estate_report/reports/report_invoice.xml
deleted file mode 100644
index 28bee006b..000000000
--- a/odex25_realstate/khwalid_real_estate_report/reports/report_invoice.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Invoice No
-
-
- Date
-
-
-
- From
-
-
- Vat
-
-
-
-
- Address
- , , ,
-
-
-
- To
-
-
-
-
- Vat
-
-
-
-
-
-
-
-
-
-
-
-
- Salesperson
-
-
-
-
-
- Signature
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/__init__.py b/odex25_realstate/project_management_custom/__init__.py
deleted file mode 100644
index 9aefc85a1..000000000
--- a/odex25_realstate/project_management_custom/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import models
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/__manifest__.py b/odex25_realstate/project_management_custom/__manifest__.py
deleted file mode 100644
index b9b6f497d..000000000
--- a/odex25_realstate/project_management_custom/__manifest__.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-{
- 'name': "Project Management Custom",
- 'summary': """Organize and plan your real estate in project""",
- 'description': """ """,
- 'author': 'Expert Co. Ltd.',
- 'website': 'http://exp-sa.com',
- 'category': 'Odex25-Realstate/Odex25-Realstate',
- 'version': '0.1',
- 'depends': ['project', 'country_city'],
- 'data': [
- 'security/ir.model.access.csv',
- 'data/ir_sequence_data.xml',
- 'views/subcontractor_installment_view.xml',
- 'views/project_custom_views.xml',
- 'views/work_item_view.xml',
- 'views/project_estimated_quantities_view.xml',
- 'views/project_config_view.xml',
- 'views/res_partner_inherit.xml',
- 'views/project_main_menus.xml',
- 'views/engineering_office_view.xml',
- 'views/project_payment_view.xml',
- 'views/subcontractor_office_view.xml',
- ],
- 'installable': True,
- 'application': False,
-}
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/data/ir_sequence_data.xml b/odex25_realstate/project_management_custom/data/ir_sequence_data.xml
deleted file mode 100644
index 36f8125de..000000000
--- a/odex25_realstate/project_management_custom/data/ir_sequence_data.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- Project
- project.project
- PJ:%(y)s/%(month)s/
- 3
-
-
-
-
-
-
- Project Eng office Payment
- project.payment.request.eng
- EPA/%(range_year)s/
- 5
-
-
-
-
-
- Project SubContractor Payment
- project.payment.request.subcontract
- SPA/%(range_year)s/
- 5
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/i18n/ar_001.po b/odex25_realstate/project_management_custom/i18n/ar_001.po
deleted file mode 100644
index 87e04dee1..000000000
--- a/odex25_realstate/project_management_custom/i18n/ar_001.po
+++ /dev/null
@@ -1,1595 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * project_management_custom
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-28 19:57+0000\n"
-"PO-Revision-Date: 2021-06-28 19:57+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: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "%s Cannot Be Less than zero"
-msgstr "%s لايمكن أن يكون أقل من صفر"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__account_move_id
-msgid "Account Move"
-msgstr "الفاتورة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Accounting configuration"
-msgstr "إعدادات الحسابات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_needaction
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_needaction
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_needaction
-msgid "Action Needed"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_ids
-msgid "Activities"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_exception_decoration
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_exception_decoration
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_exception_decoration
-msgid "Activity Exception Decoration"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_state
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_state
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_state
-msgid "Activity State"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_type_icon
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_type_icon
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_type_icon
-msgid "Activity Type Icon"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Add a Line"
-msgstr "إضافة سجل"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Add a line"
-msgstr "إضافة سجل"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Add a note"
-msgstr "إضافة ملاحظة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Add a section"
-msgstr "إضافة قسم"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__amount
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__amount
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__amount
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_tree
-msgid "Amount"
-msgstr "القيمة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_forms
-msgid "Approve"
-msgstr "إعتماد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_attachment_count
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_attachment_count
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_attachment_count
-msgid "Attachment Count"
-msgstr "عدد المرفقات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__balance
-msgid "Balance"
-msgstr "الرصيد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__branch_id
-msgid "Branch"
-msgstr "الفرع"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_res_branches
-msgid "Branches"
-msgstr "الفروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__state__cancel
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_forms
-msgid "Cancel"
-msgstr "ملغي"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__state__cancel
-msgid "Cancelled"
-msgstr "ملغي"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "Cannot Delete line that already have payment"
-msgstr "لا يمكن حذف قسط مدفوع بالفعل"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__city
-#: model:ir.ui.menu,name:project_management_custom.project_city_menu
-msgid "City"
-msgstr "المدينة"
-
-#. module: project_management_custom
-#: model_terms:ir.actions.act_window,help:project_management_custom.view_engineering_office_partner
-msgid "Click to create a Engineering Office."
-msgstr "قم بالضغط هنا لإضافة مكتب هندسي"
-
-#. module: project_management_custom
-#: model_terms:ir.actions.act_window,help:project_management_custom.view_subcontractor_office_partner
-msgid "Click to create a Subcontractor Office."
-msgstr "قم بالضغط هنا لإضافة مقاولين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__code
-msgid "Code"
-msgstr "الرمز"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__company_id
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__project_owner_type__company
-msgid "Company"
-msgstr "شركة"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_res_partner
-msgid "Contact"
-msgstr "جهة الاتصال"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__contract_amount
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__contract_amount
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_office_installment_tree
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_tree
-msgid "Contract Amount"
-msgstr "قيمة العقد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__engineering_contract_amount
-msgid "Contract Value"
-msgstr "قيمة العقد"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "Contract Value Cannot be less than zero"
-msgstr "قيمة العقد لا يمكن أن تكون أقل من صفر"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Contractor"
-msgstr "المقاولين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__subcontractor_line_id
-msgid "Contractor Installment"
-msgstr "دفعات المقاولين"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_installment_form
-msgid "Create Payment"
-msgstr "إنشاء دفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__create_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__create_uid
-msgid "Created by"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__create_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__create_date
-msgid "Created on"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__date
-msgid "Date"
-msgstr "التاريخ"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_task_type__case_default
-msgid "Default in new project"
-msgstr "إفتراضي في المشاريع الجديدة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__delivery_date
-msgid "Delivery Data"
-msgstr "تاريخ التسليم"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__delivery_date
-msgid "Delivery Date"
-msgstr "تاريخ التسليم"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__name
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__name
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__name
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__name
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Description"
-msgstr "الوصف"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__detailed_work_item_ids
-msgid "Detailed Item"
-msgstr "البنود التفصيلية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__work_description
-#: model:ir.model.fields.selection,name:project_management_custom.selection__detailed_work_item__type__detailed
-#: model:ir.model.fields.selection,name:project_management_custom.selection__sub_work_item__type__detailed
-msgid "Detailed Work"
-msgstr "بنود العمل التفصيلية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__work_detail_id
-msgid "Detailed Work item"
-msgstr "بنود العمل التفصيلية"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__work_item__type__detailed
-msgid "Detailed work"
-msgstr "بنود العمل التفصيلية"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_detailed_work_item
-msgid "DetailedWorkItem"
-msgstr "بنود العمل التفصيلية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__discount_account_id
-msgid "Discount Account"
-msgstr "حساب الخصم"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_project_task_type__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_res_partner__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__display_name
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__display_name
-msgid "Display Name"
-msgstr "الاسم المعروض"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__display_type
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__display_type
-msgid "Display Type"
-msgstr "نوع العرض"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__district
-#: model:ir.ui.menu,name:project_management_custom.project_district_menu
-msgid "District"
-msgstr "الحي"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Done"
-msgstr "مكتمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__state__draft
-msgid "Draft"
-msgstr "مبدئي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__due_date
-msgid "Due Date"
-msgstr "تاريخ الأستحقاق"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__duplicated
-msgid "Duplicated"
-msgstr "مكررة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__date_end
-msgid "End Date"
-msgstr "تاريخ النهاية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__payment_id
-msgid "Eng Office Payment"
-msgstr "دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_engineering_office_line_action
-#: model:ir.ui.menu,name:project_management_custom.engineering_office_installment
-msgid "Engineer Office Installment"
-msgstr "دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__engineering_contract_balance
-msgid "Engineering Contract Balance"
-msgstr "الرصيد"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_engineering_office_partner
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__engineering_office_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__engineering_office_id
-#: model:ir.model.fields,field_description:project_management_custom.field_res_partner__is_engineering_office
-#: model:ir.model.fields,field_description:project_management_custom.field_res_users__is_engineering_office
-#: model:ir.model.fields.selection,name:project_management_custom.selection__account_move__installment_type__engineer_office
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__type__eng_office
-#: model:ir.ui.menu,name:project_management_custom.engineering_office
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Engineering Office"
-msgstr "المكاتب الهندسية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_bank_statement_line__eng_office_installment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__eng_office_installment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_payment__eng_office_installment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__eng_office_installment_id
-msgid "Engineering Office Installment"
-msgstr "دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_engineering_office_line
-msgid "Engineering Office Line"
-msgstr "سطور المكتب الهندسي"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-msgid "Engineering Office Name"
-msgstr "إسم المكتب الهندسي"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__engineering_office_line_ids
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#, python-format
-msgid "Engineering Office Payment"
-msgstr "دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__epayment_counts
-msgid "Engineering Payment"
-msgstr "دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__estimated_cost
-msgid "Estimated Cost"
-msgstr "التكلفة التقديرية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__estimated_quantities_id
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Estimated Quantity"
-msgstr "الكميات التقديرية"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__project_type__finishing
-msgid "Finishing"
-msgstr "تسليم مفتاح"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__subcontractor_work_line__type__fixed
-msgid "Fixed"
-msgstr "ثابتة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__flag
-msgid "Flag"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_follower_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_follower_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_follower_ids
-msgid "Followers"
-msgstr "متابعين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_channel_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_channel_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_channel_ids
-msgid "Followers (Channels)"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_partner_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_partner_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_partner_ids
-msgid "Followers (Partners)"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__activity_type_icon
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__activity_type_icon
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__activity_type_icon
-msgid "Font awesome icon e.g. fa-tasks"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_view_work_item_search
-msgid "Group By..."
-msgstr "تجميع حسب"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__id
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__id
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_task_type__id
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__id
-#: model:ir.model.fields,field_description:project_management_custom.field_res_partner__id
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__id
-msgid "ID"
-msgstr "المُعرف"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_exception_icon
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_exception_icon
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_exception_icon
-msgid "Icon"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__activity_exception_icon
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__activity_exception_icon
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__activity_exception_icon
-msgid "Icon to indicate an exception activity."
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_needaction
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_unread
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_needaction
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_unread
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_needaction
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_unread
-msgid "If checked, new messages require your attention."
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_has_error
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_has_sms_error
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_has_error
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_has_sms_error
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_has_error
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_has_sms_error
-msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__state__in_progess
-msgid "In Executing"
-msgstr "جاري التنفيذ"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__state__draft
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "In Progress"
-msgstr "بدء التنفيذ"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__installment_id
-msgid "Installment"
-msgstr "الدفعات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__installment_line_ids
-msgid "Installment Line"
-msgstr "سطور الدفعات"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_installment_form
-msgid "Installment Payment"
-msgstr "الدفعات المجدولة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_bank_statement_line__installment_type
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__installment_type
-#: model:ir.model.fields,field_description:project_management_custom.field_account_payment__installment_type
-msgid "Installment Type"
-msgstr "نوع الدفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__project_owner_type__investment
-msgid "Investment"
-msgstr "إستثمار"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_is_follower
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_is_follower
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_is_follower
-msgid "Is Follower"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-msgid "Item"
-msgstr "عناصر"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_account_move
-msgid "Journal Entry"
-msgstr "قيد اليومية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__last_installment
-msgid "Last Installment"
-msgstr "أخر دفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_project_task_type____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_res_partner____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line____last_update
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item____last_update
-msgid "Last Modified on"
-msgstr "آخر تعديل في"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__write_uid
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__write_date
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__from_subcontractor
-msgid "Line Created From Subcontractor Work"
-msgstr "بنود عمل المقاول"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_main_attachment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_main_attachment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_main_attachment_id
-msgid "Main Attachment"
-msgstr "المرفقات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_has_error
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_has_error
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_has_error
-msgid "Message Delivery error"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_ids
-msgid "Messages"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__my_activity_date_deadline
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__my_activity_date_deadline
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__my_activity_date_deadline
-msgid "My Activity Deadline"
-msgstr "الموعد النهائي لنشاطاتي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__name
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__name
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__name
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__name
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_view_work_item_search
-msgid "Name"
-msgstr "الوصف"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_date_deadline
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_date_deadline
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_date_deadline
-msgid "Next Activity Deadline"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_summary
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_summary
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_summary
-msgid "Next Activity Summary"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_type_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_type_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_type_id
-msgid "Next Activity Type"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.actions.act_window,help:project_management_custom.custom_open_view_project_all
-msgid "No projects found. Let's create one!"
-msgstr "لايوجد مشروع لنقم بإضافة مشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__engineering_office_line__display_type__line_note
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_estimated_quantities__display_type__line_note
-msgid "Note"
-msgstr "ملاحظات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_needaction_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_needaction_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_needaction_counter
-msgid "Number of Actions"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_has_error_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_has_error_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_has_error_counter
-msgid "Number of errors"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_needaction_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_needaction_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_needaction_counter
-msgid "Number of messages which requires an action"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_has_error_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_has_error_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_has_error_counter
-msgid "Number of messages with delivery error"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__message_unread_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__message_unread_counter
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Open Installment"
-msgstr "عرض الدفعة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Other"
-msgstr "أخرى"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Other Information"
-msgstr "معلومات أخرى"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_owner_type
-msgid "Owner Type"
-msgstr "نوع ملكية المشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__paid
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__paid
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__state__done
-msgid "Paid"
-msgstr "تم السداد"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-msgid "Paid Date"
-msgstr "تاريخ السداد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__partner_id
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-msgid "Partner"
-msgstr "المقاول/المكتب الهندسي"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__payment_id
-msgid "Payment"
-msgstr "الدفعة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Payment Amount"
-msgstr "قيمة الدفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__paid_date
-msgid "Payment Date"
-msgstr "تاريخ الدفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__type
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__type
-msgid "Payment Type"
-msgstr "نوع الدفعة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__penalty_after
-msgid "Penalty After"
-msgstr "غرامة بعد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__penalty_amount
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__penalty_amount
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_tree
-msgid "Penalty Amount"
-msgstr "قيمة الغرامة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_installment_line_form
-msgid "Penalty Details"
-msgstr "تفاصيل الغرامة"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_forms
-msgid "Penalty Escape"
-msgstr "تجاوز الغرامة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__penalty_percentage
-msgid "Penalty Percentage"
-msgstr "نسبة الغرامة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__penalty_percentage_limit
-msgid "Penalty Percentage Limit"
-msgstr "حد الغرامة"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "Penalty Percentage Limit exceed !!"
-msgstr "تم تجاوز حد الغرامة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__percent
-#: model:ir.model.fields.selection,name:project_management_custom.selection__subcontractor_work_line__type__percentage
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_tree
-msgid "Percentage"
-msgstr "نسبة"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/engineering_office.py:0
-#, python-format
-msgid "Percentage Cannot be less than zero"
-msgstr "النسبة لا يمكن ان تكون أقل من صفر"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "Please Check Payment Line Must Be equal to %s"
-msgstr "فضلا تأكد من جدولة الدفعات يجب أن تكون مطابقة لــ %s"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "Please Check Project Payment first To Mark This Project as Done"
-msgstr "الرجاء التحقق من دفعات المشروع اولا حتي تستطيع إغلاق المشروع"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_payment.py:0
-#, python-format
-msgid "Please Contact Administrator to configure your project accounts."
-msgstr "فضلا تواصل مع مدير النظام لإعداد الحسابات الخاصه بالمشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__product_id
-msgid "Product"
-msgstr "منتج"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__uom_id
-msgid "Product UOM"
-msgstr "وحدة القياس"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid ""
-"Programming error: wizard action executed without active_id in context."
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__project_id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__project_id
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_search
-msgid "Project"
-msgstr "المشروع"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Project Code"
-msgstr "كود المشروع"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_partner_property_form
-msgid "Project Configuration"
-msgstr "إعدادات المشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_cost
-msgid "Project Cost"
-msgstr "تكلفة المشروع"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_project_estimated_quantities_action
-#: model:ir.model,name:project_management_custom.model_project_estimated_quantities
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_estimated_quantities_ids
-#: model:ir.ui.menu,name:project_management_custom.project_estimated_quantities
-#: model:ir.ui.menu,name:project_management_custom.project_estimated_quantities_menu
-msgid "Project Estimated Quantities"
-msgstr "الكميات التقديرية للمشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__estimated_quantities_id
-msgid "Project Estimated Quantity"
-msgstr "الكميات التقديرية للمشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_total_cost
-msgid "Project Expected Cost"
-msgstr "تكلفة المشروع المتوقع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_expenses_account_id
-msgid "Project Expenses Account"
-msgstr "حساب المصروف"
-
-#. module: project_management_custom
-#: model:ir.ui.menu,name:project_management_custom.project_installment
-msgid "Project Installment"
-msgstr "دفعات المشاريع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_investment_account_id
-msgid "Project Investment Account"
-msgstr "حساب الأستثمار "
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_project_project
-msgid "Project Kh Custom"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__member_ids
-msgid "Project Member"
-msgstr "فريق المشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_bank_statement_line__project_payment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__project_payment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_payment__project_payment_id
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_forms
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_tree
-msgid "Project Payment"
-msgstr "دفعة المشروع"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Project Phase"
-msgstr "مراحل المشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_revenue
-msgid "Project Revenue"
-msgstr "ربح المشروع"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Project Tasks"
-msgstr "مهام المشروع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__project_type
-msgid "Project Type"
-msgstr "نوع المشروع"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.custom_open_view_project_all
-msgid "Projects"
-msgstr "المشاريع"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.action_projects_payments_custom
-#: model:ir.ui.menu,name:project_management_custom.custom_project_payment_menu
-msgid "Projects Payments"
-msgstr "دفعات المشاريع"
-
-#. module: project_management_custom
-#: model_terms:ir.actions.act_window,help:project_management_custom.custom_open_view_project_all
-msgid ""
-"Projects regroup tasks on the same topic and each have their own dashboard."
-msgstr ""
-"يقوم كل مشروع بتجميع المهام الخاصة به، ولكل مشروع لوحة معلومات خاصة به"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_form
-msgid "Qty"
-msgstr "الكمية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__quantity
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__quantity
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Quantity"
-msgstr "الكمية"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_project_project
-msgid "Real Estate Project"
-msgstr "المشاريع العقارية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__remain_amount
-msgid "Remain Amount"
-msgstr "القيمة المتبقية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__activity_user_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__activity_user_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__activity_user_id
-msgid "Responsible User"
-msgstr "المستخدم المسؤول"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_has_sms_error
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_has_sms_error
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_has_sms_error
-msgid "SMS Delivery error"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_view_work_item_search
-msgid "Search"
-msgstr "بحث"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_engineering_office_line_search
-msgid "Search Engineer Office/Project"
-msgstr "بحث المكاتب الهندسي / المشاريع"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-msgid "Search Project Payment"
-msgstr "بحث دفعات المشاريع"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__engineering_office_line__display_type__line_section
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_estimated_quantities__display_type__line_section
-msgid "Section"
-msgstr "قسم"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__sequence
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__sequence
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__sequence
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__sequence
-msgid "Sequence"
-msgstr "التسلسل"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Set To Draft"
-msgstr "إعادة إلى مبدئي"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__state__done
-msgid "Sold"
-msgstr "مباع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__date_start
-msgid "Start Date"
-msgstr "تاريخ البداية"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__state
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-msgid "State"
-msgstr "الحالة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__state
-msgid "Status"
-msgstr "الحالة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__activity_state
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__activity_state
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__activity_state
-msgid ""
-"Status based on activities\n"
-"Overdue: Due date is already passed\n"
-"Today: Activity date is today\n"
-"Planned: Future activities."
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__street
-msgid "Street"
-msgstr "الشارع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__sub_work_item_id
-#: model:ir.model.fields.selection,name:project_management_custom.selection__detailed_work_item__type__sub
-#: model:ir.model.fields.selection,name:project_management_custom.selection__sub_work_item__type__sub
-msgid "Sub Work"
-msgstr "تفاصيل بند العمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__sub_work_item_id
-msgid "Sub Work Item"
-msgstr "تفاصيل بند العمل"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_sub_work_item
-msgid "Sub Work Items"
-msgstr "تفاصيل بنود العمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__work_item__type__sub
-msgid "Sub work"
-msgstr "بنود العمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__sub_work_item_id
-msgid "Sub work item"
-msgstr "بنود العمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__subcontractor_id
-msgid "Subcontract"
-msgstr "المقاول"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__subcontractor_installment_id
-msgid "Subcontract Installment"
-msgstr "دفعات المقاول"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_search
-msgid "Subcontract Work"
-msgstr "بنود عمل المقاول"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.subcontractor_installment_view_action
-#: model:ir.actions.act_window,name:project_management_custom.view_subcontractor_work_line_installment_action
-#: model:ir.model,name:project_management_custom.model_subcontractor_work
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__subcontractor_id
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__subcontractor_work_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_res_partner__is_subcontractor
-#: model:ir.model.fields,field_description:project_management_custom.field_res_users__is_subcontractor
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__subcontractor_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__subcontractor_id
-#: model:ir.model.fields.selection,name:project_management_custom.selection__account_move__installment_type__subcontractor
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__type__subcontractor
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_line_search
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_search
-msgid "Subcontractor"
-msgstr "المقاول"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__sinstallment_count
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#, python-format
-msgid "Subcontractor Installment"
-msgstr "بنود المقاولين"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_subcontractor_installment_line_action
-#: model:ir.ui.menu,name:project_management_custom.subcontractor_installment_line_menu
-msgid "Subcontractor Installment Line"
-msgstr "سطور دفعات المقاولين"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_subcontractor_office_partner
-#: model:ir.ui.menu,name:project_management_custom.contractor_office_menu
-msgid "Subcontractor Office"
-msgstr "مقاولين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_account_bank_statement_line__subcontractor_installment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_move__subcontractor_installment_id
-#: model:ir.model.fields,field_description:project_management_custom.field_account_payment__subcontractor_installment_id
-#: model:ir.ui.menu,name:project_management_custom.subcontractor_office_installment_menu
-msgid "Subcontractor Office Installment"
-msgstr "دفعات المقاولين"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_subcontractor_installment_search
-msgid "Subcontractor Office Name"
-msgstr "المقاول"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__spayment_counts
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-#, python-format
-msgid "Subcontractor Payment"
-msgstr "دفعات المقاولين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__subcontractor_work_id
-msgid "Subcontractor Work"
-msgstr "بنود عمل المقاول"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__work_amount
-msgid "Subcontractor Work Amount"
-msgstr "قيمة بند عمل المقاول"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__state__submit
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_forms
-msgid "Submit"
-msgstr "تأكيد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_res_branches__manager_id
-msgid "Supervisor"
-msgstr "المشرف"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_project_task_type
-msgid "Task Stage"
-msgstr "مرحلة المهمة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_project__type_ids
-msgid "Tasks Stages"
-msgstr "مراحل المهام"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "Teams"
-msgstr "الفريق"
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__display_type
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__display_type
-msgid "Technical field for UX purpose."
-msgstr ""
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/work_tem.py:0
-#: code:addons/project_management_custom/models/work_tem.py:0
-#: code:addons/project_management_custom/models/work_tem.py:0
-#: code:addons/project_management_custom/models/work_tem.py:0
-#, python-format
-msgid "This Record Cannot Be Deleted"
-msgstr "لا يمكن حذف هذا السجل"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_payment_request__state__approve
-msgid "To Pay"
-msgstr "للسداد"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "To Proceed,Contract Value Cannot be zero"
-msgstr "لإكمال الإجراء قيمة العقد لا يمكن أن تكون صفر"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "To Proceed,Please Insert Engineering Office Payment"
-msgstr "لإكمال الإجراء فضلا قم بإدخال دفعات المكتب الهندسي"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "To Proceed,Please Insert Project Estimated Quantities"
-msgstr "ﻷإكمال الإجراء فضلا قم بإدخال الكميات التقديرية للمشروع"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_custom.py:0
-#, python-format
-msgid "To Proceed,Please Insert Subcontractor"
-msgstr "لإكمال الإجراء فضلا قم بإدخال المقاولين"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__total_work_attached_line
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Total"
-msgstr "الأجمالي"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_form
-msgid "Total Amount"
-msgstr "إجمالي القيمة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__total_installment
-msgid "Total Installment"
-msgstr "إجمالي الدفعات"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_office_installment_tree
-msgid "Total Installment Amount"
-msgstr "إجمالي قيمة الدفعات"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__total_work
-msgid "Total Work"
-msgstr "إجمالي الأعمال"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__total_estimated_qty
-msgid "Total estimated quantity"
-msgstr "إجمالي الكمية التقديرية"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "Total installment line is more than %s contract amount"
-msgstr "إجمالي قيمة الدفعات %s أكبر من قيمة العقد"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_detailed_work_item__type
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__type
-#: model:ir.model.fields,field_description:project_management_custom.field_work_item__type
-#: model_terms:ir.ui.view,arch_db:project_management_custom.project_payment_request_view_select
-msgid "Type"
-msgstr "نوع"
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__activity_exception_decoration
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__activity_exception_decoration
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__activity_exception_decoration
-msgid "Type of the exception activity on record."
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_form
-msgid "Unit"
-msgstr "وحدة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__unit_price
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__unit_price
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Unit Price"
-msgstr "سعر الوحدة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__uom_id
-msgid "Unit of measure"
-msgstr "وحدة القياس"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_unread
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_unread
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__message_unread_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__message_unread_counter
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Uom"
-msgstr "وحدة القياس"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__value
-msgid "Value"
-msgstr "القيمة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__website_message_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__website_message_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_project_payment_request__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields,help:project_management_custom.field_engineering_office_line__website_message_ids
-#: model:ir.model.fields,help:project_management_custom.field_project_estimated_quantities__website_message_ids
-#: model:ir.model.fields,help:project_management_custom.field_project_payment_request__website_message_ids
-msgid "Website communication history"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__project_type__with_bone
-msgid "With Bone"
-msgstr "عظم بالمواد"
-
-#. module: project_management_custom
-#: model:ir.model.fields.selection,name:project_management_custom.selection__project_project__project_type__without_bone
-msgid "Without Bone"
-msgstr "عظم بدون مواد"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_work_attached
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__work_attached_id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__work_attached_ids
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__work_attached_id
-msgid "Work Attached"
-msgstr "الأعمال الملحقة"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_work_attached_line
-msgid "Work Attached Line"
-msgstr "بنود الأعمال الملحقة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__description
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached_line__work_description
-msgid "Work Description"
-msgstr "وصف الأعمال"
-
-#. module: project_management_custom
-#: model:ir.actions.act_window,name:project_management_custom.view_work_item_action
-#: model:ir.model.fields,field_description:project_management_custom.field_sub_work_item__work_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_installment__work_item_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work__work_item_id
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__work_item_id
-#: model:ir.model.fields,field_description:project_management_custom.field_work_attached__work_item_id
-#: model:ir.model.fields.selection,name:project_management_custom.selection__detailed_work_item__type__item
-#: model:ir.model.fields.selection,name:project_management_custom.selection__sub_work_item__type__item
-#: model:ir.model.fields.selection,name:project_management_custom.selection__work_item__type__item
-#: model:ir.ui.menu,name:project_management_custom.work_item_menu
-#: model_terms:ir.ui.view,arch_db:project_management_custom.view_project_estimated_quantities_search
-msgid "Work Item"
-msgstr "بند العمل"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.subcontractor_installment_line_form
-msgid "Work Line Details"
-msgstr "تفاصيل بنود العمل"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_project_estimated_quantities__work_item_id
-msgid "Work item"
-msgstr "بند العمل"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_payment.py:0
-#, python-format
-msgid "You cannot Delete project payment."
-msgstr "لا يمكنك حذف الدفعة"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/engineering_office.py:0
-#, python-format
-msgid ""
-"You cannot change the type of a Engeerning Office line. Instead you should "
-"delete the current line and create a new line of the proper type."
-msgstr ""
-"لا يمكنك تغير نوع المكتب الهندسي في البند لكن يمكنك إزالة البند الحالي و "
-"إنشاء بند جدبد بالنوع المناسب"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_estimated_quantities.py:0
-#, python-format
-msgid ""
-"You cannot change the type of a Project Estimated Quantities. Instead you "
-"should delete the current line and create a new line of the proper type."
-msgstr ""
-"لا يمكنك تغير نوع الكمية التقديرية في البند لكن يمكنك إزالة البند الحالي و "
-"إنشاء بند جدبد بالنوع المناسب"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/project_payment.py:0
-#, python-format
-msgid "You cannot duplicate project payment."
-msgstr "لا يمكنك نسخ الدفعه"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "contract terms with the contractor"
-msgstr "إضافة بنود تعاقد مع المقاول"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_subcontractor_work_line__paid_date
-msgid "paid date"
-msgstr "تاريخ السداد"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "penalty_percentage"
-msgstr "نسبة الغرامة"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "penalty_percentage_limit"
-msgstr "حد نسبة الغرامة"
-
-#. module: project_management_custom
-#: model:ir.model.fields,field_description:project_management_custom.field_engineering_office_line__project_id
-msgid "project"
-msgstr "المشروع"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_project_payment_request
-msgid "project.payment.request"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_subcontractor_installment
-msgid "subcontractor.installment"
-msgstr ""
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_subcontractor_work_line
-msgid "subcontractor.work.line"
-msgstr ""
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "total"
-msgstr "إجمالي"
-
-#. module: project_management_custom
-#: model_terms:ir.ui.view,arch_db:project_management_custom.edit_project_customs
-msgid "unit"
-msgstr "الوحدة"
-
-#. module: project_management_custom
-#: code:addons/project_management_custom/models/subcontractor_work.py:0
-#, python-format
-msgid "value"
-msgstr "القيمة"
-
-#. module: project_management_custom
-#: model:ir.model,name:project_management_custom.model_work_item
-msgid "work.item"
-msgstr ""
-
-#. module: project
-#: model:ir.ui.menu,name:project.menu_project_config
-msgid "Configuration"
-msgstr "الإعدادات"
-
-#. module: project
-#: model:ir.model.fields.selection,name:project.selection__project_project__privacy_visibility__followers
-msgid "Invited internal users"
-msgstr "دعوة المستخدمين الداخليين"
-
-#. module: project
-#: model:ir.model.fields.selection,name:project.selection__project_project__privacy_visibility__portal
-msgid "Invited portal users and all internal users"
-msgstr "مستخدمين البوابة المدعوون وجميع المستخدمين الداخليين"
-
-#. module: project
-#: model:ir.model.fields,field_description:project.field_project_project__allowed_portal_user_ids
-msgid "Allowed Portal Users"
-msgstr "مستخدميين البوابة المسموح لهم"
-
-
diff --git a/odex25_realstate/project_management_custom/i18n/ar_AA.po b/odex25_realstate/project_management_custom/i18n/ar_AA.po
deleted file mode 100644
index e69de29bb..000000000
diff --git a/odex25_realstate/project_management_custom/models/__init__.py b/odex25_realstate/project_management_custom/models/__init__.py
deleted file mode 100644
index 96983079c..000000000
--- a/odex25_realstate/project_management_custom/models/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from . import subcontractor_work
-from . import engineering_office
-from . import project_estimated_quantities
-from . import work_tem
-from . import project_custom
-from . import project_conf
-from . import res_partner
-from . import project_payment
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/models/engineering_office.py b/odex25_realstate/project_management_custom/models/engineering_office.py
deleted file mode 100644
index db624958e..000000000
--- a/odex25_realstate/project_management_custom/models/engineering_office.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError, UserError
-
-
-class EngineeringOfficePayment(models.Model):
- _name = 'engineering.office.line'
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _description = "Engineering Office Line"
- _order = 'project_id, id, name'
- _check_company_auto = True
-
-
- name = fields.Char(string="Description")
- project_id = fields.Many2one('project.project', string="project", ondelete='cascade', index=True, copy=False)
- engineering_office_id = fields.Many2one('res.partner', related='project_id.engineering_office_id',
- string="Engineering Office", store=True)
- percent = fields.Float(string="Percentage")
- amount = fields.Float(string="Amount", compute="get_amount", store=True)
- payment_id = fields.Many2one('project.payment.request', string="Eng Office Payment")
- paid = fields.Boolean(string="Paid")
- paid_date = fields.Date(string="Payment Date", )
- due_date = fields.Date(string="Due Date", )
- display_type = fields.Selection([
- ('line_section', "Section"),
- ('line_note', "Note")], default=False, help="Technical field for UX purpose.")
-
- @api.model_create_multi
- def create(self, vals_list):
- for values in vals_list:
- if values.get('display_type', self.default_get(['display_type'])['display_type']):
- values.update(percent=False, due_date=False, )
- return super(EngineeringOfficePayment, self).create(vals_list)
-
- def write(self, values):
- if 'display_type' in values and self.filtered(lambda line: line.display_type != values.get('display_type')):
- raise UserError(_(
- "You cannot change the type of a Engeerning Office line. Instead you should delete the current line and create a new line of the proper type."))
- return super(EngineeringOfficePayment, self).write(values)
-
- def create_office_payment(self):
- vals = {}
- payment_obj = self.env['project.payment.request']
- for record in self:
- vals = {
- 'sequence': '/',
- 'name': record.name or '/',
- 'project_id': record.project_id.id,
- 'delivery_date': record.due_date,
- 'type': 'eng_office',
- 'state': 'draft',
- 'partner_id': record.engineering_office_id.id,
- 'amount': record.amount,
- 'eng_office_installment_id': self.id,
- }
- payment_id = payment_obj.create(vals)
- record.payment_id = payment_id.id
- return True
-
- @api.constrains('percent')
- def check_percent(self):
- for rec in self:
- if rec.percent < 0.0:
- raise ValidationError(_('Percentage Cannot be less than zero'))
-
- @api.depends('project_id', 'project_id.engineering_contract_amount', 'percent')
- def get_amount(self):
- for rec in self:
- if rec.project_id and rec.project_id.engineering_contract_amount > 0.0 and not rec.display_type:
- rec.amount = rec.project_id.engineering_contract_amount * (rec.percent / 100)
-
diff --git a/odex25_realstate/project_management_custom/models/project_conf.py b/odex25_realstate/project_management_custom/models/project_conf.py
deleted file mode 100644
index 8e5e7dad9..000000000
--- a/odex25_realstate/project_management_custom/models/project_conf.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields
-
-
-class Branches(models.Model):
- _name = 'res.branches'
- _description = "Branches"
-
- name = fields.Char(string="Name")
- manager_id = fields.Many2one('res.users', string="Supervisor")
-
-
-class ProjectTaskType(models.Model):
- _inherit = 'project.task.type'
-
- case_default = fields.Boolean(string="Default in new project")
-
-
diff --git a/odex25_realstate/project_management_custom/models/project_custom.py b/odex25_realstate/project_management_custom/models/project_custom.py
deleted file mode 100644
index 1a707c3a5..000000000
--- a/odex25_realstate/project_management_custom/models/project_custom.py
+++ /dev/null
@@ -1,213 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from datetime import datetime, date
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
-
-
-class ProjectCustom(models.Model):
- _inherit = 'project.project'
- _description = "Real Estate Project"
-
- def _get_task_type(self):
- """
- :return: project task type if it default
- """
- type_ids = self.env['project.task.type'].search([('case_default', '=', True)])
- return type_ids
-
- code = fields.Char(string="Code")
- project_type = fields.Selection([('with_bone', 'With Bone'),
- ('without_bone', 'Without Bone'),
- ('finishing', 'Finishing')], string="Project Type", default='with_bone')
- project_owner_type = fields.Selection([('company', 'Company'),
- ('investment', 'Investment')], string="Owner Type")
- branch_id = fields.Many2one('res.branches', string="Branch")
- member_ids = fields.Many2many('res.users', string="Project Member")
- date_start = fields.Date(string="Start Date")
- date_end = fields.Date(string="End Date")
- # attachment_ids = fields.One2many('ir.attachment', 'project_id', string="Attachment")
- type_ids = fields.Many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id',
- string='Tasks Stages', default=_get_task_type)
- engineering_office_id = fields.Many2one('res.partner', string="Engineering Office")
- engineering_contract_amount = fields.Float(string="Contract Value")
- engineering_contract_balance = fields.Float(string="Engineering Contract Balance", compute="get_contract_balance")
- engineering_office_line_ids = fields.One2many('engineering.office.line', 'project_id',
- string="Engineering Office Payment", copy=True, auto_join=True)
- project_estimated_quantities_ids = fields.One2many('project.estimated.quantities', 'project_id',
- string="Project Estimated Quantities")
- project_expenses_account_id = fields.Many2one('account.account', string='Project Expenses Account')
- project_investment_account_id = fields.Many2one('account.account', string='Project Investment Account')
- discount_account_id = fields.Many2one('account.account', string='Discount Account')
- subcontractor_work_ids = fields.One2many('subcontractor.work','project_id', string="Subcontractor")
- spayment_counts = fields.Integer(string='Subcontractor Payment', compute='count_payment_number')
- epayment_counts = fields.Integer(string='Engineering Payment', compute='count_payment_number')
- sinstallment_count = fields.Integer(string='Subcontractor Installment', compute='count_installment')
- state = fields.Selection([('draft', 'Draft'),
- ('in_progess', 'In Progress'),
- ('done', 'Done'),
- ('cancel', 'Cancelled'),], string="Status", default='draft')
- project_cost = fields.Float(string="Project Cost", compute="get_project_cost")
- estimated_cost = fields.Float(string="Estimated Cost", compute="get_project_cost")
- project_total_cost = fields.Float(string="Project Expected Cost")
- project_revenue = fields.Float(string="Project Revenue",compute="get_project_cost")
- street = fields.Char(string='Street', copy=False)
- city = fields.Many2one('re.city', string="City", copy=False)
- district = fields.Many2one('district',string="District", copy=False)
-
- @api.depends('project_total_cost','subcontractor_work_ids', 'subcontractor_work_ids.contract_amount', 'project_estimated_quantities_ids', 'project_estimated_quantities_ids.total_estimated_qty', 'engineering_contract_amount')
- def get_project_cost(self):
- estimated_cost = 0.0
- project_cost = 0.0
- for rec in self:
- for line in rec.project_estimated_quantities_ids:
- estimated_cost += line.total_estimated_qty
- for subcontractor in rec.subcontractor_work_ids:
- project_cost += subcontractor.contract_amount
- project_cost += rec.engineering_contract_amount
- rec.project_cost = project_cost
- rec.estimated_cost = estimated_cost
- rec.project_revenue = rec.project_total_cost - rec.project_cost
-
-
- def _check_validations(self):
- for record in self:
- if record.engineering_contract_amount == 0.0:
- raise ValidationError(_("To Proceed,Contract Value Cannot be zero"))
- if not record.engineering_office_line_ids:
- raise ValidationError(_("To Proceed,Please Insert Engineering Office Payment"))
- if record.engineering_office_line_ids:
- due_date = record.engineering_office_line_ids.mapped('due_date')
- if len (due_date) == 1 and not due_date[0]:
- raise ValidationError(_("To Proceed,Please Insert Engineering Office Payment"))
- if not record.project_estimated_quantities_ids:
- raise ValidationError(_("To Proceed,Please Insert Project Estimated Quantities"))
- if not record.subcontractor_work_ids:
- raise ValidationError(_("To Proceed,Please Insert Subcontractor"))
-
- def action_submit(self):
- self._check_validations()
- self.state = 'in_progess'
-
- def action_done(self):
- paid = True
- contract_installment = self.env['subcontractor.installment'].search([('project_id', '=', self.id)])
- # Check Contractor Payment
- for payment in contract_installment.installment_line_ids:
- if not payment.paid:
- paid = False
- # Check Engineering Payment
- for engineering_payment in self.engineering_office_line_ids:
- if not engineering_payment.paid:
- paid = False
- if paid:
- self.state = 'done'
-
- elif not paid:
- raise ValidationError(_("Please Check Project Payment first To Mark This Project as Done"))
-
- def action_draft(self):
- self.state = 'draft'
-
-
- def action_cancel(self):
- self.state = 'cancel'
-
- def get_subcontractor_payment(self):
- subcontractor_payment_ids = self.env['project.payment.request'].search([('project_id', '=', self.id),
- ('type', '=', 'subcontractor')])
- form_id = self.env.ref('project_management_custom.project_payment_request_view_forms').id
- tree_id = self.env.ref('project_management_custom.project_payment_request_view_tree').id
- domain = [('id', 'in', subcontractor_payment_ids.ids)]
- return {
- 'name': _('Subcontractor Payment'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'project.payment.request',
- 'views': [(tree_id, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
- def get_engineering_payment(self):
- engineering_payment_ids = self.env['project.payment.request'].search([('project_id', '=', self.id),
- ('type', '=', 'eng_office')])
- form_id = self.env.ref('project_management_custom.project_payment_request_view_forms').id
- domain = [('id', 'in', engineering_payment_ids.ids)]
- return {
- 'name': _('Engineering Office Payment'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'project.payment.request',
- 'views': [(False, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
- def get_subcontractor_installment(self):
- subcontractor_installment_ids = self.env['subcontractor.installment'].search(
- [('project_id', '=', self.id)])
- form_id = self.env.ref('project_management_custom.subcontractor_installment_form').id
- domain = [('id', 'in', subcontractor_installment_ids.ids)]
- return {
- 'name': _('Subcontractor Installment'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'subcontractor.installment',
- 'views': [(False, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
- def count_installment(self):
- sinstallment_count = self.env['subcontractor.installment'].search_count([('project_id', '=', self.id)])
- self.sinstallment_count = sinstallment_count
-
- def count_payment_number(self):
- spayment_count = self.env['project.payment.request'].search_count([('project_id', '=', self.id),
- ('type', '=', 'subcontractor')])
- epayment_count = self.env['project.payment.request'].search_count([('project_id', '=', self.id),
- ('type', '=', 'eng_office')])
-
- self.spayment_counts = spayment_count
- self.epayment_counts = epayment_count
-
-
- @api.depends('engineering_office_line_ids', 'engineering_office_line_ids.amount',
- 'engineering_office_line_ids.paid')
- def get_contract_balance(self):
- for rec in self:
- paid_amount = sum([line.amount if line.paid == True else 0.0 for line in rec.engineering_office_line_ids])
- rec.engineering_contract_balance = rec.engineering_contract_amount - paid_amount
-
- @api.constrains('engineering_contract_amount')
- def check_amount(self):
- for rec in self:
- if rec.engineering_contract_amount < 0.0:
- raise ValidationError(_("Contract Value Cannot be less than zero"))
-
- @api.constrains('engineering_office_line_ids', 'engineering_office_line_ids.amount')
- def check_total(self):
- for rec in self:
- line_amount = sum([line.amount for line in rec.engineering_office_line_ids])
- if rec.engineering_office_line_ids:
- for line in rec.engineering_office_line_ids:
- if line_amount > rec.engineering_contract_amount or line_amount < rec.engineering_contract_amount and not line.display_type:
- raise ValidationError(
- _("Please Check Payment Line Must Be equal to %s") % rec.engineering_contract_amount)
-
-
-# class IrAttachment(models.Model):
-# _inherit = "ir.attachment"
-# _description = "Project Attachment"
-
-# project_id = fields.Many2one('project.project', string="Project")
diff --git a/odex25_realstate/project_management_custom/models/project_estimated_quantities.py b/odex25_realstate/project_management_custom/models/project_estimated_quantities.py
deleted file mode 100644
index 81d8c9b9f..000000000
--- a/odex25_realstate/project_management_custom/models/project_estimated_quantities.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import UserError
-
-class ProjectEstimatedQuantities(models.Model):
- _name = 'project.estimated.quantities'
- _description = "Project Estimated Quantities"
- _inherit = ['mail.thread', 'mail.activity.mixin']
-
- @api.model_create_multi
- def create(self, vals_list):
- for values in vals_list:
- if values.get('display_type', self.default_get(['display_type'])['display_type']):
- values.update(quantity=False, uom_id=False, unit_price=False, )
- return super(ProjectEstimatedQuantities, self).create(vals_list)
-
- def write(self, values):
- if 'display_type' in values and self.filtered(lambda line: line.display_type != values.get('display_type')):
- raise UserError(_(
- "You cannot change the type of a Project Estimated Quantities. Instead you should delete the current line and create a new line of the proper type."))
- return super(ProjectEstimatedQuantities, self).write(values)
-
- work_item_id = fields.Many2one('work.item', string="Work item")
- name = fields.Char(string='Description')
- sub_work_item_id = fields.Many2one('sub.work.item', string='Sub work item')
- work_detail_id = fields.Many2one('detailed.work.item', string="Detailed Work item")
- work_attached_id = fields.Many2one('work.attached', string="Work Attached")
- quantity = fields.Float(string="Quantity", default=1, digits=(16, 2))
- uom_id = fields.Many2one('uom.uom', string="Unit of measure")
- unit_price = fields.Float(string="Unit Price", digits=(16, 2))
- total_estimated_qty = fields.Float(string="Total estimated quantity", compute='compute_total', digits=(16, 2))
- project_id = fields.Many2one("project.project", string="Project")
- subcontractor_id = fields.Many2one("subcontractor.work", sgtring="Subcontractor ")
- from_subcontractor = fields.Boolean(string="Line Created From Subcontractor Work")
- duplicated = fields.Boolean(string="Duplicated")
- description = fields.Char(string="Work Description")
- work_amount = fields.Float(string="Subcontractor Work Amount")
- display_type = fields.Selection([
- ('line_section', "Section"),
- ('line_note', "Note")], default=False, help="Technical field for UX purpose.")
-
- @api.onchange('work_item_id')
- def onchange_work_item(self):
- for record in self:
- record.sub_work_item_id = False
- record.work_detail_id = False
-
- @api.onchange('sub_work_item_id')
- def onchange_sub_work_item(self):
- for record in self:
- record.work_detail_id = False
-
- @api.depends('quantity', 'unit_price')
- def compute_total(self):
- price_unit = 0.0
- for record in self:
- record.total_estimated_qty = round(record.quantity * record.unit_price, 2)
diff --git a/odex25_realstate/project_management_custom/models/project_payment.py b/odex25_realstate/project_management_custom/models/project_payment.py
deleted file mode 100644
index b496d422c..000000000
--- a/odex25_realstate/project_management_custom/models/project_payment.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from datetime import datetime, date
-from odoo import models, fields, api, _
-from odoo.exceptions import UserError
-
-
-class ProjectPaymentRequest(models.Model):
- _name = 'project.payment.request'
- _inherit = ['mail.thread', 'mail.activity.mixin']
-
- def create(self, vals):
- if vals.get('sequence') == '/':
- if vals.get('type') == 'subcontractor':
- vals['sequence'] = self.env['ir.sequence'].next_by_code('project.payment.request.subcontract') or ('/')
- else :
- vals['sequence'] = self.env['ir.sequence'].next_by_code('project.payment.request.eng') or ('/')
- result = super(ProjectPaymentRequest, self).create(vals)
- return result
-
- @api.returns('self', lambda value: value.id)
- def copy(self, default=None):
- raise UserError(_('You cannot duplicate project payment.'))
-
- def unlink(self):
- raise UserError(_('You cannot Delete project payment.'))
-
-
- @api.model
- def name_get(self):
- """
- :return:
- """
- res = []
- for rec in self:
- order_name = rec.sequence
- if order_name:
- order_name = order_name + ' |' + str(rec.name)
- res.append((rec.id, order_name))
- return res
-
- @api.model
- def name_search(self, name='', args=None, operator='ilike', limit=80):
- args = args or []
- records = self.search(
- ['|', ('sequence', operator, name), ('name', operator, name)] + args,
- limit=limit)
- return records.name_get()
-
- sequence = fields.Char(string='Sequence', default='/')
- name = fields.Char(string='Description')
- project_id = fields.Many2one('project.project', string='Project')
- date = fields.Date(string='Date')
- delivery_date = fields.Date(string='Delivery Data')
- type = fields.Selection([('subcontractor', 'Subcontractor'),
- ('eng_office', 'Engineering Office')], string='Payment Type', default='eng_office')
- state = fields.Selection([('draft', 'Draft'),
- ('submit', 'Submit'),
- ('approve', 'To Pay'),
- ('done', 'Paid'),
- ('cancel', 'Cancel')], string='State', default='draft')
- partner_id = fields.Many2one('res.partner', string='Partner')
- amount = fields.Float(string='Amount',digits=(16, 2))
- eng_office_installment_id = fields.Many2one('engineering.office.line',string='Engineering Office Installment')
- subcontractor_line_id = fields.Many2one('subcontractor.work.line',string='Contractor Installment')
- account_move_id = fields.Many2one('account.move',string='Account Move')
- penalty_amount = fields.Float(string="Penalty Amount")
- flag = fields.Boolean(string="Flag")
- company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.company)
-
- def _get_delay_details(self):
- amount = 0.0
- for record in self:
- if record.subcontractor_line_id:
- for line in record.subcontractor_line_id:
- amount += line.penalty_amount
- record.penalty_amount = amount
-
- def expect_penalty(self):
- self.penalty_amount = 0
- self.flag = True
-
- def submit(self):
- self._get_delay_details()
- self.state = 'submit'
-
- def cancel(self):
- if self.eng_office_installment_id :
- self.eng_office_installment_id.payment_id = False
- self.state = 'cancel'
-
- def compute_days(self, date,date_to):
- if date and date_to:
- d1 = datetime.strptime(str(date), '%Y-%m-%d')
- d2 = datetime.strptime(str(date_to), '%Y-%m-%d')
- daysDiff = (d1 - d2).days
- days = int(daysDiff) + 1
- return days
-
- def _prepare_invoice_values(self, payment, installment_type, project_payment_id,name_spec,account_id, amount):
- invoice_vals = {
- 'ref': payment.name,
- 'move_type': 'in_invoice',
- 'invoice_origin': payment.sequence,
- 'invoice_user_id': self.env.user.id,
- 'installment_type': installment_type,
- 'project_payment_id': project_payment_id,
- 'invoice_date': payment.date,
- 'invoice_date_due': payment.date,
- 'eng_office_installment_id': payment.eng_office_installment_id.id,
- 'narration': payment.name,
- 'partner_id': payment.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': name_spec,
- 'price_unit': amount,
- 'quantity': 1.0,
- 'account_id': account_id,
- # 'tax_ids': [(6, 0, [payment.tax_id.id])],
- })],
- }
- return invoice_vals
-
-
- def approve(self):
- if not self.project_id.project_expenses_account_id or not self.project_id.discount_account_id or not self.project_id.project_investment_account_id:
- raise UserError(_('Please Contact Administrator to configure your project accounts.'))
- if self.project_id.project_owner_type == 'company':
- account_id = self.project_id.project_expenses_account_id
- else :
- account_id = self.project_id.project_investment_account_id
- name_spec = ''
- name_spec = 'Installment Reference:' + str(self.sequence) + '-' + str(self.name)
- if self.type == 'eng_office':
- invoice = self._prepare_invoice_values(self, 'engineer_office', self.id, name_spec, account_id, self.amount)
- elif self.type == 'subcontractor':
- amount = 0.0
- days = self.compute_days(self.subcontractor_line_id.subcontractor_installment_id.delivery_date, date.today().strftime('%Y-%m-%d'))
- if not self.flag:
- amount = abs(self.amount - self.penalty_amount)
- else:
- amount = self.amount
- invoice = self._prepare_invoice_values(self, 'subcontractor', self.id, name_spec, account_id, self.amount)
- invoice_id = self.env['account.move'].sudo().create(invoice).with_user(self.env.uid)
- self.state = 'approve'
- self.account_move_id = invoice_id.id
-
-
-class AccountInvoice(models.Model):
- _inherit = 'account.move'
-
- installment_type = fields.Selection([('subcontractor','Subcontractor'),
- ('engineer_office','Engineering Office')], string='Installment Type')
- project_payment_id = fields.Many2one('project.payment.request', string='Project Payment')
- eng_office_installment_id = fields.Many2one('engineering.office.line', string='Engineering Office Installment')
- subcontractor_installment_id = fields.Many2one('subcontractor.work.line', string='Subcontractor Office Installment')
-
- def action_post(self):
- res = super(AccountInvoice, self).action_post()
- if self.project_payment_id:
- self.project_payment_id.state = 'done'
- if self.subcontractor_installment_id:
- self.subcontractor_installment_id.paid = True
- self.subcontractor_installment_id.paid_date = date.today()
- if self.eng_office_installment_id:
- self.eng_office_installment_id.paid = True
- self.eng_office_installment_id.paid_date = date.today()
- return res
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/models/res_partner.py b/odex25_realstate/project_management_custom/models/res_partner.py
deleted file mode 100644
index 6cd02b9fe..000000000
--- a/odex25_realstate/project_management_custom/models/res_partner.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields
-
-
-class ResPartner(models.Model):
- _inherit = 'res.partner'
-
- is_engineering_office = fields.Boolean(string='Engineering Office')
- is_subcontractor = fields.Boolean(string='Subcontractor')
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/models/subcontractor_work.py b/odex25_realstate/project_management_custom/models/subcontractor_work.py
deleted file mode 100644
index 3be26003f..000000000
--- a/odex25_realstate/project_management_custom/models/subcontractor_work.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from datetime import date
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError
-
-class SubcontractorWork(models.Model):
- _name = 'subcontractor.work'
- _description = "Subcontractor"
- _rec_name = 'subcontractor_id'
-
- subcontractor_id = fields.Many2one('res.partner', string="Subcontractor")
- work_item_id = fields.Many2one('work.item', string="Work Item")
- contract_amount = fields.Float(string="Contract Amount")
- balance = fields.Float(string="Balance", compute='_compute_balance')
- project_id = fields.Many2one('project.project', string="Project")
- installment_id = fields.Many2one('subcontractor.installment', string="Installment")
-
- @api.depends('installment_id')
- def _compute_balance(self):
- for record in self:
- total_paid = 0
- if record.installment_id:
- for line in record.installment_id.installment_line_ids:
- if line.paid:
- total_paid += line.amount
- record.balance = record.contract_amount - total_paid
-
-
- def open_installment_view(self):
- return {
- 'name': _('Subcontractor Installment'),
- 'type': 'ir.actions.act_window',
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'subcontractor.installment',
- 'target': 'current',
- 'res_id': self.installment_id.id,
- }
-
-
-class SubcontractorInstallment(models.Model):
- _name = "subcontractor.installment"
-
- name = fields.Char(string="Description")
- subcontractor_work_id = fields.Many2one('subcontractor.work', string="Subcontractor Work")
- delivery_date = fields.Date(string="Delivery Date")
- project_id = fields.Many2one('project.project', related="subcontractor_work_id.project_id", string="Project", store=True)
- subcontractor_id = fields.Many2one('res.partner', related="subcontractor_work_id.subcontractor_id", string="Subcontractor", store=True)
- work_item_id = fields.Many2one('work.item', related="subcontractor_work_id.work_item_id", store=True)
- contract_amount = fields.Float(related="subcontractor_work_id.contract_amount", string="Contract Amount", store=True)
- total_installment = fields.Float(string="Total Installment", compute="_get_installment_total", store=True)
- installment_line_ids = fields.One2many('subcontractor.work.line', 'subcontractor_installment_id', string="Installment Line")
- remain_amount = fields.Float(string="Remain Amount", compute="get_remain_amount")
-
- @api.depends('remain_amount')
- def get_remain_amount(self):
- for rec in self:
- rec.remain_amount = rec.contract_amount - rec.total_installment
-
-
- @api.constrains('total_installment')
- def check_total_installment(self):
- for rec in self:
- if rec.total_installment > rec.contract_amount:
- raise ValidationError(_("Total installment line is more than %s contract amount") % rec.contract_amount)
-
- @api.depends('installment_line_ids', 'installment_line_ids.amount')
- def _get_installment_total(self):
- for rec in self:
- rec.total_installment = sum([line.amount for line in rec.installment_line_ids])
-
- @api.model
- def default_get(self, fields):
- rec = super(SubcontractorInstallment, self).default_get(fields)
- if self._context.get('active_model'):
- active_id = self.env[self._context.get('active_model')].browse(self._context.get('active_id'))
- rec['subcontractor_work_id'] = active_id.id
- rec['delivery_date'] = date.today().strftime('%Y-%m-%d')
- if not active_id:
- raise ValidationError(_("Programming error: wizard action executed without active_id in context."))
- return rec
-
- @api.model
- def create(self, vals_list):
- res = super(SubcontractorInstallment, self).create(vals_list)
- res.subcontractor_work_id.write({'installment_id': res.id})
- return res
-
-
-class SubContractorWorkLine(models.Model):
- _name = "subcontractor.work.line"
-
- subcontractor_installment_id = fields.Many2one('subcontractor.installment', string="Subcontract Installment")
- project_id = fields.Many2one('project.project', related="subcontractor_installment_id.project_id", string="Project", store=True)
- work_item_id = fields.Many2one('work.item', related="subcontractor_installment_id.work_item_id", string="Work Item", store=True)
- subcontractor_id = fields.Many2one('res.partner', related="subcontractor_installment_id.subcontractor_id", string="Subcontract", store=True)
- name = fields.Char(string="Description")
- type = fields.Selection([('fixed', 'Fixed'),
- ('percentage', 'Percentage')], string="Payment Type", default='fixed')
- value = fields.Float(sting="Value")
- amount = fields.Float(strng="Amount", compute='get_amount',store=True)
- penalty_after = fields.Float(string="Penalty After")
- penalty_amount = fields.Float(string="Penalty Amount", compute='get_penalty_amount', store=True)
- penalty_percentage = fields.Float(string="Penalty Percentage")
- penalty_percentage_limit = fields.Float(string="Penalty Percentage Limit")
- last_installment = fields.Boolean(string="Last Installment")
- payment_id = fields.Many2one('project.payment.request', string="Payment")
- paid = fields.Boolean(string="Paid")
- paid_date = fields.Date(string="paid date")
-
- def unlink(self):
- for rec in self:
- if rec.paid:
- raise ValidationError(_("Cannot Delete line that already have payment"))
- return super(SubContractorWorkLine, self).unlink()
-
- def create_payment(self):
- vals = {}
- payment_obj = self.env['project.payment.request']
- for record in self:
- vals = {
- 'sequence': '/',
- 'name': record.name or '/',
- 'project_id': record.subcontractor_installment_id.project_id.id,
- 'date': record.subcontractor_installment_id.delivery_date,
- 'penalty_amount': self.penalty_amount,
- 'type': 'subcontractor',
- 'state': 'draft',
- 'partner_id': record.subcontractor_installment_id.subcontractor_work_id.subcontractor_id.id,
- 'amount': record.amount,
- 'subcontractor_line_id': self.id,
- }
- payment_id = payment_obj.create(vals)
- record.payment_id = payment_id.id
- return True
-
- @api.constrains('value', 'penalty_percentage', 'penalty_percentage_limit')
- def check_negative(self):
- message = _('%s Cannot Be Less than zero')
- for rec in self:
- if rec.value < 0.0:
- raise ValidationError(_(rec._fields['value'].string) + ' ' + message)
- if rec.penalty_percentage < 0.0:
- raise ValidationError(_(rec._fields['penalty_percentage'].string) + ' ' + message)
- if rec.penalty_percentage_limit < 0.0:
- raise ValidationError(_(rec._fields['penalty_percentage_limit'].string) + ' ' + message)
-
- @api.constrains('penalty_percentage')
- def penalty_percentage_check(self):
- for rec in self:
- if rec.penalty_percentage != 0.0:
- if rec.penalty_percentage > rec.penalty_percentage_limit:
- raise ValidationError(_("Penalty Percentage Limit exceed !!"))
-
- @api.depends('type', 'value', 'subcontractor_installment_id.contract_amount')
- def get_amount(self):
- for rec in self:
- rec.amount = rec.value * rec.subcontractor_installment_id.contract_amount / 100.0 if rec.type == 'percentage' else rec.value
-
- @api.depends('penalty_percentage', 'amount')
- def get_penalty_amount(self):
- for rec in self:
- rec.penalty_amount = rec.penalty_percentage * rec.amount / 100.0
diff --git a/odex25_realstate/project_management_custom/models/work_tem.py b/odex25_realstate/project_management_custom/models/work_tem.py
deleted file mode 100644
index d05a316d2..000000000
--- a/odex25_realstate/project_management_custom/models/work_tem.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Expert (LCT, Life Connection Technology)
-# Copyright (C) 2021-2022 LCT
-#
-##############################################################################
-
-from odoo import models, fields, api, _
-from odoo.exceptions import ValidationError, UserError
-
-class WorkItem(models.Model):
- _name = 'work.item'
-
- name = fields.Char(string="Name")
- sequence = fields.Char(string="Sequence")
- # work_ids = fields.One2many('sub.work.item', 'work_id', string="Works")
- type = fields.Selection([('item', 'Work Item'),
- ('sub', 'Sub work'),
- ('detailed', 'Detailed work')], string="Type")
-
- def unlink(self):
- for record in self:
- estimated_quantities_ids = self.env['project.estimated.quantities'].search(
- [('work_item_id', '=', record.id)])
- if estimated_quantities_ids:
- raise ValidationError(_("This Record Cannot Be Deleted"))
- # if record.work_ids:
- # raise ValidationError(_("This Record Cannot Be Deleted"))
- return super(WorkItem, self).unlink()
-
-
-class SubWorkItem(models.Model):
- _name = 'sub.work.item'
- _description = "Sub Work Items"
-
- name = fields.Char(string="Name")
- sequence = fields.Char(string="Sequence")
- work_id = fields.Many2one('work.item', string="Work Item")
- detailed_work_item_ids = fields.One2many('detailed.work.item', 'sub_work_item_id', string="Detailed Item")
- type = fields.Selection([('item', 'Work Item'),
- ('sub', 'Sub Work'),
- ('detailed', 'Detailed Work')], string='Type')
-
- def unlink(self):
- for record in self:
- search_ids = self.env['project.estimated.quantities'].search([('sub_work_item_id', '=', record.id)])
- if search_ids:
- raise ValidationError(_("This Record Cannot Be Deleted"))
- if record.detailed_work_item_ids:
- raise ValidationError(_("This Record Cannot Be Deleted"))
- return super(SubWorkItem, self).unlink()
-
-
-class DetailedWorkItem(models.Model):
- _name = 'detailed.work.item'
- _description = "DetailedWorkItem"
-
- name = fields.Char(string="Name")
- sequence = fields.Char(string="Sequence")
- sub_work_item_id = fields.Many2one('sub.work.item', string="Sub Work Item")
- type = fields.Selection([('item', 'Work Item'),
- ('sub', 'Sub Work'),
- ('detailed', 'Detailed Work')], string="Type")
-
- def unlink(self):
- for record in self:
- search_ids = self.env['project.estimated.quantities'].search([('work_detail_id', '=', record.id)])
- if search_ids:
- raise ValidationError(_("This Record Cannot Be Deleted"))
- return super(DetailedWorkItem, self).unlink()
-
-
-class WorkAttached(models.Model):
- _name = 'work.attached'
- _description = "Work Attached"
-
- name = fields.Char(string="Description")
- work_attached_ids = fields.One2many('work.attached.line', 'work_attached_id', string='Work Attached')
- total_work = fields.Float(_string="Total", compute='compute_total')
- estimated_quantities_id = fields.Many2one('project.estimated.quantities', string="Estimated Quantity")
- project_id = fields.Many2one('project.project', string="Project")
- work_item_id = fields.Many2one('work.item', string="Work Item", related='estimated_quantities_id.work_item_id')
- work_description = fields.Many2one('detailed.work.item', string="Detailed Work",
- related='estimated_quantities_id.work_detail_id')
- sub_work_item_id = fields.Many2one('sub.work.item', string="Sub Work",
- related='estimated_quantities_id.sub_work_item_id')
-
- @api.depends('work_attached_ids')
- def compute_total(self):
- for record in self:
- record.total_work_attached = 0
- for line in record.work_attached_ids:
- record.total_work_attached += line.total_work_attached_line
-
- @api.model
- def create(self, vals):
- # default_project_estimated_quantities_id
- project_estimated = False
- if self._context.has_key('default_estimated_quantities_id'):
- project_estimated = self.env['project.estimated.quantities'].browse(self._context[
- 'default_estimated_quantities_id'])
- project_id = project_estimated.project_id.id or False
- vals.update({
- 'estimated_quantities_id': self._context.get('default_estimated_quantities_id'),
- 'project_id': project_id,
- })
- res = super(WorkAttached, self).create(vals)
- if project_estimated:
- project_estimated.write({'work_attached_id': res.id})
- return res
-
-
-class WorkAttachedLine(models.Model):
- _name = 'work.attached.line'
- _description = "Work Attached Line"
- _rec_name = 'product_id'
-
- product_id = fields.Many2one('product.template', string="Product")
- work_description = fields.Text(string="Work Description")
- work_attached_id = fields.Many2one('work.attached', string="Work Attached")
- estimated_quantities_id = fields.Many2one('project.estimated.quantities', string="Project Estimated Quantity",
- related='work_attached_id.estimated_quantities_id')
- project_id = fields.Many2one('project.project', string="Project", related='work_attached_id.project_id')
- quantity = fields.Float(string="Quantity")
- uom_id = fields.Many2one('product.uom', string="Product UOM")
- unit_price = fields.Float(string="Unit Price")
- total_work_attached_line = fields.Float(string="Total", compute='compute_total')
-
- @api.onchange('product_id')
- def onchange_product(self):
- for record in self:
- record.uom_id = record.product_id.uom_id.id or False
-
- @api.depends('quantity', 'unit_price')
- def compute_total(self):
- for record in self:
- record.total_work_attached_line = record.unit_price * record.qty
diff --git a/odex25_realstate/project_management_custom/security/ir.model.access.csv b/odex25_realstate/project_management_custom/security/ir.model.access.csv
deleted file mode 100644
index d93dd2b04..000000000
--- a/odex25_realstate/project_management_custom/security/ir.model.access.csv
+++ /dev/null
@@ -1,14 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_res_branches,res_branches,model_res_branches,,1,1,1,1
-access_project_task_type,project_task_type,model_project_task_type,,1,1,1,1
-access_engineering_office_line,engineering_office_line,model_engineering_office_line,,1,1,1,1
-access_project_estimated_quantities,project_estimated_quantities,model_project_estimated_quantities,,1,1,1,1
-access_work_item,work_item,model_work_item,,1,1,1,1
-access_sub_work_item,sub_work_item,model_sub_work_item,,1,1,1,1
-access_detailed_work_item,detailed_work_item,model_detailed_work_item,,1,1,1,1
-access_work_attached,work_attached,model_work_attached,,1,1,1,1
-access_work_attached_line,work_attached_line,model_work_attached_line,,1,1,1,1
-access_subcontractor_work,subcontractor_work,model_subcontractor_work,,1,1,1,1
-access_project_payment_request,project_payment_request,model_project_payment_request,,1,1,1,1
-access_subcontractor_installment,subcontractor_installment,model_subcontractor_installment,,1,1,1,1
-access_subcontractor_work_line,subcontractor_work_line,model_subcontractor_work_line,,1,1,1,1
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/static/description/icon.png b/odex25_realstate/project_management_custom/static/description/icon.png
deleted file mode 100644
index 634430dd2..000000000
Binary files a/odex25_realstate/project_management_custom/static/description/icon.png and /dev/null differ
diff --git a/odex25_realstate/project_management_custom/views/engineering_office_view.xml b/odex25_realstate/project_management_custom/views/engineering_office_view.xml
deleted file mode 100644
index 46b407a3c..000000000
--- a/odex25_realstate/project_management_custom/views/engineering_office_view.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
- Engineering Office
- res.partner
- tree,form
- [('is_engineering_office','=',True)]
- {'search_default_is_engineering_office': True,
- 'default_is_engineering_office': True}
-
-
- Click to create a Engineering Office.
-
-
-
-
-
-
-
-
-
- Engineer Office Installment
- engineering.office.line
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Engineer Office Installment
- engineering.office.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- engineering.office.line.select
- engineering.office.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Engineer Office Installment
- engineering.office.line
- tree,form
-
-
- {'search_default_engineering_office_id': 1,'search_default_project_id':1}
- [('display_type', '=', False)]
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/project_management_custom/views/project_config_view.xml b/odex25_realstate/project_management_custom/views/project_config_view.xml
deleted file mode 100644
index e01ac855d..000000000
--- a/odex25_realstate/project_management_custom/views/project_config_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- Project Task Type
- project.task.type
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/project_custom_views.xml b/odex25_realstate/project_management_custom/views/project_custom_views.xml
deleted file mode 100644
index 67ee837c6..000000000
--- a/odex25_realstate/project_management_custom/views/project_custom_views.xml
+++ /dev/null
@@ -1,268 +0,0 @@
-
-
-
-
-
- Projects
- project.project
- []
- kanban,tree,form
-
-
- main
-
-
- No projects found. Let's create one!
-
-
- Projects regroup tasks on the same topic and each have their own dashboard.
-
-
-
-
-
- project.project.form.inherit
- project.project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
- {'readonly': [('state', '!=', 'draft')]}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.task.custom
- project.task
-
-
-
- 0
-
-
-
-
-
-
diff --git a/odex25_realstate/project_management_custom/views/project_estimated_quantities_view.xml b/odex25_realstate/project_management_custom/views/project_estimated_quantities_view.xml
deleted file mode 100644
index 7b728b77f..000000000
--- a/odex25_realstate/project_management_custom/views/project_estimated_quantities_view.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
- Project Estimated Quantities
- project.estimated.quantities
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Estimated Quantities
- project.estimated.quantities
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Estimated Quantities
- project.estimated.quantities
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Estimated Quantities
- project.estimated.quantities
- tree,form
- {'search_default_project_id': 1}
- [('display_type', '=', False)]
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/project_main_menus.xml b/odex25_realstate/project_management_custom/views/project_main_menus.xml
deleted file mode 100644
index 6d161eb67..000000000
--- a/odex25_realstate/project_management_custom/views/project_main_menus.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/project_payment_view.xml b/odex25_realstate/project_management_custom/views/project_payment_view.xml
deleted file mode 100644
index 731c7c683..000000000
--- a/odex25_realstate/project_management_custom/views/project_payment_view.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
- project.payment.request.form.view
- project.payment.request
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.payment.request.tree.view
- project.payment.request
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.payment.request.search.view
- project.payment.request
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Projects Payments
- project.payment.request
- tree,form
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/res_partner_inherit.xml b/odex25_realstate/project_management_custom/views/res_partner_inherit.xml
deleted file mode 100644
index ad0173653..000000000
--- a/odex25_realstate/project_management_custom/views/res_partner_inherit.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- partner.form
- res.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/subcontractor_installment_view.xml b/odex25_realstate/project_management_custom/views/subcontractor_installment_view.xml
deleted file mode 100644
index 23186c50e..000000000
--- a/odex25_realstate/project_management_custom/views/subcontractor_installment_view.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
- Subcontractor Installment
- subcontractor.installment
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor
- subcontractor.installment
- form
-
- current
- {'default_subcontractor_work_id': [active_id]}
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/subcontractor_office_view.xml b/odex25_realstate/project_management_custom/views/subcontractor_office_view.xml
deleted file mode 100644
index ff70dbc49..000000000
--- a/odex25_realstate/project_management_custom/views/subcontractor_office_view.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-
-
-
-
- Subcontractor Office
- res.partner
- tree,form
- [('is_subcontractor','=',True)]
- {'search_default_is_subcontractor': True,
- 'default_is_subcontractor': True}
-
-
-
- Click to create a Subcontractor Office.
-
-
-
-
-
-
-
-
- Subcontractor Installment
- subcontractor.installment
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor Office Installment
- subcontractor.installment
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor
- subcontractor.installment
- tree,form
-
-
- {'search_default_subcontractor_id': 1,'search_default_project_id':1}
-
-
-
-
-
-
-
- Subcontractor Installment Line
- subcontractor.work.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor Installment Line
- subcontractor.work.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor Installment Line
- subcontractor.work.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subcontractor Installment Line
- subcontractor.work.line
- tree,form
-
-
- {'search_default_subcontractor_installment_id': 1,'search_default_project_id':1}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/project_management_custom/views/work_item_view.xml b/odex25_realstate/project_management_custom/views/work_item_view.xml
deleted file mode 100644
index bff0807e6..000000000
--- a/odex25_realstate/project_management_custom/views/work_item_view.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
- Work Item
- work.item
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Work Item
- work.item
-
-
-
-
-
-
-
-
- Work Item
- work.item
-
-
-
-
-
-
-
-
-
-
-
- Work Item
- work.item
- tree,form
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/property_management/__init__.py b/odex25_realstate/property_management/__init__.py
deleted file mode 100644
index 862180dea..000000000
--- a/odex25_realstate/property_management/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- coding: utf-8 -*-
-from . import models
-from . import wizards
diff --git a/odex25_realstate/property_management/__manifest__.py b/odex25_realstate/property_management/__manifest__.py
deleted file mode 100644
index 9680057b0..000000000
--- a/odex25_realstate/property_management/__manifest__.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-{
- 'name': "Property Management",
-
- 'summary': """Property Management""",
-
- 'description': """
- - Rental Contract.
- - End of Contract.
- - Rental Payment.
- - configuration for the following:
- - Rental Payment Method.
- """,
-
- 'author': "",
- 'website': "",
-
- # Categories can be used to filter modules in modules listing
- # Check https://github.com/odoo/odoo/blob/12.0/odoo/addons/base/data/ir_module_category_data.xml
- # for the full list
- 'category': 'Odex25-Realstate/Odex25-Realstate',
- 'version': '0.1',
-
- # any module necessary for this one to work correctly
- 'depends': ['real_estate_marketing', 'sale'],
-
- # always loaded
- 'data': [
- 'security/property_management_groups.xml',
- 'security/ir.model.access.csv',
- 'data/ir_sequence_data.xml',
- 'views/rental_contract_views.xml',
- 'views/property_conf_views.xml',
- 'views/rent_payment_view.xml',
- 'views/end_rent_views.xml',
- 'views/report_views.xml',
- 'views/transfer_contract_view.xml',
- 'views/client_requirement_view.xml',
- 'wizards/confirm_box_property_view.xml',
-
- ],
-
- # only loaded in demonstration mode
- 'demo': [
- 'demo/demo.xml',
- ],
- 'installable': True,
- 'application': True,
- 'license': 'OPL-1',
-}
diff --git a/odex25_realstate/property_management/data/ir_sequence_data.xml b/odex25_realstate/property_management/data/ir_sequence_data.xml
deleted file mode 100644
index 10ea78de2..000000000
--- a/odex25_realstate/property_management/data/ir_sequence_data.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
- Payment Due Today
-
- Payment Due Today
- ${(user.email)|safe}
- ${object.renter_id.email|safe}
-
- Dear ${object.renter_id.name},
- This is a reminder that your payment is due today for the rental contract ${object.contract_id.name}.
- Thank you.
- ]]>
-
-
-
-
-
- Payment Due Next Week
-
- Payment Due Next Week
- ${(user.email)|safe}
- ${object.renter_id.email|safe}
-
- Dear ${object.renter_id.name},
- This is a reminder that your payment is due next week for the rental contract ${object.contract_id.name}.
- Thank you.
- ]]>
-
-
-
-
-
- Check Due Payments
-
- code
- model._check_due_payments()
- 1
- minutes
- -1
-
-
-
-
- Send Payment Notifications
-
- code
- model._send_payment_notifications()
- 1
- days
- -1
-
-
-
- Rental Contract
- rental.contract
- 4
- CO:%(y)s/%(month)s/
-
-
-
-
-
- Rent Payment
- rent.payment
- 4
- RP:%(y)s/%(month)s/
-
-
-
-
-
- transfer.contract
- transfer.contract
- CT:%(y)s/
- 4
-
-
-
-
-
-
- Due Date Server Action
-
-
- list
- code
-
- for record in records:
- record.action_validate2()
-
-
-
-
-
diff --git a/odex25_realstate/property_management/demo/demo.xml b/odex25_realstate/property_management/demo/demo.xml
deleted file mode 100644
index 1eae0b0f8..000000000
--- a/odex25_realstate/property_management/demo/demo.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/property_management/i18n/ar_001.po b/odex25_realstate/property_management/i18n/ar_001.po
deleted file mode 100644
index 86a4a7f4f..000000000
--- a/odex25_realstate/property_management/i18n/ar_001.po
+++ /dev/null
@@ -1,1996 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * property_management
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-27 17:29+0000\n"
-"PO-Revision-Date: 2021-11-27 17:29+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: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_kanban_view
-msgid "Number of available units: "
-msgstr "عدد الوحدات المتاحة:"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_kanban_view
-msgid "Number of rented units: "
-msgstr "عدد الوحدات المؤجرة:"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_kanban_view
-msgid "Number of reserved units: "
-msgstr "عدد الوحدات المحجوزة:"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_kanban_view
-msgid "Number of units: "
-msgstr "عدد الوحدات:"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Accounting"
-msgstr "الحسابات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__accrued_account_id
-msgid "Accrued Account"
-msgstr "تأمين لدى الغير"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_needaction
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_needaction
-msgid "Action Needed"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__active
-#: model:ir.model.fields,field_description:property_management.field_rent_type__active
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__active
-msgid "Active"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_ids
-msgid "Activities"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_exception_decoration
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_exception_decoration
-msgid "Activity Exception Decoration"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_state
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_state
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_state
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_state
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_state
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_state
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_state
-msgid "Activity State"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_type_icon
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_type_icon
-msgid "Activity Type Icon"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__contract_state__after
-msgid "After Contract Ending"
-msgstr "بعد نهاية العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__amount
-msgid "Amount"
-msgstr "القيمة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__amount_in_word
-msgid "Amount In Word"
-msgstr "المبلغ كتابة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__annual_raise_ids
-msgid "Annual Raise"
-msgstr "الزيادة السنوية"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid ""
-"Are you sure to renew the contract? That is mean you will renew this "
-"contract and create new draft one"
-msgstr "هل أنت متأكد من أنك تريد تجديد العقد سيتم إقفال العقد الحالي و إنشاء عقد جديد مسودة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_attachment_count
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_attachment_count
-msgid "Attachment Count"
-msgstr "عدد المرفقات"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__payment_method__check
-msgid "Bank Check"
-msgstr "شيك بنكي"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__contract_state__before
-msgid "Before Contract Ending"
-msgstr "قبل نهاية العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__contract_state
-msgid "Before/After Contract Finishing"
-msgstr "قبل/بعد إنتهاء العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__rent_amount
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__cal_rent_amount
-msgid "Calculated Rent Amount"
-msgstr "القيمة الإيجارية المحسوبة"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__state__cancel
-#: model_terms:ir.ui.view,arch_db:property_management.confirm_wizard_form
-#: model_terms:ir.ui.view,arch_db:property_management.end_of_rent_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.property_management_maintenance_form
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-msgid "Cancel"
-msgstr "الغاء"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__state__cancel
-msgid "Canceled"
-msgstr "ملغي"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__state__cancel
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__cancel
-#: model:ir.model.fields.selection,name:property_management.selection__transfer_contract__state__cancel
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Cancelled"
-msgstr "ملغي"
-
-#. module: property_management
-#: code:addons/property_management/models/rent_payment.py:0
-#, python-format
-msgid "Cannot Cancel This Payment Because it Due"
-msgstr "لا يمكن إلغاء هذه الدفعة لانها مستحقة"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Cannot Duplicate The Contractr"
-msgstr "لا يمكن إستنساخ العقد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__payment_method__cash
-msgid "Cash"
-msgstr "نقدا"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.end_of_rent_form_view
-msgid "Check"
-msgstr "فحص"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__state__check
-msgid "Checked"
-msgstr "تم الفحص"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__city_id
-msgid "City"
-msgstr "المدينة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__closed
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__close
-msgid "Closed"
-msgstr "مغلق"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__commission_profit
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Commission"
-msgstr "العمولة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__company_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__company_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__company_id
-#: model:ir.model.fields,field_description:property_management.field_rent_type__company_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__company_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__company_id
-msgid "Company"
-msgstr "الفرع"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__company_profit
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__company_profit_val
-msgid "Company Profit"
-msgstr "ربح الشركة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__company_profit_amount
-msgid "Company Profit Amount"
-msgstr "قيمة ربح الشركة"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#: model_terms:ir.ui.view,arch_db:property_management.confirm_wizard_form
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-#, python-format
-msgid "Confirm"
-msgstr "مؤكد"
-
-
-#. module: property_management
-#: code:addons/property_management/models/rent_payment.py:0
-#, python-format
-msgid ""
-"Kindly, Contact Your Account Manager to set Income Account in contract "
-"account page"
-msgstr "فضلا قم بالتواصل مع مدير الحسابات و إسناد حساب الإيراد في العقد"
-
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_confirm_wizard
-msgid "Confirm Wizard"
-msgstr "تأكيد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__confirm
-#: model:ir.model.fields.selection,name:property_management.selection__transfer_contract__state__confirm
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Confirmed"
-msgstr "تأكيد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__contract_id
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__contract_id
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__contract_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__contract_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__log_rental_contract_ids
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Contract"
-msgstr "عقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__date
-msgid "Contract Date"
-msgstr "تاريخ العقد"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_form_view
-msgid "Contract Details"
-msgstr "تفاصيل العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__date_to
-msgid "Contract End Date"
-msgstr "تاريخ نهاية العقد"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-msgid "Contract Info"
-msgstr "معلومات العقد"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Contract Insurance"
-msgstr "التأمين"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Contract Service"
-msgstr "الخدمات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__date_from
-msgid "Contract Start Date"
-msgstr "تاريخ بداية العقد"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_transfer_contract
-msgid "Contract Transfer"
-msgstr "نقل العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_re_unit__contract_counts
-#: model_terms:ir.ui.view,arch_db:property_management.contract_unit_view
-msgid "Contracts"
-msgstr "العقود"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__cost
-msgid "Cost"
-msgstr "التكلفة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_form_view
-msgid "Create Invoice"
-msgstr "إنشاء فاتورة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__create_uid
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__create_uid
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__create_uid
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__create_uid
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__create_uid
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__create_uid
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__create_uid
-#: model:ir.model.fields,field_description:property_management.field_rent_type__create_uid
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__create_uid
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__create_uid
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__create_uid
-msgid "Created by"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__create_date
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__create_date
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__create_date
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__create_date
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__create_date
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__create_date
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__create_date
-#: model:ir.model.fields,field_description:property_management.field_rent_type__create_date
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__create_date
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__create_date
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__create_date
-msgid "Created on"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__current_partner_id
-msgid "Current Renter"
-msgstr "المستأجر الحالي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__partner_id
-msgid "Customer"
-msgstr "العميل"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__end_line_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__end_line_ids
-msgid "Damage Line"
-msgstr "الأضرار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__date
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__date
-msgid "Date"
-msgstr "التاريخ"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__date_end
-msgid "Date End"
-msgstr "تاريخ النهاية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__date_start
-msgid "Date Start"
-msgstr "تاريخ البداية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__debit_account_id
-msgid "Debit Account"
-msgstr "حساب المدين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__product_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__name
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__name
-msgid "Description"
-msgstr "الوصف"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__display_name
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__display_name
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__display_name
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__display_name
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__display_name
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__display_name
-#: model:ir.model.fields,field_description:property_management.field_re_unit__display_name
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__display_name
-#: model:ir.model.fields,field_description:property_management.field_rent_type__display_name
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__display_name
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__display_name
-#: model:ir.model.fields,field_description:property_management.field_res_partner__display_name
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__display_name
-msgid "Display Name"
-msgstr "الاسم المعروض"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__district_id
-msgid "District"
-msgstr "الحي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__change_price
-msgid "Do You want to change rent?"
-msgstr "هل تريد تغير الإيجار؟"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.confirm_wizard_form
-msgid "Do you want to proceed?"
-msgstr "هل تريد الإكمال"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__state__done
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__state__done
-#: model_terms:ir.ui.view,arch_db:property_management.end_of_rent_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.property_management_maintenance_form
-msgid "Done"
-msgstr "مكتمل"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__end_of_rent__state__draft
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__state__draft
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__draft
-#: model:ir.model.fields.selection,name:property_management.selection__transfer_contract__state__draft
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Draft"
-msgstr "مبدئي"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__state__due
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-msgid "Due"
-msgstr "مستحق"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__due_date_raise
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__due_date
-msgid "Due Date"
-msgstr "تاريخ الإستحقاق"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__electric_amount
-msgid "Electric Amount"
-msgstr "قيمة الكهرباء"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__electric_payment_no
-msgid "Electric Payment No"
-msgstr "رقم سند سداد الكهرباء"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__electric_meter
-msgid "Electric Read"
-msgstr "قراءة العداد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__electricity_meter_no
-msgid "Electricity Meter No."
-msgstr "رقم عداد الكهرباء"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__end_rent_id
-msgid "End Contract"
-msgstr "نهاية العقد"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_end_rent_line
-msgid "End Of Rent Line"
-msgstr "سطور نهاية العقد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__maintenance_type__end_contract
-msgid "End of contract"
-msgstr "نهاية العقد"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "End of contract maintenance cannot be created from here."
-msgstr "لايمكن إنشاء صيانة نهاية عقد من هنا"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__evacuation_date
-msgid "Evacuation date"
-msgstr "تاريخ الإخلاء"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__external_broker
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__external_broker_id
-msgid "External Broker"
-msgstr "وسيط خارجي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__external_commission
-msgid "External Broker Commission"
-msgstr "عمولات الوسيط الخارجي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__external_percent
-msgid "External Broker Percent"
-msgstr "نسبة عمولة الوسيط الخارجي"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__commission_profit__number
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__insurance__fixed
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__service__fixed
-msgid "Fixed"
-msgstr "قيمة ثابتة"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__annual_raise__raise_type__fixed
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__company_profit__number
-msgid "Fixed amount"
-msgstr "قيمة ثابتة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_follower_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_follower_ids
-msgid "Followers"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_channel_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_channel_ids
-msgid "Followers (Channels)"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_partner_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_partner_ids
-msgid "Followers (Partners)"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_end_of_rent__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_rent_payment__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_rent_type__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_rental_contract__activity_type_icon
-#: model:ir.model.fields,help:property_management.field_transfer_contract__activity_type_icon
-msgid "Font awesome icon e.g. fa-tasks"
-msgstr ""
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Generate Payment"
-msgstr "إنشاء دفعات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__generated
-msgid "Generated"
-msgstr "تم الإنشاء"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_maintenance_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_end__filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Group By"
-msgstr "تجميع بي"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-msgid "Group By..."
-msgstr "تجميع"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__hand_cost
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__hand_cost
-msgid "Hand Cost"
-msgstr "تكلفة الأعمال اليدوية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__id
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__id
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__id
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__id
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__id
-#: model:ir.model.fields,field_description:property_management.field_re_unit__id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__id
-#: model:ir.model.fields,field_description:property_management.field_rent_type__id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__id
-#: model:ir.model.fields,field_description:property_management.field_res_partner__id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__id
-msgid "ID"
-msgstr "المُعرف"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_exception_icon
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_exception_icon
-msgid "Icon"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_end_of_rent__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_rent_payment__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_rent_type__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_rental_contract__activity_exception_icon
-#: model:ir.model.fields,help:property_management.field_transfer_contract__activity_exception_icon
-msgid "Icon to indicate an exception activity."
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__identification_expiry_date
-#: model:ir.model.fields,field_description:property_management.field_res_partner__identification_expiry_date
-#: model:ir.model.fields,field_description:property_management.field_res_users__identification_expiry_date
-msgid "Identification Expiry Date"
-msgstr "تاريخ إنتهاء الهوية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__identification_issue_date
-#: model:ir.model.fields,field_description:property_management.field_res_partner__identification_issue_date
-#: model:ir.model.fields,field_description:property_management.field_res_users__identification_issue_date
-msgid "Identification Issue Date"
-msgstr "تاريخ إصدار الهوية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__identification_number
-#: model:ir.model.fields,field_description:property_management.field_res_partner__identification_number
-#: model:ir.model.fields,field_description:property_management.field_res_users__identification_number
-msgid "Identification NUmber"
-msgstr "رقم الهوية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__identification_type
-#: model:ir.model.fields,field_description:property_management.field_res_partner__identification_type
-#: model:ir.model.fields,field_description:property_management.field_res_users__identification_type
-msgid "Identification Type"
-msgstr "نوع الهوية"
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_needaction
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_unread
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_needaction
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_unread
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_needaction
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_unread
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_needaction
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_unread
-#: model:ir.model.fields,help:property_management.field_rent_type__message_needaction
-#: model:ir.model.fields,help:property_management.field_rent_type__message_unread
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_needaction
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_unread
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_needaction
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_unread
-msgid "If checked, new messages require your attention."
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_has_error
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_has_error
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_has_error
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_has_error
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_rent_type__message_has_error
-#: model:ir.model.fields,help:property_management.field_rent_type__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_has_error
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_has_sms_error
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_has_error
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_has_sms_error
-msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid ""
-"If the meter price is not the same as the registered on record information"
-msgstr ""
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "In rent type please make sure that the month number is more than 0"
-msgstr "في نوع السداد فضلا تأكد ان عدد الشهور أكثر من صفر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__insurance
-msgid "Insurance"
-msgstr "التأمين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__insurance_amount
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__insurance_amount
-msgid "Insurance Amount"
-msgstr "قيمة التأمين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__insurance_invoice_id
-msgid "Insurance Invoice"
-msgstr "فاتورة التأمين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__insurance_paid
-msgid "Insurance Paid"
-msgstr "التأمين المسدد"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Insurance Refund"
-msgstr "إسترداد التأمين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__insurance_cost
-msgid "Insurance cost"
-msgstr "تكلفة التأمين"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Insurance payment for "
-msgstr "دفعة تأمين لــ"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__check_insurance
-msgid "Insurance?"
-msgstr "تأمين؟"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__internal_broker
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__internal_broker_id
-msgid "Internal Broker"
-msgstr "وسيط داخلي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__internal_commission
-msgid "Internal Broker Commission"
-msgstr "عمولة الوسيط الداخلي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__internal_percent
-msgid "Internal Broker Percent"
-msgstr "نسبة الوسيط الداخلي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__investor_id
-msgid "Investor"
-msgstr "المستثمر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__invoice_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__invoice_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__invoice_id
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_form_view
-msgid "Invoice"
-msgstr "فاتورة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__renter_invoice
-msgid "Invoice Renter ?"
-msgstr "فوترة المستأجر"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__res_partner__identification_type__iqama
-msgid "Iqama"
-msgstr "الإقامة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_is_follower
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_is_follower
-msgid "Is Follower"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__journal_id
-msgid "Journal"
-msgstr "القيد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise____last_update
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard____last_update
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent____last_update
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line____last_update
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract____last_update
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance____last_update
-#: model:ir.model.fields,field_description:property_management.field_re_unit____last_update
-#: model:ir.model.fields,field_description:property_management.field_rent_payment____last_update
-#: model:ir.model.fields,field_description:property_management.field_rent_type____last_update
-#: model:ir.model.fields,field_description:property_management.field_rental_contract____last_update
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template____last_update
-#: model:ir.model.fields,field_description:property_management.field_res_partner____last_update
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract____last_update
-msgid "Last Modified on"
-msgstr "آخر تعديل في"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__write_uid
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__write_uid
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__write_uid
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__write_uid
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__write_uid
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__write_uid
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__write_uid
-#: model:ir.model.fields,field_description:property_management.field_rent_type__write_uid
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__write_uid
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__write_uid
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__write_date
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__write_date
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__write_date
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__write_date
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__write_date
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__write_date
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__write_date
-#: model:ir.model.fields,field_description:property_management.field_rent_type__write_date
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__write_date
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__write_date
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_log_rental_contract__leaser_id
-msgid "Leaser"
-msgstr "المستأجر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_main_attachment_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_main_attachment_id
-msgid "Main Attachment"
-msgstr "المرفق"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__maintenance_id
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__maintenance_id
-msgid "Maintenance"
-msgstr "الصيانة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__maintenance_cost
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__maintenance_cost
-msgid "Maintenance Cost"
-msgstr "تكلفة الصيانة"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Maintenance For"
-msgstr "صيانة لــ"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.end_of_rent_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.property_management_maintenance_form
-msgid "Maintenance Items"
-msgstr "عناصر الصيانة"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Maintenance Order"
-msgstr "طلب الصيانة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__maintenance_type
-msgid "Maintenance Type"
-msgstr "نوع الصيانة"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Maintenance for EOC to %s"
-msgstr "صيانة نهاية عقد %s"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__management_type
-msgid "Management Type"
-msgstr "نوع الملك"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__market_type
-msgid "Market Type"
-msgstr "نوع العقار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_confirm_wizard__message
-msgid "Message"
-msgstr "الرسالة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_has_error
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_has_error
-msgid "Message Delivery error"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_ids
-msgid "Messages"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__annual_raise__raise_on__meter
-msgid "Meter"
-msgstr "سعر المتر"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Meter Price & Rent amount"
-msgstr "سعر المتر و قيمة الإيجار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__meter_price
-msgid "Meter price"
-msgstr "سعر المتر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__meter_price_after_raise
-msgid "Meter price after raise"
-msgstr "سعر المتر بعد الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__rent_kind__month
-msgid "Month"
-msgstr "الشهر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_type__months
-msgid "Months Between Payment"
-msgstr "االشهور بين الدفعات"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "My Contract"
-msgstr "عقودي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__name
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__name
-#: model:ir.model.fields,field_description:property_management.field_rent_type__name
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__name
-msgid "Name"
-msgstr "الأسم"
-
-#. module: property_management
-#: code:addons/property_management/models/property_management_conf.py:0
-#: model:ir.model.constraint,message:property_management.constraint_rent_type_name_months
-#, python-format
-msgid "Name and months numbers must be unique."
-msgstr "طريقة السداد لا يمكن أن تتكر"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__res_partner__identification_type__id
-msgid "National ID"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__maintenance
-msgid "Need Maintenance ?"
-msgstr "يحتاج إلى صيانة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renew_contract_id
-msgid "New Contract"
-msgstr "العقد الجديد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__new_price
-msgid "New Meter Price"
-msgstr "سعر المتر الجديد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__new_rent_amount
-msgid "New Rent Amount"
-msgstr "قيمة الإيجار الجديدة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-msgid "New Renter Info & Finical Inof"
-msgstr "معلومات المستأجر الجديد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_date_deadline
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_date_deadline
-msgid "Next Activity Deadline"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_summary
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_summary
-msgid "Next Activity Summary"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_type_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_type_id
-msgid "Next Activity Type"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__name
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-msgid "No."
-msgstr "رقم"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__maintenance_type__normal
-msgid "Normal"
-msgstr "عادي"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-msgid "Not Canceled Payment"
-msgstr "الدفعات الغير ملغية"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Not Cancelled"
-msgstr "اللعقود الغير ملغية"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__state__draft
-msgid "Not Due"
-msgstr "غير مستحق"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-msgid "Not due"
-msgstr "غير مستحقة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__note
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__note
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__note
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__note
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__note
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Note"
-msgstr "ملاحظات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_needaction_counter
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_needaction_counter
-msgid "Number of Actions"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__year
-msgid "Number of Years"
-msgstr "السنة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_has_error_counter
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_has_error_counter
-msgid "Number of errors"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_rent_type__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_needaction_counter
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_needaction_counter
-msgid "Number of messages which requires an action"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_rent_type__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_has_error_counter
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_has_error_counter
-msgid "Number of messages with delivery error"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_end_of_rent__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_rent_payment__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_rent_type__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_rental_contract__message_unread_counter
-#: model:ir.model.fields,help:property_management.field_transfer_contract__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__res_partner__identification_type__other
-msgid "Other"
-msgstr "أخرى"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__paid
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__state__paid
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-msgid "Paid"
-msgstr "مدفوع"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__state__invoice
-msgid "Invoice"
-msgstr "مفوتر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__paid_date
-msgid "Paid Date"
-msgstr "تاريخ السداد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__partner_id
-msgid "Partner"
-msgstr "العميل"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__res_partner__identification_type__passport
-msgid "Passport"
-msgstr "جواز سفر"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Payment"
-msgstr "االدفعة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_form_view
-msgid "Payment Details"
-msgstr "تفاصيل الدفعة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__payment_method
-msgid "Payment Method"
-msgstr "طريقة السداد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__annual_raise__raise_type__percentage
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__commission_profit__percentage
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__company_profit__percentage
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__insurance__percentage
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__service__percentage
-msgid "Percentage"
-msgstr "نسبة"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Please confirm end of rent first "
-msgstr "فضلا قم بتأكيد نهاية العقد أولا"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Please set the rent duration and start date"
-msgstr "فضلا قم بإعداد مدة العقد و تاريخ البداية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__previous_contract_id
-msgid "Previous Contract"
-msgstr "العقد القديم"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__meter_price
-msgid "Price Per Meter"
-msgstr "السعر بالمتر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__profit
-msgid "Profit"
-msgstr "الربح"
-
-#. module: property_management
-#: code:addons/property_management/wizards/confirm_box_property.py:0
-#, python-format
-msgid ""
-"Programming error: wizard action executed without active_id in context."
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__property_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__property_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__property_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__property_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__property_id
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__rent_method__property
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Property"
-msgstr "العقار"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Property & Unit Information"
-msgstr "معلومات العقار و الوحدة"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_property_management_maintenance
-msgid "Property Maintenance"
-msgstr "صيانة العقار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__property_state_id
-msgid "Property State"
-msgstr "حالة العقار"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_re_unit
-msgid "Property Unit"
-msgstr "وحدات العقار"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Property is already reserved or rented"
-msgstr "العقار محجوز أو مؤجر مسبقا"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__qty
-msgid "Quantity"
-msgstr "الكمية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__raise_amount
-msgid "Raise Percentage"
-msgstr "نسبة الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__raise_type
-msgid "Raise Type"
-msgstr "نوع الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__raise_val
-msgid "Raise Value"
-msgstr "قيمة الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__raise_on
-msgid "Raise on"
-msgstr "الزيادة بناء على"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__remain_amount
-msgid "Remain Insurance Amount"
-msgstr "قيمة التأمين المتبقية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renew_done
-msgid "Renew Completed"
-msgstr "تم إكتمال التجيد"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Renew Contract"
-msgstr "تجديد العقد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__renewed
-msgid "Renewed"
-msgstr "مجدد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renewed
-msgid "Renewed Contract"
-msgstr "العقد المجدد"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid ""
-"Renewing process cannot be completed please check the rent payment status"
-msgstr "لا يمكن إكمال عملية التجديد فضلا تأكد من حالة الدفعات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__rent_amount
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__original_rent_amount
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_amount
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Rent Amount"
-msgstr "قيمة الإيجار"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Rent Amount After Raise"
-msgstr "قيمة الإيجار بعد الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__rent_amount_after_raise_temp
-msgid "Rent Amount After Raise Without Services Cost"
-msgstr "قيمة الإيجار بعد الزيادة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__rent_amount_after_raise
-msgid "Rent Amount After Raise plus Services Cost"
-msgstr "قيمة الإيجار بعد الزيادة بالإضافة للخدمات"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_annual_raise
-msgid "Rent Annual Raise"
-msgstr "الزيادة السنوية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__date_to
-msgid "Rent Date To"
-msgstr "إلى تاريخ"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__date_from
-msgid "Rent Date from"
-msgstr "من تاريخ"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_duration
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Rent Duration"
-msgstr "مدة الإيجار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__end_rent_id
-msgid "Rent End"
-msgstr "نهاية العقد"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_kind
-msgid "Rent Kind"
-msgstr "نوع التأجير"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_method
-msgid "Rent Method"
-msgstr "طريقة التأجير"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__rent_payment_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_payment_ids
-#: model_terms:ir.ui.view,arch_db:property_management.end_of_rent_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Rent Payment"
-msgstr "دفعات الإيجار"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_rent_type
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__rent_type
-msgid "Rent Type"
-msgstr "طريقة السداد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__annual_raise__raise_on__rent_amount
-msgid "Rent amount"
-msgstr "قيمة الدفعة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Rent kind"
-msgstr "نوع السداد"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Rent payment %s is not equal the rent total amount %s "
-msgstr "قيمة الدفعات %s لا تساوي قيمة الإيجار في العقد %s "
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#: model:ir.model,name:property_management.model_rental_contract
-#: model:ir.model.fields,field_description:property_management.field_re_unit__contract_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__contract_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__contract_id
-#: model_terms:ir.ui.view,arch_db:property_management.property_maintenance_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_end__filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-#, python-format
-msgid "Rental Contract"
-msgstr "العقود الإيجارية"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_end_of_rent
-msgid "Rental Contract End"
-msgstr "نهاية العقود الإيجارية"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_rent_payment
-msgid "Rental Contract Payment"
-msgstr "دفعات العقود الإيجارية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__template_id
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Rental Contract Template"
-msgstr "نموذج العقد"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_res_partner
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__partner_id
-#: model:ir.model.fields,field_description:property_management.field_res_partner__is_renter
-#: model:ir.model.fields,field_description:property_management.field_res_users__is_renter
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__partner_id
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Renter"
-msgstr "المستأجر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renter_commission
-msgid "Renter Commission"
-msgstr "عمولات المستأجر"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renter_percent
-msgid "Renter Commission Percent"
-msgstr "نسبة العمولة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Renter History"
-msgstr "المستأجرين السابقين"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__renter_value
-msgid "Renter Value"
-msgstr "قيمة العمولة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__request_id
-msgid "Request Item"
-msgstr "طلب عنصر"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "Required quantity is more than available quantity"
-msgstr "الكمية المطلوبة أكثر من المتوفرة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__residential_purpose_id
-msgid "Residential Purpose"
-msgstr "الغرض السكني"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__user_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__user_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__user_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__user_id
-msgid "Responsible"
-msgstr "المسؤول"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_rent_type__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__activity_user_id
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__activity_user_id
-msgid "Responsible User"
-msgstr "المسؤول"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__revenue_account_id
-msgid "Revenue Account"
-msgstr "حساب الإيراد"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__review
-#: model:ir.model.fields.selection,name:property_management.selection__transfer_contract__state__review
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Review"
-msgstr "مراجعة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_has_sms_error
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_has_sms_error
-msgid "SMS Delivery error"
-msgstr ""
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_maintenance_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_end__filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-msgid "Search"
-msgstr "بحث"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__code
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__seq
-msgid "Sequence"
-msgstr "متسلسل"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__service
-msgid "Service"
-msgstr "خدمة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Service Amount"
-msgstr "قيمة الخدمات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__service_cost
-msgid "Service Cost"
-msgstr "قيمة الخدمات"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Service payment %s is not equal the rent total service amount %s "
-msgstr "دفعات الخدمات %s لا تساوي قيمة الحدمات في العقد %s "
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__is_services
-msgid "Services Exist?"
-msgstr "توجد خدمات؟"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-msgid "Set To Draft"
-msgstr "إعادة إلى مبدئي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__space
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Space"
-msgstr "المساحة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__state
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__state
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__state
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__state
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__state
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-#: model_terms:ir.ui.view,arch_db:property_management.view_rental_contract_filter
-msgid "Status"
-msgstr "الحالة"
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__activity_state
-#: model:ir.model.fields,help:property_management.field_end_of_rent__activity_state
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__activity_state
-#: model:ir.model.fields,help:property_management.field_rent_payment__activity_state
-#: model:ir.model.fields,help:property_management.field_rent_type__activity_state
-#: model:ir.model.fields,help:property_management.field_rental_contract__activity_state
-#: model:ir.model.fields,help:property_management.field_transfer_contract__activity_state
-msgid ""
-"Status based on activities\n"
-"Overdue: Due date is already passed\n"
-"Today: Activity date is today\n"
-"Planned: Future activities."
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__street
-msgid "Street Name"
-msgstr "اسم الشارع"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__state__submit
-#: model:ir.model.fields.selection,name:property_management.selection__transfer_contract__state__submit
-#: model_terms:ir.ui.view,arch_db:property_management.property_management_maintenance_form
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_form_view
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-msgid "Submit"
-msgstr "تقديم"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__property_management_maintenance__state__submit
-msgid "Submitted"
-msgstr "تم التقديم"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__tax_id
-msgid "Tax"
-msgstr "الضريبة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__tax_amount
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Tax Amount"
-msgstr "قيمة الضريبة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__template
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__template
-msgid "Template"
-msgstr "النموذج"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract_template__name
-msgid "Template Name"
-msgstr "إسم النموذج"
-
-#. module: property_management
-#: code:addons/property_management/models/transfer_contract.py:0
-#, python-format
-msgid "The Current Renter is the same the new renter"
-msgstr "المستأجر الحالي هو نفس المستأجر الجديد"
-
-#. module: property_management
-#: code:addons/property_management/wizards/confirm_box_property.py:0
-#, python-format
-msgid ""
-"There are a previous rent payment record if you proceed this will be removed"
-" !!"
-msgstr "هنالك دفات سابقة إذا قررت الإستمرار سيتم إزالة الدفعات الحالية"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.transfer_contract_search_view
-msgid "To review"
-msgstr "للمراجعة"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_rent_line__total
-msgid "Total"
-msgstr "الإجمالي"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__total_amount
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__total_amount
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__total_amount
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Total Amount"
-msgstr "القيمة الإجمالية"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rent_payment__payment_method__transfer
-msgid "Transfer"
-msgstr "تحويل"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__date
-msgid "Transfer Date"
-msgstr "تاريخ النقل"
-
-#. module: property_management
-#: code:addons/property_management/models/transfer_contract.py:0
-#, python-format
-msgid ""
-"Transfer Date should be greater than Start date and less Than End date of "
-"the contract"
-msgstr ""
-"تاريخ نقل العقد يجي أن يكون اكبر من تاريخ باية العقد و قبل تاريخ النهاية"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__property_type_id
-msgid "Type"
-msgstr "نوع العقار"
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_end_of_rent__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_rent_payment__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_rent_type__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_rental_contract__activity_exception_decoration
-#: model:ir.model.fields,help:property_management.field_transfer_contract__activity_exception_decoration
-msgid "Type of the exception activity on record."
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__unit_ids
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__rent_method__unit
-msgid "Unit"
-msgstr "الوحدة"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Unit %s is not available"
-msgstr "الوحدة غير متاحة %s"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__unit_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__unit_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__unit_ids
-msgid "Unit/Units"
-msgstr "الوحدة/الوحدات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__unit_ids
-msgid "Units"
-msgstr "الوحدات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_unread
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_unread
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_unread
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_unread
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_unread
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_unread
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_rent_type__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__message_unread_counter
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__untaxed_amount
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Untaxed Amount"
-msgstr "الإجمالي بدون ضريبة"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_form_view
-msgid "Validate"
-msgstr "تحقق"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__vendor_id
-msgid "Vendor"
-msgstr "المورد"
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.rental_contract_form_view
-msgid "Water Amount"
-msgstr "تكلفة المياه"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__water_amount
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__water_cost
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__water_cost
-msgid "Water Cost"
-msgstr "تكلفة المياه"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__water_meter_no
-msgid "Water Meter No."
-msgstr "رقم عداد المياه"
-
-#. module: property_management
-#: code:addons/property_management/models/rental_contract.py:0
-#, python-format
-msgid "Water cost to pay %s is not equal the rent total water cost %s "
-msgstr "تكلقة المياه %s لا تساوي تكلفة المياه في العقد %s "
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_annual_raise__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_property_management_maintenance__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_rent_type__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__website_message_ids
-#: model:ir.model.fields,field_description:property_management.field_transfer_contract__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,help:property_management.field_annual_raise__website_message_ids
-#: model:ir.model.fields,help:property_management.field_end_of_rent__website_message_ids
-#: model:ir.model.fields,help:property_management.field_property_management_maintenance__website_message_ids
-#: model:ir.model.fields,help:property_management.field_rent_payment__website_message_ids
-#: model:ir.model.fields,help:property_management.field_rent_type__website_message_ids
-#: model:ir.model.fields,help:property_management.field_rental_contract__website_message_ids
-#: model:ir.model.fields,help:property_management.field_transfer_contract__website_message_ids
-msgid "Website communication history"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__rental_contract__rent_kind__year
-msgid "Year"
-msgstr "سنة"
-
-#. module: property_management
-#: code:addons/property_management/models/rent_payment.py:0
-#, python-format
-msgid "You Must Confirm Contract First"
-msgstr "يجب عليك تأكيد العقد أولا"
-
-#. module: property_management
-#: code:addons/property_management/models/transfer_contract.py:0
-#, python-format
-msgid "You can not delete record"
-msgstr "لا يمكنك حذف السجل"
-
-#. module: property_management
-#: code:addons/property_management/models/transfer_contract.py:0
-#: code:addons/property_management/models/transfer_contract.py:0
-#, python-format
-msgid ""
-"You cannot do this operation, there are payment for the old renter must be "
-"paid"
-msgstr "لا يمكن إتمام العملية الحالية لوجود دفعات معلقة للمستأجر السابق"
-
-#. module: property_management
-#: code:addons/property_management/models/end_rental_contract.py:0
-#, python-format
-msgid "You have Payment in due state, kindly review them first."
-msgstr "لديك دفعات في حالة مستحقة, فضلا قم بمراجعة الدفعات أولا"
-
-#. module: property_management
-#: code:addons/property_management/models/rent_payment.py:0
-#, python-format
-msgid "You must validate the previous rent payment and complete the process"
-msgstr "لديك دفعات سابقة غير مكتملة يجب إكمالة لمتابعة الإجراء الحالي"
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_log_rental_contract
-msgid "log.rental.contract"
-msgstr ""
-
-
-#. module: property_management
-#: model_terms:ir.ui.view,arch_db:property_management.property_maintenance_filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_end__filter_view
-#: model_terms:ir.ui.view,arch_db:property_management.rent_payment_filter_view
-msgid "property_id"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model,name:property_management.model_rental_contract_template
-msgid "rental.contract.template"
-msgstr ""
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_end_of_rent__service_amount
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__service_amount
-msgid "service amount"
-msgstr "قيمة الخدمات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rental_contract__service_cost
-msgid "service cost"
-msgstr "تكلفة الخدمات"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_res_partner__issuer
-#: model:ir.model.fields,field_description:property_management.field_res_users__issuer
-msgid "Issuer"
-msgstr "جهة الإصدار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_res_partner__copy_no
-#: model:ir.model.fields,field_description:property_management.field_res_users__copy_no
-msgid "Copy No"
-msgstr "رقم النسخه"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_re_clients_requirement_property__rental_contract_id
-msgid "Rental Contract"
-msgstr "العقد الإيجاري"
-
-#. module: property_management
-#: model:ir.model.fields.selection,name:property_management.selection__internal_property__action_type__rent
-#: model:ir.model.fields.selection,name:property_management.selection__re_clients_requirement__action_type__rent
-#: model:ir.model.fields.selection,name:property_management.selection__re_unit__action_type__rent
-msgid "Rent"
-msgstr "ايجار"
-
-#. module: property_management
-#: model:ir.model.fields,field_description:property_management.field_rent_payment__renter_id
-msgid "Renter"
-msgstr "المستأجر"
-
diff --git a/odex25_realstate/property_management/models/__init__.py b/odex25_realstate/property_management/models/__init__.py
deleted file mode 100644
index 76b4040a6..000000000
--- a/odex25_realstate/property_management/models/__init__.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from . import rental_contract
-from . import rent_payment
-from . import property_management_conf
-from . import annual_raise
-from . import amount_to_text_ar
-from . import end_rental_contract
-from . import transfer_contract
-from . import client_requirement
-
diff --git a/odex25_realstate/property_management/models/amount_to_text_ar.py b/odex25_realstate/property_management/models/amount_to_text_ar.py
deleted file mode 100644
index 5817ef028..000000000
--- a/odex25_realstate/property_management/models/amount_to_text_ar.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# RJ7, ALRajhi SEVENTH
-# Copyright (C) 2011-2012 RJ7 ().
-#
-##############################################################################
-
-from odoo.tools.translate import _
-"""
-To manage amount to arabic for foreign purchase
-"""
-to_19 = (u'صفر',u'واحد',u'إثنان',u'ثلاثة',u'أربعة',u'خمسة',u'ستة',u'سبعة',u'ثمانية',u'تسعة',u'عشرة',u'أحدعشر',u'إثناعشر',u'ثلاثةعشر',u'أربعةعشر',u'خمسةعشر',u'ستةعشر',u'سبعةعشر',u'ثمانيةعشر',u'تسعةعشر')
-tens = (u'عشرون',u'ثلاثون',u'أربعون',u'خمسون',u'ستون',u'سبعون',u'ثمانون',u'تسعون')
-hundreds=('',u'مائـة',u'مائتـان',u'ثلاثمـائة',u'أربعمـائة',u'خمسمـائة',u'ستمائة',u'سبعمائة',u'ثمانمائة',u'تسعمائة')
-denom = ('',u'الف',u'مليون',u'مليار',u'تريليون')
-
-# convert a value < 100 to English.
-def _convert_nn(val):
- if val < 20:
- return to_19[val]
- for (dcap, dval) in ((k, 20 + (10 * v)) for (v, k) in enumerate(tens)):
- if dval + 10 > val:
- if val % 10:
- return to_19[val % 10]+u' و ' +dcap
- return dcap
-
-# convert a value < 1000 to english, special cased because it is the level that kicks
-# off the < 100 special case. The rest are more general. This also allows you to
-# get strings in the form of 'forty-five hundred' if called directly.
-def _convert_nnn(val):
- word = ''
- (mod, rem) = (val % 100, val // 100)
- if rem > 0:
- word = mod > 0 and hundreds[rem] + u' و ' or hundreds[rem] #to_19[rem] + u' مائة'
-
- if mod > 0:
- word = word+' '+_convert_nn(mod)
- return word
-
-def english_number(val):
- if val < 1000:
- return val < 100 and _convert_nn(val) or _convert_nnn(val)
-
- for (didx, dval) in ((v - 1, 1000 ** v) for v in range(len(denom))):
- if dval > val:
- mod = 1000 ** didx
- l = val // mod
- r = val - (l * mod)
- ret = _convert_nnn(l) +' '+ denom[didx]
- ret = r > 0 and ret + ' '+u' و ' + english_number(r) or ret
- return ret
-
-def amount_to_text(number, units_name=u'ريال', cents_name=u'هللة'):
- number = '%.2f' % number
- list = str(number).split('.')
- #start_word + units_name
- final_result = u' فقط ' + (english_number(int(list[0])) or ' ') + ' '+ (units_name or ' ')
- if int(list[1]) >0:
- #final_result = end_word + cents_name (if cents_number <> ZERO)
- final_result += u' و ' + (english_number(int(list[1])) or ' ') +' '+((int(list[1]) != 0) and cents_name or ' ' + u' لا غير ')
- return final_result+ u' لا غير '
-
-
-#-------------------------------------------------------------
-# Generic functions
-#-------------------------------------------------------------
-
-_translate_funcs = {'ar' : amount_to_text}
-
-#TODO: we should use the country AND language (ex: septante VS soixante dix)
-#TODO: we should use en by default, but the translation func is yet to be implemented
-def amount_to_text(nbr, lang='ar', units_name=u'ريال', cents_name=u'هللة'):
- """
- Converts an integer to its textual representation, using the language set in the context if any.
- Example:
- 1654: thousands six cent cinquante-quatre.
- """
- from odoo import netsvc
- import logging
- _logger = logging.getLogger(__name__)
-# if nbr > 10000000:
-# netsvc.Logger().notifyChannel('translate', netsvc.LOG_WARNING, _("Number too large '%d', can not translate it"))
-# return str(nbr)
-
- if 'lang' not in _translate_funcs:
- #v11
- _logger.warning("no translation function found for lang: '%s'", lang)
- #netsvc.Logger().notifyChannel('translate', netsvc.LOG_WARNING, _("no translation function found for lang: '%s'" % (lang,)))
- #TODO: (default should be en) same as above
- lang = 'ar'
- return _translate_funcs[lang](abs(nbr), units_name, cents_name)
-
-if __name__=='__main__':
- from sys import argv
-
- lang = 'ar'
- if len(argv) < 2:
- for i in range(1,200):
- l = int_to_text(i, lang)
- for i in range(200,999999,139):
- l = int_to_text(i, lang)
- else:
- l = int_to_text(int(argv[1]), lang)
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/odex25_realstate/property_management/models/annual_raise.py b/odex25_realstate/property_management/models/annual_raise.py
deleted file mode 100644
index 2cd25e6dc..000000000
--- a/odex25_realstate/property_management/models/annual_raise.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import base64
-import json
-import re
-from xml import etree
-
-from odoo import models, fields, api, exceptions, tools, _
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-
-
-
-class AnnualRaise(models.Model):
- _name = 'annual.raise'
- _description = 'Rent Annual Raise'
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _order = "id desc"
- _rec_name = "contract_id"
-
-
- active = fields.Boolean(default=True)
- name = fields.Char(string="Name")
- contract_id = fields.Many2one('rental.contract', string='Contract')
- raise_type = fields.Selection([('percentage', 'Percentage'), ('fixed', 'Fixed amount')],
- string="Raise Type")
- raise_on = fields.Selection([('meter', 'Meter'),
- ('rent_amount', 'Rent amount')],
- string="Raise on", default="rent_amount")
- raise_val = fields.Float(string="Raise Value")
- raise_amount = fields.Float(string='Raise Percentage', compute='get_raise_amount', store=True)
- year = fields.Integer(string='Number of Years')
- rent_amount = fields.Float(string='Rent Amount', compute='get_rent_amount')
- rent_amount_after_raise = fields.Float(string='Rent Amount After Raise plus Services Cost',
- compute='get_rent_amount_after_raise', store=True)
- rent_amount_after_raise_temp = fields.Float(string='Rent Amount After Raise Without Services Cost',
- compute='get_rent_amount_after_raise', store=True)
- meter_price = fields.Float(string="Meter price", related='contract_id.meter_price')
- meter_price_after_raise = fields.Float(string="Meter price after raise", compute='get_raise_amount', store=True)
- due_date_raise = fields.Date(string='Due Date', compute='get_due_date')
-
-
-
- @api.depends('raise_val', 'raise_type', 'raise_on', 'rent_amount')
- def get_raise_amount(self):
- """
- Get the raise amount based on raise type if percentage
- go with first if E.X: 2 <--> raise value * rent amount <--> 1000 / 100 = 2
- final rent after raise will be 1002
- if fixed amount the raise amount will be E.X: raise value <--> 2
- final rent after raise will be 1002
- :return: raise_amount
- """
- # contract_object = self.env['rental.contract'].search([('id', '=', self._context.get('contract_id'))])
- for rec in self:
- if rec.raise_type == 'percentage':
- if rec.raise_on == 'rent_amount':
- raise_amount = (rec.contract_id.rent_amount if rec.contract_id.change_price else rec.contract_id.cal_rent_amount) * (rec.raise_val/ 100)
- rec.raise_amount = raise_amount
- else:
- raise_amount = ((rec.contract_id.new_price if rec.contract_id.change_price else rec.contract_id.meter_price) * (rec.raise_val / 100)) * rec.contract_id.space
- rec.raise_amount = raise_amount
- meter_price_after_raise = ((rec.contract_id.new_price if rec.contract_id.change_price else rec.contract_id.meter_price) * (rec.raise_val / 100)) + rec.meter_price
- rec.meter_price_after_raise = meter_price_after_raise
- elif rec.raise_type == 'fixed':
- if rec.raise_on == 'rent_amount':
- raise_amount = rec.raise_val
- rec.raise_amount = raise_amount
- else:
- raise_amount = rec.raise_val * rec.contract_id.space
- rec.raise_amount = raise_amount
- meter_price_after_raise = rec.raise_val + rec.meter_price
- rec.meter_price_after_raise = meter_price_after_raise
-
- @api.depends('contract_id')
- def get_rent_amount(self):
- for this in self:
- if this.contract_id.change_price:
- this.rent_amount = this.contract_id.rent_amount
- elif not this.contract_id.change_price:
- this.rent_amount = this.contract_id.cal_rent_amount
-
- @api.depends('rent_amount', 'raise_amount')
- def get_rent_amount_after_raise(self):
- for rec in self:
- rec.rent_amount_after_raise = rec.rent_amount + rec.raise_amount + rec.contract_id.service_cost
- rec.rent_amount_after_raise_temp = rec.rent_amount + rec.raise_amount
- #
- # @api.onchange('raise_type')
- # def onchange_raise_type(self):
- # for record in self:
- # record.raise_amount = 0.0
- # record.raise_val = 0.0
-
- @api.depends('year', 'contract_id')
- def get_due_date(self):
- if self._context.get('contract_id'):
- contract_object = self.env['rental.contract'].search([('id', '=',self._context.get('contract_id') )])
- for rec in self:
- if not self._context.get('contract_id'):
- contract_object = self.env['rental.contract'].search([('id', '=', rec.contract_id.id)])
- date = contract_object.date_from
- rec.due_date_raise = date
- date_from = datetime.strptime(datetime.strftime(date, '%Y-%m-%d'), '%Y-%m-%d').date()
- due_date = date_from + relativedelta(years=rec.year)
- due_date_raise = due_date.strftime('%Y-%m-%d')
- rec.due_date_raise = due_date_raise
-
-
- def check_concatenate_date_to(self, year, month, day):
- concatenated_date = ''
- if day < 10:
- day = '0' + str(day)
- if month < 10:
- month = '0' + str(month)
- elif month > 12:
- no_year = month % 12
- month -= (no_year * 12)
- year += no_year
- concatenated_date = str(year) + '-' + str(month) + '-' + str(day)
- return concatenated_date
-
-
diff --git a/odex25_realstate/property_management/models/client_requirement.py b/odex25_realstate/property_management/models/client_requirement.py
deleted file mode 100644
index ad45981e5..000000000
--- a/odex25_realstate/property_management/models/client_requirement.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from odoo import models, fields, api, _
-
-
-class ReClientRequirement(models.Model):
- _inherit = "re.clients.requirement"
-
- action_type = fields.Selection(selection_add=[('rent', 'Rent')])
-
-
-class ReClientRequirementProperty(models.Model):
- _inherit = "re.clients.requirement.property"
-
- rental_contract_id = fields.Many2one('rental.contract', string="Rental Contract")
-
-
- def create_contract_request(self):
- vals = {}
- rental_obj = self.env['rental.contract']
- for record in self:
- if record.state != 'register':
- raise exceptions.ValidationError(_("Please first Register Your Request"
- "Then You can Proceed"))
- name = 'Contract From Client Request:' + str(record.request_id.name)
- vals = {
- 'name': name,
- 'rent_method': self.search_type,
- 'property_id': record.property_id and record.property_id.id or False,
- 'state': 'draft',
- 'date': date.today(),
- 'rent_amount': record.price,
- 'original_rent_amount': record.price,
- 'unit_ids': [(6, 0, record.unit_id.ids)] or False,
- 'partner_id': record.request_id.partner_id and record.request_id.partner_id.id or False,
- }
- rent_contract = rental_obj.create(vals)
- if rent_contract:
- # rent_contract.action_submit()
- record.rental_contract_id = rent_contract.id
- record.flag = True
- return True
diff --git a/odex25_realstate/property_management/models/end_rental_contract.py b/odex25_realstate/property_management/models/end_rental_contract.py
deleted file mode 100644
index 323234226..000000000
--- a/odex25_realstate/property_management/models/end_rental_contract.py
+++ /dev/null
@@ -1,296 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from odoo import models, fields, api, exceptions, tools, _
-
-
-class EndOfRent(models.Model):
- _name = 'end.of.rent'
- _description = "Rental Contract End"
- _inherit = ['mail.thread', 'mail.activity.mixin']
-
- name = fields.Char(string="Name")
- date = fields.Date(string="Date", default=fields.Date.context_today)
- contract_state = fields.Selection([('before', 'Before Contract Ending'),
- ('after', 'After Contract Ending')], string="Before/After Contract Finishing")
- contract_id = fields.Many2one('rental.contract', string="Contract")
- property_id = fields.Many2one('internal.property', related="contract_id.property_id", string="Property", store=True)
- unit_ids = fields.Many2many('re.unit', related="contract_id.unit_ids", string="Unit/Units")
- state = fields.Selection([('draft', 'Draft'),
- ('check', 'Checked'),
- ('done', 'Done'),
- ('cancel', 'Cancelled')],
- string='Status', default='draft')
- evacuation_date = fields.Date(string="Evacuation date")
- maintenance = fields.Boolean(string="Need Maintenance ?")
- maintenance_cost = fields.Float(string="Maintenance Cost", compute="_get_total_amount", store=True)
- hand_cost = fields.Float(string="Hand Cost")
- total_amount = fields.Float(string="Total Amount", compute="_get_total_amount", store=True)
- rent_amount = fields.Float(string="Rent Amount", related="contract_id.cal_rent_amount")
- service_amount = fields.Float(string="Service Amount", related="contract_id.service_amount")
- water_amount = fields.Float(string="Water Amount", related="contract_id.water_cost")
- insurance_amount = fields.Float(string="Insurance Amount", related="contract_id.insurance_amount")
- remain_amount = fields.Float(string="Remain Insurance Amount", compute="get_remain_amount", store=True)
- electric_meter = fields.Float(string="Electric Read")
- electric_amount = fields.Float(string="Electric Amount")
- electric_payment_no = fields.Float(string="Electric Payment No")
- end_line_ids = fields.One2many('end.rent.line', 'end_rent_id', string="Damage Line")
- rent_payment_ids = fields.One2many('rent.payment', 'contract_id', related="contract_id.rent_payment_ids")
- user_id = fields.Many2one('res.users', string="Responsible", default=lambda self: self.env.user.id)
- company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)
- maintenance_id = fields.Many2one('property.management.maintenance', string="Maintenance")
- note = fields.Text(string="Note")
- invoice_id = fields.Many2one('account.move', string="Invoice")
-
- def _prepare_out_refund_invoice_values(self, end, amount):
- invoice_vals = {
- 'ref': end.name,
- 'move_type': 'out_refund',
- 'invoice_origin': _('Insurance Refund') + ' ' + end.name + ' ' + end.contract_id.partner_id.name,
- 'invoice_user_id': end.user_id.id,
- 'invoice_date': end.date,
- 'narration': end.note,
- 'partner_id': end.contract_id.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': end.name + ' - ' + str(end.date),
- 'price_unit': amount,
- 'quantity': 1.0,
-
- })],
- }
- return invoice_vals
-
- def _prepare_invoice_values(self, end, amount):
- invoice_vals = {
- 'ref': end.name,
- 'move_type': 'out_invoice',
- 'invoice_origin': _('Maintenance For') + ' ' + end.name + ' ' + end.contract_id.partner_id.name,
- 'invoice_user_id': end.user_id.id,
- 'invoice_date': end.date,
- 'narration': end.note,
- 'partner_id': end.contract_id.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': end.name + ' - ' + str(end.date),
- 'price_unit': amount,
- 'quantity': 1.0,
-
- })],
- }
- return invoice_vals
-
- @api.depends('insurance_amount', 'total_amount')
- def get_remain_amount(self):
- for rec in self:
- rec.remain_amount = rec.insurance_amount - rec.total_amount
-
- def action_cancel(self):
- if self.state not in ['check', 'done']:
- self.write({'state': 'cancel'})
-
- def action_done(self):
- for rec in self:
- if rec.remain_amount > 0.0:
- invoice_vals = rec._prepare_out_refund_invoice_values(rec, rec.remain_amount)
- invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- rec.invoice_id = invoice.id
- rec.write({'state': 'done'})
- elif rec.remain_amount < 0.0:
- invoice_vals = rec._prepare_invoice_values(rec, abs(rec.remain_amount))
- invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- rec.invoice_id = invoice.id
- rec.write({'state': 'done'})
- if rec.contract_state == 'before':
- for rent_payment in rec.rent_payment_ids:
- if rent_payment.due_date > rec.date and rent_payment.state != 'paid':
- rent_payment.write({'state': 'cancel'})
- elif rent_payment.due_date < rec.date and rent_payment.state != 'paid':
- rent_payment.write({'state': 'cancel'})
- for unit in rec.contract_id.unit_ids:
- unit.write({'state': 'available'})
- rec.contract_id.write({'state': 'close'})
-
- def action_check(self):
- for rec in self:
- if rec.contract_state == 'before':
- for rent_payment in rec.rent_payment_ids:
- if rent_payment.state == 'due':
- raise exceptions.ValidationError(_('You have Payment in due state, kindly review them first.'))
-
- if not rec.maintenance_id and rec.maintenance:
- vals = {
- 'name': _('Maintenance for EOC to %s') % rec.contract_id.name,
- 'contract_id': rec.contract_id.id,
- 'property_id': rec.property_id.id,
- 'unit_ids': [(4, unit.id) for unit in rec.unit_ids],
- 'end_line_ids': [(4, line.id) for line in rec.end_line_ids],
- 'partner_id': rec.contract_id.partner_id.id,
- 'end_rent_id': rec.id,
- 'maintenance_type': 'end_contract',
- 'date': rec.date,
- 'state': 'draft', }
- maintenance_id = self.env['property.management.maintenance'].create(vals)
- rec.maintenance_id = maintenance_id.id
- self.write({'state': 'check'})
-
- @api.depends('maintenance_cost', 'hand_cost', 'end_line_ids', 'end_line_ids.total')
- def _get_total_amount(self):
- for rec in self:
- if rec.end_line_ids:
- rec.maintenance_cost = sum([line.total for line in rec.end_line_ids])
- rec.total_amount = rec.maintenance_cost + rec.hand_cost
-
-
-class EndRentLine(models.Model):
- _name = "end.rent.line"
- _description = "End Of Rent Line"
-
- end_rent_id = fields.Many2one('end.of.rent', string='End Contract')
- maintenance_id = fields.Many2one('property.management.maintenance', string="Maintenance")
- product_id = fields.Many2one('product.product', string='Description')
- qty = fields.Integer(string='Quantity', default=1)
- cost = fields.Float(string='Cost')
- total = fields.Float(string='Total', compute='get_total', store=True)
- note = fields.Char(string='Note')
-
- def _get_available_quantity(self, lot_id=None, package_id=None, owner_id=None, strict=False,
- allow_negative=False):
- self.ensure_one()
- location_id = self.env['stock.location'].search([('usage', '=', 'internal')], limit=1)
- return self.env['stock.quant']._get_available_quantity(self.product_id, location_id, lot_id=lot_id,
- package_id=package_id, owner_id=owner_id, strict=strict,
- allow_negative=allow_negative)
-
- @api.depends('qty', 'cost')
- def get_total(self):
- for record in self:
- record.total = record.qty * record.cost
-
- @api.onchange('product_id')
- def onchange_product(self):
- self.cost = self.product_id.standard_price and self.product_id.standard_price > 0 or self.product_id.lst_price
-
-
-class PropertyManagementMaintenance(models.Model):
- _name = "property.management.maintenance"
- _description = "Property Maintenance"
- _inherit = ['mail.thread', 'mail.activity.mixin']
-
- @api.onchange('contract_id')
- def onchange_contract_id(self):
- if self.contract_id:
- return {'domain':
- {'property_id': [('id', '=', self.contract_id.property_id.id)],
- 'unit_ids': [('id', 'in', self.contract_id.unit_ids.ids)]}}
- else:
- if not self.contract_id:
- self.property_id = False
- self.unit_ids = False
-
- name = fields.Char(string="Description")
- date = fields.Date(string="Date", default=fields.Date.context_today)
- maintenance_type = fields.Selection([('normal', 'Normal'),
- ('end_contract', 'End of contract')], string='Maintenance Type',
- default='normal')
- end_rent_id = fields.Many2one('end.of.rent', string="Rent End")
- contract_id = fields.Many2one('rental.contract', string="Contract")
- property_id = fields.Many2one('internal.property', string="Property")
- partner_id = fields.Many2one('res.partner', string="Partner",domain=[('is_tenant', '=', True)])
- vendor_id = fields.Many2one('res.partner', string="Vendor",domain=[('is_tenant', '=', True)])
- unit_ids = fields.Many2many('re.unit', string="Unit/Units")
- maintenance_cost = fields.Float(string="Maintenance Cost", compute="_get_total_amount", store=True)
- total_amount = fields.Float(string="Total Amount", compute="_get_total_amount", store=True)
- hand_cost = fields.Float(string="Hand Cost")
- end_line_ids = fields.One2many('end.rent.line', 'maintenance_id', string="Damage Line")
- user_id = fields.Many2one('res.users', string="Responsible", default=lambda self: self.env.user.id)
- company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)
- renter_invoice = fields.Boolean(string="Invoice Renter ?")
- note = fields.Text(string="Note")
- state = fields.Selection([('draft', 'Draft'),
- ('submit', 'Submitted'),
- ('done', 'Done'),
- ('cancel', 'Cancel')], string='Status', default='draft')
- invoice_id = fields.Many2one('account.move', string="Invoice")
- request_id = fields.Many2one('sale.order', string="Request Item")
-
- @api.onchange('renter_invoice')
- def rest_values(self):
- if self.partner_id:
- self.partner_id = False
-
- def _prepare_invoice_values(self, maintenance, amount):
- origin = _(
- 'Maintenance Order') + ' ' + maintenance.name + ' ' + maintenance.partner_id.name if maintenance.partner_id else \
- _('Maintenance Order') + ' ' + maintenance.name + ' ' + maintenance.vendor_id.name
- invoice_vals = {
- 'ref': maintenance.name,
- 'move_type': 'in_invoice',
- 'invoice_origin': origin,
- 'invoice_user_id': maintenance.user_id.id,
- 'invoice_date': maintenance.date,
- 'narration': maintenance.note,
- 'partner_id': maintenance.partner_id.id if maintenance.partner_id else maintenance.vendor_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': origin + ' - ' + str(maintenance.date),
- 'price_unit': amount,
- 'quantity': 1.0,
-
- })],
- }
- return invoice_vals
-
- def action_submit(self):
- self.write({'state': 'submit'})
-
- def action_done(self):
- line_ids = []
- for rec in self:
- invoice_vals = rec._prepare_invoice_values(rec, abs(rec.total_amount))
- if rec.end_rent_id and rec.end_rent_id.state != 'done':
- raise exceptions.ValidationError(_('Please confirm end of rent first '))
- if not rec.end_rent_id:
- invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- rec.invoice_id = invoice.id
- for line in rec.end_line_ids:
- line_ids.append((0, 0, {
- 'product_id': line.product_id.id,
- 'name': rec.name,
- 'product_uom_qty': line.qty,
- 'price_unit': line.cost,
-
- }))
- # check_quantity = line._get_available_quantity()
- # if check_quantity < line.qty:
- # raise exceptions.ValidationError(_("Required quantity is more than available quantity"))
- # request_vals = {
- # 'partner_id': rec.vendor_id.id,
- # 'date_order': rec.date,
- # 'from_property': True,
- # 'order_line': line_ids,
- # 'name': self.env['ir.sequence'].next_by_code('ir.property') or ('/')
- # }
- # request_id = self.env['sale.order'].sudo().create(request_vals).with_user(self.env.uid)
- rec.write({'state': 'done'})
-
- def action_cancel(self):
- self.write({'state': 'cancel'})
-
- @api.model
- def create(self, values):
- if values.get('maintenance_type'):
- if values['maintenance_type'] == 'end_contract' and self.env.context.get(
- 'active_model') == 'property.management.maintenance':
- raise exceptions.ValidationError(_("End of contract maintenance cannot be created from here."))
- return super(PropertyManagementMaintenance, self).create(values)
-
- @api.depends('maintenance_cost', 'hand_cost')
- def _get_total_amount(self):
- for rec in self:
- if rec.end_line_ids:
- rec.maintenance_cost = sum([line.total for line in rec.end_line_ids])
- rec.total_amount = rec.maintenance_cost + rec.hand_cost
-
- @api.depends('maintenance_cost', 'hand_cost', 'end_line_ids','end_line_ids.cost', 'end_line_ids.total')
- def _get_total_amount(self):
- for rec in self:
- # تأكد من إعادة حساب maintenance_cost باستخدام المجموع الصحيح لجميع الأسطر
- rec.maintenance_cost = sum(line.total for line in rec.end_line_ids)
- rec.total_amount = rec.maintenance_cost + rec.hand_cost
diff --git a/odex25_realstate/property_management/models/property_management_conf.py b/odex25_realstate/property_management/models/property_management_conf.py
deleted file mode 100644
index 8be0dfd5b..000000000
--- a/odex25_realstate/property_management/models/property_management_conf.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-
-
-from odoo import models, fields, api, exceptions, tools, _
-
-
-class RentType(models.Model):
- _name = 'rent.type'
- _description = 'Rent Type'
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _order = "id desc"
-
- active = fields.Boolean(default=True)
- name = fields.Char(string="Name")
- months = fields.Char(string="Months Between Payment")
- company_id = fields.Many2one('res.company', string="Company", default=lambda self: self.env.user.company_id)
-
- _sql_constraints = [
- ('name_months', 'unique(name,months)', _('Name and months numbers must be unique.')),
- ]
diff --git a/odex25_realstate/property_management/models/rent_payment.py b/odex25_realstate/property_management/models/rent_payment.py
deleted file mode 100644
index 5ce61179e..000000000
--- a/odex25_realstate/property_management/models/rent_payment.py
+++ /dev/null
@@ -1,304 +0,0 @@
-# -*- coding: utf-8 -*-
-import base64
-import re
-import calendar
-
-import logging
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-from odoo.tools import exception_to_unicode
-from odoo import models, fields, api, exceptions, tools, _
-from odoo.addons.property_management.models import amount_to_text_ar
-
-
-class RentPayment(models.Model):
- _name = "rent.payment"
- _description = "Rental Contract Payment"
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _order = "id desc"
-
- code = fields.Char(string="Sequence")
- name = fields.Char(string="Description")
- contract_id = fields.Many2one('rental.contract', string="Rental Contract")
- renter_id = fields.Many2one('res.partner',string="Renter",related='contract_id.partner_id',readonly=1)
-
- investor_id = fields.Many2one('res.partner', string="Investor", related="contract_id.property_id.owner_id",
- store=True)
- partner_id = fields.Many2one('res.partner', string="Customer", related="contract_id.partner_id", store=True)
- property_id = fields.Many2one('internal.property', string="Property", related="contract_id.property_id", store=True)
- unit_ids = fields.Many2many('re.unit', string="Unit/Units", related="contract_id.unit_ids")
- user_id = fields.Many2one('res.users', string="Responsible")
- company_id = fields.Many2one('res.company', string="Company")
- due_date = fields.Date(string="Due Date")
- paid_date = fields.Date(string="Paid Date",)
- payment_method = fields.Selection([('check', 'Bank Check'),
- ('cash', 'Cash'),
- ('transfer', 'Transfer')], string="Payment Method", default='transfer')
- amount = fields.Float(string="Amount")
- water_cost = fields.Float(string="Water Cost")
- service_cost = fields.Float(string="Service Cost")
- profit = fields.Float(string="Profit")
- tax_id = fields.Many2one('account.tax', string="Tax")
- untaxed_amount = fields.Float(string="Untaxed Amount", compute="get_untaxed_amount", store=True)
- # tax_amount = fields.Float(string="Tax Amount", compute="get_tax_amount", store=True)
- tax_amount = fields.Float(string="Tax Amount")
- total_amount = fields.Float(string="Total Amount", compute="get_total_amount")
- paid = fields.Boolean(string="Paid", compute='get_invoice_state', default=False)
- amount_in_word = fields.Char(string="Amount In Word", compute="get_amount_in_word")
- state = fields.Selection([('draft', 'Not Due'),
- ('due', 'Due'),
- ('invoice', 'Invoice'),
- ('paid', 'Paid'),
- ('cancel', 'Canceled')], string="Status", default='draft')
- invoice_id = fields.Many2one('account.move', string="Invoice",readonly=1)
- note = fields.Text(string="Note")
-
- @api.depends('contract_id')
- def _compute_renter(self):
- for rec in self:
- if rec.contract_id:
- rec.renter_id = rec.contract_id.partner_id.id
- if rec.invoice_id and rec.invoice_id.payment_state in ['paid', 'in_payment']:
- rec.write({'state': 'paid','paid_date':rec.invoice_id.payment_id.date})
- payment_obj = self.env['account.payment'].search([('ref','=',rec.invoice_id.name)],limit=1)
- rec.paid_date=payment_obj.date
-
- @api.depends('invoice_id')
- def _compute_payment(self):
- for rec in self:
- if rec.invoice_id and rec.invoice_id.payment_state in ['paid', 'in_payment']:
- rec.write({'state': 'paid','paid_date':rec.invoice_id.payment_id.date})
- payment_obj = self.env['account.payment'].search([('ref','=',rec.invoice_id.name)],limit=1)
- rec.paid_date=payment_obj.date
-
- def read(self, records):
- res = super(RentPayment, self).read(records)
- for rec in self:
- if rec.invoice_id.payment_state in ['paid', 'in_payment']:
- rec.write({'state': 'paid'})
- payment_obj = self.env['account.payment'].search([('ref','=',rec.invoice_id.name)],limit=1)
- rec.paid_date=payment_obj.date
- return res
-
-
- @api.depends('invoice_id', 'invoice_id.state','invoice_id.payment_state', 'invoice_id.amount_residual')
- def get_invoice_state(self):
- self.paid = False
- for rec in self:
- if rec.invoice_id:
- if rec.invoice_id.amount_residual == 0.0:
- rec.paid = True
- if rec.invoice_id.payment_state in ['paid','in_payment']:
- rec.write({'state': 'paid'})
- payment_obj = self.env['account.payment'].search([('ref','=',rec.invoice_id.name)],limit=1)
- rec.paid_date=payment_obj.date
-
-
- def _prepare_invoice_values(self, payment, amount):
-
- self.renter_id.property_account_receivable_id = payment.contract_id.debit_account_id.id
- line_invoice=[]
- line_journal = []
-
- if payment.amount>0.00:
- print('go on....')
- line_invoice.append((0, 0, {
- 'name':'قيمة الإيجار '+' - '+payment.contract_id.name+'- '+ self.name + ' - ' + payment.code + ' - ' + str(payment.due_date),
- 'price_unit': self.amount,
- 'quantity': 1.0,
- 'account_id': payment.contract_id.revenue_account_id.id,
- }))
- if payment.water_cost>0.00:
- line_invoice.append((0, 0, {
- 'name': 'تكلفة المياه'+' -'+self.name + ' - '+payment.contract_id.name +' - ' + payment.code + ' - ' + str(payment.due_date),
- 'price_unit':self.water_cost,
- 'quantity': 1.0,
- 'account_id': payment.contract_id.revenue_account_id.id,
- }),)
- if payment.service_cost>0.00:
- line_invoice.append((0, 0, {
- 'name':'قيمة الخدمات'+' - '+ self.name+' - '+payment.contract_id.name + ' - ' + payment.code + ' - ' + str(payment.due_date),
- 'price_unit': self.service_cost,
- 'quantity': 1.0,
- 'account_id': payment.contract_id.revenue_account_id.id,
- }))
- if payment.amount==0.00 and payment.service_cost==0.00 and payment.water_cost==0.00:
- line_invoice.append((0, 0, {
- 'name':self.name + ' - ' +payment.contract_id.name + ' - '+payment.code + ' - ' + str(payment.due_date),
- 'price_unit':self.total_amount,
- 'quantity': 1.0,
- 'account_id': payment.contract_id.revenue_account_id.id,
- }))
-
- # line_journal.append((0, 0, {
- # 'account_id': payment.contract_id.revenue_account_id.id,
- # 'debit': 0.0,
- # 'credit': amount,
- # 'name': payment.contract_id.name + ' - ' + payment.contract_id.seq + ' - ' + str(payment.contract_id.date),
- # 'quantity': 1
- # }))
- # line_journal.append((0, 0, {
- # 'account_id': payment.contract_id.debit_account_id.id,
- # 'debit': amount,
- # 'credit': 0.0,
- # 'quantity': 1
- # }))
-
- invoice_vals = {
- 'ref': payment.name,
- 'move_type': 'out_invoice',
- 'invoice_origin': payment.code,
- 'invoice_user_id': payment.user_id.id,
- 'narration': payment.note,
- 'partner_id': payment.contract_id.partner_id.id,
- 'invoice_line_ids': line_invoice,
-
-
- # 'tax_ids': [(6, 0, [payment.tax_id.id])],
- }
- return invoice_vals
-
-
- def action_invoice(self):
- if not self.contract_id.accrued_account_id:
- raise exceptions.ValidationError(_("Kindly, Contact Your Account Manager to set Income Account in contract account page"))
- invoice_vals = self._prepare_invoice_values(self, self.total_amount)
- invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- # Get the ID of the second line
- # line_id = invoice.invoice_line_ids[1].id
- # commands = [(2, line_id, 0)]
- # invoice.write({'invoice_line_ids': commands})
-
- self.invoice_id = invoice.id
- self.write({'state': 'invoice'})
-
- @api.depends('total_amount')
- def get_amount_in_word(self):
- self.amount_in_word = amount_to_text_ar.amount_to_text(
- self.total_amount, 'ar')
-
- def action_cancel(self):
- if self.state != 'due':
- self.write(({'state': 'cancel'}))
- elif self.state == 'due':
- raise exceptions.ValidationError(_('Cannot Cancel This Payment Because it Due'))
-
- def action_validate2(self):
- for record in self:
- if record.contract_id.state == 'confirm':
- rent_payment = [line for line in record.contract_id.rent_payment_ids.filtered(
- lambda payment: payment.due_date < record.due_date and
- (not payment.invoice_id or
- all(invoice.state == 'draft' for invoice in payment.invoice_id))
- )]
- # if len(rent_payment):
- # raise exceptions.ValidationError(
- # _("You must validate the previous rent payment and complete the process"))
- if record.code == '/' or not record.code:
- code = self.env['ir.sequence'].next_by_code('rent.payment') or '/'
- record.write({'code': code})
- record.write({"state": 'due'})
- else:
- raise exceptions.ValidationError(_("You Must Confirm Contract First"))
- def _check_due_payments(self):
- payments = self.search([('state', '=', 'draft'), ('due_date', '<=', fields.Date.today())])
- for payment in payments:
- if payment.contract_id.state == 'confirm':
- payment.write({'state': 'due'})
- if payment.code == '/' or not payment.code:
- code = self.env['ir.sequence'].next_by_code('rent.payment') or '/'
- payment.write({'code': code})
- def _send_payment_notifications(self):
- today = fields.Date.today()
- next_week = today + timedelta(days=7)
-
- payments_today = self.search([('due_date', '=', today), ('state', '=', 'draft')])
- payments_next_week = self.search([('due_date', '=', next_week), ('state', '=', 'draft')])
-
- template_today = self.env.ref('property_management.email_template_due_today')
- template_next_week = self.env.ref('property_management.email_template_due_next_week')
- date_deadline = fields.Date.today()
- note = _("Please Chech the Due Date in rent")
- summary = _("Due Date Rent")
-
- for payment in payments_today:
- email_list = [payment.renter_id.email,payment.user_id.email]
- email_to = ','.join(email_list)
- payment.message_post_with_template(template_today.id)
- if template_today:
- template_today.send_mail(payment.id, force_send=True,raise_exception=True,email_values={'email_to': email_to})
- payment.sudo().activity_schedule(
- 'mail.mail_activity_data_todo', date_deadline,
- note=note,
- user_id=payment.user_id.id,
- res_id=payment.id,
- summary=summary
- )
- payment.sudo().activity_schedule(
- 'mail.mail_activity_data_todo', date_deadline,
- note=note,
- user_id=payment.partner_id.user_id.id,
- res_id=payment.id,
- summary=summary
- )
- # إرسال إشعار إلى المستأجر والمستخدمين
- # يمكنك استخدام notification module للإشعارات أو mail.activity
-
- for payment in payments_next_week:
- email_list = [payment.renter_id.email,payment.user_id.email]
- email_to = ','.join(email_list)
- payment.message_post_with_template(template_next_week.id)
- if template_next_week:
- template_next_week.send_mail(payment.id, force_send=True,raise_exception=True,email_values={'email_to':email_to})
- payment.sudo().activity_schedule(
- 'mail.mail_activity_data_todo', date_deadline,
- note=note,
- user_id=payment.user_id.id,
- res_id=payment.id,
- summary=summary
- )
- payment.sudo().activity_schedule(
- 'mail.mail_activity_data_todo', date_deadline,
- note=note,
- user_id=payment.partner_id.user_id.id,
- res_id=payment.id,
- summary=summary
- )
- return True
-
-
- def action_validate(self):
- for record in self:
- if record.contract_id.state == 'confirm':
- rent_payment = [line for line in record.contract_id.rent_payment_ids.filtered(
- lambda payment: payment.due_date < record.due_date and
- (not payment.invoice_id or
- all(invoice.state == 'draft' for invoice in payment.invoice_id))
- )]
- if len(rent_payment):
- pass
- # raise exceptions.ValidationError(
- # _("You must validate the previous rent payment and complete the process"))
- if record.code == '/' or not record.code:
- code = self.env['ir.sequence'].next_by_code('rent.payment') or '/'
- record.write({'code': code})
- record.write({"state": 'due'})
- else:
- raise exceptions.ValidationError(_("You Must Confirm Contract First"))
-
-
- # @api.depends('untaxed_amount', 'tax_id', 'tax_id.amount')
- # def get_tax_amount(self):
- # for rec in self:
- # tax_value = rec.tax_id.amount / 100
- # rec.tax_amount = rec.untaxed_amount * tax_value
-
- @api.depends('amount', 'water_cost', 'service_cost')
- def get_untaxed_amount(self):
- for rec in self:
- rec.untaxed_amount = rec.amount + rec.water_cost + rec.service_cost
-
- @api.depends('amount', 'water_cost', 'service_cost')
- def get_total_amount(self):
- for rec in self:
- rec.total_amount = rec.amount + rec.water_cost + rec.service_cost
diff --git a/odex25_realstate/property_management/models/rental_contract.py b/odex25_realstate/property_management/models/rental_contract.py
deleted file mode 100644
index b41acfd57..000000000
--- a/odex25_realstate/property_management/models/rental_contract.py
+++ /dev/null
@@ -1,596 +0,0 @@
-# -*- coding: utf-8 -*-
-import base64
-import re
-import calendar
-
-import logging
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-from odoo.tools import exception_to_unicode
-from odoo import models, fields, api, exceptions, tools, _
-
-_logger = logging.getLogger(__name__)
-
-
-class RentalContractTemplate(models.Model):
- _name = 'rental.contract.template'
-
- name = fields.Char(string="Template Name")
- template = fields.Html(string="Template")
-
-
-class Property(models.Model):
- _inherit = "internal.property"
-
- action_type = fields.Selection(selection_add=[('rent', 'Rent')])
-
-
-class ResUnit(models.Model):
- _inherit = "re.unit"
-
- action_type = fields.Selection(selection_add=[('rent', 'Rent')])
- contract_id = fields.Many2one('rental.contract', string="Rental Contract")
-
- contract_counts = fields.Integer(string='Contracts', compute='count_contracts_number')
-
- def count_contracts_number(self):
- contract_count = self.env['rental.contract'].search([('unit_ids', '=', self.id)])
- self.contract_counts = len(contract_count)
-
- def get_contract(self):
- contract_id = self.env['rental.contract'].search(
- [('unit_ids', '=', self.id)])
- form_id = self.env.ref('property_management.rental_contract_form_view').id
- list_id = self.env.ref('property_management.rental_contract_list_view').id
- domain = [('id', 'in', contract_id.ids)]
- return {
- 'name': _('Rental Contract'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'rental.contract',
- 'views': [(list_id, 'tree'), (form_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'current',
- 'domain': domain,
- }
-
-
-class RentalContract(models.Model):
- _name = 'rental.contract'
- _description = 'Rental Contract'
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _order = "id desc"
-
- @api.onchange('rent_method')
- def onchange_rent_method(self):
- """
- Based on rent method return the following record
- to double check in xml domain in unit that only available
- :return: if property return the approved property
- :return: else return the available unit of approved property
- """
- if self.rent_method and self.rent_method == 'property':
- property_ids = self.env['internal.property'].sudo().search(
- [('state', '=', 'approve'), ('action_type', '=', 'rent')])
- return {'domain': {'property_id': [('id', 'in', property_ids.ids)]}}
- elif self.rent_method and self.rent_method == 'unit':
- if not self.property_id:
- self.property_id = False
- property_ids = self.env['internal.property'].sudo().search(
- [('state', '=', 'approve'), ('action_type', '=', 'rent')])
- print()
- property_list = property_ids.filtered(
- lambda line: len(line.unit_ids) > 0 and any(unit.state == 'available' for unit in line.unit_ids))
- return {'domain': {'property_id': [('id', 'in', property_list.ids)]}}
- else:
- if not self.property_id:
- self.property_id = False
-
- active = fields.Boolean(default=True)
- name = fields.Char(string="Name")
- date = fields.Date(string="Contract Date")
- seq = fields.Char(string="Sequence", default="/", index=True)
- state = fields.Selection([('draft', 'Draft'),
- ('submit', 'Submit'),
- ('review', 'Review'),
- ('confirm', 'Confirmed'),
- ('renewed', 'Renewed'),
- ('cancel', 'Cancelled'),
- ('close', 'Closed')], string='Status',
- default='draft', tracking=True)
- residential_purpose_id = fields.Many2one('residential.purpose', string="Residential Purpose")
- rent_method = fields.Selection([('property', 'Property'),
- ('unit', 'Unit')], string="Rent Method")
- property_id = fields.Many2one('internal.property', string="Property", tracking=True)
- unit_ids = fields.Many2many('re.unit', string="Units", tracking=True)
- partner_id = fields.Many2one('res.partner', string="Renter",domain=[('is_tenant', '=', True)])
- identification_type = fields.Selection(related="partner_id.identification_type", string='Identification Type')
- identification_number = fields.Char(related="partner_id.identification_number", string='Identification NUmber')
- identification_issue_date = fields.Date(related="partner_id.identification_issue_date",
- string='Identification Issue Date')
- identification_expiry_date = fields.Date(related="partner_id.identification_expiry_date",
- string='Identification Expiry Date')
-
- user_id = fields.Many2one('res.users', string="Responsible", default=lambda self: self.env.user.id)
- company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)
- rent_duration = fields.Integer(string="Rent Duration", default=1)
- rent_kind = fields.Selection([('year', 'Year'),
- ('month', 'Month'),
- ], string="Rent Kind", tracking=True)
- date_from = fields.Date(string="Rent Date from", default=fields.Date.today)
- date_to = fields.Date(string="Rent Date To", compute="get_to_date", store=True)
- # separate_service = fields.Boolean(string="Separate Service ?")
- rent_type = fields.Many2one('rent.type', string="Rent Type")
- space = fields.Float(string="Space", compute="get_property_unit_space", store=True)
- service = fields.Selection([('fixed', 'Fixed'), ('percentage', 'Percentage')], string="Service")
- service_cost = fields.Float(string="service cost")
- service_amount = fields.Float(string="service amount", compute="compute_service_amount", store=True)
- management_type = fields.Selection(related="property_id.management_type", string="Management Type")
- property_state_id = fields.Many2one('re.property.state', related="property_id.property_state_id")
- property_type_id = fields.Many2one('internal.property.type', related="property_id.property_type_id", string="Type")
- market_type = fields.Selection(related="property_id.market_type", string="Market Type")
- city_id = fields.Many2one('re.city', related="property_id.city_id", string="City")
- district_id = fields.Many2one('district', related="property_id.district_id", string="District")
- street = fields.Char(string="Street Name", related="property_id.street")
- check_insurance = fields.Boolean(string='Insurance?', default=False)
- meter_price = fields.Float(string='Price Per Meter', compute="unit_property_meter_price", store=True)
- cal_rent_amount = fields.Float(string='Calculated Rent Amount', compute="get_rent_amount", store=True)
- rent_amount = fields.Float(string='Rent Amount')
- original_rent_amount = fields.Float(string='Rent Amount')
- insurance = fields.Selection([('fixed', 'Fixed'),
- ('percentage', 'Percentage')], string="Insurance", default="fixed")
- insurance_cost = fields.Float(string="Insurance cost")
- insurance_amount = fields.Float(string="Insurance Amount", compute="compute_insurance", store=True)
- insurance_paid = fields.Float(string="Insurance Paid", compute="get_insurance_paid")
- is_services = fields.Boolean(string='Services Exist?', copy=False)
- water_meter_no = fields.Char(string='Water Meter No.')
- electricity_meter_no = fields.Char(string='Electricity Meter No.')
- generated = fields.Boolean(string='Generated')
- closed = fields.Boolean(string='Closed')
- annual_raise_ids = fields.One2many('annual.raise', 'contract_id', string='Annual Raise', copy=False)
- rent_payment_ids = fields.One2many('rent.payment', 'contract_id', string="Rent Payment")
- insurance_invoice_id = fields.Many2one('account.move', string="Insurance Invoice")
- external_broker = fields.Boolean(string="External Broker")
- external_broker_id = fields.Many2one('res.partner', string="External Broker")
- external_percent = fields.Float(string="External Broker Percent")
- external_commission = fields.Float(string="External Broker Commission")
- internal_broker = fields.Boolean(string="Internal Broker")
- internal_broker_id = fields.Many2one('res.partner', string="Internal Broker")
- internal_percent = fields.Float(string="Internal Broker Percent")
- internal_commission = fields.Float(string="Internal Broker Commission")
- renter_commission = fields.Boolean(string="Renter Commission")
- renter_percent = fields.Float(string="Renter Commission Percent")
- renter_value = fields.Float(string="Renter Value")
- journal_id = fields.Many2one('account.journal', string="Journal")
- debit_account_id = fields.Many2one('account.account', string="Debit Account", domain=lambda self: [
- ('user_type_id.id', '=', self.env.ref('account.data_account_type_receivable').id)], store=True)
- # Debit
- accrued_account_id = fields.Many2one('account.account', string="Accrued Account", domain=lambda self: [
- ('user_type_id.id', 'in', (self.env.ref('account.data_account_type_current_liabilities').id,
- self.env.ref('account.data_account_type_non_current_liabilities').id))], store=True)
- revenue_account_id = fields.Many2one('account.account', string="Revenue Account", domain=lambda self: [
- ('user_type_id.id', 'in', (self.env.ref('account.data_account_type_revenue').id,
- self.env.ref('account.data_account_type_other_income').id))], store=True)
- note = fields.Html(string="Note")
- water_cost = fields.Float(string="Water Cost")
- template_id = fields.Many2one('rental.contract.template', string="Rental Contract Template")
- template = fields.Html(string="Template")
- commission_profit = fields.Selection([('percentage', "Percentage"),
- ('number', "Fixed")], string='Commission', copy=False)
- company_profit = fields.Selection([('percentage', 'Percentage'), ('number', 'Fixed amount')],
- string='Company Profit')
- company_profit_amount = fields.Float(string='Company Profit Amount')
- company_profit_val = fields.Float(string='Company Profit', compute='_compute_company_profit_val', store=True)
- change_price = fields.Boolean(string='Do You want to change rent?', default=False)
- new_price = fields.Float(string="New Meter Price")
- new_rent_amount = fields.Float(string='New Rent Amount', copy=False, tracking=True)
- renew_contract_id = fields.Many2one('rental.contract', string='New Contract')
- renew_done = fields.Boolean(string='Renew Completed', default=False)
- renewed = fields.Boolean(string='Renewed Contract', default=False)
- previous_contract_id = fields.Many2one('rental.contract', string='Previous Contract')
- log_rental_contract_ids = fields.One2many('log.rental.contract', 'contract_id', string='Contract')
- annual_raise_on_type = fields.Selection([('meter', _('Meter')), ('rent_amount', _('Rent amount'))],
- _('الزيادة علي'), default='rent_amount')
-
- def action_renew(self):
- """
- Renew the contract and link the previous contract to the new one
- change the state of contract to renewed
- :return:
- """
- # ToDo: when invoicing is done link the previous created invoice of insurance
- flag = True
- for payment in self.rent_payment_ids:
- if payment.state not in ['paid', 'cancel']:
- flag = False
- if not flag:
- raise exceptions.ValidationError(
- _("Renewing process cannot be completed please check the rent payment status"))
- if flag:
- contract_values = {
- 'state': 'draft',
- 'name': self.name,
- 'rent_method': self.rent_method,
- 'property_id': self.property_id.id,
- 'unit_ids': [(4, unit.id) for unit in self.unit_ids],
- 'user_id': self.env.user.id,
- 'date_from': self.date_to,
- 'rent_duration': self.rent_duration,
- 'rent_kind': self.rent_kind,
- 'partner_id': self.partner_id.id,
- 'rent_type': self.rent_type.id,
- 'rent_amount': self.rent_amount,
- 'water_cost': self.water_cost,
- 'services_cost': self.service_amount,
- 'service_cost': self.service_cost,
- 'previous_contract_id': self.id,
- 'insurance_cost': self.insurance_cost,
- 'insurance_amount': self.insurance_amount,
- 'insurance_paid': self.insurance_paid,
- 'insurance_calculation_method': self.insurance_calculation_method,
- 'insurance': self.insurance,
- }
- renewed_contract_id = self.env['rental.contract'].create(contract_values)
- for rec in self.unit_ids:
- rec.write({'state': 'available'})
- self.write({'renew_contract_id': renewed_contract_id.id,
- 'renewed': True,
- 'state': 'renewed'
- })
-
- @api.returns('self', lambda value: value.id)
- def copy(self, default=None):
- self.ensure_one()
- raise exceptions.ValidationError(_("Cannot Duplicate The Contractr"))
-
- @api.onchange('change_price')
- def set_change_price(self):
- if not self.change_price:
- self.new_price = 0.0
- self.rent_amount = 0.0
-
- @api.depends('company_profit', 'company_profit_amount')
- def _compute_company_profit_val(self):
- for record in self:
- if record.company_profit and record.company_profit == 'percentage':
- record.company_profit_val = record.company_profit_amount / 100 * record.rent_amount
- elif record.company_profit and record.company_profit == 'number':
- record.company_profit_val = record.company_profit_amount
- else:
- record.company_profit_val = 0.0
-
- @api.constrains('unit_id')
- def check_unit_state(self):
- for unit in self.unit_ids:
- if unit.state != 'available':
- raise exceptions.ValidationError(_("Unit %s is not available") %
- (unit.name))
- else:
- pass
-
- @api.onchange('template_id')
- def onchange_template(self):
- self.template = self.template_id.template
-
- @api.depends('insurance_invoice_id', 'insurance_invoice_id.amount_residual', 'insurance_amount')
- def get_insurance_paid(self):
- for rec in self:
- if rec.insurance_invoice_id:
- residual = rec.insurance_invoice_id.amount_total - rec.insurance_invoice_id.amount_residual
- rec.insurance_paid = residual if residual != 0.0 else 0.0
- else:
- rec.insurance_paid = 0.0
-
- def _prepare_invoice_values(self, contract, amount):
- self.partner_id.property_account_receivable_id = contract.debit_account_id.id
- invoice_vals = {
- 'ref': _("Insurance payment for ") + contract.name,
- 'move_type': 'out_invoice',
- 'invoice_origin': contract.seq,
- 'invoice_user_id': contract.user_id.id,
- 'narration': contract.note,
- 'partner_id': contract.partner_id.id,
- 'invoice_line_ids': [(0, 0, {
- 'name': contract.name + ' - ' + contract.seq + ' - ' + str(contract.date),
- 'price_unit': amount,
- 'quantity': 1.0,
- 'account_id':contract.accrued_account_id.id,
- })],
- 'line_ids': [ (0, 0, { 'account_id': contract.accrued_account_id.id, 'debit': 0.0, 'credit': amount,'name': contract.name + ' - ' + contract.seq + ' - ' + str(contract.date), 'quantity':1}),
- (0, 0, { 'account_id': contract.debit_account_id.id, 'debit': amount, 'credit': 0.0, 'quantity':1}) ]
-
-
- }
- return invoice_vals
-
- def action_confirm(self):
- invoice_vals = self._prepare_invoice_values(self, self.insurance_amount)
- invoice = self.env['account.move'].sudo().create(invoice_vals).with_user(self.env.uid)
- # Get the ID of the second line
- line_id = invoice.invoice_line_ids[1].id
- commands = [(2, line_id, 0)]
- invoice.write({'invoice_line_ids': commands})
-
- self.insurance_invoice_id = invoice.id
- if self.rent_method != 'property':
- for unit in self.unit_ids:
- unit.write({'state': 'rented',
- 'contract_id': self.id})
-
- elif self.rent_method == 'property':
- for unit in self.property_id.unit_ids:
- unit.write({'state': 'rented',
- 'contract_id': self.id})
- self.property_id.write({'state': 'rent'})
- self.env['log.rental.contract'].create({'contract_id': self.id,
- 'leaser_id': self.partner_id.id,
- 'date_start': self.date_from,
- 'date_end': self.date_to})
- self.write({'state': 'confirm'})
-
- def action_review(self):
- full = True
- if self.property_id.state in ['reserve', 'rent']:
- raise exceptions.ValidationError(_("Property is already reserved or rented"))
- for units in self.property_id.unit_ids:
- if units.state in ['draft', 'available']:
- full = False
- if full:
- self.property_id.write({'state': 'rent'})
- total_rent = round(self.cal_rent_amount * self.rent_duration, 2)
- total_service = round(self.service_amount * self.rent_duration, 2)
- total_water = round(self.water_cost * self.rent_duration, 2)
- rent_payment = round(sum([rent.amount for rent in self.rent_payment_ids]), 2)
- service_payment = round(sum([rent.service_cost for rent in self.rent_payment_ids]), 2)
- water_payment = round(sum([rent.water_cost for rent in self.rent_payment_ids]), 2)
-
- if total_rent != rent_payment and not self.annual_raise_ids:
- raise exceptions.ValidationError(
- _("Rent payment %s is not equal the rent total amount %s ") % (rent_payment, total_rent))
- if total_service != service_payment:
- pass
- # raise exceptions.ValidationError(
- # _("Service payment %s is not equal the rent total service amount %s ") % (
- # service_payment, total_service))
- if total_water != water_payment:
- pass
- # raise exceptions.ValidationError(
- # _("Water cost to pay %s is not equal the rent total water cost %s ") % (water_payment, total_water))
- self.write({'state': 'review'})
-
- def action_submit(self):
- self.seq = self.env['ir.sequence'].next_by_code('rental.contract') or '/'
- if not self.rent_payment_ids:
- self.generate_payments()
- if self.rent_method != 'property':
- for unit in self.unit_ids:
- if unit.state != 'available':
- raise exceptions.ValidationError(_("Unit %s is not available") %
- (unit.name))
- else:
- unit.write({'state': 'reserved',
- 'contract_id': self.id})
- elif self.rent_method == 'property':
- for unit in self.property_id.unit_ids:
- unit.write({'state': 'reserved',
- 'contract_id': self.id})
- self.property_id.write({'state': 'reserve'})
- self.write({'state': 'submit'})
-
- @api.depends('insurance', 'insurance_cost', 'cal_rent_amount')
- def compute_insurance(self):
- if self.insurance and self.insurance == 'percentage':
- self.insurance_amount = (self.insurance_cost / 100.0) * self.cal_rent_amount
- elif self.insurance and self.insurance == 'fixed':
- self.insurance_amount = self.insurance_cost
-
- def action_cancel(self):
- if self.rent_payment_ids:
- for payment in self.rent_payment_ids:
- if payment.state != 'paid':
- payment.write({'state': 'cancel'})
- if self.rent_method != 'property':
- for unit in self.unit_ids:
- unit.write({'state': 'available'})
- elif self.rent_method == 'property':
- for unit in self.property_id.unit_ids:
- unit.write({'state': 'available',
- 'contract_id': self.id})
- self.property_id.write({'state': 'register'})
- self.write({'state': 'cancel'})
-
- @api.depends('service', 'service_cost', 'cal_rent_amount')
- def compute_service_amount(self):
- if self.service and self.service == 'percentage':
- self.service_amount = (self.service_cost / 100) * self.cal_rent_amount
- elif self.service and self.service == 'fixed':
- self.service_amount = self.service_cost
-
- @api.depends('rent_kind', 'meter_price', 'space', 'rent_amount', 'new_price', 'change_price')
- def get_rent_amount(self):
- """
- get total rent based on meter price and space rent kind
- :return:
- """
- rent_total = 0.0
- rent_price = self.meter_price
- if self.change_price and self.new_price > 0.0:
- rent_price = self.new_price
- if self.rent_kind == 'year':
- rent_total = (self.space * rent_price)
- if self.rent_kind == 'month':
- rent_total = (self.space * rent_price / 12)
- if self.rent_kind == 'day':
- date_from = datetime.strptime(datetime.strftime(self.date_from, '%Y-%m-%d'), "%Y-%m-%d")
- if calendar.isleap(date_from.year):
- rent_total = (self.space * rent_price / 366)
- elif not calendar.isleap(date_from.year):
- rent_total = (self.space * rent_price / 365)
- if self.rent_kind == 'hour':
- date_from = datetime.strptime(
- datetime.strftime(self.date_from, "%Y-%m-%d"), "%Y-%m-%d")
- if calendar.isleap(date_from.year):
- rent_total = (self.space * rent_price / 366) / 24
- elif not calendar.isleap(date_from.year):
- rent_total = (self.space * rent_price / 365) / 24
- self.cal_rent_amount = rent_total if self.rent_amount == 0.0 else self.rent_amount
-
- @api.depends('rent_method', 'property_id.meter_price', 'property_id', 'unit_ids')
- def unit_property_meter_price(self):
- """
- get meter price based on rent method
- :return: if property based on meter_price on property object
- :return: if unit get the total unit price of all selected unit
- """
- total_price = 0.0
- if self.rent_method == 'property':
- self.meter_price = self.property_id.meter_price
- else:
- for unit in self.unit_ids:
- total_price += unit.meter_price
- self.meter_price = total_price
-
- @api.depends('rent_method', 'property_id', 'unit_ids')
- def get_property_unit_space(self):
- """
- get space based on rent method
- :return: if property return property space
- :return: if unit or more than one unit read the sum of space uing for loop
- """
- total_space = 0.0
- if self.rent_method == 'property':
- self.space = self.property_id.property_space
- else:
- for unit in self.unit_ids:
- total_space += unit.space
- self.space = total_space
-
- @api.depends('date_from', 'rent_duration', 'rent_kind')
- def get_to_date(self):
- if self.date_from and self.rent_duration and self.rent_kind:
- date_from = datetime.strptime(datetime.strftime(self.date_from, '%Y-%m-%d'), '%Y-%m-%d').date()
- date_from = date_from - relativedelta(days=int(1))
- if self.rent_kind == 'year':
- date_to = date_from + relativedelta(years=int(self.rent_duration))
- self.date_to = date_to.strftime('%Y-%m-%d')
- elif self.rent_kind == 'month':
- date_to = date_from + relativedelta(months=int(self.rent_duration))
- self.date_to = date_to.strftime('%Y-%m-%d')
-
- def check_line(self):
- """
- if there is a rent line then raise a confirm box if true remove all previous line
- and call generate function
- :return:
- """
- if len(self.rent_payment_ids) > 0:
- ctx = self._context.copy()
- ctx.update({'rent_payment': True})
- return {
- 'name': _('Confirm'),
- 'type': 'ir.actions.act_window',
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'confirm.wizard',
- 'context': ctx,
- 'target': 'new',
- }
- else:
- self.generate_payments()
-
- def remove_payment(self):
- """remove all payment line"""
- self._cr.execute('delete from rent_payment where contract_id =%s' % self.id)
-
- def generate_payments(self):
- """
- based on user selection system will prepare the rent payment scheduling
- and create a rent line
- new change service will be like rent payment
- :return:
- """
- property_id = self.property_id.id
- date_from = datetime.strptime(datetime.strftime(self.date_from, '%Y-%m-%d'), '%Y-%m-%d').date()
- date_to = datetime.strptime(datetime.strftime(self.date_to, '%Y-%m-%d'), '%Y-%m-%d').date()
- months = int(self.rent_type.months)
- service_months = 12
-
- names = []
- if self.unit_ids:
- for unit in self.unit_ids:
- names.append(unit.name)
-
- # the rent factor is used to get the number of payments
- # also to get the rent amount based on rent_kind as following
- rent_factor = 1.0
- if self.rent_kind == 'year':
- rent_factor = 12.0
- if not self.date_from or not self.date_to:
- raise exceptions.ValidationError(_('Please set the rent duration and start date'))
- if months == 0:
- raise exceptions.ValidationError(_("In rent type please make sure that the month number is more than 0"))
-
- # Calculate the number of payments and the amounts per payment
- no_payments = (self.rent_duration * rent_factor) / months
- no_services_payment = (self.rent_duration * rent_factor) / service_months
- rent_amount_per_payment = self.cal_rent_amount / (rent_factor / months)
- water_amount_per_payment = self.water_cost / (rent_factor / service_months)
- services_amount_per_payment = self.service_amount / (rent_factor / service_months)
-
- next_date = date_from
- service_next_date = date_from
- payment = 0
- service = 0
-
- while payment < no_payments:
- # Check for any rent raise applicable on the due date
- raise_line = next((line for line in self.annual_raise_ids if line.due_date_raise == next_date), None)
- if raise_line:
- rent_amount_per_payment = raise_line.rent_amount_after_raise / (rent_factor / months)
-
- # Insert rent payment line
- self._cr.execute('INSERT INTO rent_payment \
- (name, contract_id, due_date, property_id, amount, water_cost, service_cost, user_id, company_id, state) \
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING id',
- (
- f'Payment {payment + 1}',
- self.id,
- next_date.strftime('%Y-%m-%d'),
- self.property_id.id,
- rent_amount_per_payment,
- water_amount_per_payment if payment < no_services_payment else 0.0,
- services_amount_per_payment if payment < no_services_payment else 0.0,
- self.user_id.id,
- self.env.user.company_id.id,
- 'draft',
- ))
-
- # Move to the next payment date
- next_date += relativedelta(months=months)
- payment += 1
-
- # Update any remaining rent payments with service costs
- query = """UPDATE rent_payment SET service_cost = %s, water_cost = %s WHERE contract_id = %s AND due_date <= %s"""
- self._cr.execute(query, (services_amount_per_payment, water_amount_per_payment, self.id, date_to.strftime('%Y-%m-%d')))
-
- # Update amounts (e.g., tax calculations) for each rent payment line
- for line in self.rent_payment_ids:
- line.get_untaxed_amount()
- line.get_total_amount()
-
- ###################################### End of Generating Payment ############################
-
-class ResPartner(models.Model):
- _inherit = 'res.partner'
- _description = "Renter"
-
- is_renter = fields.Boolean(string="Renter")
-
-
-class LogRentalContract(models.Model):
- _name = 'log.rental.contract'
-
- contract_id = fields.Many2one('rental.contract', string='Contract')
- leaser_id = fields.Many2one('res.partner', string='Leaser')
- date_start = fields.Date(string='Date Start')
- date_end = fields.Date(string='Date End')
diff --git a/odex25_realstate/property_management/models/transfer_contract.py b/odex25_realstate/property_management/models/transfer_contract.py
deleted file mode 100644
index ccaa18d81..000000000
--- a/odex25_realstate/property_management/models/transfer_contract.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- coding: utf-8 -*-
-import base64
-import re
-import calendar
-
-import logging
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-from odoo.tools import exception_to_unicode
-from odoo import models, fields, api, exceptions, tools, _
-
-
-_logger = logging.getLogger(__name__)
-
-class TransferContract(models.Model):
- _name = 'transfer.contract'
- _inherit = ['mail.thread', 'mail.activity.mixin']
- _description = "Contract Transfer"
- _order = "id desc"
-
- name = fields.Char(string="No.", default="/")
- contract_id = fields.Many2one('rental.contract', string='Rental Contract')
- date = fields.Date(string='Transfer Date')
- current_partner_id = fields.Many2one('res.partner',related="contract_id.partner_id", string='Current Renter')
- partner_id = fields.Many2one('res.partner', string='Renter',domain=[('is_tenant', '=', True)])
- state = fields.Selection([('draft', 'Draft'),
- ('submit', 'Submit'),
- ('review', 'Review'),
- ('confirm', 'Confirmed'),
- ('cancel', 'Cancelled')], string='Status', default='draft')
- company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)
- date_from = fields.Date(string='Contract Start Date', related='contract_id.date_from')
- date_to = fields.Date(string='Contract End Date', related='contract_id.date_to')
- property_id = fields.Many2one('internal.property', related="contract_id.property_id", string="Property")
- unit_ids = fields.Many2many('re.unit', related="contract_id.unit_ids", string="Unit")
-
- @api.constrains('date')
- def check_transfer_date(self):
- if self.date_from and self.date_to and self.date:
- start_date = datetime.strptime(datetime.strftime(self.date_from, '%Y-%m-%d'), '%Y-%m-%d').date()
- end_date = datetime.strptime(datetime.strftime(self.date_to, '%Y-%m-%d'), '%Y-%m-%d').date()
- date = datetime.strptime(datetime.strftime(self.date, '%Y-%m-%d') , '%Y-%m-%d').date()
- if date > end_date or date < start_date:
- raise exceptions.ValidationError(
- _('Transfer Date should be greater than Start date and less Than End date of the contract'))
-
- def action_confirm(self):
- line_ids = []
- if self.date:
- line_id = self.env['rent.payment'].search(
- [('contract_id', '=', self.contract_id.id), ('due_date', '<=', self.date)],
- order="due_date desc", limit=1)
- if line_id.state == 'due':
- raise exceptions.ValidationError(
- _("You cannot do this operation, there are payment for the old renter must be paid"))
- self.contract_id.write({'partner_id': self.partner_id.id})
- return self.write({'state': 'confirm'})
-
- def action_review(self):
- return self.write({'state': 'review'})
-
- def action_reset(self):
- return self.write({'state': 'draft'})
-
- def action_cancel(self):
- return self.write({'state': 'cancel'})
-
- def action_submit(self):
- if self.date:
- line_id = self.env['rent.payment'].search(
- [('contract_id', '=', self.contract_id.id), ('due_date', '<=', self.date)],
- order="due_date desc", limit=1)
- if line_id.state == 'due':
- raise exceptions.ValidationError(
- _("You cannot do this operation, there are payment for the old renter must be paid"))
- self.name = self.env['ir.sequence'].next_by_code('transfer.contract') or '/'
- return self.write({'state': 'submit'})
-
- def unlink(self):
- for rec in self:
- if rec.state != 'draft':
- raise exceptions.ValidationError(_("You can not delete record"))
- return super(TransferContract, self).unlink()
-
- @api.constrains('current_partner_id', 'partner_id')
- def check_renter(self):
- if self.partner_id and self.current_partner_id:
- if self.partner_id.id == self.current_partner_id.id:
- raise exceptions.ValidationError(_("The Current Renter is the same the new renter"))
diff --git a/odex25_realstate/property_management/security/ir.model.access.csv b/odex25_realstate/property_management/security/ir.model.access.csv
deleted file mode 100644
index cfc1be522..000000000
--- a/odex25_realstate/property_management/security/ir.model.access.csv
+++ /dev/null
@@ -1,14 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_rental_contract,rental.contract,model_rental_contract,property_management.group_property_user,1,1,1,1
-access_rent_payment,rent.payment,model_rent_payment,property_management.group_property_user,1,1,1,1
-access_rent_type,rent.type,model_rent_type,property_management.group_property_user,1,1,1,1
-access_annual_raise,annual.raise,model_annual_raise,property_management.group_property_user,1,1,1,1
-access_confirm_wizard,confirm.wizard,model_confirm_wizard,property_management.group_property_user,1,1,1,1
-access_confirm_wizard,confirm.wizard,model_confirm_wizard,property_management.group_property_user,1,1,1,1
-access_end_of_rent,end.of.rent,model_end_of_rent,property_management.group_property_user,1,1,1,1
-access_end_rent_line,end.rent,model_end_rent_line,property_management.group_property_user,1,1,1,1
-access_transfer_contract,transfer.contract,model_transfer_contract,property_management.group_property_user,1,1,1,1
-access_property_management_maintenance,property.management.maintenance,model_property_management_maintenance,property_management.group_property_user,1,1,1,1
-access_rental_contract_template,rental.contract.template,model_rental_contract_template,property_management.group_property_user,1,1,1,1
-access_log_rental_contract,log_rental_contract,model_log_rental_contract,property_management.group_property_user,1,1,1,1
-
diff --git a/odex25_realstate/property_management/security/property_management_groups.xml b/odex25_realstate/property_management/security/property_management_groups.xml
deleted file mode 100644
index 192008c90..000000000
--- a/odex25_realstate/property_management/security/property_management_groups.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- Property Management
- 30
-
-
- Property User
-
-
-
-
- Property Manager
-
-
-
-
\ No newline at end of file
diff --git a/odex25_realstate/property_management/static/css/report.css b/odex25_realstate/property_management/static/css/report.css
deleted file mode 100644
index 623c86840..000000000
--- a/odex25_realstate/property_management/static/css/report.css
+++ /dev/null
@@ -1,5 +0,0 @@
-@font-face {
- font-family: "Tajawal";
- src: url("https://fonts.googleapis.com/css?family=Tajawal");
- font-display: swap;
-}
\ No newline at end of file
diff --git a/odex25_realstate/property_management/static/description/icon.png b/odex25_realstate/property_management/static/description/icon.png
deleted file mode 100644
index f071a9eff..000000000
Binary files a/odex25_realstate/property_management/static/description/icon.png and /dev/null differ
diff --git a/odex25_realstate/property_management/static/description/property.png b/odex25_realstate/property_management/static/description/property.png
deleted file mode 100644
index 98f6281ff..000000000
Binary files a/odex25_realstate/property_management/static/description/property.png and /dev/null differ
diff --git a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.eot b/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.eot
deleted file mode 100644
index 4b8e53189..000000000
Binary files a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.eot and /dev/null differ
diff --git a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.svg b/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.svg
deleted file mode 100644
index f1a4dd3ec..000000000
--- a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.svg
+++ /dev/null
@@ -1,321 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.ttf b/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.ttf
deleted file mode 100644
index bbd813185..000000000
Binary files a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.ttf and /dev/null differ
diff --git a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff b/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff
deleted file mode 100644
index 81446bfcd..000000000
Binary files a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff and /dev/null differ
diff --git a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff2 b/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff2
deleted file mode 100644
index f3c9a0286..000000000
Binary files a/odex25_realstate/property_management/static/fonts/tajawal-v3-arabic-regular.woff2 and /dev/null differ
diff --git a/odex25_realstate/property_management/static/src/default_image.png b/odex25_realstate/property_management/static/src/default_image.png
deleted file mode 100644
index e69de29bb..000000000
diff --git a/odex25_realstate/property_management/static/src/img/default_logo.png b/odex25_realstate/property_management/static/src/img/default_logo.png
deleted file mode 100644
index c9672a6e0..000000000
Binary files a/odex25_realstate/property_management/static/src/img/default_logo.png and /dev/null differ
diff --git a/odex25_realstate/property_management/static/src/js/chosen/LICENSE.md b/odex25_realstate/property_management/static/src/js/chosen/LICENSE.md
deleted file mode 100644
index 5e1332c12..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/LICENSE.md
+++ /dev/null
@@ -1,23 +0,0 @@
-#### Chosen
-- by Patrick Filler for [Harvest](http://getharvest.com)
-- Copyright (c) 2011-2016 by Harvest
-
-Available for use under the [MIT License](http://en.wikipedia.org/wiki/MIT_License)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite.png b/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite.png
deleted file mode 100644
index c57da70b4..000000000
Binary files a/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite.png and /dev/null differ
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite@2x.png b/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite@2x.png
deleted file mode 100644
index 6b5054520..000000000
Binary files a/odex25_realstate/property_management/static/src/js/chosen/chosen-sprite@2x.png and /dev/null differ
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.css b/odex25_realstate/property_management/static/src/js/chosen/chosen.css
deleted file mode 100644
index 5ae6fc94c..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.css
+++ /dev/null
@@ -1,496 +0,0 @@
-/*!
-Chosen, a Select Box Enhancer for jQuery and Prototype
-by Patrick Filler for Harvest, http://getharvest.com
-
-Version 1.8.7
-Full source at https://github.com/harvesthq/chosen
-Copyright (c) 2011-2018 Harvest http://getharvest.com
-
-MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-This file is generated by `grunt build`, do not edit it by hand.
-*/
-
-/* @group Base */
-.chosen-container {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- font-size: 13px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.chosen-container * {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-.chosen-container .chosen-drop {
- position: absolute;
- top: 100%;
- z-index: 1010;
- width: 100%;
- border: 1px solid #aaa;
- border-top: 0;
- background: #fff;
- -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
- box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
- clip: rect(0, 0, 0, 0);
- -webkit-clip-path: inset(100% 100%);
- clip-path: inset(100% 100%);
-}
-
-.chosen-container.chosen-with-drop .chosen-drop {
- clip: auto;
- -webkit-clip-path: none;
- clip-path: none;
-}
-
-.chosen-container a {
- cursor: pointer;
-}
-
-.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
- margin-right: 4px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- font-weight: normal;
- color: #999999;
-}
-
-.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
- content: ":";
- padding-left: 2px;
- vertical-align: top;
-}
-
-/* @end */
-/* @group Single Chosen */
-.chosen-container-single .chosen-single {
- position: relative;
- display: block;
- overflow: hidden;
- padding: 0 0 0 8px;
- height: 25px;
- border: 1px solid #aaa;
- border-radius: 5px;
- background-color: #fff;
- background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #fff), color-stop(50%, #f6f6f6), color-stop(52%, #eee), to(#f4f4f4));
- background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
- background-clip: padding-box;
- -webkit-box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
- box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
- color: #444;
- text-decoration: none;
- white-space: nowrap;
- line-height: 24px;
-}
-
-.chosen-container-single .chosen-default {
- color: #999;
-}
-
-.chosen-container-single .chosen-single span {
- display: block;
- overflow: hidden;
- margin-right: 26px;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.chosen-container-single .chosen-single-with-deselect span {
- margin-right: 38px;
-}
-
-.chosen-container-single .chosen-single abbr {
- position: absolute;
- top: 6px;
- right: 26px;
- display: block;
- width: 12px;
- height: 12px;
- background: url("chosen-sprite.png") -42px 1px no-repeat;
- font-size: 1px;
-}
-
-.chosen-container-single .chosen-single abbr:hover {
- background-position: -42px -10px;
-}
-
-.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
- background-position: -42px -10px;
-}
-
-.chosen-container-single .chosen-single div {
- position: absolute;
- top: 0;
- right: 0;
- display: block;
- width: 18px;
- height: 100%;
-}
-
-.chosen-container-single .chosen-single div b {
- display: block;
- width: 100%;
- height: 100%;
- background: url("chosen-sprite.png") no-repeat 0px 2px;
-}
-
-.chosen-container-single .chosen-search {
- position: relative;
- z-index: 1010;
- margin: 0;
- padding: 3px 4px;
- white-space: nowrap;
-}
-
-.chosen-container-single .chosen-search input[type="text"] {
- margin: 1px 0;
- padding: 4px 20px 4px 5px;
- width: 100%;
- height: auto;
- outline: 0;
- border: 1px solid #aaa;
- background: url("chosen-sprite.png") no-repeat 100% -20px;
- font-size: 1em;
- font-family: sans-serif;
- line-height: normal;
- border-radius: 0;
-}
-
-.chosen-container-single .chosen-drop {
- margin-top: -1px;
- border-radius: 0 0 4px 4px;
- background-clip: padding-box;
-}
-
-.chosen-container-single.chosen-container-single-nosearch .chosen-search {
- position: absolute;
- clip: rect(0, 0, 0, 0);
- -webkit-clip-path: inset(100% 100%);
- clip-path: inset(100% 100%);
-}
-
-/* @end */
-/* @group Results */
-.chosen-container .chosen-results {
- color: #444;
- position: relative;
- overflow-x: hidden;
- overflow-y: auto;
- margin: 0 4px 4px 0;
- padding: 0 0 0 4px;
- max-height: 240px;
- -webkit-overflow-scrolling: touch;
-}
-
-.chosen-container .chosen-results li {
- display: none;
- margin: 0;
- padding: 5px 6px;
- list-style: none;
- line-height: 15px;
- word-wrap: break-word;
- -webkit-touch-callout: none;
-}
-
-.chosen-container .chosen-results li.active-result {
- display: list-item;
- cursor: pointer;
-}
-
-.chosen-container .chosen-results li.disabled-result {
- display: list-item;
- color: #ccc;
- cursor: default;
-}
-
-.chosen-container .chosen-results li.highlighted {
- background-color: #3875d7;
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
- background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
- color: #fff;
-}
-
-.chosen-container .chosen-results li.no-results {
- color: #777;
- display: list-item;
- background: #f4f4f4;
-}
-
-.chosen-container .chosen-results li.group-result {
- display: list-item;
- font-weight: bold;
- cursor: default;
-}
-
-.chosen-container .chosen-results li.group-option {
- padding-left: 15px;
-}
-
-.chosen-container .chosen-results li em {
- font-style: normal;
- text-decoration: underline;
-}
-
-/* @end */
-/* @group Multi Chosen */
-.chosen-container-multi .chosen-choices {
- position: relative;
- overflow: hidden;
- margin: 0;
- padding: 0 5px;
- width: 100%;
- height: auto;
- border: 1px solid #aaa;
- background-color: #fff;
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff));
- background-image: linear-gradient(#eee 1%, #fff 15%);
- cursor: text;
-}
-
-.chosen-container-multi .chosen-choices li {
- float: left;
- list-style: none;
-}
-
-.chosen-container-multi .chosen-choices li.search-field {
- margin: 0;
- padding: 0;
- white-space: nowrap;
-}
-
-.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
- margin: 1px 0;
- padding: 0;
- height: 25px;
- outline: 0;
- border: 0 !important;
- background: transparent !important;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #999;
- font-size: 100%;
- font-family: sans-serif;
- line-height: normal;
- border-radius: 0;
- width: 25px;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice {
- position: relative;
- margin: 3px 5px 3px 0;
- padding: 3px 20px 3px 5px;
- border: 1px solid #aaa;
- max-width: 100%;
- border-radius: 3px;
- background-color: #eeeeee;
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
- background-size: 100% 19px;
- background-repeat: repeat-x;
- background-clip: padding-box;
- -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
- box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
- color: #333;
- line-height: 13px;
- cursor: default;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice span {
- word-wrap: break-word;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
- position: absolute;
- top: 4px;
- right: 3px;
- display: block;
- width: 12px;
- height: 12px;
- background: url("chosen-sprite.png") -42px 1px no-repeat;
- font-size: 1px;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
- background-position: -42px -10px;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice-disabled {
- padding-right: 5px;
- border: 1px solid #ccc;
- background-color: #e4e4e4;
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
- color: #666;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice-focus {
- background: #d4d4d4;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
- background-position: -42px -10px;
-}
-
-.chosen-container-multi .chosen-results {
- margin: 0;
- padding: 0;
-}
-
-.chosen-container-multi .chosen-drop .result-selected {
- display: list-item;
- color: #ccc;
- cursor: default;
-}
-
-/* @end */
-/* @group Active */
-.chosen-container-active .chosen-single {
- border: 1px solid #5897fb;
- -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-}
-
-.chosen-container-active.chosen-with-drop .chosen-single {
- border: 1px solid #aaa;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eee), color-stop(80%, #fff));
- background-image: linear-gradient(#eee 20%, #fff 80%);
- -webkit-box-shadow: 0 1px 0 #fff inset;
- box-shadow: 0 1px 0 #fff inset;
-}
-
-.chosen-container-active.chosen-with-drop .chosen-single div {
- border-left: none;
- background: transparent;
-}
-
-.chosen-container-active.chosen-with-drop .chosen-single div b {
- background-position: -18px 2px;
-}
-
-.chosen-container-active .chosen-choices {
- border: 1px solid #5897fb;
- -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-}
-
-.chosen-container-active .chosen-choices li.search-field input[type="text"] {
- color: #222 !important;
-}
-
-/* @end */
-/* @group Disabled Support */
-.chosen-disabled {
- opacity: 0.5 !important;
- cursor: default;
-}
-
-.chosen-disabled .chosen-single {
- cursor: default;
-}
-
-.chosen-disabled .chosen-choices .search-choice .search-choice-close {
- cursor: default;
-}
-
-/* @end */
-/* @group Right to Left */
-.chosen-rtl {
- text-align: right;
-}
-
-.chosen-rtl .chosen-single {
- overflow: visible;
- padding: 0 8px 0 0;
-}
-
-.chosen-rtl .chosen-single span {
- margin-right: 0;
- margin-left: 26px;
- direction: rtl;
-}
-
-.chosen-rtl .chosen-single-with-deselect span {
- margin-left: 38px;
-}
-
-.chosen-rtl .chosen-single div {
- right: auto;
- left: 3px;
-}
-
-.chosen-rtl .chosen-single abbr {
- right: auto;
- left: 26px;
-}
-
-.chosen-rtl .chosen-choices li {
- float: right;
-}
-
-.chosen-rtl .chosen-choices li.search-field input[type="text"] {
- direction: rtl;
-}
-
-.chosen-rtl .chosen-choices li.search-choice {
- margin: 3px 5px 3px 0;
- padding: 3px 5px 3px 19px;
-}
-
-.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
- right: auto;
- left: 4px;
-}
-
-.chosen-rtl.chosen-container-single .chosen-results {
- margin: 0 0 4px 4px;
- padding: 0 4px 0 0;
-}
-
-.chosen-rtl .chosen-results li.group-option {
- padding-right: 15px;
- padding-left: 0;
-}
-
-.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
- border-right: none;
-}
-
-.chosen-rtl .chosen-search input[type="text"] {
- padding: 4px 5px 4px 20px;
- background: url("chosen-sprite.png") no-repeat -30px -20px;
- direction: rtl;
-}
-
-.chosen-rtl.chosen-container-single .chosen-single div b {
- background-position: 6px 2px;
-}
-
-.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
- background-position: -12px 2px;
-}
-
-/* @end */
-/* @group Retina compatibility */
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
- .chosen-rtl .chosen-search input[type="text"],
- .chosen-container-single .chosen-single abbr,
- .chosen-container-single .chosen-single div b,
- .chosen-container-single .chosen-search input[type="text"],
- .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
- .chosen-container .chosen-results-scroll-down span,
- .chosen-container .chosen-results-scroll-up span {
- background-image: url("chosen-sprite@2x.png") !important;
- background-size: 52px 37px !important;
- background-repeat: no-repeat !important;
- }
-}
-
-/* @end */
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.js b/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.js
deleted file mode 100644
index 5f2df6712..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.js
+++ /dev/null
@@ -1,1359 +0,0 @@
-/*!
-Chosen, a Select Box Enhancer for jQuery and Prototype
-by Patrick Filler for Harvest, http://getharvest.com
-
-Version 1.8.7
-Full source at https://github.com/harvesthq/chosen
-Copyright (c) 2011-2018 Harvest http://getharvest.com
-
-MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-This file is generated by `grunt build`, do not edit it by hand.
-*/
-
-(function() {
- var $, AbstractChosen, Chosen, SelectParser,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- SelectParser = (function() {
- function SelectParser() {
- this.options_index = 0;
- this.parsed = [];
- }
-
- SelectParser.prototype.add_node = function(child) {
- if (child.nodeName.toUpperCase() === "OPTGROUP") {
- return this.add_group(child);
- } else {
- return this.add_option(child);
- }
- };
-
- SelectParser.prototype.add_group = function(group) {
- var group_position, i, len, option, ref, results1;
- group_position = this.parsed.length;
- this.parsed.push({
- array_index: group_position,
- group: true,
- label: group.label,
- title: group.title ? group.title : void 0,
- children: 0,
- disabled: group.disabled,
- classes: group.className
- });
- ref = group.childNodes;
- results1 = [];
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- results1.push(this.add_option(option, group_position, group.disabled));
- }
- return results1;
- };
-
- SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
- if (option.nodeName.toUpperCase() === "OPTION") {
- if (option.text !== "") {
- if (group_position != null) {
- this.parsed[group_position].children += 1;
- }
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- value: option.value,
- text: option.text,
- html: option.innerHTML,
- title: option.title ? option.title : void 0,
- selected: option.selected,
- disabled: group_disabled === true ? group_disabled : option.disabled,
- group_array_index: group_position,
- group_label: group_position != null ? this.parsed[group_position].label : null,
- classes: option.className,
- style: option.style.cssText
- });
- } else {
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- empty: true
- });
- }
- return this.options_index += 1;
- }
- };
-
- return SelectParser;
-
- })();
-
- SelectParser.select_to_array = function(select) {
- var child, i, len, parser, ref;
- parser = new SelectParser();
- ref = select.childNodes;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- parser.add_node(child);
- }
- return parser.parsed;
- };
-
- AbstractChosen = (function() {
- function AbstractChosen(form_field, options1) {
- this.form_field = form_field;
- this.options = options1 != null ? options1 : {};
- this.label_click_handler = bind(this.label_click_handler, this);
- if (!AbstractChosen.browser_is_supported()) {
- return;
- }
- this.is_multiple = this.form_field.multiple;
- this.set_default_text();
- this.set_default_values();
- this.setup();
- this.set_up_html();
- this.register_observers();
- this.on_ready();
- }
-
- AbstractChosen.prototype.set_default_values = function() {
- this.click_test_action = (function(_this) {
- return function(evt) {
- return _this.test_active_click(evt);
- };
- })(this);
- this.activate_action = (function(_this) {
- return function(evt) {
- return _this.activate_field(evt);
- };
- })(this);
- this.active_field = false;
- this.mouse_on_container = false;
- this.results_showing = false;
- this.result_highlighted = null;
- this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className);
- this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
- this.disable_search_threshold = this.options.disable_search_threshold || 0;
- this.disable_search = this.options.disable_search || false;
- this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
- this.group_search = this.options.group_search != null ? this.options.group_search : true;
- this.search_contains = this.options.search_contains || false;
- this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
- this.max_selected_options = this.options.max_selected_options || Infinity;
- this.inherit_select_classes = this.options.inherit_select_classes || false;
- this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
- this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
- this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
- this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
- this.case_sensitive_search = this.options.case_sensitive_search || false;
- return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;
- };
-
- AbstractChosen.prototype.set_default_text = function() {
- if (this.form_field.getAttribute("data-placeholder")) {
- this.default_text = this.form_field.getAttribute("data-placeholder");
- } else if (this.is_multiple) {
- this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
- } else {
- this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
- }
- this.default_text = this.escape_html(this.default_text);
- return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
- };
-
- AbstractChosen.prototype.choice_label = function(item) {
- if (this.include_group_label_in_selected && (item.group_label != null)) {
- return "" + (this.escape_html(item.group_label)) + " " + item.html;
- } else {
- return item.html;
- }
- };
-
- AbstractChosen.prototype.mouse_enter = function() {
- return this.mouse_on_container = true;
- };
-
- AbstractChosen.prototype.mouse_leave = function() {
- return this.mouse_on_container = false;
- };
-
- AbstractChosen.prototype.input_focus = function(evt) {
- if (this.is_multiple) {
- if (!this.active_field) {
- return setTimeout(((function(_this) {
- return function() {
- return _this.container_mousedown();
- };
- })(this)), 50);
- }
- } else {
- if (!this.active_field) {
- return this.activate_field();
- }
- }
- };
-
- AbstractChosen.prototype.input_blur = function(evt) {
- if (!this.mouse_on_container) {
- this.active_field = false;
- return setTimeout(((function(_this) {
- return function() {
- return _this.blur_test();
- };
- })(this)), 100);
- }
- };
-
- AbstractChosen.prototype.label_click_handler = function(evt) {
- if (this.is_multiple) {
- return this.container_mousedown(evt);
- } else {
- return this.activate_field();
- }
- };
-
- AbstractChosen.prototype.results_option_build = function(options) {
- var content, data, data_content, i, len, ref, shown_results;
- content = '';
- shown_results = 0;
- ref = this.results_data;
- for (i = 0, len = ref.length; i < len; i++) {
- data = ref[i];
- data_content = '';
- if (data.group) {
- data_content = this.result_add_group(data);
- } else {
- data_content = this.result_add_option(data);
- }
- if (data_content !== '') {
- shown_results++;
- content += data_content;
- }
- if (options != null ? options.first : void 0) {
- if (data.selected && this.is_multiple) {
- this.choice_build(data);
- } else if (data.selected && !this.is_multiple) {
- this.single_set_selected_text(this.choice_label(data));
- }
- }
- if (shown_results >= this.max_shown_results) {
- break;
- }
- }
- return content;
- };
-
- AbstractChosen.prototype.result_add_option = function(option) {
- var classes, option_el;
- if (!option.search_match) {
- return '';
- }
- if (!this.include_option_in_results(option)) {
- return '';
- }
- classes = [];
- if (!option.disabled && !(option.selected && this.is_multiple)) {
- classes.push("active-result");
- }
- if (option.disabled && !(option.selected && this.is_multiple)) {
- classes.push("disabled-result");
- }
- if (option.selected) {
- classes.push("result-selected");
- }
- if (option.group_array_index != null) {
- classes.push("group-option");
- }
- if (option.classes !== "") {
- classes.push(option.classes);
- }
- option_el = document.createElement("li");
- option_el.className = classes.join(" ");
- if (option.style) {
- option_el.style.cssText = option.style;
- }
- option_el.setAttribute("data-option-array-index", option.array_index);
- option_el.innerHTML = option.highlighted_html || option.html;
- if (option.title) {
- option_el.title = option.title;
- }
- return this.outerHTML(option_el);
- };
-
- AbstractChosen.prototype.result_add_group = function(group) {
- var classes, group_el;
- if (!(group.search_match || group.group_match)) {
- return '';
- }
- if (!(group.active_options > 0)) {
- return '';
- }
- classes = [];
- classes.push("group-result");
- if (group.classes) {
- classes.push(group.classes);
- }
- group_el = document.createElement("li");
- group_el.className = classes.join(" ");
- group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);
- if (group.title) {
- group_el.title = group.title;
- }
- return this.outerHTML(group_el);
- };
-
- AbstractChosen.prototype.results_update_field = function() {
- this.set_default_text();
- if (!this.is_multiple) {
- this.results_reset_cleanup();
- }
- this.result_clear_highlight();
- this.results_build();
- if (this.results_showing) {
- return this.winnow_results();
- }
- };
-
- AbstractChosen.prototype.reset_single_select_options = function() {
- var i, len, ref, result, results1;
- ref = this.results_data;
- results1 = [];
- for (i = 0, len = ref.length; i < len; i++) {
- result = ref[i];
- if (result.selected) {
- results1.push(result.selected = false);
- } else {
- results1.push(void 0);
- }
- }
- return results1;
- };
-
- AbstractChosen.prototype.results_toggle = function() {
- if (this.results_showing) {
- return this.results_hide();
- } else {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.results_search = function(evt) {
- if (this.results_showing) {
- return this.winnow_results();
- } else {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.winnow_results = function(options) {
- var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;
- this.no_results_clear();
- results = 0;
- query = this.get_search_text();
- escapedQuery = query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- regex = this.get_search_regex(escapedQuery);
- ref = this.results_data;
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- option.search_match = false;
- results_group = null;
- search_match = null;
- option.highlighted_html = '';
- if (this.include_option_in_results(option)) {
- if (option.group) {
- option.group_match = false;
- option.active_options = 0;
- }
- if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
- results_group = this.results_data[option.group_array_index];
- if (results_group.active_options === 0 && results_group.search_match) {
- results += 1;
- }
- results_group.active_options += 1;
- }
- text = option.group ? option.label : option.text;
- if (!(option.group && !this.group_search)) {
- search_match = this.search_string_match(text, regex);
- option.search_match = search_match != null;
- if (option.search_match && !option.group) {
- results += 1;
- }
- if (option.search_match) {
- if (query.length) {
- startpos = search_match.index;
- prefix = text.slice(0, startpos);
- fix = text.slice(startpos, startpos + query.length);
- suffix = text.slice(startpos + query.length);
- option.highlighted_html = (this.escape_html(prefix)) + "" + (this.escape_html(fix)) + " " + (this.escape_html(suffix));
- }
- if (results_group != null) {
- results_group.group_match = true;
- }
- } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
- option.search_match = true;
- }
- }
- }
- }
- this.result_clear_highlight();
- if (results < 1 && query.length) {
- this.update_results_content("");
- return this.no_results(query);
- } else {
- this.update_results_content(this.results_option_build());
- if (!(options != null ? options.skip_highlight : void 0)) {
- return this.winnow_results_set_highlight();
- }
- }
- };
-
- AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
- var regex_flag, regex_string;
- regex_string = this.search_contains ? escaped_search_string : "(^|\\s|\\b)" + escaped_search_string + "[^\\s]*";
- if (!(this.enable_split_word_search || this.search_contains)) {
- regex_string = "^" + regex_string;
- }
- regex_flag = this.case_sensitive_search ? "" : "i";
- return new RegExp(regex_string, regex_flag);
- };
-
- AbstractChosen.prototype.search_string_match = function(search_string, regex) {
- var match;
- match = regex.exec(search_string);
- if (!this.search_contains && (match != null ? match[1] : void 0)) {
- match.index += 1;
- }
- return match;
- };
-
- AbstractChosen.prototype.choices_count = function() {
- var i, len, option, ref;
- if (this.selected_option_count != null) {
- return this.selected_option_count;
- }
- this.selected_option_count = 0;
- ref = this.form_field.options;
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- if (option.selected) {
- this.selected_option_count += 1;
- }
- }
- return this.selected_option_count;
- };
-
- AbstractChosen.prototype.choices_click = function(evt) {
- evt.preventDefault();
- this.activate_field();
- if (!(this.results_showing || this.is_disabled)) {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.keydown_checker = function(evt) {
- var ref, stroke;
- stroke = (ref = evt.which) != null ? ref : evt.keyCode;
- this.search_field_scale();
- if (stroke !== 8 && this.pending_backstroke) {
- this.clear_backstroke();
- }
- switch (stroke) {
- case 8:
- this.backstroke_length = this.get_search_field_value().length;
- break;
- case 9:
- if (this.results_showing && !this.is_multiple) {
- this.result_select(evt);
- }
- this.mouse_on_container = false;
- break;
- case 13:
- if (this.results_showing) {
- evt.preventDefault();
- }
- break;
- case 27:
- if (this.results_showing) {
- evt.preventDefault();
- }
- break;
- case 32:
- if (this.disable_search) {
- evt.preventDefault();
- }
- break;
- case 38:
- evt.preventDefault();
- this.keyup_arrow();
- break;
- case 40:
- evt.preventDefault();
- this.keydown_arrow();
- break;
- }
- };
-
- AbstractChosen.prototype.keyup_checker = function(evt) {
- var ref, stroke;
- stroke = (ref = evt.which) != null ? ref : evt.keyCode;
- this.search_field_scale();
- switch (stroke) {
- case 8:
- if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
- this.keydown_backstroke();
- } else if (!this.pending_backstroke) {
- this.result_clear_highlight();
- this.results_search();
- }
- break;
- case 13:
- evt.preventDefault();
- if (this.results_showing) {
- this.result_select(evt);
- }
- break;
- case 27:
- if (this.results_showing) {
- this.results_hide();
- }
- break;
- case 9:
- case 16:
- case 17:
- case 18:
- case 38:
- case 40:
- case 91:
- break;
- default:
- this.results_search();
- break;
- }
- };
-
- AbstractChosen.prototype.clipboard_event_checker = function(evt) {
- if (this.is_disabled) {
- return;
- }
- return setTimeout(((function(_this) {
- return function() {
- return _this.results_search();
- };
- })(this)), 50);
- };
-
- AbstractChosen.prototype.container_width = function() {
- if (this.options.width != null) {
- return this.options.width;
- } else {
- return this.form_field.offsetWidth + "px";
- }
- };
-
- AbstractChosen.prototype.include_option_in_results = function(option) {
- if (this.is_multiple && (!this.display_selected_options && option.selected)) {
- return false;
- }
- if (!this.display_disabled_options && option.disabled) {
- return false;
- }
- if (option.empty) {
- return false;
- }
- return true;
- };
-
- AbstractChosen.prototype.search_results_touchstart = function(evt) {
- this.touch_started = true;
- return this.search_results_mouseover(evt);
- };
-
- AbstractChosen.prototype.search_results_touchmove = function(evt) {
- this.touch_started = false;
- return this.search_results_mouseout(evt);
- };
-
- AbstractChosen.prototype.search_results_touchend = function(evt) {
- if (this.touch_started) {
- return this.search_results_mouseup(evt);
- }
- };
-
- AbstractChosen.prototype.outerHTML = function(element) {
- var tmp;
- if (element.outerHTML) {
- return element.outerHTML;
- }
- tmp = document.createElement("div");
- tmp.appendChild(element);
- return tmp.innerHTML;
- };
-
- AbstractChosen.prototype.get_single_html = function() {
- return "\n " + this.default_text + " \n
\n \n";
- };
-
- AbstractChosen.prototype.get_multi_html = function() {
- return "\n";
- };
-
- AbstractChosen.prototype.get_no_results_html = function(terms) {
- return "\n " + this.results_none_found + " " + (this.escape_html(terms)) + " \n ";
- };
-
- AbstractChosen.browser_is_supported = function() {
- if ("Microsoft Internet Explorer" === window.navigator.appName) {
- return document.documentMode >= 8;
- }
- if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {
- return false;
- }
- return true;
- };
-
- AbstractChosen.default_multiple_text = "Select Some Options";
-
- AbstractChosen.default_single_text = "Select an Option";
-
- AbstractChosen.default_no_result_text = "No results match";
-
- return AbstractChosen;
-
- })();
-
- $ = jQuery;
-
- $.fn.extend({
- chosen: function(options) {
- if (!AbstractChosen.browser_is_supported()) {
- return this;
- }
- return this.each(function(input_field) {
- var $this, chosen;
- $this = $(this);
- chosen = $this.data('chosen');
- if (options === 'destroy') {
- if (chosen instanceof Chosen) {
- chosen.destroy();
- }
- return;
- }
- if (!(chosen instanceof Chosen)) {
- $this.data('chosen', new Chosen(this, options));
- }
- });
- }
- });
-
- Chosen = (function(superClass) {
- extend(Chosen, superClass);
-
- function Chosen() {
- return Chosen.__super__.constructor.apply(this, arguments);
- }
-
- Chosen.prototype.setup = function() {
- this.form_field_jq = $(this.form_field);
- return this.current_selectedIndex = this.form_field.selectedIndex;
- };
-
- Chosen.prototype.set_up_html = function() {
- var container_classes, container_props;
- container_classes = ["chosen-container"];
- container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
- if (this.inherit_select_classes && this.form_field.className) {
- container_classes.push(this.form_field.className);
- }
- if (this.is_rtl) {
- container_classes.push("chosen-rtl");
- }
- container_props = {
- 'class': container_classes.join(' '),
- 'title': this.form_field.title
- };
- if (this.form_field.id.length) {
- container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
- }
- this.container = $("
", container_props);
- this.container.width(this.container_width());
- if (this.is_multiple) {
- this.container.html(this.get_multi_html());
- } else {
- this.container.html(this.get_single_html());
- }
- this.form_field_jq.hide().after(this.container);
- this.dropdown = this.container.find('div.chosen-drop').first();
- this.search_field = this.container.find('input').first();
- this.search_results = this.container.find('ul.chosen-results').first();
- this.search_field_scale();
- this.search_no_results = this.container.find('li.no-results').first();
- if (this.is_multiple) {
- this.search_choices = this.container.find('ul.chosen-choices').first();
- this.search_container = this.container.find('li.search-field').first();
- } else {
- this.search_container = this.container.find('div.chosen-search').first();
- this.selected_item = this.container.find('.chosen-single').first();
- }
- this.results_build();
- this.set_tab_index();
- return this.set_label_behavior();
- };
-
- Chosen.prototype.on_ready = function() {
- return this.form_field_jq.trigger("chosen:ready", {
- chosen: this
- });
- };
-
- Chosen.prototype.register_observers = function() {
- this.container.on('touchstart.chosen', (function(_this) {
- return function(evt) {
- _this.container_mousedown(evt);
- };
- })(this));
- this.container.on('touchend.chosen', (function(_this) {
- return function(evt) {
- _this.container_mouseup(evt);
- };
- })(this));
- this.container.on('mousedown.chosen', (function(_this) {
- return function(evt) {
- _this.container_mousedown(evt);
- };
- })(this));
- this.container.on('mouseup.chosen', (function(_this) {
- return function(evt) {
- _this.container_mouseup(evt);
- };
- })(this));
- this.container.on('mouseenter.chosen', (function(_this) {
- return function(evt) {
- _this.mouse_enter(evt);
- };
- })(this));
- this.container.on('mouseleave.chosen', (function(_this) {
- return function(evt) {
- _this.mouse_leave(evt);
- };
- })(this));
- this.search_results.on('mouseup.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_mouseup(evt);
- };
- })(this));
- this.search_results.on('mouseover.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_mouseover(evt);
- };
- })(this));
- this.search_results.on('mouseout.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_mouseout(evt);
- };
- })(this));
- this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_mousewheel(evt);
- };
- })(this));
- this.search_results.on('touchstart.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_touchstart(evt);
- };
- })(this));
- this.search_results.on('touchmove.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_touchmove(evt);
- };
- })(this));
- this.search_results.on('touchend.chosen', (function(_this) {
- return function(evt) {
- _this.search_results_touchend(evt);
- };
- })(this));
- this.form_field_jq.on("chosen:updated.chosen", (function(_this) {
- return function(evt) {
- _this.results_update_field(evt);
- };
- })(this));
- this.form_field_jq.on("chosen:activate.chosen", (function(_this) {
- return function(evt) {
- _this.activate_field(evt);
- };
- })(this));
- this.form_field_jq.on("chosen:open.chosen", (function(_this) {
- return function(evt) {
- _this.container_mousedown(evt);
- };
- })(this));
- this.form_field_jq.on("chosen:close.chosen", (function(_this) {
- return function(evt) {
- _this.close_field(evt);
- };
- })(this));
- this.search_field.on('blur.chosen', (function(_this) {
- return function(evt) {
- _this.input_blur(evt);
- };
- })(this));
- this.search_field.on('keyup.chosen', (function(_this) {
- return function(evt) {
- _this.keyup_checker(evt);
- };
- })(this));
- this.search_field.on('keydown.chosen', (function(_this) {
- return function(evt) {
- _this.keydown_checker(evt);
- };
- })(this));
- this.search_field.on('focus.chosen', (function(_this) {
- return function(evt) {
- _this.input_focus(evt);
- };
- })(this));
- this.search_field.on('cut.chosen', (function(_this) {
- return function(evt) {
- _this.clipboard_event_checker(evt);
- };
- })(this));
- this.search_field.on('paste.chosen', (function(_this) {
- return function(evt) {
- _this.clipboard_event_checker(evt);
- };
- })(this));
- if (this.is_multiple) {
- return this.search_choices.on('click.chosen', (function(_this) {
- return function(evt) {
- _this.choices_click(evt);
- };
- })(this));
- } else {
- return this.container.on('click.chosen', function(evt) {
- evt.preventDefault();
- });
- }
- };
-
- Chosen.prototype.destroy = function() {
- $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);
- if (this.form_field_label.length > 0) {
- this.form_field_label.off('click.chosen');
- }
- if (this.search_field[0].tabIndex) {
- this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
- }
- this.container.remove();
- this.form_field_jq.removeData('chosen');
- return this.form_field_jq.show();
- };
-
- Chosen.prototype.search_field_disabled = function() {
- this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');
- this.container.toggleClass('chosen-disabled', this.is_disabled);
- this.search_field[0].disabled = this.is_disabled;
- if (!this.is_multiple) {
- this.selected_item.off('focus.chosen', this.activate_field);
- }
- if (this.is_disabled) {
- return this.close_field();
- } else if (!this.is_multiple) {
- return this.selected_item.on('focus.chosen', this.activate_field);
- }
- };
-
- Chosen.prototype.container_mousedown = function(evt) {
- var ref;
- if (this.is_disabled) {
- return;
- }
- if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {
- evt.preventDefault();
- }
- if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
- if (!this.active_field) {
- if (this.is_multiple) {
- this.search_field.val("");
- }
- $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action);
- this.results_show();
- } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
- evt.preventDefault();
- this.results_toggle();
- }
- return this.activate_field();
- }
- };
-
- Chosen.prototype.container_mouseup = function(evt) {
- if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
- return this.results_reset(evt);
- }
- };
-
- Chosen.prototype.search_results_mousewheel = function(evt) {
- var delta;
- if (evt.originalEvent) {
- delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
- }
- if (delta != null) {
- evt.preventDefault();
- if (evt.type === 'DOMMouseScroll') {
- delta = delta * 40;
- }
- return this.search_results.scrollTop(delta + this.search_results.scrollTop());
- }
- };
-
- Chosen.prototype.blur_test = function(evt) {
- if (!this.active_field && this.container.hasClass("chosen-container-active")) {
- return this.close_field();
- }
- };
-
- Chosen.prototype.close_field = function() {
- $(this.container[0].ownerDocument).off("click.chosen", this.click_test_action);
- this.active_field = false;
- this.results_hide();
- this.container.removeClass("chosen-container-active");
- this.clear_backstroke();
- this.show_search_field_default();
- this.search_field_scale();
- return this.search_field.blur();
- };
-
- Chosen.prototype.activate_field = function() {
- if (this.is_disabled) {
- return;
- }
- this.container.addClass("chosen-container-active");
- this.active_field = true;
- this.search_field.val(this.search_field.val());
- return this.search_field.focus();
- };
-
- Chosen.prototype.test_active_click = function(evt) {
- var active_container;
- active_container = $(evt.target).closest('.chosen-container');
- if (active_container.length && this.container[0] === active_container[0]) {
- return this.active_field = true;
- } else {
- return this.close_field();
- }
- };
-
- Chosen.prototype.results_build = function() {
- this.parsing = true;
- this.selected_option_count = null;
- this.results_data = SelectParser.select_to_array(this.form_field);
- if (this.is_multiple) {
- this.search_choices.find("li.search-choice").remove();
- } else {
- this.single_set_selected_text();
- if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
- this.search_field[0].readOnly = true;
- this.container.addClass("chosen-container-single-nosearch");
- } else {
- this.search_field[0].readOnly = false;
- this.container.removeClass("chosen-container-single-nosearch");
- }
- }
- this.update_results_content(this.results_option_build({
- first: true
- }));
- this.search_field_disabled();
- this.show_search_field_default();
- this.search_field_scale();
- return this.parsing = false;
- };
-
- Chosen.prototype.result_do_highlight = function(el) {
- var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
- if (el.length) {
- this.result_clear_highlight();
- this.result_highlight = el;
- this.result_highlight.addClass("highlighted");
- maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
- visible_top = this.search_results.scrollTop();
- visible_bottom = maxHeight + visible_top;
- high_top = this.result_highlight.position().top + this.search_results.scrollTop();
- high_bottom = high_top + this.result_highlight.outerHeight();
- if (high_bottom >= visible_bottom) {
- return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
- } else if (high_top < visible_top) {
- return this.search_results.scrollTop(high_top);
- }
- }
- };
-
- Chosen.prototype.result_clear_highlight = function() {
- if (this.result_highlight) {
- this.result_highlight.removeClass("highlighted");
- }
- return this.result_highlight = null;
- };
-
- Chosen.prototype.results_show = function() {
- if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
- this.form_field_jq.trigger("chosen:maxselected", {
- chosen: this
- });
- return false;
- }
- this.container.addClass("chosen-with-drop");
- this.results_showing = true;
- this.search_field.focus();
- this.search_field.val(this.get_search_field_value());
- this.winnow_results();
- return this.form_field_jq.trigger("chosen:showing_dropdown", {
- chosen: this
- });
- };
-
- Chosen.prototype.update_results_content = function(content) {
- return this.search_results.html(content);
- };
-
- Chosen.prototype.results_hide = function() {
- if (this.results_showing) {
- this.result_clear_highlight();
- this.container.removeClass("chosen-with-drop");
- this.form_field_jq.trigger("chosen:hiding_dropdown", {
- chosen: this
- });
- }
- return this.results_showing = false;
- };
-
- Chosen.prototype.set_tab_index = function(el) {
- var ti;
- if (this.form_field.tabIndex) {
- ti = this.form_field.tabIndex;
- this.form_field.tabIndex = -1;
- return this.search_field[0].tabIndex = ti;
- }
- };
-
- Chosen.prototype.set_label_behavior = function() {
- this.form_field_label = this.form_field_jq.parents("label");
- if (!this.form_field_label.length && this.form_field.id.length) {
- this.form_field_label = $("label[for='" + this.form_field.id + "']");
- }
- if (this.form_field_label.length > 0) {
- return this.form_field_label.on('click.chosen', this.label_click_handler);
- }
- };
-
- Chosen.prototype.show_search_field_default = function() {
- if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
- this.search_field.val(this.default_text);
- return this.search_field.addClass("default");
- } else {
- this.search_field.val("");
- return this.search_field.removeClass("default");
- }
- };
-
- Chosen.prototype.search_results_mouseup = function(evt) {
- var target;
- target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
- if (target.length) {
- this.result_highlight = target;
- this.result_select(evt);
- return this.search_field.focus();
- }
- };
-
- Chosen.prototype.search_results_mouseover = function(evt) {
- var target;
- target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
- if (target) {
- return this.result_do_highlight(target);
- }
- };
-
- Chosen.prototype.search_results_mouseout = function(evt) {
- if ($(evt.target).hasClass("active-result") || $(evt.target).parents('.active-result').first()) {
- return this.result_clear_highlight();
- }
- };
-
- Chosen.prototype.choice_build = function(item) {
- var choice, close_link;
- choice = $(' ', {
- "class": "search-choice"
- }).html("" + (this.choice_label(item)) + " ");
- if (item.disabled) {
- choice.addClass('search-choice-disabled');
- } else {
- close_link = $(' ', {
- "class": 'search-choice-close',
- 'data-option-array-index': item.array_index
- });
- close_link.on('click.chosen', (function(_this) {
- return function(evt) {
- return _this.choice_destroy_link_click(evt);
- };
- })(this));
- choice.append(close_link);
- }
- return this.search_container.before(choice);
- };
-
- Chosen.prototype.choice_destroy_link_click = function(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- if (!this.is_disabled) {
- return this.choice_destroy($(evt.target));
- }
- };
-
- Chosen.prototype.choice_destroy = function(link) {
- if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
- if (this.active_field) {
- this.search_field.focus();
- } else {
- this.show_search_field_default();
- }
- if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {
- this.results_hide();
- }
- link.parents('li').first().remove();
- return this.search_field_scale();
- }
- };
-
- Chosen.prototype.results_reset = function() {
- this.reset_single_select_options();
- this.form_field.options[0].selected = true;
- this.single_set_selected_text();
- this.show_search_field_default();
- this.results_reset_cleanup();
- this.trigger_form_field_change();
- if (this.active_field) {
- return this.results_hide();
- }
- };
-
- Chosen.prototype.results_reset_cleanup = function() {
- this.current_selectedIndex = this.form_field.selectedIndex;
- return this.selected_item.find("abbr").remove();
- };
-
- Chosen.prototype.result_select = function(evt) {
- var high, item;
- if (this.result_highlight) {
- high = this.result_highlight;
- this.result_clear_highlight();
- if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
- this.form_field_jq.trigger("chosen:maxselected", {
- chosen: this
- });
- return false;
- }
- if (this.is_multiple) {
- high.removeClass("active-result");
- } else {
- this.reset_single_select_options();
- }
- high.addClass("result-selected");
- item = this.results_data[high[0].getAttribute("data-option-array-index")];
- item.selected = true;
- this.form_field.options[item.options_index].selected = true;
- this.selected_option_count = null;
- if (this.is_multiple) {
- this.choice_build(item);
- } else {
- this.single_set_selected_text(this.choice_label(item));
- }
- if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {
- if (evt.metaKey || evt.ctrlKey) {
- this.winnow_results({
- skip_highlight: true
- });
- } else {
- this.search_field.val("");
- this.winnow_results();
- }
- } else {
- this.results_hide();
- this.show_search_field_default();
- }
- if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
- this.trigger_form_field_change({
- selected: this.form_field.options[item.options_index].value
- });
- }
- this.current_selectedIndex = this.form_field.selectedIndex;
- evt.preventDefault();
- return this.search_field_scale();
- }
- };
-
- Chosen.prototype.single_set_selected_text = function(text) {
- if (text == null) {
- text = this.default_text;
- }
- if (text === this.default_text) {
- this.selected_item.addClass("chosen-default");
- } else {
- this.single_deselect_control_build();
- this.selected_item.removeClass("chosen-default");
- }
- return this.selected_item.find("span").html(text);
- };
-
- Chosen.prototype.result_deselect = function(pos) {
- var result_data;
- result_data = this.results_data[pos];
- if (!this.form_field.options[result_data.options_index].disabled) {
- result_data.selected = false;
- this.form_field.options[result_data.options_index].selected = false;
- this.selected_option_count = null;
- this.result_clear_highlight();
- if (this.results_showing) {
- this.winnow_results();
- }
- this.trigger_form_field_change({
- deselected: this.form_field.options[result_data.options_index].value
- });
- this.search_field_scale();
- return true;
- } else {
- return false;
- }
- };
-
- Chosen.prototype.single_deselect_control_build = function() {
- if (!this.allow_single_deselect) {
- return;
- }
- if (!this.selected_item.find("abbr").length) {
- this.selected_item.find("span").first().after(" ");
- }
- return this.selected_item.addClass("chosen-single-with-deselect");
- };
-
- Chosen.prototype.get_search_field_value = function() {
- return this.search_field.val();
- };
-
- Chosen.prototype.get_search_text = function() {
- return $.trim(this.get_search_field_value());
- };
-
- Chosen.prototype.escape_html = function(text) {
- return $('
').text(text).html();
- };
-
- Chosen.prototype.winnow_results_set_highlight = function() {
- var do_high, selected_results;
- selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
- do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
- if (do_high != null) {
- return this.result_do_highlight(do_high);
- }
- };
-
- Chosen.prototype.no_results = function(terms) {
- var no_results_html;
- no_results_html = this.get_no_results_html(terms);
- this.search_results.append(no_results_html);
- return this.form_field_jq.trigger("chosen:no_results", {
- chosen: this
- });
- };
-
- Chosen.prototype.no_results_clear = function() {
- return this.search_results.find(".no-results").remove();
- };
-
- Chosen.prototype.keydown_arrow = function() {
- var next_sib;
- if (this.results_showing && this.result_highlight) {
- next_sib = this.result_highlight.nextAll("li.active-result").first();
- if (next_sib) {
- return this.result_do_highlight(next_sib);
- }
- } else {
- return this.results_show();
- }
- };
-
- Chosen.prototype.keyup_arrow = function() {
- var prev_sibs;
- if (!this.results_showing && !this.is_multiple) {
- return this.results_show();
- } else if (this.result_highlight) {
- prev_sibs = this.result_highlight.prevAll("li.active-result");
- if (prev_sibs.length) {
- return this.result_do_highlight(prev_sibs.first());
- } else {
- if (this.choices_count() > 0) {
- this.results_hide();
- }
- return this.result_clear_highlight();
- }
- }
- };
-
- Chosen.prototype.keydown_backstroke = function() {
- var next_available_destroy;
- if (this.pending_backstroke) {
- this.choice_destroy(this.pending_backstroke.find("a").first());
- return this.clear_backstroke();
- } else {
- next_available_destroy = this.search_container.siblings("li.search-choice").last();
- if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
- this.pending_backstroke = next_available_destroy;
- if (this.single_backstroke_delete) {
- return this.keydown_backstroke();
- } else {
- return this.pending_backstroke.addClass("search-choice-focus");
- }
- }
- }
- };
-
- Chosen.prototype.clear_backstroke = function() {
- if (this.pending_backstroke) {
- this.pending_backstroke.removeClass("search-choice-focus");
- }
- return this.pending_backstroke = null;
- };
-
- Chosen.prototype.search_field_scale = function() {
- var div, i, len, style, style_block, styles, width;
- if (!this.is_multiple) {
- return;
- }
- style_block = {
- position: 'absolute',
- left: '-1000px',
- top: '-1000px',
- display: 'none',
- whiteSpace: 'pre'
- };
- styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];
- for (i = 0, len = styles.length; i < len; i++) {
- style = styles[i];
- style_block[style] = this.search_field.css(style);
- }
- div = $('
').css(style_block);
- div.text(this.get_search_field_value());
- $('body').append(div);
- width = div.width() + 25;
- div.remove();
- if (this.container.is(':visible')) {
- width = Math.min(this.container.outerWidth() - 10, width);
- }
- return this.search_field.width(width);
- };
-
- Chosen.prototype.trigger_form_field_change = function(extra) {
- this.form_field_jq.trigger("input", extra);
- return this.form_field_jq.trigger("change", extra);
- };
-
- return Chosen;
-
- })(AbstractChosen);
-
-}).call(this);
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.min.js b/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.min.js
deleted file mode 100644
index 4ad164751..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.jquery.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Chosen v1.8.7 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
-
-(function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},o={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s"+this.escape_html(t.group_label)+""+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t"+this.escape_html(s)+""+this.escape_html(p)),null!=a&&(a.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),_<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'\n '+this.default_text+' \n
\n \n'},t.prototype.get_multi_html=function(){return'\n'},t.prototype.get_no_results_html=function(t){return'\n '+this.results_none_found+" "+this.escape_html(t)+" \n "},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return r(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("
",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),r=this.search_results.scrollTop(),n=i+r,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t(" ",{"class":"search-choice"}).html(""+this.choice_label(e)+" "),e.disabled?s.addClass("search-choice-disabled"):((i=t(" ",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(' '),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("
").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s ").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
\ No newline at end of file
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.min.css b/odex25_realstate/property_management/static/src/js/chosen/chosen.min.css
deleted file mode 100644
index 1c68ebb1c..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.min.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
-Chosen, a Select Box Enhancer for jQuery and Prototype
-by Patrick Filler for Harvest, http://getharvest.com
-
-Version 1.8.7
-Full source at https://github.com/harvesthq/chosen
-Copyright (c) 2011-2018 Harvest http://getharvest.com
-
-MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-This file is generated by `grunt build`, do not edit it by hand.
-*/.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.15);box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);-webkit-clip-path:inset(100% 100%);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;-webkit-clip-path:none;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),to(#f4f4f4));background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;-webkit-box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);-webkit-clip-path:inset(100% 100%);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#eee),color-stop(15%,#fff));background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;-webkit-box-shadow:none;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#eee),color-stop(80%,#fff));background-image:linear-gradient(#eee 20%,#fff 80%);-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
\ No newline at end of file
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.js b/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.js
deleted file mode 100644
index a4056494b..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.js
+++ /dev/null
@@ -1,1399 +0,0 @@
-/*!
-Chosen, a Select Box Enhancer for jQuery and Prototype
-by Patrick Filler for Harvest, http://getharvest.com
-
-Version 1.8.7
-Full source at https://github.com/harvesthq/chosen
-Copyright (c) 2011-2018 Harvest http://getharvest.com
-
-MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-This file is generated by `grunt build`, do not edit it by hand.
-*/
-
-(function() {
- var AbstractChosen, SelectParser,
- bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
- SelectParser = (function() {
- function SelectParser() {
- this.options_index = 0;
- this.parsed = [];
- }
-
- SelectParser.prototype.add_node = function(child) {
- if (child.nodeName.toUpperCase() === "OPTGROUP") {
- return this.add_group(child);
- } else {
- return this.add_option(child);
- }
- };
-
- SelectParser.prototype.add_group = function(group) {
- var group_position, i, len, option, ref, results1;
- group_position = this.parsed.length;
- this.parsed.push({
- array_index: group_position,
- group: true,
- label: group.label,
- title: group.title ? group.title : void 0,
- children: 0,
- disabled: group.disabled,
- classes: group.className
- });
- ref = group.childNodes;
- results1 = [];
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- results1.push(this.add_option(option, group_position, group.disabled));
- }
- return results1;
- };
-
- SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
- if (option.nodeName.toUpperCase() === "OPTION") {
- if (option.text !== "") {
- if (group_position != null) {
- this.parsed[group_position].children += 1;
- }
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- value: option.value,
- text: option.text,
- html: option.innerHTML,
- title: option.title ? option.title : void 0,
- selected: option.selected,
- disabled: group_disabled === true ? group_disabled : option.disabled,
- group_array_index: group_position,
- group_label: group_position != null ? this.parsed[group_position].label : null,
- classes: option.className,
- style: option.style.cssText
- });
- } else {
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- empty: true
- });
- }
- return this.options_index += 1;
- }
- };
-
- return SelectParser;
-
- })();
-
- SelectParser.select_to_array = function(select) {
- var child, i, len, parser, ref;
- parser = new SelectParser();
- ref = select.childNodes;
- for (i = 0, len = ref.length; i < len; i++) {
- child = ref[i];
- parser.add_node(child);
- }
- return parser.parsed;
- };
-
- AbstractChosen = (function() {
- function AbstractChosen(form_field, options1) {
- this.form_field = form_field;
- this.options = options1 != null ? options1 : {};
- this.label_click_handler = bind(this.label_click_handler, this);
- if (!AbstractChosen.browser_is_supported()) {
- return;
- }
- this.is_multiple = this.form_field.multiple;
- this.set_default_text();
- this.set_default_values();
- this.setup();
- this.set_up_html();
- this.register_observers();
- this.on_ready();
- }
-
- AbstractChosen.prototype.set_default_values = function() {
- this.click_test_action = (function(_this) {
- return function(evt) {
- return _this.test_active_click(evt);
- };
- })(this);
- this.activate_action = (function(_this) {
- return function(evt) {
- return _this.activate_field(evt);
- };
- })(this);
- this.active_field = false;
- this.mouse_on_container = false;
- this.results_showing = false;
- this.result_highlighted = null;
- this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className);
- this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
- this.disable_search_threshold = this.options.disable_search_threshold || 0;
- this.disable_search = this.options.disable_search || false;
- this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
- this.group_search = this.options.group_search != null ? this.options.group_search : true;
- this.search_contains = this.options.search_contains || false;
- this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
- this.max_selected_options = this.options.max_selected_options || Infinity;
- this.inherit_select_classes = this.options.inherit_select_classes || false;
- this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
- this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
- this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
- this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
- this.case_sensitive_search = this.options.case_sensitive_search || false;
- return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;
- };
-
- AbstractChosen.prototype.set_default_text = function() {
- if (this.form_field.getAttribute("data-placeholder")) {
- this.default_text = this.form_field.getAttribute("data-placeholder");
- } else if (this.is_multiple) {
- this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
- } else {
- this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
- }
- this.default_text = this.escape_html(this.default_text);
- return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
- };
-
- AbstractChosen.prototype.choice_label = function(item) {
- if (this.include_group_label_in_selected && (item.group_label != null)) {
- return "" + (this.escape_html(item.group_label)) + " " + item.html;
- } else {
- return item.html;
- }
- };
-
- AbstractChosen.prototype.mouse_enter = function() {
- return this.mouse_on_container = true;
- };
-
- AbstractChosen.prototype.mouse_leave = function() {
- return this.mouse_on_container = false;
- };
-
- AbstractChosen.prototype.input_focus = function(evt) {
- if (this.is_multiple) {
- if (!this.active_field) {
- return setTimeout(((function(_this) {
- return function() {
- return _this.container_mousedown();
- };
- })(this)), 50);
- }
- } else {
- if (!this.active_field) {
- return this.activate_field();
- }
- }
- };
-
- AbstractChosen.prototype.input_blur = function(evt) {
- if (!this.mouse_on_container) {
- this.active_field = false;
- return setTimeout(((function(_this) {
- return function() {
- return _this.blur_test();
- };
- })(this)), 100);
- }
- };
-
- AbstractChosen.prototype.label_click_handler = function(evt) {
- if (this.is_multiple) {
- return this.container_mousedown(evt);
- } else {
- return this.activate_field();
- }
- };
-
- AbstractChosen.prototype.results_option_build = function(options) {
- var content, data, data_content, i, len, ref, shown_results;
- content = '';
- shown_results = 0;
- ref = this.results_data;
- for (i = 0, len = ref.length; i < len; i++) {
- data = ref[i];
- data_content = '';
- if (data.group) {
- data_content = this.result_add_group(data);
- } else {
- data_content = this.result_add_option(data);
- }
- if (data_content !== '') {
- shown_results++;
- content += data_content;
- }
- if (options != null ? options.first : void 0) {
- if (data.selected && this.is_multiple) {
- this.choice_build(data);
- } else if (data.selected && !this.is_multiple) {
- this.single_set_selected_text(this.choice_label(data));
- }
- }
- if (shown_results >= this.max_shown_results) {
- break;
- }
- }
- return content;
- };
-
- AbstractChosen.prototype.result_add_option = function(option) {
- var classes, option_el;
- if (!option.search_match) {
- return '';
- }
- if (!this.include_option_in_results(option)) {
- return '';
- }
- classes = [];
- if (!option.disabled && !(option.selected && this.is_multiple)) {
- classes.push("active-result");
- }
- if (option.disabled && !(option.selected && this.is_multiple)) {
- classes.push("disabled-result");
- }
- if (option.selected) {
- classes.push("result-selected");
- }
- if (option.group_array_index != null) {
- classes.push("group-option");
- }
- if (option.classes !== "") {
- classes.push(option.classes);
- }
- option_el = document.createElement("li");
- option_el.className = classes.join(" ");
- if (option.style) {
- option_el.style.cssText = option.style;
- }
- option_el.setAttribute("data-option-array-index", option.array_index);
- option_el.innerHTML = option.highlighted_html || option.html;
- if (option.title) {
- option_el.title = option.title;
- }
- return this.outerHTML(option_el);
- };
-
- AbstractChosen.prototype.result_add_group = function(group) {
- var classes, group_el;
- if (!(group.search_match || group.group_match)) {
- return '';
- }
- if (!(group.active_options > 0)) {
- return '';
- }
- classes = [];
- classes.push("group-result");
- if (group.classes) {
- classes.push(group.classes);
- }
- group_el = document.createElement("li");
- group_el.className = classes.join(" ");
- group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);
- if (group.title) {
- group_el.title = group.title;
- }
- return this.outerHTML(group_el);
- };
-
- AbstractChosen.prototype.results_update_field = function() {
- this.set_default_text();
- if (!this.is_multiple) {
- this.results_reset_cleanup();
- }
- this.result_clear_highlight();
- this.results_build();
- if (this.results_showing) {
- return this.winnow_results();
- }
- };
-
- AbstractChosen.prototype.reset_single_select_options = function() {
- var i, len, ref, result, results1;
- ref = this.results_data;
- results1 = [];
- for (i = 0, len = ref.length; i < len; i++) {
- result = ref[i];
- if (result.selected) {
- results1.push(result.selected = false);
- } else {
- results1.push(void 0);
- }
- }
- return results1;
- };
-
- AbstractChosen.prototype.results_toggle = function() {
- if (this.results_showing) {
- return this.results_hide();
- } else {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.results_search = function(evt) {
- if (this.results_showing) {
- return this.winnow_results();
- } else {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.winnow_results = function(options) {
- var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;
- this.no_results_clear();
- results = 0;
- query = this.get_search_text();
- escapedQuery = query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- regex = this.get_search_regex(escapedQuery);
- ref = this.results_data;
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- option.search_match = false;
- results_group = null;
- search_match = null;
- option.highlighted_html = '';
- if (this.include_option_in_results(option)) {
- if (option.group) {
- option.group_match = false;
- option.active_options = 0;
- }
- if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
- results_group = this.results_data[option.group_array_index];
- if (results_group.active_options === 0 && results_group.search_match) {
- results += 1;
- }
- results_group.active_options += 1;
- }
- text = option.group ? option.label : option.text;
- if (!(option.group && !this.group_search)) {
- search_match = this.search_string_match(text, regex);
- option.search_match = search_match != null;
- if (option.search_match && !option.group) {
- results += 1;
- }
- if (option.search_match) {
- if (query.length) {
- startpos = search_match.index;
- prefix = text.slice(0, startpos);
- fix = text.slice(startpos, startpos + query.length);
- suffix = text.slice(startpos + query.length);
- option.highlighted_html = (this.escape_html(prefix)) + "" + (this.escape_html(fix)) + " " + (this.escape_html(suffix));
- }
- if (results_group != null) {
- results_group.group_match = true;
- }
- } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
- option.search_match = true;
- }
- }
- }
- }
- this.result_clear_highlight();
- if (results < 1 && query.length) {
- this.update_results_content("");
- return this.no_results(query);
- } else {
- this.update_results_content(this.results_option_build());
- if (!(options != null ? options.skip_highlight : void 0)) {
- return this.winnow_results_set_highlight();
- }
- }
- };
-
- AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
- var regex_flag, regex_string;
- regex_string = this.search_contains ? escaped_search_string : "(^|\\s|\\b)" + escaped_search_string + "[^\\s]*";
- if (!(this.enable_split_word_search || this.search_contains)) {
- regex_string = "^" + regex_string;
- }
- regex_flag = this.case_sensitive_search ? "" : "i";
- return new RegExp(regex_string, regex_flag);
- };
-
- AbstractChosen.prototype.search_string_match = function(search_string, regex) {
- var match;
- match = regex.exec(search_string);
- if (!this.search_contains && (match != null ? match[1] : void 0)) {
- match.index += 1;
- }
- return match;
- };
-
- AbstractChosen.prototype.choices_count = function() {
- var i, len, option, ref;
- if (this.selected_option_count != null) {
- return this.selected_option_count;
- }
- this.selected_option_count = 0;
- ref = this.form_field.options;
- for (i = 0, len = ref.length; i < len; i++) {
- option = ref[i];
- if (option.selected) {
- this.selected_option_count += 1;
- }
- }
- return this.selected_option_count;
- };
-
- AbstractChosen.prototype.choices_click = function(evt) {
- evt.preventDefault();
- this.activate_field();
- if (!(this.results_showing || this.is_disabled)) {
- return this.results_show();
- }
- };
-
- AbstractChosen.prototype.keydown_checker = function(evt) {
- var ref, stroke;
- stroke = (ref = evt.which) != null ? ref : evt.keyCode;
- this.search_field_scale();
- if (stroke !== 8 && this.pending_backstroke) {
- this.clear_backstroke();
- }
- switch (stroke) {
- case 8:
- this.backstroke_length = this.get_search_field_value().length;
- break;
- case 9:
- if (this.results_showing && !this.is_multiple) {
- this.result_select(evt);
- }
- this.mouse_on_container = false;
- break;
- case 13:
- if (this.results_showing) {
- evt.preventDefault();
- }
- break;
- case 27:
- if (this.results_showing) {
- evt.preventDefault();
- }
- break;
- case 32:
- if (this.disable_search) {
- evt.preventDefault();
- }
- break;
- case 38:
- evt.preventDefault();
- this.keyup_arrow();
- break;
- case 40:
- evt.preventDefault();
- this.keydown_arrow();
- break;
- }
- };
-
- AbstractChosen.prototype.keyup_checker = function(evt) {
- var ref, stroke;
- stroke = (ref = evt.which) != null ? ref : evt.keyCode;
- this.search_field_scale();
- switch (stroke) {
- case 8:
- if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
- this.keydown_backstroke();
- } else if (!this.pending_backstroke) {
- this.result_clear_highlight();
- this.results_search();
- }
- break;
- case 13:
- evt.preventDefault();
- if (this.results_showing) {
- this.result_select(evt);
- }
- break;
- case 27:
- if (this.results_showing) {
- this.results_hide();
- }
- break;
- case 9:
- case 16:
- case 17:
- case 18:
- case 38:
- case 40:
- case 91:
- break;
- default:
- this.results_search();
- break;
- }
- };
-
- AbstractChosen.prototype.clipboard_event_checker = function(evt) {
- if (this.is_disabled) {
- return;
- }
- return setTimeout(((function(_this) {
- return function() {
- return _this.results_search();
- };
- })(this)), 50);
- };
-
- AbstractChosen.prototype.container_width = function() {
- if (this.options.width != null) {
- return this.options.width;
- } else {
- return this.form_field.offsetWidth + "px";
- }
- };
-
- AbstractChosen.prototype.include_option_in_results = function(option) {
- if (this.is_multiple && (!this.display_selected_options && option.selected)) {
- return false;
- }
- if (!this.display_disabled_options && option.disabled) {
- return false;
- }
- if (option.empty) {
- return false;
- }
- return true;
- };
-
- AbstractChosen.prototype.search_results_touchstart = function(evt) {
- this.touch_started = true;
- return this.search_results_mouseover(evt);
- };
-
- AbstractChosen.prototype.search_results_touchmove = function(evt) {
- this.touch_started = false;
- return this.search_results_mouseout(evt);
- };
-
- AbstractChosen.prototype.search_results_touchend = function(evt) {
- if (this.touch_started) {
- return this.search_results_mouseup(evt);
- }
- };
-
- AbstractChosen.prototype.outerHTML = function(element) {
- var tmp;
- if (element.outerHTML) {
- return element.outerHTML;
- }
- tmp = document.createElement("div");
- tmp.appendChild(element);
- return tmp.innerHTML;
- };
-
- AbstractChosen.prototype.get_single_html = function() {
- return "\n " + this.default_text + " \n
\n \n";
- };
-
- AbstractChosen.prototype.get_multi_html = function() {
- return "\n";
- };
-
- AbstractChosen.prototype.get_no_results_html = function(terms) {
- return "\n " + this.results_none_found + " " + (this.escape_html(terms)) + " \n ";
- };
-
- AbstractChosen.browser_is_supported = function() {
- if ("Microsoft Internet Explorer" === window.navigator.appName) {
- return document.documentMode >= 8;
- }
- if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {
- return false;
- }
- return true;
- };
-
- AbstractChosen.default_multiple_text = "Select Some Options";
-
- AbstractChosen.default_single_text = "Select an Option";
-
- AbstractChosen.default_no_result_text = "No results match";
-
- return AbstractChosen;
-
- })();
-
- this.Chosen = (function(superClass) {
- var triggerHtmlEvent;
-
- extend(Chosen, superClass);
-
- function Chosen() {
- return Chosen.__super__.constructor.apply(this, arguments);
- }
-
- Chosen.prototype.setup = function() {
- return this.current_selectedIndex = this.form_field.selectedIndex;
- };
-
- Chosen.prototype.set_up_html = function() {
- var container_classes, container_props;
- container_classes = ["chosen-container"];
- container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
- if (this.inherit_select_classes && this.form_field.className) {
- container_classes.push(this.form_field.className);
- }
- if (this.is_rtl) {
- container_classes.push("chosen-rtl");
- }
- container_props = {
- 'class': container_classes.join(' '),
- 'title': this.form_field.title
- };
- if (this.form_field.id.length) {
- container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
- }
- this.container = new Element('div', container_props);
- this.container.setStyle({
- width: this.container_width()
- });
- if (this.is_multiple) {
- this.container.update(this.get_multi_html());
- } else {
- this.container.update(this.get_single_html());
- }
- this.form_field.hide().insert({
- after: this.container
- });
- this.dropdown = this.container.down('div.chosen-drop');
- this.search_field = this.container.down('input');
- this.search_results = this.container.down('ul.chosen-results');
- this.search_field_scale();
- this.search_no_results = this.container.down('li.no-results');
- if (this.is_multiple) {
- this.search_choices = this.container.down('ul.chosen-choices');
- this.search_container = this.container.down('li.search-field');
- } else {
- this.search_container = this.container.down('div.chosen-search');
- this.selected_item = this.container.down('.chosen-single');
- }
- this.results_build();
- this.set_tab_index();
- return this.set_label_behavior();
- };
-
- Chosen.prototype.on_ready = function() {
- return this.form_field.fire("chosen:ready", {
- chosen: this
- });
- };
-
- Chosen.prototype.register_observers = function() {
- this.container.observe("touchstart", (function(_this) {
- return function(evt) {
- return _this.container_mousedown(evt);
- };
- })(this));
- this.container.observe("touchend", (function(_this) {
- return function(evt) {
- return _this.container_mouseup(evt);
- };
- })(this));
- this.container.observe("mousedown", (function(_this) {
- return function(evt) {
- return _this.container_mousedown(evt);
- };
- })(this));
- this.container.observe("mouseup", (function(_this) {
- return function(evt) {
- return _this.container_mouseup(evt);
- };
- })(this));
- this.container.observe("mouseenter", (function(_this) {
- return function(evt) {
- return _this.mouse_enter(evt);
- };
- })(this));
- this.container.observe("mouseleave", (function(_this) {
- return function(evt) {
- return _this.mouse_leave(evt);
- };
- })(this));
- this.search_results.observe("mouseup", (function(_this) {
- return function(evt) {
- return _this.search_results_mouseup(evt);
- };
- })(this));
- this.search_results.observe("mouseover", (function(_this) {
- return function(evt) {
- return _this.search_results_mouseover(evt);
- };
- })(this));
- this.search_results.observe("mouseout", (function(_this) {
- return function(evt) {
- return _this.search_results_mouseout(evt);
- };
- })(this));
- this.search_results.observe("mousewheel", (function(_this) {
- return function(evt) {
- return _this.search_results_mousewheel(evt);
- };
- })(this));
- this.search_results.observe("DOMMouseScroll", (function(_this) {
- return function(evt) {
- return _this.search_results_mousewheel(evt);
- };
- })(this));
- this.search_results.observe("touchstart", (function(_this) {
- return function(evt) {
- return _this.search_results_touchstart(evt);
- };
- })(this));
- this.search_results.observe("touchmove", (function(_this) {
- return function(evt) {
- return _this.search_results_touchmove(evt);
- };
- })(this));
- this.search_results.observe("touchend", (function(_this) {
- return function(evt) {
- return _this.search_results_touchend(evt);
- };
- })(this));
- this.form_field.observe("chosen:updated", (function(_this) {
- return function(evt) {
- return _this.results_update_field(evt);
- };
- })(this));
- this.form_field.observe("chosen:activate", (function(_this) {
- return function(evt) {
- return _this.activate_field(evt);
- };
- })(this));
- this.form_field.observe("chosen:open", (function(_this) {
- return function(evt) {
- return _this.container_mousedown(evt);
- };
- })(this));
- this.form_field.observe("chosen:close", (function(_this) {
- return function(evt) {
- return _this.close_field(evt);
- };
- })(this));
- this.search_field.observe("blur", (function(_this) {
- return function(evt) {
- return _this.input_blur(evt);
- };
- })(this));
- this.search_field.observe("keyup", (function(_this) {
- return function(evt) {
- return _this.keyup_checker(evt);
- };
- })(this));
- this.search_field.observe("keydown", (function(_this) {
- return function(evt) {
- return _this.keydown_checker(evt);
- };
- })(this));
- this.search_field.observe("focus", (function(_this) {
- return function(evt) {
- return _this.input_focus(evt);
- };
- })(this));
- this.search_field.observe("cut", (function(_this) {
- return function(evt) {
- return _this.clipboard_event_checker(evt);
- };
- })(this));
- this.search_field.observe("paste", (function(_this) {
- return function(evt) {
- return _this.clipboard_event_checker(evt);
- };
- })(this));
- if (this.is_multiple) {
- return this.search_choices.observe("click", (function(_this) {
- return function(evt) {
- return _this.choices_click(evt);
- };
- })(this));
- } else {
- return this.container.observe("click", (function(_this) {
- return function(evt) {
- return evt.preventDefault();
- };
- })(this));
- }
- };
-
- Chosen.prototype.destroy = function() {
- var event, i, len, ref;
- this.container.ownerDocument.stopObserving("click", this.click_test_action);
- ref = ['chosen:updated', 'chosen:activate', 'chosen:open', 'chosen:close'];
- for (i = 0, len = ref.length; i < len; i++) {
- event = ref[i];
- this.form_field.stopObserving(event);
- }
- this.container.stopObserving();
- this.search_results.stopObserving();
- this.search_field.stopObserving();
- if (this.form_field_label != null) {
- this.form_field_label.stopObserving();
- }
- if (this.is_multiple) {
- this.search_choices.stopObserving();
- this.container.select(".search-choice-close").each(function(choice) {
- return choice.stopObserving();
- });
- } else {
- this.selected_item.stopObserving();
- }
- if (this.search_field.tabIndex) {
- this.form_field.tabIndex = this.search_field.tabIndex;
- }
- this.container.remove();
- return this.form_field.show();
- };
-
- Chosen.prototype.search_field_disabled = function() {
- var ref;
- this.is_disabled = this.form_field.disabled || ((ref = this.form_field.up('fieldset')) != null ? ref.disabled : void 0) || false;
- if (this.is_disabled) {
- this.container.addClassName('chosen-disabled');
- } else {
- this.container.removeClassName('chosen-disabled');
- }
- this.search_field.disabled = this.is_disabled;
- if (!this.is_multiple) {
- this.selected_item.stopObserving('focus', this.activate_field);
- }
- if (this.is_disabled) {
- return this.close_field();
- } else if (!this.is_multiple) {
- return this.selected_item.observe('focus', this.activate_field);
- }
- };
-
- Chosen.prototype.container_mousedown = function(evt) {
- var ref;
- if (this.is_disabled) {
- return;
- }
- if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {
- evt.preventDefault();
- }
- if (!((evt != null) && evt.target.hasClassName("search-choice-close"))) {
- if (!this.active_field) {
- if (this.is_multiple) {
- this.search_field.clear();
- }
- this.container.ownerDocument.observe("click", this.click_test_action);
- this.results_show();
- } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chosen-single"))) {
- this.results_toggle();
- }
- return this.activate_field();
- }
- };
-
- Chosen.prototype.container_mouseup = function(evt) {
- if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
- return this.results_reset(evt);
- }
- };
-
- Chosen.prototype.search_results_mousewheel = function(evt) {
- var delta;
- delta = evt.deltaY || -evt.wheelDelta || evt.detail;
- if (delta != null) {
- evt.preventDefault();
- if (evt.type === 'DOMMouseScroll') {
- delta = delta * 40;
- }
- return this.search_results.scrollTop = delta + this.search_results.scrollTop;
- }
- };
-
- Chosen.prototype.blur_test = function(evt) {
- if (!this.active_field && this.container.hasClassName("chosen-container-active")) {
- return this.close_field();
- }
- };
-
- Chosen.prototype.close_field = function() {
- this.container.ownerDocument.stopObserving("click", this.click_test_action);
- this.active_field = false;
- this.results_hide();
- this.container.removeClassName("chosen-container-active");
- this.clear_backstroke();
- this.show_search_field_default();
- this.search_field_scale();
- return this.search_field.blur();
- };
-
- Chosen.prototype.activate_field = function() {
- if (this.is_disabled) {
- return;
- }
- this.container.addClassName("chosen-container-active");
- this.active_field = true;
- this.search_field.value = this.get_search_field_value();
- return this.search_field.focus();
- };
-
- Chosen.prototype.test_active_click = function(evt) {
- if (evt.target.up('.chosen-container') === this.container) {
- return this.active_field = true;
- } else {
- return this.close_field();
- }
- };
-
- Chosen.prototype.results_build = function() {
- this.parsing = true;
- this.selected_option_count = null;
- this.results_data = SelectParser.select_to_array(this.form_field);
- if (this.is_multiple) {
- this.search_choices.select("li.search-choice").invoke("remove");
- } else {
- this.single_set_selected_text();
- if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
- this.search_field.readOnly = true;
- this.container.addClassName("chosen-container-single-nosearch");
- } else {
- this.search_field.readOnly = false;
- this.container.removeClassName("chosen-container-single-nosearch");
- }
- }
- this.update_results_content(this.results_option_build({
- first: true
- }));
- this.search_field_disabled();
- this.show_search_field_default();
- this.search_field_scale();
- return this.parsing = false;
- };
-
- Chosen.prototype.result_do_highlight = function(el) {
- var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
- this.result_clear_highlight();
- this.result_highlight = el;
- this.result_highlight.addClassName("highlighted");
- maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10);
- visible_top = this.search_results.scrollTop;
- visible_bottom = maxHeight + visible_top;
- high_top = this.result_highlight.positionedOffset().top;
- high_bottom = high_top + this.result_highlight.getHeight();
- if (high_bottom >= visible_bottom) {
- return this.search_results.scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0;
- } else if (high_top < visible_top) {
- return this.search_results.scrollTop = high_top;
- }
- };
-
- Chosen.prototype.result_clear_highlight = function() {
- if (this.result_highlight) {
- this.result_highlight.removeClassName('highlighted');
- }
- return this.result_highlight = null;
- };
-
- Chosen.prototype.results_show = function() {
- if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
- this.form_field.fire("chosen:maxselected", {
- chosen: this
- });
- return false;
- }
- this.container.addClassName("chosen-with-drop");
- this.results_showing = true;
- this.search_field.focus();
- this.search_field.value = this.get_search_field_value();
- this.winnow_results();
- return this.form_field.fire("chosen:showing_dropdown", {
- chosen: this
- });
- };
-
- Chosen.prototype.update_results_content = function(content) {
- return this.search_results.update(content);
- };
-
- Chosen.prototype.results_hide = function() {
- if (this.results_showing) {
- this.result_clear_highlight();
- this.container.removeClassName("chosen-with-drop");
- this.form_field.fire("chosen:hiding_dropdown", {
- chosen: this
- });
- }
- return this.results_showing = false;
- };
-
- Chosen.prototype.set_tab_index = function(el) {
- var ti;
- if (this.form_field.tabIndex) {
- ti = this.form_field.tabIndex;
- this.form_field.tabIndex = -1;
- return this.search_field.tabIndex = ti;
- }
- };
-
- Chosen.prototype.set_label_behavior = function() {
- this.form_field_label = this.form_field.up("label");
- if (this.form_field_label == null) {
- this.form_field_label = $$("label[for='" + this.form_field.id + "']").first();
- }
- if (this.form_field_label != null) {
- return this.form_field_label.observe("click", this.label_click_handler);
- }
- };
-
- Chosen.prototype.show_search_field_default = function() {
- if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
- this.search_field.value = this.default_text;
- return this.search_field.addClassName("default");
- } else {
- this.search_field.value = "";
- return this.search_field.removeClassName("default");
- }
- };
-
- Chosen.prototype.search_results_mouseup = function(evt) {
- var target;
- target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result");
- if (target) {
- this.result_highlight = target;
- this.result_select(evt);
- return this.search_field.focus();
- }
- };
-
- Chosen.prototype.search_results_mouseover = function(evt) {
- var target;
- target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result");
- if (target) {
- return this.result_do_highlight(target);
- }
- };
-
- Chosen.prototype.search_results_mouseout = function(evt) {
- if (evt.target.hasClassName('active-result') || evt.target.up('.active-result')) {
- return this.result_clear_highlight();
- }
- };
-
- Chosen.prototype.choice_build = function(item) {
- var choice, close_link;
- choice = new Element('li', {
- "class": "search-choice"
- }).update("" + (this.choice_label(item)) + " ");
- if (item.disabled) {
- choice.addClassName('search-choice-disabled');
- } else {
- close_link = new Element('a', {
- href: '#',
- "class": 'search-choice-close',
- rel: item.array_index
- });
- close_link.observe("click", (function(_this) {
- return function(evt) {
- return _this.choice_destroy_link_click(evt);
- };
- })(this));
- choice.insert(close_link);
- }
- return this.search_container.insert({
- before: choice
- });
- };
-
- Chosen.prototype.choice_destroy_link_click = function(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- if (!this.is_disabled) {
- return this.choice_destroy(evt.target);
- }
- };
-
- Chosen.prototype.choice_destroy = function(link) {
- if (this.result_deselect(link.readAttribute("rel"))) {
- if (this.active_field) {
- this.search_field.focus();
- } else {
- this.show_search_field_default();
- }
- if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {
- this.results_hide();
- }
- link.up('li').remove();
- return this.search_field_scale();
- }
- };
-
- Chosen.prototype.results_reset = function() {
- this.reset_single_select_options();
- this.form_field.options[0].selected = true;
- this.single_set_selected_text();
- this.show_search_field_default();
- this.results_reset_cleanup();
- this.trigger_form_field_change();
- if (this.active_field) {
- return this.results_hide();
- }
- };
-
- Chosen.prototype.results_reset_cleanup = function() {
- var deselect_trigger;
- this.current_selectedIndex = this.form_field.selectedIndex;
- deselect_trigger = this.selected_item.down("abbr");
- if (deselect_trigger) {
- return deselect_trigger.remove();
- }
- };
-
- Chosen.prototype.result_select = function(evt) {
- var high, item;
- if (this.result_highlight) {
- high = this.result_highlight;
- this.result_clear_highlight();
- if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
- this.form_field.fire("chosen:maxselected", {
- chosen: this
- });
- return false;
- }
- if (this.is_multiple) {
- high.removeClassName("active-result");
- } else {
- this.reset_single_select_options();
- }
- high.addClassName("result-selected");
- item = this.results_data[high.getAttribute("data-option-array-index")];
- item.selected = true;
- this.form_field.options[item.options_index].selected = true;
- this.selected_option_count = null;
- if (this.is_multiple) {
- this.choice_build(item);
- } else {
- this.single_set_selected_text(this.choice_label(item));
- }
- if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {
- if (evt.metaKey || evt.ctrlKey) {
- this.winnow_results({
- skip_highlight: true
- });
- } else {
- this.search_field.value = "";
- this.winnow_results();
- }
- } else {
- this.results_hide();
- this.show_search_field_default();
- }
- if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
- this.trigger_form_field_change();
- }
- this.current_selectedIndex = this.form_field.selectedIndex;
- evt.preventDefault();
- return this.search_field_scale();
- }
- };
-
- Chosen.prototype.single_set_selected_text = function(text) {
- if (text == null) {
- text = this.default_text;
- }
- if (text === this.default_text) {
- this.selected_item.addClassName("chosen-default");
- } else {
- this.single_deselect_control_build();
- this.selected_item.removeClassName("chosen-default");
- }
- return this.selected_item.down("span").update(text);
- };
-
- Chosen.prototype.result_deselect = function(pos) {
- var result_data;
- result_data = this.results_data[pos];
- if (!this.form_field.options[result_data.options_index].disabled) {
- result_data.selected = false;
- this.form_field.options[result_data.options_index].selected = false;
- this.selected_option_count = null;
- this.result_clear_highlight();
- if (this.results_showing) {
- this.winnow_results();
- }
- this.trigger_form_field_change();
- this.search_field_scale();
- return true;
- } else {
- return false;
- }
- };
-
- Chosen.prototype.single_deselect_control_build = function() {
- if (!this.allow_single_deselect) {
- return;
- }
- if (!this.selected_item.down("abbr")) {
- this.selected_item.down("span").insert({
- after: " "
- });
- }
- return this.selected_item.addClassName("chosen-single-with-deselect");
- };
-
- Chosen.prototype.get_search_field_value = function() {
- return this.search_field.value;
- };
-
- Chosen.prototype.get_search_text = function() {
- return this.get_search_field_value().strip();
- };
-
- Chosen.prototype.escape_html = function(text) {
- return text.escapeHTML();
- };
-
- Chosen.prototype.winnow_results_set_highlight = function() {
- var do_high;
- if (!this.is_multiple) {
- do_high = this.search_results.down(".result-selected.active-result");
- }
- if (do_high == null) {
- do_high = this.search_results.down(".active-result");
- }
- if (do_high != null) {
- return this.result_do_highlight(do_high);
- }
- };
-
- Chosen.prototype.no_results = function(terms) {
- this.search_results.insert(this.get_no_results_html(terms));
- return this.form_field.fire("chosen:no_results", {
- chosen: this
- });
- };
-
- Chosen.prototype.no_results_clear = function() {
- var nr, results1;
- nr = null;
- results1 = [];
- while (nr = this.search_results.down(".no-results")) {
- results1.push(nr.remove());
- }
- return results1;
- };
-
- Chosen.prototype.keydown_arrow = function() {
- var next_sib;
- if (this.results_showing && this.result_highlight) {
- next_sib = this.result_highlight.next('.active-result');
- if (next_sib) {
- return this.result_do_highlight(next_sib);
- }
- } else {
- return this.results_show();
- }
- };
-
- Chosen.prototype.keyup_arrow = function() {
- var actives, prevs, sibs;
- if (!this.results_showing && !this.is_multiple) {
- return this.results_show();
- } else if (this.result_highlight) {
- sibs = this.result_highlight.previousSiblings();
- actives = this.search_results.select("li.active-result");
- prevs = sibs.intersect(actives);
- if (prevs.length) {
- return this.result_do_highlight(prevs.first());
- } else {
- if (this.choices_count() > 0) {
- this.results_hide();
- }
- return this.result_clear_highlight();
- }
- }
- };
-
- Chosen.prototype.keydown_backstroke = function() {
- var next_available_destroy;
- if (this.pending_backstroke) {
- this.choice_destroy(this.pending_backstroke.down("a"));
- return this.clear_backstroke();
- } else {
- next_available_destroy = this.search_container.siblings().last();
- if (next_available_destroy && next_available_destroy.hasClassName("search-choice") && !next_available_destroy.hasClassName("search-choice-disabled")) {
- this.pending_backstroke = next_available_destroy;
- if (this.pending_backstroke) {
- this.pending_backstroke.addClassName("search-choice-focus");
- }
- if (this.single_backstroke_delete) {
- return this.keydown_backstroke();
- } else {
- return this.pending_backstroke.addClassName("search-choice-focus");
- }
- }
- }
- };
-
- Chosen.prototype.clear_backstroke = function() {
- if (this.pending_backstroke) {
- this.pending_backstroke.removeClassName("search-choice-focus");
- }
- return this.pending_backstroke = null;
- };
-
- Chosen.prototype.search_field_scale = function() {
- var container_width, div, i, len, style, style_block, styles, width;
- if (!this.is_multiple) {
- return;
- }
- style_block = {
- position: 'absolute',
- left: '-1000px',
- top: '-1000px',
- display: 'none',
- whiteSpace: 'pre'
- };
- styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];
- for (i = 0, len = styles.length; i < len; i++) {
- style = styles[i];
- style_block[style] = this.search_field.getStyle(style);
- }
- div = new Element('div').update(this.escape_html(this.get_search_field_value()));
- div.setStyle(style_block);
- document.body.appendChild(div);
- width = div.measure('width') + 25;
- div.remove();
- if (container_width = this.container.getWidth()) {
- width = Math.min(container_width - 10, width);
- }
- return this.search_field.setStyle({
- width: width + 'px'
- });
- };
-
- Chosen.prototype.trigger_form_field_change = function() {
- triggerHtmlEvent(this.form_field, 'input');
- return triggerHtmlEvent(this.form_field, 'change');
- };
-
- triggerHtmlEvent = function(element, eventType) {
- var error, evt;
- if (element.dispatchEvent) {
- try {
- evt = new Event(eventType, {
- bubbles: true,
- cancelable: true
- });
- } catch (error) {
- evt = document.createEvent('HTMLEvents');
- evt.initEvent(eventType, true, true);
- }
- return element.dispatchEvent(evt);
- } else {
- return element.fireEvent("on" + eventType, document.createEventObject());
- }
- };
-
- return Chosen;
-
- })(AbstractChosen);
-
-}).call(this);
diff --git a/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.min.js b/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.min.js
deleted file mode 100644
index cbe444d7d..000000000
--- a/odex25_realstate/property_management/static/src/js/chosen/chosen.proto.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Chosen v1.8.7 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
-
-(function(){var e,t,s=function(e,t){return function(){return e.apply(t,arguments)}},i=function(e,t){function s(){this.constructor=e}for(var i in t)r.call(t,i)&&(e[i]=t[i]);return s.prototype=t.prototype,e.prototype=new s,e.__super__=t.prototype,e},r={}.hasOwnProperty;(t=function(){function e(){this.options_index=0,this.parsed=[]}return e.prototype.add_node=function(e){return"OPTGROUP"===e.nodeName.toUpperCase()?this.add_group(e):this.add_option(e)},e.prototype.add_group=function(e){var t,s,i,r,n,o;for(t=this.parsed.length,this.parsed.push({array_index:t,group:!0,label:e.label,title:e.title?e.title:void 0,children:0,disabled:e.disabled,classes:e.className}),o=[],s=0,i=(n=e.childNodes).length;s"+this.escape_html(e.group_label)+""+e.html:e.html},e.prototype.mouse_enter=function(){return this.mouse_on_container=!0},e.prototype.mouse_leave=function(){return this.mouse_on_container=!1},e.prototype.input_focus=function(e){if(this.is_multiple){if(!this.active_field)return setTimeout(function(e){return function(){return e.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},e.prototype.input_blur=function(e){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(e){return function(){return e.blur_test()}}(this),100)},e.prototype.label_click_handler=function(e){return this.is_multiple?this.container_mousedown(e):this.activate_field()},e.prototype.results_option_build=function(e){var t,s,i,r,n,o,l;for(t="",l=0,r=0,n=(o=this.results_data).length;r=this.max_shown_results));r++);return t},e.prototype.result_add_option=function(e){var t,s;return e.search_match&&this.include_option_in_results(e)?(t=[],e.disabled||e.selected&&this.is_multiple||t.push("active-result"),!e.disabled||e.selected&&this.is_multiple||t.push("disabled-result"),e.selected&&t.push("result-selected"),null!=e.group_array_index&&t.push("group-option"),""!==e.classes&&t.push(e.classes),s=document.createElement("li"),s.className=t.join(" "),e.style&&(s.style.cssText=e.style),s.setAttribute("data-option-array-index",e.array_index),s.innerHTML=e.highlighted_html||e.html,e.title&&(s.title=e.title),this.outerHTML(s)):""},e.prototype.result_add_group=function(e){var t,s;return(e.search_match||e.group_match)&&e.active_options>0?((t=[]).push("group-result"),e.classes&&t.push(e.classes),s=document.createElement("li"),s.className=t.join(" "),s.innerHTML=e.highlighted_html||this.escape_html(e.label),e.title&&(s.title=e.title),this.outerHTML(s)):""},e.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},e.prototype.reset_single_select_options=function(){var e,t,s,i,r;for(r=[],e=0,t=(s=this.results_data).length;e"+this.escape_html(s)+""+this.escape_html(p)),null!=_&&(_.group_match=!0)):null!=n.group_array_index&&this.results_data[n.group_array_index].search_match&&(n.search_match=!0)));return this.result_clear_highlight(),a<1&&l.length?(this.update_results_content(""),this.no_results(l)):(this.update_results_content(this.results_option_build()),(null!=e?e.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},e.prototype.get_search_regex=function(e){var t,s;return s=this.search_contains?e:"(^|\\s|\\b)"+e+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),t=this.case_sensitive_search?"":"i",new RegExp(s,t)},e.prototype.search_string_match=function(e,t){var s;return s=t.exec(e),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},e.prototype.choices_count=function(){var e,t,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,e=0,t=(s=this.form_field.options).length;e0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:e.preventDefault(),this.results_showing&&this.result_select(e);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},e.prototype.clipboard_event_checker=function(e){if(!this.is_disabled)return setTimeout(function(e){return function(){return e.results_search()}}(this),50)},e.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},e.prototype.include_option_in_results=function(e){return!(this.is_multiple&&!this.display_selected_options&&e.selected)&&(!(!this.display_disabled_options&&e.disabled)&&!e.empty)},e.prototype.search_results_touchstart=function(e){return this.touch_started=!0,this.search_results_mouseover(e)},e.prototype.search_results_touchmove=function(e){return this.touch_started=!1,this.search_results_mouseout(e)},e.prototype.search_results_touchend=function(e){if(this.touch_started)return this.search_results_mouseup(e)},e.prototype.outerHTML=function(e){var t;return e.outerHTML?e.outerHTML:((t=document.createElement("div")).appendChild(e),t.innerHTML)},e.prototype.get_single_html=function(){return'\n '+this.default_text+' \n
\n \n'},e.prototype.get_multi_html=function(){return'\n'},e.prototype.get_no_results_html=function(e){return'\n '+this.results_none_found+" "+this.escape_html(e)+" \n "},e.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},e.default_multiple_text="Select Some Options",e.default_single_text="Select an Option",e.default_no_result_text="No results match",e}(),this.Chosen=function(s){function r(){return r.__super__.constructor.apply(this,arguments)}var n;return i(r,e),r.prototype.setup=function(){return this.current_selectedIndex=this.form_field.selectedIndex},r.prototype.set_up_html=function(){var e,t;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),t={class:e.join(" "),title:this.form_field.title},this.form_field.id.length&&(t.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=new Element("div",t),this.container.setStyle({width:this.container_width()}),this.is_multiple?this.container.update(this.get_multi_html()):this.container.update(this.get_single_html()),this.form_field.hide().insert({after:this.container}),this.dropdown=this.container.down("div.chosen-drop"),this.search_field=this.container.down("input"),this.search_results=this.container.down("ul.chosen-results"),this.search_field_scale(),this.search_no_results=this.container.down("li.no-results"),this.is_multiple?(this.search_choices=this.container.down("ul.chosen-choices"),this.search_container=this.container.down("li.search-field")):(this.search_container=this.container.down("div.chosen-search"),this.selected_item=this.container.down(".chosen-single")),this.results_build(),this.set_tab_index(),this.set_label_behavior()},r.prototype.on_ready=function(){return this.form_field.fire("chosen:ready",{chosen:this})},r.prototype.register_observers=function(){return this.container.observe("touchstart",function(e){return function(t){return e.container_mousedown(t)}}(this)),this.container.observe("touchend",function(e){return function(t){return e.container_mouseup(t)}}(this)),this.container.observe("mousedown",function(e){return function(t){return e.container_mousedown(t)}}(this)),this.container.observe("mouseup",function(e){return function(t){return e.container_mouseup(t)}}(this)),this.container.observe("mouseenter",function(e){return function(t){return e.mouse_enter(t)}}(this)),this.container.observe("mouseleave",function(e){return function(t){return e.mouse_leave(t)}}(this)),this.search_results.observe("mouseup",function(e){return function(t){return e.search_results_mouseup(t)}}(this)),this.search_results.observe("mouseover",function(e){return function(t){return e.search_results_mouseover(t)}}(this)),this.search_results.observe("mouseout",function(e){return function(t){return e.search_results_mouseout(t)}}(this)),this.search_results.observe("mousewheel",function(e){return function(t){return e.search_results_mousewheel(t)}}(this)),this.search_results.observe("DOMMouseScroll",function(e){return function(t){return e.search_results_mousewheel(t)}}(this)),this.search_results.observe("touchstart",function(e){return function(t){return e.search_results_touchstart(t)}}(this)),this.search_results.observe("touchmove",function(e){return function(t){return e.search_results_touchmove(t)}}(this)),this.search_results.observe("touchend",function(e){return function(t){return e.search_results_touchend(t)}}(this)),this.form_field.observe("chosen:updated",function(e){return function(t){return e.results_update_field(t)}}(this)),this.form_field.observe("chosen:activate",function(e){return function(t){return e.activate_field(t)}}(this)),this.form_field.observe("chosen:open",function(e){return function(t){return e.container_mousedown(t)}}(this)),this.form_field.observe("chosen:close",function(e){return function(t){return e.close_field(t)}}(this)),this.search_field.observe("blur",function(e){return function(t){return e.input_blur(t)}}(this)),this.search_field.observe("keyup",function(e){return function(t){return e.keyup_checker(t)}}(this)),this.search_field.observe("keydown",function(e){return function(t){return e.keydown_checker(t)}}(this)),this.search_field.observe("focus",function(e){return function(t){return e.input_focus(t)}}(this)),this.search_field.observe("cut",function(e){return function(t){return e.clipboard_event_checker(t)}}(this)),this.search_field.observe("paste",function(e){return function(t){return e.clipboard_event_checker(t)}}(this)),this.is_multiple?this.search_choices.observe("click",function(e){return function(t){return e.choices_click(t)}}(this)):this.container.observe("click",function(e){return e.preventDefault()})},r.prototype.destroy=function(){var e,t,s,i;for(this.container.ownerDocument.stopObserving("click",this.click_test_action),t=0,s=(i=["chosen:updated","chosen:activate","chosen:open","chosen:close"]).length;t=r?this.search_results.scrollTop=t-i>0?t-i:0:s"+this.choice_label(e)+""),e.disabled?t.addClassName("search-choice-disabled"):((s=new Element("a",{href:"#",class:"search-choice-close",rel:e.array_index})).observe("click",function(e){return function(t){return e.choice_destroy_link_click(t)}}(this)),t.insert(s)),this.search_container.insert({before:t})},r.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(e.target)},r.prototype.choice_destroy=function(e){if(this.result_deselect(e.readAttribute("rel")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),e.up("li").remove(),this.search_field_scale()},r.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},r.prototype.results_reset_cleanup=function(){var e;if(this.current_selectedIndex=this.form_field.selectedIndex,e=this.selected_item.down("abbr"))return e.remove()},r.prototype.result_select=function(e){var t,s;if(this.result_highlight)return t=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field.fire("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?t.removeClassName("active-result"):this.reset_single_select_options(),t.addClassName("result-selected"),s=this.results_data[t.getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||e.metaKey||e.ctrlKey)?e.metaKey||e.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.value="",this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change(),this.current_selectedIndex=this.form_field.selectedIndex,e.preventDefault(),this.search_field_scale())},r.prototype.single_set_selected_text=function(e){return null==e&&(e=this.default_text),e===this.default_text?this.selected_item.addClassName("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClassName("chosen-default")),this.selected_item.down("span").update(e)},r.prototype.result_deselect=function(e){var t;return t=this.results_data[e],!this.form_field.options[t.options_index].disabled&&(t.selected=!1,this.form_field.options[t.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change(),this.search_field_scale(),!0)},r.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.down("abbr")||this.selected_item.down("span").insert({after:' '}),this.selected_item.addClassName("chosen-single-with-deselect")},r.prototype.get_search_field_value=function(){return this.search_field.value},r.prototype.get_search_text=function(){return this.get_search_field_value().strip()},r.prototype.escape_html=function(e){return e.escapeHTML()},r.prototype.winnow_results_set_highlight=function(){var e;if(this.is_multiple||(e=this.search_results.down(".result-selected.active-result")),null==e&&(e=this.search_results.down(".active-result")),null!=e)return this.result_do_highlight(e)},r.prototype.no_results=function(e){return this.search_results.insert(this.get_no_results_html(e)),this.form_field.fire("chosen:no_results",{chosen:this})},r.prototype.no_results_clear=function(){var e,t;for(e=null,t=[];e=this.search_results.down(".no-results");)t.push(e.remove());return t},r.prototype.keydown_arrow=function(){var e;return this.results_showing&&this.result_highlight?(e=this.result_highlight.next(".active-result"))?this.result_do_highlight(e):void 0:this.results_show()},r.prototype.keyup_arrow=function(){var e,t,s;return this.results_showing||this.is_multiple?this.result_highlight?(s=this.result_highlight.previousSiblings(),e=this.search_results.select("li.active-result"),(t=s.intersect(e)).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},r.prototype.keydown_backstroke=function(){var e;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.down("a")),this.clear_backstroke()):(e=this.search_container.siblings().last())&&e.hasClassName("search-choice")&&!e.hasClassName("search-choice-disabled")?(this.pending_backstroke=e,this.pending_backstroke&&this.pending_backstroke.addClassName("search-choice-focus"),this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClassName("search-choice-focus")):void 0},r.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClassName("search-choice-focus"),this.pending_backstroke=null},r.prototype.search_field_scale=function(){var e,t,s,i,r,n,o,l;if(this.is_multiple){for(n={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;sa?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0;
-}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" a ",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="x ",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:l.htmlSerialize?[0,"",""]:[1,"X","
"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h ]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/
-
-
-
-
-
-