From a65d083e918839890a6f1b5dcd4d95e6f2436b77 Mon Sep 17 00:00:00 2001 From: ronozoro Date: Mon, 16 Sep 2024 04:33:58 -0700 Subject: [PATCH] add new expense flow --- odex25_ensan/odex_benefit/__manifest__.py | 2 +- odex25_ensan/odex_benefit/i18n/ar_001.po | 403 ++++++++++-------- odex25_ensan/odex_benefit/models/__init__.py | 1 + .../odex_benefit/models/account_move_line.py | 6 +- odex25_ensan/odex_benefit/models/benefit.py | 52 +-- .../odex_benefit/models/family_expense.py | 284 ++++++++++++ .../odex_benefit/security/ir.model.access.csv | 2 +- .../odex_benefit/views/benefit_view.xml | 16 +- .../views/family_expense_view.xml | 83 ++++ odex25_ensan/odex_benefit/wizards/__init__.py | 1 - .../wizards/family_expense_move_wiz.py | 102 ----- .../wizards/family_expense_move_wiz_view.xml | 21 - 12 files changed, 610 insertions(+), 363 deletions(-) create mode 100644 odex25_ensan/odex_benefit/models/family_expense.py create mode 100644 odex25_ensan/odex_benefit/views/family_expense_view.xml delete mode 100644 odex25_ensan/odex_benefit/wizards/family_expense_move_wiz.py delete mode 100644 odex25_ensan/odex_benefit/wizards/family_expense_move_wiz_view.xml diff --git a/odex25_ensan/odex_benefit/__manifest__.py b/odex25_ensan/odex_benefit/__manifest__.py index 6a14f78a1..9be530076 100644 --- a/odex25_ensan/odex_benefit/__manifest__.py +++ b/odex25_ensan/odex_benefit/__manifest__.py @@ -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'], diff --git a/odex25_ensan/odex_benefit/i18n/ar_001.po b/odex25_ensan/odex_benefit/i18n/ar_001.po index 3a1186132..404f03ebb 100644 --- a/odex25_ensan/odex_benefit/i18n/ar_001.po +++ b/odex25_ensan/odex_benefit/i18n/ar_001.po @@ -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 "" diff --git a/odex25_ensan/odex_benefit/models/__init__.py b/odex25_ensan/odex_benefit/models/__init__.py index d917eb00d..29b6f05c7 100644 --- a/odex25_ensan/odex_benefit/models/__init__.py +++ b/odex25_ensan/odex_benefit/models/__init__.py @@ -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 \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/models/account_move_line.py b/odex25_ensan/odex_benefit/models/account_move_line.py index a0d332f50..440112f46 100644 --- a/odex25_ensan/odex_benefit/models/account_move_line.py +++ b/odex25_ensan/odex_benefit/models/account_move_line.py @@ -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') \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/models/benefit.py b/odex25_ensan/odex_benefit/models/benefit.py index d4923edf7..0126d2cbc 100644 --- a/odex25_ensan/odex_benefit/models/benefit.py +++ b/odex25_ensan/odex_benefit/models/benefit.py @@ -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: diff --git a/odex25_ensan/odex_benefit/models/family_expense.py b/odex25_ensan/odex_benefit/models/family_expense.py new file mode 100644 index 000000000..191128844 --- /dev/null +++ b/odex25_ensan/odex_benefit/models/family_expense.py @@ -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 diff --git a/odex25_ensan/odex_benefit/security/ir.model.access.csv b/odex25_ensan/odex_benefit/security/ir.model.access.csv index 3ca55e1be..c2b3c24b6 100644 --- a/odex25_ensan/odex_benefit/security/ir.model.access.csv +++ b/odex25_ensan/odex_benefit/security/ir.model.access.csv @@ -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 \ No newline at end of file +access_confirm_benefit_expense,access_confirm_benefit_expense,model_confirm_benefit_expense,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/views/benefit_view.xml b/odex25_ensan/odex_benefit/views/benefit_view.xml index ff9ecb0f1..e022d4548 100644 --- a/odex25_ensan/odex_benefit/views/benefit_view.xml +++ b/odex25_ensan/odex_benefit/views/benefit_view.xml @@ -146,9 +146,7 @@ - + @@ -1086,17 +1084,5 @@ - - - Create Move - - - code - - if records: - action = records.action_confirm_benefit() - - - diff --git a/odex25_ensan/odex_benefit/views/family_expense_view.xml b/odex25_ensan/odex_benefit/views/family_expense_view.xml new file mode 100644 index 000000000..5df520a13 --- /dev/null +++ b/odex25_ensan/odex_benefit/views/family_expense_view.xml @@ -0,0 +1,83 @@ + + + + + confirm.benefit.expense.tree + confirm.benefit.expense + + + + + + + + + + + + + confirm.benefit.expense.form + confirm.benefit.expense + +
+
+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + Confirm Benefit Expenses + confirm.benefit.expense + tree,form + + + + + +
diff --git a/odex25_ensan/odex_benefit/wizards/__init__.py b/odex25_ensan/odex_benefit/wizards/__init__.py index cc8134d4a..c55b110f0 100644 --- a/odex25_ensan/odex_benefit/wizards/__init__.py +++ b/odex25_ensan/odex_benefit/wizards/__init__.py @@ -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 diff --git a/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz.py b/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz.py deleted file mode 100644 index 21bab9557..000000000 --- a/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz.py +++ /dev/null @@ -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 diff --git a/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz_view.xml b/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz_view.xml deleted file mode 100644 index 4f71c8ce4..000000000 --- a/odex25_ensan/odex_benefit/wizards/family_expense_move_wiz_view.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - confirm.benefit.wizard.form - confirm.benefit.wizard - -
- - - - - - - -
-
-
-