add new expense flow
This commit is contained in:
parent
bc9b54e027
commit
a65d083e91
|
|
@ -33,6 +33,7 @@
|
|||
'views/sms_view.xml',
|
||||
'reports/benefit_template.xml',
|
||||
'views/benefit_services_view.xml',
|
||||
'views/family_expense_view.xml',
|
||||
'views/benefit_config_view.xml',
|
||||
'views/generate_reports.xml',
|
||||
'views/actions_and_menus.xml',
|
||||
|
|
@ -40,7 +41,6 @@
|
|||
'data/sequence_data.xml',
|
||||
'wizards/entity_refused_wizard_view.xml',
|
||||
'wizards/entity_black_list_wizard_view.xml',
|
||||
'wizards/family_expense_move_wiz_view.xml',
|
||||
],
|
||||
'external_dependencies': {
|
||||
'python': ['num2words'],
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-12 03:26+0000\n"
|
||||
"PO-Revision-Date: 2024-09-12 03:26+0000\n"
|
||||
"POT-Creation-Date: 2024-09-16 11:24+0000\n"
|
||||
"PO-Revision-Date: 2024-09-16 11:24+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -1001,6 +1001,16 @@ msgstr "قبول"
|
|||
msgid "Account"
|
||||
msgstr "حساب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__account_holder
|
||||
msgid "Account Holder"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__acc_number
|
||||
msgid "Account Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__property_account_payable_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__property_account_payable_id
|
||||
|
|
@ -1283,14 +1293,12 @@ msgid "All expenses"
|
|||
msgstr "جميع المصاريف"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_expense_move_wiz.py:0
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"All selected benefits should be either state of "
|
||||
"'second_approve','temporarily_suspend','suspend' state."
|
||||
msgstr ""
|
||||
"كل الاسر المحددة يجب أن تكون في حالة 'الموافقة الثانية' أو 'التعليق المؤقت' "
|
||||
"أو 'التعليق'."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,help:odex_benefit.field_benefits_representative__lang
|
||||
|
|
@ -1542,6 +1550,12 @@ msgstr ""
|
|||
msgid "Associations Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "At least one expense type should be selected."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expenses__attach
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_generate_reports_log__attach
|
||||
|
|
@ -1627,6 +1641,7 @@ msgstr "اسم المرفق"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__attachment_ids
|
||||
|
|
@ -1738,6 +1753,11 @@ msgid ""
|
|||
"expected receipt date, asking him to confirm the exact date."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__available_payment_method_line_ids
|
||||
msgid "Available Payment Method Line"
|
||||
msgstr "طرق الدفع المتاحة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_housing_kanban_view
|
||||
msgid "Avatar"
|
||||
|
|
@ -1828,6 +1848,11 @@ msgstr "فئات الأسر"
|
|||
msgid "Beneficiaries Edit User"
|
||||
msgstr "تعديل المستفيدين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:res.groups,name:odex_benefit.group_benefit_info
|
||||
msgid "Beneficiaries Inforamtion"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.module.category,name:odex_benefit.module_category_benefit
|
||||
msgid "Beneficiaries Management"
|
||||
|
|
@ -1974,6 +1999,11 @@ msgstr "خدمات النادي"
|
|||
msgid "Benefit Count"
|
||||
msgstr "عدد أفراد الأسرة/المستفيدين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.ui.menu,name:odex_benefit.menu_confirm_benefit_expense
|
||||
msgid "Benefit Expense Flow"
|
||||
msgstr "اجراءت مصاريف الاسر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#, python-format
|
||||
|
|
@ -1986,7 +2016,10 @@ msgid "Benefit F Needs Percent"
|
|||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_account_move_line__benefit_family_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_account_bank_statement_line__family_confirm_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_account_move__family_confirm_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_account_move_line__family_confirm_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_account_payment__family_confirm_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__family_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__family_id
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_benefit_family_form
|
||||
|
|
@ -2443,7 +2476,9 @@ msgstr ""
|
|||
#: code:addons/odex_benefit/models/benefit_config.py:0
|
||||
#: code:addons/odex_benefit/models/benefit_need.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__associations_line__support_type__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_club__benefit_type__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__changes_requests__team_type__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__food_basket_line__donation_type__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__payment_collection_line__donation_type__both
|
||||
|
|
@ -2495,11 +2530,9 @@ msgstr ""
|
|||
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_zkat_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.generate_reports_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.receive_food_basket_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_black_list_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_final_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_family_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
||||
|
|
@ -2546,12 +2579,12 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__cash_expense
|
||||
msgid "Cash Expense"
|
||||
msgstr "مصاريف الاسرة"
|
||||
msgstr "مصاريف النقد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__cash_expense_account_id
|
||||
msgid "Cash Expense Account"
|
||||
msgstr "حساب مصاريف الاسرة"
|
||||
msgstr "حساب مصاريف النقد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_validation_setting.py:0
|
||||
|
|
@ -2749,6 +2782,9 @@ msgstr "انشطة النادي"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_zkat__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_zkat__code
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_receive_food_basket__code
|
||||
|
|
@ -2910,19 +2946,25 @@ msgid "Configuration"
|
|||
msgstr "إعدادات ملف المستفيد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Confirm"
|
||||
msgstr "تاكيد"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_wizard_form
|
||||
msgid "Confirm Benefit"
|
||||
msgstr "انشاء قيود"
|
||||
#: model:ir.model,name:odex_benefit.model_confirm_benefit_expense
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Confirm Benefit Expense"
|
||||
msgstr "اجراءت مصاريف الاسر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_confirm_benefit_wizard
|
||||
msgid "Confirm Benefit Wizard"
|
||||
msgstr "انشاء قيود"
|
||||
#: model:ir.actions.act_window,name:odex_benefit.action_confirm_benefit_expense
|
||||
msgid "Confirm Benefit Expenses"
|
||||
msgstr "مصاريف الاسر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__state__confirm
|
||||
msgid "Confirmed"
|
||||
msgstr "مؤكد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__child_ids
|
||||
|
|
@ -3004,11 +3046,6 @@ msgstr ""
|
|||
msgid "Create A Club"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.actions.server,name:odex_benefit.action_confirm_benefit_from_list
|
||||
msgid "Create Move"
|
||||
msgstr "إنشاء قيود"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
msgid "Create Periodic visit"
|
||||
|
|
@ -3226,7 +3263,7 @@ msgstr ""
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__create_uid
|
||||
|
|
@ -3330,7 +3367,7 @@ msgstr "انشئ بواسطة"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__create_date
|
||||
|
|
@ -3490,7 +3527,7 @@ msgstr "لوحات المعلومات"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_zkat_line__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_needs__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_food_basket_benefits_line__date
|
||||
|
|
@ -3585,6 +3622,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__daughter
|
||||
#, python-format
|
||||
msgid "Daughter"
|
||||
msgstr "الابنة"
|
||||
|
|
@ -3600,6 +3638,8 @@ msgstr "الايام قبل الاستلام"
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__dead
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__dead
|
||||
#, python-format
|
||||
msgid "Dead"
|
||||
msgstr "متوفية"
|
||||
|
|
@ -3663,6 +3703,7 @@ msgstr "تاريخ التوصيل"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_hr_department
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_researcher_family_wizard__branch_id
|
||||
msgid "Department"
|
||||
msgstr "القسم"
|
||||
|
||||
|
|
@ -3762,7 +3803,7 @@ msgstr "نوع المرض"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__display_name
|
||||
|
|
@ -3855,6 +3896,9 @@ msgstr "الأحياء"
|
|||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__divorced
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__divorced
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__divorced
|
||||
#, python-format
|
||||
msgid "Divorced"
|
||||
msgstr "مطلقة"
|
||||
|
|
@ -3862,6 +3906,8 @@ msgstr "مطلقة"
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__divorced_from_another_man
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__divorced_from_another_man
|
||||
#, python-format
|
||||
msgid "Divorced From Another Man"
|
||||
msgstr "مطلقة من رجل اخر"
|
||||
|
|
@ -3971,6 +4017,7 @@ msgstr ""
|
|||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_zkat__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__changes_requests__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__entity_black_list_wizard__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__entity_refused_reason_wizard__state__draft
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__external_request__state__draft
|
||||
|
|
@ -4246,6 +4293,11 @@ msgstr "خدمات استثنائية"
|
|||
msgid "Excluded from suspension?"
|
||||
msgstr "مستثنى من إيقاف الخدمة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__expense_type
|
||||
msgid "Expense Type"
|
||||
msgstr "نوع الاجراء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_category__expenses_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_need__expenses_ids
|
||||
|
|
@ -4335,6 +4387,12 @@ msgstr "ادوات اضافية"
|
|||
msgid "F Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__family_ids
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Families"
|
||||
msgstr "الاسر المستفدية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__family_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_changes_requests__benefit_id
|
||||
|
|
@ -4372,10 +4430,15 @@ msgid "Family Debits"
|
|||
msgstr "ديون الأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_expense_move_wiz.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__expense_type__family_expense
|
||||
msgid "Family Expense"
|
||||
msgstr "مصروف الغذاء الشهري"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "Family Expense - %s"
|
||||
msgstr ""
|
||||
msgstr "مصروفات الاسرة - %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
|
|
@ -4400,22 +4463,22 @@ msgstr "أعضاء الأسر"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__family_monthly_clotting
|
||||
msgid "Family Monthly Clotting"
|
||||
msgstr ""
|
||||
msgstr "مصروف الكساء للأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__family_monthly_income
|
||||
msgid "Family Monthly Income"
|
||||
msgstr "مصاريف الاسره الشهريه"
|
||||
msgstr "المصروف النقدي للأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__family_monthly_meals
|
||||
msgid "Family Monthly Meals"
|
||||
msgstr "مصاريف غذاء الاسره الشهري"
|
||||
msgstr "مصروف الغذاء للأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
msgid "Family Monthly salary"
|
||||
msgstr "راتب الاسره الشهري"
|
||||
msgstr "التغذية الشهرية للأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__family_name
|
||||
|
|
@ -4504,6 +4567,7 @@ msgstr "انواع المصاريف"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit_config.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__female
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__changes_requests__team_type__female
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__gender__female
|
||||
#, python-format
|
||||
|
|
@ -4931,6 +4995,7 @@ msgstr "تاريخ التخرج"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__hanging
|
||||
#, python-format
|
||||
msgid "Hanging"
|
||||
msgstr "معلقة"
|
||||
|
|
@ -5133,7 +5198,7 @@ msgstr "رقم الآي بان"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__id
|
||||
|
|
@ -5585,6 +5650,22 @@ msgstr ""
|
|||
msgid "In-kind"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__cash_expense
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__cloth_expense
|
||||
msgid "Include Cash Expense"
|
||||
msgstr "يشمل مصاريف نقدية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__meal_expense
|
||||
msgid "Include Meal Expense"
|
||||
msgstr "يشمل مصاريف الوجبات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__cloth_expense
|
||||
msgid "Include Clothing Expense"
|
||||
msgstr "يشمل مصاريف الكساء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_need__income_ids
|
||||
msgid "Income"
|
||||
|
|
@ -5724,8 +5805,9 @@ msgstr ""
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__invoice_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__invoice_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__invoice_ids
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Invoices"
|
||||
msgstr ""
|
||||
msgstr "فواتير"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_rooms_members__is_accept
|
||||
|
|
@ -5761,7 +5843,7 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__is_dead
|
||||
msgid "Is Dead?"
|
||||
msgstr ""
|
||||
msgstr "متوفي؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__is_development
|
||||
|
|
@ -5999,11 +6081,16 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__journal_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_zkat__journal_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__journal_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__journal_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_zkat__journal_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_receive_food_basket__journal_id
|
||||
msgid "Journal"
|
||||
msgstr "اليومية"
|
||||
msgstr "قيد اليومية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_account_move
|
||||
msgid "Journal Entry"
|
||||
msgstr "قيد اليومية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_account_move_line
|
||||
|
|
@ -6011,10 +6098,12 @@ msgid "Journal Item"
|
|||
msgstr "عنصر اليومية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__journal_item_count
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__journal_item_count
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__journal_item_count
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__journal_item_count
|
||||
#, python-format
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -6100,7 +6189,7 @@ msgstr "الجهة التعليمية السابقة"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor____last_update
|
||||
|
|
@ -6235,7 +6324,7 @@ msgstr "التخصص السابق"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__write_uid
|
||||
|
|
@ -6339,7 +6428,7 @@ msgstr ""
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_divorcee_family__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_domestic_labor__write_date
|
||||
|
|
@ -6579,6 +6668,7 @@ msgstr "نوع الخدمة الرئيسية"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit_config.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__male
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__changes_requests__team_type__male
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__gender__male
|
||||
#, python-format
|
||||
|
|
@ -6601,6 +6691,23 @@ msgstr ""
|
|||
msgid "Manual"
|
||||
msgstr "يدوي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,help:odex_benefit.field_confirm_benefit_expense__payment_method_id
|
||||
msgid ""
|
||||
"Manual: Pay or Get paid by any method outside of Odoo.\n"
|
||||
"Payment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\n"
|
||||
"Check: Pay bills by check and print it from Odoo.\n"
|
||||
"Batch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\n"
|
||||
"SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n"
|
||||
"SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n"
|
||||
msgstr ""
|
||||
"Manual: Pay or Get paid by any method outside of Odex.\n"
|
||||
"Payment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\n"
|
||||
"Check: Pay bills by check and print it from Odex.\n"
|
||||
"Batch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\n"
|
||||
"SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n"
|
||||
"SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_surplus_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_surplus_tree
|
||||
|
|
@ -6613,6 +6720,13 @@ msgstr "الخريطة"
|
|||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__mother_marital
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_marital
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__mother_marital
|
||||
#, python-format
|
||||
msgid "Marital Status"
|
||||
msgstr "الحالة الاجتماعية"
|
||||
|
|
@ -6621,6 +6735,9 @@ msgstr "الحالة الاجتماعية"
|
|||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__married
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__married
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__married
|
||||
#, python-format
|
||||
msgid "Married"
|
||||
msgstr "متزوجة"
|
||||
|
|
@ -6665,7 +6782,12 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_res_districts__meal_card
|
||||
msgid "Meal Card"
|
||||
msgstr "كرت الغذاء"
|
||||
msgstr "بطاقة الغذاء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__expense_type__family_invoice
|
||||
msgid "Meal Card Invoice"
|
||||
msgstr "فاتورة كرت الغذاء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__meal_expense
|
||||
|
|
@ -7008,6 +7130,7 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__mother_id
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__mother
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
#, python-format
|
||||
msgid "Mother"
|
||||
|
|
@ -7060,9 +7183,9 @@ msgid "MotherFamily Name"
|
|||
msgstr "اسم عائلة الأم"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Moves"
|
||||
msgstr "عناصر اليومية"
|
||||
msgstr "الحركات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_appliances_furniture__my_activity_date_deadline
|
||||
|
|
@ -7122,7 +7245,7 @@ msgstr ""
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_size__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cloth_type__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_committees_line__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_craft_skills__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_donations_type__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_education_classroom__name
|
||||
|
|
@ -7464,6 +7587,8 @@ msgstr "المتوفيين"
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__not_live_with_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__not_live_with_children
|
||||
#, python-format
|
||||
msgid "Not live with children"
|
||||
msgstr "لا تسكن مع الأطفال"
|
||||
|
|
@ -7886,6 +8011,11 @@ msgstr ""
|
|||
msgid "Payment Collection"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__payment_method_id
|
||||
msgid "Payment Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__payment_token_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__payment_token_ids
|
||||
|
|
@ -7896,16 +8026,15 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__payment_method_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_wizard__payment_method_id
|
||||
msgid "Payment Type"
|
||||
msgstr "نوع الدفع"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_expense_move_wiz.py:0
|
||||
#: code:addons/odex_benefit/wizards/family_expense_move_wiz.py:0
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "Payment method is not configured for the selected journal."
|
||||
msgstr "برجاء اختيار انواع الدفع فى اليومية"
|
||||
msgstr "يجب اختيار طريقة الدفع لليومية المحددة."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_account_payment
|
||||
|
|
@ -8000,10 +8129,16 @@ msgid "Please Upload More Than One Image"
|
|||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/family_expense_move_wiz.py:0
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "Please configure the expense accounts in the validation settings."
|
||||
msgstr "برجاء تكوين حسابات المصروفات فى اعدادات الاسر"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "Please select at least one family to create an invoice."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__pos_order_ids
|
||||
|
|
@ -8052,6 +8187,8 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__prisoner
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__prisoner
|
||||
#, python-format
|
||||
msgid "Prisoner"
|
||||
msgstr "سجينة"
|
||||
|
|
@ -8505,6 +8642,7 @@ msgstr "المستأجر"
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__replacement_mother
|
||||
#, python-format
|
||||
msgid "Replacement Mother"
|
||||
msgstr "الأم البديلة"
|
||||
|
|
@ -9007,6 +9145,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__single
|
||||
#, python-format
|
||||
msgid "Single"
|
||||
msgstr ""
|
||||
|
|
@ -9028,6 +9167,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__son
|
||||
#, python-format
|
||||
msgid "Son"
|
||||
msgstr "الابن"
|
||||
|
|
@ -9158,6 +9298,7 @@ msgstr "المناطق"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_housing_rooms_items__status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__state
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__state
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__state
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_needs_payment_line__state
|
||||
msgid "Status"
|
||||
|
|
@ -9473,6 +9614,12 @@ msgstr "إيقاف مبدئي"
|
|||
msgid "Temporarily suspended"
|
||||
msgstr "إيقاف مبدئي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#, python-format
|
||||
msgid "The Account number Already Exist!"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#, python-format
|
||||
|
|
@ -9792,7 +9939,7 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__total_family_expenses
|
||||
msgid "Total Family Expenses"
|
||||
msgstr "إجمالي مصاريع الاسرة"
|
||||
msgstr "إجمالي المصروف الشهري للأسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_housing__total_income
|
||||
|
|
@ -9816,9 +9963,14 @@ msgid "Total Invoiced"
|
|||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__total_move_lines
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__total_move_lines
|
||||
msgid "Total Move Lines"
|
||||
msgstr ""
|
||||
msgstr "القيود اليومية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__total_moves
|
||||
msgid "Total Moves"
|
||||
msgstr "الفواتير"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_housing__total_net
|
||||
|
|
@ -10173,6 +10325,12 @@ msgstr "ساري المفعول"
|
|||
msgid "ValidationError"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_expense.py:0
|
||||
#, python-format
|
||||
msgid "Vendor Bills"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__property_stock_supplier
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__property_stock_supplier
|
||||
|
|
@ -10438,6 +10596,9 @@ msgstr ""
|
|||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__widower
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__widower
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__widower
|
||||
#, python-format
|
||||
msgid "Widower"
|
||||
msgstr "ارملة"
|
||||
|
|
@ -10472,6 +10633,8 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__with_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__with_children
|
||||
#, python-format
|
||||
msgid "With Children"
|
||||
msgstr "مع الأطفال"
|
||||
|
|
@ -10484,6 +10647,8 @@ msgstr "مع الأسرة"
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__with_husband_and_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__with_husband_and_children
|
||||
#, python-format
|
||||
msgid "With Husband And Children"
|
||||
msgstr "مع الزوج والأطفال"
|
||||
|
|
@ -11470,7 +11635,6 @@ msgstr ""
|
|||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_black_list_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_final_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_family_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
||||
|
|
@ -11490,6 +11654,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit_need.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__orphans
|
||||
#, python-format
|
||||
msgid "orphans"
|
||||
msgstr "ايتام"
|
||||
|
|
@ -11858,6 +12023,7 @@ msgid "tent"
|
|||
msgstr "مخيم"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:res.groups,comment:odex_benefit.group_benefit_info
|
||||
#: model:res.groups,comment:odex_benefit.group_benefit_manager
|
||||
msgid "the user will be able to approve Beneficiaries requests."
|
||||
msgstr ""
|
||||
|
|
@ -11995,6 +12161,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit_need.py:0
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__widows
|
||||
#, python-format
|
||||
msgid "widows"
|
||||
msgstr "الأرامل"
|
||||
|
|
@ -12040,69 +12207,16 @@ msgstr ""
|
|||
msgid "zkat.line"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__female
|
||||
msgid "أنثى"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__widower
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__widower
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__widower
|
||||
msgid "ارملة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__single
|
||||
msgid "اعزب"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_kanban
|
||||
msgid "الأب:"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__widows
|
||||
msgid "الأرامل"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__mother
|
||||
msgid "الأم"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__replacement_mother
|
||||
msgid "الأم البديلة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_kanban
|
||||
msgid "الأم:"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__son
|
||||
msgid "الابن"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__relation__daughter
|
||||
msgid "الابنة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__mother_marital
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__father_marital
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__marital_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__mother_marital
|
||||
msgid "الحالة الاجتماعية"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_sms_form
|
||||
msgid "الرجاء استخدام هذه المفاتيح لاستخدام في القالب :"
|
||||
|
|
@ -12118,22 +12232,6 @@ msgstr ""
|
|||
msgid "المرشحات"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__orphans
|
||||
msgid "ايتام"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__male
|
||||
msgid "ذكر"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__prisoner
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__prisoner
|
||||
msgid "سجينة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_final_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_refused_reason_wizard_form
|
||||
|
|
@ -12157,58 +12255,3 @@ msgstr ""
|
|||
#, python-format
|
||||
msgid "عفواءً القالب المخصص يتوجب وجود رقم الهوية"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__not_live_with_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__not_live_with_children
|
||||
msgid "لا تسكن مع الأطفال"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__married
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__married
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__married
|
||||
msgid "متزوجة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__dead
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__dead
|
||||
msgid "متوفية"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_category__gender__both
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefits_needs__benefit_type__both
|
||||
msgid "مشترك"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__divorced
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_marital__divorced
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__divorced
|
||||
msgid "مطلقة"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_marital__divorced_from_another_man
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__divorced_from_another_man
|
||||
msgid "مطلقة من رجل اخر"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__with_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__with_children
|
||||
msgid "مع الأطفال"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__mother_location__with_husband_and_children
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_location__with_husband_and_children
|
||||
msgid "مع الزوج والأطفال"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__mother_marital__hanging
|
||||
msgid "معلقة"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -21,4 +21,5 @@ from . import changes_requests
|
|||
from . import education_settings
|
||||
from . import hr_department
|
||||
from . import account_move_line
|
||||
from . import family_expense
|
||||
# from . import res_config_settings
|
||||
|
|
@ -3,4 +3,8 @@ from odoo import models,fields
|
|||
|
||||
class AccountMoveLine(models.Model):
|
||||
_inherit = 'account.move.line'
|
||||
benefit_family_id = fields.Many2one(comodel_name='grant.benefit', string='Benefit Family')
|
||||
family_confirm_id = fields.Many2one(comodel_name='confirm.benefit.expense', string='Benefit Family')
|
||||
|
||||
class AccountMove(models.Model):
|
||||
_inherit = 'account.move'
|
||||
family_confirm_id = fields.Many2one(comodel_name='confirm.benefit.expense', string='Benefit Family')
|
||||
|
|
@ -415,50 +415,20 @@ class GrantBenefitProfile(models.Model):
|
|||
family_monthly_clotting = fields.Float(string="Family Monthly Clotting", compute='_get_family_monthly_values')
|
||||
total_family_expenses = fields.Float(string="Total Family Expenses", compute='_get_family_monthly_values')
|
||||
|
||||
total_move_lines = fields.Integer(string="Total Move Lines", compute='_get_total_move_lines')
|
||||
|
||||
def _get_total_move_lines(self):
|
||||
for rec in self:
|
||||
rec.total_move_lines = self.env['account.move.line'].search_count([
|
||||
('benefit_family_id', '=', rec.id),
|
||||
])
|
||||
|
||||
def action_confirm_benefit(self):
|
||||
"""Open the confirm.benefit.wizard form dynamically."""
|
||||
active_ids = self.env.context.get('active_ids', [])
|
||||
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': 'Confirm Benefit',
|
||||
'res_model': 'confirm.benefit.wizard',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
'context': {'default_benefit_ids': active_ids}, # Pass any context you need to the wizard
|
||||
}
|
||||
|
||||
def action_open_related_move_line_records(self):
|
||||
""" Opens a tree view with related records filtered by a dynamic domain """
|
||||
move_lines = self.env['account.move.line'].search([
|
||||
('benefit_family_id', '=', self.id),
|
||||
]).ids
|
||||
|
||||
return {
|
||||
'name': _('Journal Items'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'account.move.line',
|
||||
'view_mode': 'tree',
|
||||
'view_id': self.env.ref('account.view_move_line_tree_grouped').id,
|
||||
'domain': [('id', 'in', move_lines)],
|
||||
}
|
||||
|
||||
def _get_family_monthly_values(self):
|
||||
validation_setting = self.env["family.validation.setting"].search([], limit=1)
|
||||
for rec in self:
|
||||
total_family_members = rec.benefit_member_count
|
||||
rec.family_monthly_income = total_family_members * validation_setting.cash_expense
|
||||
rec.family_monthly_meals = total_family_members * validation_setting.meal_expense
|
||||
rec.family_monthly_clotting = total_family_members * validation_setting.clothing_expense
|
||||
rec.total_family_expenses = rec.family_monthly_income + rec.family_monthly_meals + rec.family_monthly_clotting
|
||||
if rec.benefit_category_id.id in validation_setting.benefit_category_ids.ids:
|
||||
total_family_members = rec.benefit_member_count
|
||||
rec.family_monthly_income = total_family_members * validation_setting.cash_expense
|
||||
rec.family_monthly_meals = total_family_members * validation_setting.meal_expense
|
||||
rec.family_monthly_clotting = total_family_members * validation_setting.clothing_expense
|
||||
rec.total_family_expenses = rec.family_monthly_income + rec.family_monthly_meals + rec.family_monthly_clotting
|
||||
else:
|
||||
rec.family_monthly_income = 0
|
||||
rec.family_monthly_meals = 0
|
||||
rec.family_monthly_clotting = 0
|
||||
rec.total_family_expenses = 0
|
||||
|
||||
def get_html(self):
|
||||
for rec in self:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,284 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class ConfirmBenefitExpense(models.Model):
|
||||
_name = 'confirm.benefit.expense'
|
||||
_description = 'Confirm Benefit Expense'
|
||||
|
||||
state = fields.Selection([
|
||||
('draft', 'Draft'),
|
||||
('confirm', 'Confirmed'),
|
||||
], string='Status', default='draft', required=True, copy=False)
|
||||
expense_type = fields.Selection([
|
||||
('family_expense', 'Family Expense'),
|
||||
('family_invoice', 'Meal Card Invoice'),
|
||||
], string='Expense Type', default='family_expense', required=True, states={'confirm': [('readonly', True)]})
|
||||
journal_id = fields.Many2one(comodel_name='account.journal', string="Journal", required=True,
|
||||
states={'confirm': [('readonly', True)]}, copy=False)
|
||||
|
||||
name = fields.Char(string="Name", states={'confirm': [('readonly', True)]}, copy=False)
|
||||
date = fields.Date(string="Date", default=fields.Date.context_today, required=True,
|
||||
states={'confirm': [('readonly', True)]})
|
||||
|
||||
family_ids = fields.Many2many(comodel_name='grant.benefit', relation='benefit_expense_grant_rel',
|
||||
column1='expense_id',
|
||||
column2='family_id', string='Families', states={'confirm': [('readonly', True)]},
|
||||
copy=False)
|
||||
|
||||
cash_expense = fields.Boolean(string='Include Cash Expense', states={'confirm': [('readonly', True)]})
|
||||
meal_expense = fields.Boolean(string='Include Meal Expense', states={'confirm': [('readonly', True)]})
|
||||
cloth_expense = fields.Boolean(string='Include Clothing Expense', states={'confirm': [('readonly', True)]})
|
||||
|
||||
payment_method_id = fields.Many2one('account.payment.method.line', string='Payment Method',
|
||||
readonly=False, store=True, copy=False,
|
||||
states={'confirm': [('readonly', True)]},
|
||||
compute='_compute_payment_method_line_id',
|
||||
domain="[('id', 'in', available_payment_method_line_ids)]",
|
||||
help="Manual: Pay or Get paid by any method outside of Odoo.\n"
|
||||
"Payment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online.\n"
|
||||
"Check: Pay bills by check and print it from Odoo.\n"
|
||||
"Batch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary.\n"
|
||||
"SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n"
|
||||
"SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n")
|
||||
available_payment_method_line_ids = fields.Many2many('account.payment.method.line',
|
||||
compute='_compute_payment_method_line_fields')
|
||||
total_move_lines = fields.Integer(string="Total Move Lines", compute='_get_total_move_lines')
|
||||
total_moves = fields.Integer(string="Total Moves", compute='_get_total_move_lines')
|
||||
|
||||
@api.constrains('expense_type', 'cash_expense', 'meal_expense', 'cloth_expense')
|
||||
def _constraint_check_at_least_one_expense(self):
|
||||
for rec in self:
|
||||
if rec.expense_type == 'family_expense':
|
||||
if not rec.cash_expense and not rec.meal_expense and not rec.cloth_expense:
|
||||
raise UserError(_("At least one expense type should be selected."))
|
||||
|
||||
def _get_total_move_lines(self):
|
||||
for rec in self:
|
||||
rec.total_move_lines = self.env['account.move.line'].search_count([
|
||||
('family_confirm_id', '=', rec.id),
|
||||
])
|
||||
rec.total_moves = self.env['account.move'].search_count([
|
||||
('family_confirm_id', '=', rec.id),
|
||||
])
|
||||
|
||||
def action_open_related_move_line_records(self):
|
||||
""" Opens a tree view with related records filtered by a dynamic domain """
|
||||
move_lines = self.env['account.move.line'].search([
|
||||
('family_confirm_id', '=', self.id),
|
||||
]).ids
|
||||
|
||||
return {
|
||||
'name': _('Journal Items'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'account.move.line',
|
||||
'view_mode': 'tree',
|
||||
'view_id': self.env.ref('account.view_move_line_tree_grouped').id,
|
||||
'domain': [('id', 'in', move_lines)],
|
||||
}
|
||||
|
||||
def action_open_related_move_records(self):
|
||||
""" Opens a tree view with related records filtered by a dynamic domain """
|
||||
move_lines = self.env['account.move'].search([
|
||||
('family_confirm_id', '=', self.id),
|
||||
]).ids
|
||||
|
||||
return {
|
||||
'name': _('Vendor Bills'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'account.move',
|
||||
'view_mode': 'tree',
|
||||
'view_id': self.env.ref('account.view_in_invoice_tree').id,
|
||||
'domain': [('id', 'in', move_lines)],
|
||||
}
|
||||
|
||||
@api.depends('available_payment_method_line_ids')
|
||||
def _compute_payment_method_line_id(self):
|
||||
''' Compute the 'payment_method_line_id' field.
|
||||
This field is not computed in '_compute_payment_method_line_fields' because it's a stored editable one.
|
||||
'''
|
||||
for pay in self:
|
||||
available_payment_method_lines = pay.available_payment_method_line_ids
|
||||
|
||||
# Select the first available one by default.
|
||||
if pay.payment_method_id in available_payment_method_lines:
|
||||
pay.payment_method_id = pay.payment_method_id
|
||||
elif available_payment_method_lines:
|
||||
pay.payment_method_id = available_payment_method_lines[0]._origin
|
||||
else:
|
||||
pay.payment_method_id = False
|
||||
|
||||
@api.depends('journal_id')
|
||||
def _compute_payment_method_line_fields(self):
|
||||
for pay in self:
|
||||
pay.available_payment_method_line_ids = pay.journal_id._get_available_payment_method_lines('outbound')
|
||||
|
||||
@api.onchange('expense_type', 'date')
|
||||
def _onchange_expense_type(self):
|
||||
"""Ensure that families can only be added to one expense type per month."""
|
||||
if self.expense_type == 'family_expense':
|
||||
journal_domain = [('type', 'in', ['bank', 'cash'])]
|
||||
elif self.expense_type == 'family_invoice':
|
||||
journal_domain = [('type', 'in', ['purchase'])]
|
||||
else:
|
||||
journal_domain = []
|
||||
|
||||
if self.date:
|
||||
month_ago = self.date - relativedelta(months=1)
|
||||
# Search for records of the same expense_type within the last month
|
||||
conflicting_records = self.search([
|
||||
('date', '>=', month_ago),
|
||||
('date', '<=', self.date),
|
||||
('expense_type', '=', self.expense_type),
|
||||
])
|
||||
|
||||
if conflicting_records:
|
||||
# Collect the family IDs that are already in records of the same expense type within the past month
|
||||
conflicting_family_ids = conflicting_records.mapped('family_ids').ids
|
||||
|
||||
return {
|
||||
'domain': {
|
||||
'family_ids': [('id', 'not in', conflicting_family_ids),
|
||||
('state', 'in', ('second_approve', 'temporarily_suspend', 'suspend'))],
|
||||
'journal_id': journal_domain,
|
||||
}
|
||||
}
|
||||
else:
|
||||
# No conflicting records found; no restrictions on family selection
|
||||
return {
|
||||
'domain': {
|
||||
'family_ids': [('state', 'in', ('second_approve', 'temporarily_suspend', 'suspend'))],
|
||||
'journal_id': journal_domain,
|
||||
}
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'domain': {
|
||||
'family_ids': [('state', 'in', ('second_approve', 'temporarily_suspend', 'suspend'))],
|
||||
'journal_id': journal_domain,
|
||||
}
|
||||
}
|
||||
|
||||
def action_confirm_selected(self):
|
||||
for rec in self:
|
||||
if rec.expense_type == 'family_expense':
|
||||
benefits = rec.family_ids
|
||||
|
||||
if any(benefit.state not in ('second_approve', 'temporarily_suspend', 'suspend') for benefit in
|
||||
benefits):
|
||||
raise UserError(_("All selected benefits should be either state of "
|
||||
"'second_approve','temporarily_suspend','suspend' state."))
|
||||
|
||||
validation_setting = self.env["family.validation.setting"].search([], limit=1)
|
||||
|
||||
payment_method_line = rec.payment_method_id
|
||||
|
||||
if not validation_setting.cash_expense_account_id or not validation_setting.meal_expense_account_id or not validation_setting.clothing_expense_account_id:
|
||||
raise UserError(_("Please configure the expense accounts in the validation settings."))
|
||||
if not payment_method_line:
|
||||
raise UserError(_("Payment method is not configured for the selected journal."))
|
||||
|
||||
credit_account_id = payment_method_line.payment_account_id.id
|
||||
|
||||
if not credit_account_id:
|
||||
raise UserError(_("Payment method is not configured for the selected journal."))
|
||||
|
||||
if benefits:
|
||||
lines = []
|
||||
for benefit in benefits:
|
||||
lines += rec._prepare_entry_lines(benefit, validation_setting, credit_account_id)
|
||||
|
||||
rec.create_entry(rec.journal_id.id, lines)
|
||||
else:
|
||||
if not rec.family_ids:
|
||||
raise UserError(_("Please select at least one family to create an invoice."))
|
||||
validation_setting = self.env["family.validation.setting"].search([], limit=1)
|
||||
account_id = validation_setting.meal_expense_account_id
|
||||
invoice_lines = []
|
||||
for family in rec.family_ids:
|
||||
invoice_lines.append((0, 0, {
|
||||
'name': f'{family.name}/{family.code}', # Family name as the description
|
||||
'account_id': account_id.id, # The same account for all lines
|
||||
'quantity': 1, # Qty is 1
|
||||
'price_unit': family.family_monthly_meals, # Amount is 1
|
||||
'analytic_account_id': family.branch_id.analytic_account_id.id, # The same analytic account
|
||||
}))
|
||||
|
||||
# Create the invoice
|
||||
invoice_vals = {
|
||||
'move_type': 'in_invoice', # Set this to 'in_invoice' if it's a vendor bill
|
||||
'partner_id': validation_setting.meal_partner_id.id, # The partner for the invoice
|
||||
'invoice_date': rec.date, # The date of the invoice
|
||||
'family_confirm_id': rec.id, # Link to the family expense record
|
||||
'journal_id': rec.journal_id.id, # The journal for the invoice
|
||||
'invoice_line_ids': invoice_lines, # The invoice lines
|
||||
'ref': rec.name, # The reference for the invoice
|
||||
}
|
||||
|
||||
self.env['account.move'].create(invoice_vals)
|
||||
rec.state = 'confirm'
|
||||
|
||||
return True
|
||||
|
||||
def _prepare_entry_lines(self, benefit, validation_setting, credit_account_id):
|
||||
"""Prepare debit and credit lines for a benefit"""
|
||||
entry_lines = []
|
||||
|
||||
expense_types = [
|
||||
('meal', 'family_monthly_meals', validation_setting.meal_expense_account_id.id),
|
||||
('cash', 'family_monthly_income', validation_setting.cash_expense_account_id.id),
|
||||
('clothing', 'family_monthly_clotting', validation_setting.clothing_expense_account_id.id),
|
||||
]
|
||||
|
||||
for expense_type, field, debit_account_id in expense_types:
|
||||
amount = getattr(benefit, field, 0.0)
|
||||
if benefit.district_id.meal_card and expense_type == 'meal' and not self.meal_expense:
|
||||
continue
|
||||
if not self.cash_expense and expense_type == 'cash':
|
||||
continue
|
||||
if not self.cloth_expense and expense_type == 'clothing':
|
||||
continue
|
||||
if amount:
|
||||
name = _("Family Expense - %s") % expense_type
|
||||
entry_lines.append(self._create_debit_line(benefit, debit_account_id, amount, name))
|
||||
entry_lines.append(self._create_credit_line(benefit, credit_account_id, amount, name))
|
||||
|
||||
return entry_lines
|
||||
|
||||
def _create_debit_line(self, benefit, account_id, amount, name):
|
||||
"""Create a debit line"""
|
||||
return (0, 0, {
|
||||
'name': name,
|
||||
'family_confirm_id': self.id,
|
||||
'partner_id': benefit.partner_id.id,
|
||||
'analytic_account_id': benefit.branch_id.analytic_account_id.id,
|
||||
'account_id': account_id,
|
||||
'debit': amount,
|
||||
'credit': 0.0,
|
||||
})
|
||||
|
||||
def _create_credit_line(self, benefit, account_id, amount, name):
|
||||
"""Create a credit line"""
|
||||
return (0, 0, {
|
||||
'name': name,
|
||||
'family_confirm_id': self.id,
|
||||
'partner_id': benefit.partner_id.id,
|
||||
'analytic_account_id': benefit.branch_id.analytic_account_id.id,
|
||||
'account_id': account_id,
|
||||
'debit': 0.0,
|
||||
'credit': amount,
|
||||
})
|
||||
|
||||
def create_entry(self, journal_id, lines):
|
||||
"""Create an account move entry"""
|
||||
move_vals = {
|
||||
'journal_id': journal_id,
|
||||
'date': self.date,
|
||||
'ref': self.name,
|
||||
'line_ids': lines,
|
||||
}
|
||||
self.env['account.move'].create(move_vals)
|
||||
return True
|
||||
|
|
@ -107,4 +107,4 @@ access_education_result,access_education_result,model_education_result,,1,1,1,1
|
|||
access_study_material,access_study_material,model_study_material,,1,1,1,1
|
||||
access_suspend_reason,access_suspend_reason,model_suspend_reason,,1,1,1,1
|
||||
access_suspend_reason_wizard,access_suspend_reason_wizard,model_suspend_reason_wizard,,1,1,1,1
|
||||
access_confirm_benefit_wizard,access_confirm_benefit_wizard,model_confirm_benefit_wizard,base.group_user,1,1,1,1
|
||||
access_confirm_benefit_expense,access_confirm_benefit_expense,model_confirm_benefit_expense,base.group_user,1,1,1,1
|
||||
|
|
|
@ -146,9 +146,7 @@
|
|||
<button icon="fa-usd">
|
||||
<field name="total_expenses" string="Total Expenses" widget="statinfo"/>
|
||||
</button>
|
||||
<button icon="fa-usd" name="action_open_related_move_line_records">
|
||||
<field name="total_move_lines" string="Moves" widget="statinfo"/>
|
||||
</button>
|
||||
|
||||
<button icon="fa-usd">
|
||||
<field name="total_income" string="Total Income" widget="statinfo"/>
|
||||
</button>
|
||||
|
|
@ -1086,17 +1084,5 @@
|
|||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_confirm_benefit_from_list" model="ir.actions.server">
|
||||
<field name="name">Create Move</field>
|
||||
<field name="model_id" ref="model_grant_benefit"/>
|
||||
<field name="binding_model_id" ref="model_grant_benefit"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
if records:
|
||||
action = records.action_confirm_benefit()
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- Tree View -->
|
||||
<record id="view_confirm_benefit_expense_tree" model="ir.ui.view">
|
||||
<field name="name">confirm.benefit.expense.tree</field>
|
||||
<field name="model">confirm.benefit.expense</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="expense_type"/>
|
||||
<field name="date"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Form View -->
|
||||
<record id="view_confirm_benefit_expense_form" model="ir.ui.view">
|
||||
<field name="name">confirm.benefit.expense.form</field>
|
||||
<field name="model">confirm.benefit.expense</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Confirm Benefit Expense">
|
||||
<header>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
|
||||
<button string="Confirm" type="object" name="action_confirm_selected" class="oe_highlight"
|
||||
states="draft"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button icon="fa-usd" name="action_open_related_move_line_records" type="object"
|
||||
attrs="{'invisible':[('expense_type','!=','family_expense')]}">
|
||||
<field name="total_move_lines" string="Moves" widget="statinfo"/>
|
||||
</button>
|
||||
<button icon="fa-usd" name="action_open_related_move_records" type="object"
|
||||
attrs="{'invisible':[('expense_type','!=','family_invoice')]}">
|
||||
<field name="total_moves" string="Invoices" widget="statinfo"/>
|
||||
</button>
|
||||
</div>
|
||||
<group>
|
||||
<field name="expense_type" required="1"/>
|
||||
<field name="journal_id" required="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
<field name="date" required="1"/>
|
||||
</group>
|
||||
|
||||
<!-- Conditional fields based on expense_type -->
|
||||
<group>
|
||||
<field name="available_payment_method_line_ids" invisible="1"/>
|
||||
<field name="payment_method_id"
|
||||
attrs="{'invisible': [('expense_type', '=', 'family_invoice')], 'required': [('expense_type', '=', 'family_expense')]}"/>
|
||||
<field name="cash_expense"
|
||||
attrs="{'invisible': [('expense_type', '=', 'family_invoice')]}"/>
|
||||
<field name="meal_expense"
|
||||
attrs="{'invisible': [('expense_type', '=', 'family_invoice')]}"/>
|
||||
<field name="cloth_expense"
|
||||
attrs="{'invisible': [('expense_type', '=', 'family_invoice')]}"/>
|
||||
</group>
|
||||
|
||||
<!-- Notebook with Families page -->
|
||||
<notebook>
|
||||
<page string="Families">
|
||||
<field name="family_ids"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action -->
|
||||
<record id="action_confirm_benefit_expense" model="ir.actions.act_window">
|
||||
<field name="name">Confirm Benefit Expenses</field>
|
||||
<field name="res_model">confirm.benefit.expense</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_confirm_benefit_expense_tree"/>
|
||||
</record>
|
||||
|
||||
<!-- Menu Item -->
|
||||
<menuitem id="menu_confirm_benefit_expense" name="Benefit Expense Flow" parent="odex_benefit.benefit_main_menu"
|
||||
action="action_confirm_benefit_expense" sequence="10"/>
|
||||
</odoo>
|
||||
|
|
@ -3,5 +3,4 @@ from . import entity_refused_wizard
|
|||
from . import entity_black_list_wizard
|
||||
from . import researcher_wizard
|
||||
from . import suspend_reason_wizard
|
||||
from . import family_expense_move_wiz
|
||||
|
||||
|
|
|
|||
|
|
@ -1,102 +0,0 @@
|
|||
from datetime import date
|
||||
|
||||
from odoo import models, fields, _
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class ConfirmBenefitWizard(models.TransientModel):
|
||||
_name = 'confirm.benefit.wizard'
|
||||
_description = 'Confirm Benefit Wizard'
|
||||
|
||||
journal_id = fields.Many2one(comodel_name='account.journal', string="Journal", required=True)
|
||||
payment_method_id = fields.Many2one(comodel_name='account.payment.method', string='Payment Type', required=True)
|
||||
|
||||
name = fields.Char(string="Name", default=lambda self: "Family Expense -%s" % date.today())
|
||||
date = fields.Date(string="Date", default=fields.Date.context_today, required=True)
|
||||
|
||||
def action_confirm_selected(self):
|
||||
active_ids = self.env.context.get('default_benefit_ids', [])
|
||||
benefits = self.env['grant.benefit'].browse(active_ids)
|
||||
|
||||
if any(benefit.state not in ('second_approve', 'temporarily_suspend', 'suspend') for benefit in benefits):
|
||||
raise UserError(_("All selected benefits should be either state of "
|
||||
"'second_approve','temporarily_suspend','suspend' state."))
|
||||
|
||||
validation_setting = self.env["family.validation.setting"].search([], limit=1)
|
||||
|
||||
payment_method_line = self.env['account.payment.method.line'].search(
|
||||
[('payment_method_id', '=', self.payment_method_id.id)], limit=1)
|
||||
|
||||
if not validation_setting.cash_expense_account_id or not validation_setting.meal_expense_account_id or not validation_setting.clothing_expense_account_id:
|
||||
raise UserError(_("Please configure the expense accounts in the validation settings."))
|
||||
if not payment_method_line:
|
||||
raise UserError(_("Payment method is not configured for the selected journal."))
|
||||
|
||||
credit_account_id = payment_method_line.payment_account_id.id
|
||||
|
||||
if not credit_account_id:
|
||||
raise UserError(_("Payment method is not configured for the selected journal."))
|
||||
|
||||
if benefits:
|
||||
lines = []
|
||||
for benefit in benefits:
|
||||
lines += self._prepare_entry_lines(benefit, validation_setting, credit_account_id)
|
||||
|
||||
self.create_entry(self.journal_id.id, lines)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
def _prepare_entry_lines(self, benefit, validation_setting, credit_account_id):
|
||||
"""Prepare debit and credit lines for a benefit"""
|
||||
entry_lines = []
|
||||
|
||||
expense_types = [
|
||||
('meal', 'family_monthly_meals', validation_setting.meal_expense_account_id.id),
|
||||
('cash', 'family_monthly_income', validation_setting.cash_expense_account_id.id),
|
||||
('clothing', 'family_monthly_clotting', validation_setting.clothing_expense_account_id.id),
|
||||
]
|
||||
|
||||
for expense_type, field, debit_account_id in expense_types:
|
||||
amount = getattr(benefit, field, 0.0)
|
||||
if benefit.district_id.meal_card and expense_type == 'meal':
|
||||
continue
|
||||
if amount:
|
||||
name = _("Family Expense - %s") % expense_type
|
||||
entry_lines.append(self._create_debit_line(benefit, debit_account_id, amount, name))
|
||||
entry_lines.append(self._create_credit_line(benefit, credit_account_id, amount, name))
|
||||
|
||||
return entry_lines
|
||||
|
||||
def _create_debit_line(self, benefit, account_id, amount, name):
|
||||
"""Create a debit line"""
|
||||
return (0, 0, {
|
||||
'name': name,
|
||||
'benefit_family_id': benefit.id,
|
||||
'partner_id': benefit.partner_id.id,
|
||||
'analytic_account_id': benefit.branch_id.analytic_account_id.id,
|
||||
'account_id': account_id,
|
||||
'debit': amount,
|
||||
'credit': 0.0,
|
||||
})
|
||||
|
||||
def _create_credit_line(self, benefit, account_id, amount, name):
|
||||
"""Create a credit line"""
|
||||
return (0, 0, {
|
||||
'name': name,
|
||||
'benefit_family_id': benefit.id,
|
||||
'partner_id': benefit.partner_id.id,
|
||||
'analytic_account_id': benefit.branch_id.analytic_account_id.id,
|
||||
'account_id': account_id,
|
||||
'debit': 0.0,
|
||||
'credit': amount,
|
||||
})
|
||||
|
||||
def create_entry(self, journal_id, lines):
|
||||
"""Create an account move entry"""
|
||||
move_vals = {
|
||||
'journal_id': journal_id,
|
||||
'date': self.date,
|
||||
'ref': self.name,
|
||||
'line_ids': lines,
|
||||
}
|
||||
self.env['account.move'].create(move_vals)
|
||||
return True
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="view_confirm_benefit_wizard_form" model="ir.ui.view">
|
||||
<field name="name">confirm.benefit.wizard.form</field>
|
||||
<field name="model">confirm.benefit.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Confirm Benefit">
|
||||
<group>
|
||||
<field name="journal_id" required="1"/>
|
||||
<field name="payment_method_id" required="1"/>
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="date" required="1"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button string="Confirm" type="object" name="action_confirm_selected" class="oe_highlight"/>
|
||||
<button string="Cancel" class="btn-default" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Reference in New Issue