IMP benefit

This commit is contained in:
younes 2025-09-02 15:50:10 +01:00
parent 0b33f49cbb
commit 579c3a9387
9 changed files with 224 additions and 90 deletions

View File

@ -61,6 +61,7 @@
'wizards/service_refuse_reason_wizard.xml',
'wizards/reason_for_return_wizard.xml',
'wizards/visit_location_otp_wizard_view.xml',
'views/benefit_vehicle_model.xml',
'views/actions_and_menus.xml',
],
'external_dependencies': {

View File

@ -7924,6 +7924,7 @@ msgstr "الاجتماعات"
#: model:ir.model.fields,field_description:odex_benefit.field_exception_wizard__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__member_ids
#: model:ir.model.fields,field_description:odex_benefit.field_ir_attachment__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_member_disabilities__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_member_diseases__member_id
#: model:ir.model.fields,field_description:odex_benefit.field_member_hobbies__member_id
@ -8410,6 +8411,7 @@ msgstr "نهاية الوقت المعين للنشاط"
#: model:ir.model.fields,field_description:odex_benefit.field_receive_food_surplus__name
#: model:ir.model.fields,field_description:odex_benefit.field_res_city__name
#: model:ir.model.fields,field_description:odex_benefit.field_res_country_city__name
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_vehicle_model__name
#: model:ir.model.fields,field_description:odex_benefit.field_res_districts__name
#: model:ir.model.fields,field_description:odex_benefit.field_rooms_categories__name
#: model:ir.model.fields,field_description:odex_benefit.field_rooms_items__name
@ -8427,6 +8429,7 @@ msgstr "نهاية الوقت المعين للنشاط"
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_benefit_category_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_benefit_housing_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_vehicle_model_form_view
msgid "Name"
msgstr "الاسم"
@ -15148,4 +15151,49 @@ msgstr "هل لديه إعاقة؟"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Basic Information"
msgstr "المعلومات الأساسية"
msgstr "المعلومات الأساسية"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.benefit_vehicle_model_action
#: model:ir.model,name:odex_benefit.model_benefit_vehicle_model
#: model:ir.ui.menu,name:odex_benefit.benefit_vehicle_model_menu
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_vehicle_model_form_view
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_vehicle_model_tree
msgid "Vehicle Model"
msgstr "موديل المركبات"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit_vehicle_model.py:0
#: model:ir.model.constraint,message:odex_benefit.constraint_benefit_vehicle_model_name_unique
#, python-format
msgid "The name must be unique."
msgstr "يجب أن يكون اسم الموديل فريداً."
#. module: odex_benefit
#: model_terms:ir.actions.act_window,help:odex_benefit.benefit_vehicle_model_action
msgid "Create the First Vehicle Model"
msgstr "إنشاء أول موديل للمركبات"
#. module: odex_benefit
#: model:ir.ui.menu,name:odex_benefit.benefit_vehicle_model_settings_menu
msgid "Vehicle Settings"
msgstr "إعدادات المركبات"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__application_form
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__application_form_filename
msgid "Application Form"
msgstr "الاستمارة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__driving_license
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__driving_license_filename
msgid "Driving License"
msgstr "رخصة القيادة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__owner_identity
#: model:ir.model.fields,field_description:odex_benefit.field_cars_line__owner_identity_filename
msgid "Owner Identity"
msgstr "هوية المالك"

View File

@ -36,4 +36,5 @@ from . import seasonal_service
from . import res_users
from . import res_partner
from . import job_settings
from . import death_reason_settings
from . import death_reason_settings
from . import benefit_vehicle_model

View File

@ -591,15 +591,22 @@ class Cars(models.Model):
name = fields.Char()
benefit_id = fields.Many2one('grant.benefit')
car_model = fields.Char()
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',benefit_id)]", string="Member")
car_model = fields.Many2one('benefit.vehicle.model', ondelete='restrict')
status = fields.Selection(
string='',
selection=[('good', 'Good'),
('bad', 'bad'), ],
required=False, ) # TODO
image_1 = fields.Binary(string="", )
image_2 = fields.Binary(string="", )
image_3 = fields.Binary(string="", )
application_form = fields.Binary(string="Application Form", attachment=True)
application_form_filename = fields.Char(string="Application Form")
driving_license = fields.Binary(string="Driving License", attachment=True)
driving_license_filename = fields.Char(string="Driving License")
owner_identity = fields.Binary(string="Owner Identity", attachment=True)
owner_identity_filename = fields.Char(string="Owner Identity")
class TrainingType(models.Model):

View File

@ -0,0 +1,14 @@
from odoo import fields, models,api,_
from odoo.exceptions import UserError, ValidationError
class BenefitVehicleModel(models.Model):
_name = 'benefit.vehicle.model'
_description = "Vehicle Model"
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string="Name", required=True, tracking=True)
active = fields.Boolean(default=True)
_sql_constraints = [
("name_unique", "unique(name)", _("The name must be unique.")),
]

View File

@ -158,4 +158,5 @@ access_death_reason_settings,access_death_reason_settings,model_death_reason_set
access_death_reason_settings_manager,access_death_reason_settings.manager,model_death_reason_settings,odex_benefit.group_benefit_manager,1,1,1,1
access_grant_benefit_portal_user,access_grant_benefit_portal_user,model_grant_benefit,base.group_portal,1,1,1,1
access_visit_location_otp_wizard,access_visit_location_otp_wizard,model_visit_location_otp_wizard,,1,1,1,1
access_visit_skip_otp_wizard,access_visit_skip_otp_wizard,model_visit_skip_otp_wizard,,1,1,1,1
access_visit_skip_otp_wizard,access_visit_skip_otp_wizard,model_visit_skip_otp_wizard,,1,1,1,1
access_benefit_vehicle_model,access_benefit_vehicle_model,model_benefit_vehicle_model,,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
158 access_death_reason_settings_manager access_death_reason_settings.manager model_death_reason_settings odex_benefit.group_benefit_manager 1 1 1 1
159 access_grant_benefit_portal_user access_grant_benefit_portal_user model_grant_benefit base.group_portal 1 1 1 1
160 access_visit_location_otp_wizard access_visit_location_otp_wizard model_visit_location_otp_wizard 1 1 1 1
161 access_visit_skip_otp_wizard access_visit_skip_otp_wizard model_visit_skip_otp_wizard 1 1 1 1
162 access_benefit_vehicle_model access_benefit_vehicle_model model_benefit_vehicle_model 1 1 1 1

View File

@ -333,6 +333,15 @@
</p>
</field>
</record>
<record model="ir.actions.act_window" id="benefit_vehicle_model_action">
<field name="name">Vehicle Model</field>
<field name="res_model">benefit.vehicle.model</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create the First Vehicle Model</p>
</field>
</record>
<!-- Attachments Settings Action -->
<record model="ir.actions.act_window" id="attachments_settings_action">
<field name="name">Attachments Settings</field>
@ -787,6 +796,9 @@
<!-- <menuitem id="benefit_black_list_menu" name="Beneficiaries Black List" sequence="5"-->
<!-- parent="benefit_main_menu" action="grant_benefit_black_list_action"/>-->
<!--<===============================================================================>-->
<!--benefit vehicle model-->
<menuitem id="benefit_vehicle_model_settings_menu" name="Vehicle Settings" parent="odex_benefit.benefit_tools" sequence="4"/>
<menuitem id='benefit_vehicle_model_menu' name='Vehicle Model' parent='benefit_vehicle_model_settings_menu' action="benefit_vehicle_model_action" sequence="1"/>
<!--social search-->
<!--اللجان-->
<menuitem id="social_search_settings_menu" name="Social Search Settings" parent="odex_benefit.benefit_tools" sequence="4"/>

View File

@ -0,0 +1,44 @@
<odoo>
<data>
<record id="benefit_vehicle_model_form_view" model="ir.ui.view">
<field name="name">benefit.vehicle.model.form</field>
<field name="model">benefit.vehicle.model</field>
<field name="arch" type="xml">
<form string="Vehicle Model">
<sheet>
<div class="oe_title">
<h1>
<h1>
<field placeholder="Name" name="name"/>
</h1>
</h1>
</div>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<record id="benefit_vehicle_model_tree" model="ir.ui.view">
<field name="name">benefit.vehicle.model.tree</field>
<field name="model">benefit.vehicle.model</field>
<field name="arch" type="xml">
<tree string="Vehicle Model">
<field name="name"/>
</tree>
</field>
</record>
<record id="benefit_vehicle_model_search_view" model="ir.ui.view">
<field name="name">benefit.vehicle.model.search</field>
<field name="model">benefit.vehicle.model</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
</search>
</field>
</record>
</data>
</odoo>

View File

@ -741,7 +741,8 @@
<field name="member_education_status_ids" mode="tree,form"/>
</page>
<page string="Attachments">
<field name="attachment_ids" widget="one2many_list" mode="tree" options="{'no_open': True}">
<field name="attachment_ids" widget="one2many_list" mode="tree"
options="{'no_open': True}">
<tree editable="bottom" delete="0">
<field name="name" string="Attachment Name"
attrs="{'readonly':[('is_default','=',True)]}"
@ -788,7 +789,8 @@
</field>
</page>
<page string="Attachments">
<field name="attachment_ids" widget="one2many_list" mode="tree" options="{'no_open': True}"
<field name="attachment_ids" widget="one2many_list" mode="tree"
options="{'no_open': True}"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="bottom" delete="0">
<field name="name" attrs="{'readonly':[('is_default','=',True)]}"
@ -917,81 +919,82 @@
</form>
</page>
<page string="Family Loans">
<group>
<field name="family_debits_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<form string="Family Loans">
<sheet>
<field name="family_debits_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<form string="Family Loans">
<sheet>
<group>
<group>
<group>
<field name="loan_giver" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="loan_amount"/>
<field name="number_of_installments"/>
<field name="loan_total_paid"/>
<field name="loan_remaining"/>
<field name="monthly_installment"/>
<field name="loan_attach"/>
</group>
<group>
<field name="last_paid_amount"/>
<field name="last_paid_amount_date"/>
<field name="loan_reason" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="description"/>
<field name="benefit_id" invisible="1"/>
<field name="loan_start_date"/>
<field name="loan_end_date"/>
</group>
<field name="loan_giver"
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="loan_amount"/>
<field name="number_of_installments"/>
<field name="loan_total_paid"/>
<field name="loan_remaining"/>
<field name="monthly_installment"/>
<field name="loan_attach"/>
</group>
</sheet>
</form>
<tree>
<field name="loan_giver"/>
<field name="loan_amount"/>
<button name="action_accept" type="object" string="Accept"
class="oe_highlight"
attrs="{'invisible':[('state','=','accepted')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<button name="action_refuse" type="object" string="Refuse"
class="oe_highlight" attrs="{'invisible':[('state','=','refused')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<field name="state" readonly="1" force_save="1" widget="badge"
decoration-success="state in ['accepted']"
decoration-danger="state in ['refused']"/>
</tree>
</field>
</group>
<group>
<field name="last_paid_amount"/>
<field name="last_paid_amount_date"/>
<field name="loan_reason"
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="description"/>
<field name="benefit_id" invisible="1"/>
<field name="loan_start_date"/>
<field name="loan_end_date"/>
</group>
</group>
</sheet>
</form>
<tree>
<field name="loan_giver"/>
<field name="loan_amount"/>
<button name="action_accept" type="object" string="Accept"
class="oe_highlight"
attrs="{'invisible':[('state','=','accepted')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<button name="action_refuse" type="object" string="Refuse"
class="oe_highlight" attrs="{'invisible':[('state','=','refused')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<field name="state" readonly="1" force_save="1" widget="badge"
decoration-success="state in ['accepted']"
decoration-danger="state in ['refused']"/>
</tree>
</field>
</page>
<page string="expenses">
<group>
<field name="expenses_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="top">
<field name="benefit_id" invisible="1"/>
<field name="expenses_type" invisible="1"/>
<field name="expenses_type_custom" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="note"/>
<field name="amount" sum="amount"/>
<button name="action_accept" type="object" string="Accept"
class="oe_highlight"
attrs="{'invisible':[('state','=','accepted')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<button name="action_refuse" type="object" string="Refuse"
class="oe_highlight" attrs="{'invisible':[('state','=','refused')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<field name="state" readonly="1" force_save="1" widget="badge"
decoration-warning="state in ['waiting']"
decoration-success="state in ['accepted']"
decoration-danger="state in ['refused']"/>
</tree>
</field>
</group>
<field name="expenses_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="top">
<field name="benefit_id" invisible="1"/>
<field name="expenses_type" invisible="1"/>
<field name="expenses_type_custom"
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="note"/>
<field name="amount" sum="amount"/>
<button name="action_accept" type="object" string="Accept"
class="oe_highlight"
attrs="{'invisible':[('state','=','accepted')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<button name="action_refuse" type="object" string="Refuse"
class="oe_highlight" attrs="{'invisible':[('state','=','refused')]}"
groups="odex_benefit.group_accept_income_and_expenses"/>
<field name="state" readonly="1" force_save="1" widget="badge"
decoration-warning="state in ['waiting']"
decoration-success="state in ['accepted']"
decoration-danger="state in ['refused']"/>
</tree>
</field>
</page>
<page string="Income and salary">
<field name="salary_ids" context="{'default_state': 'accepted'}" mode="tree" options="{'no_open': True}"
<field name="salary_ids" context="{'default_state': 'accepted'}" mode="tree"
options="{'no_open': True}"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="bottom" delete="0">
<field name="benefit_id" invisible="1"/>
<field name="income_type" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="income_type"
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="salary_amount"/>
<field name="salary_attach" widget="many2many_attachment_preview"/>
<field name="attach_start_date"/>
@ -1186,7 +1189,8 @@
>
<group>
<group>
<field name="suspend_reason" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="suspend_reason"
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="suspend_description"/>
</group>
<group>
@ -1220,20 +1224,22 @@
</group>
</page>
<page string="Family Cars">
<group>
<field name="car_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="bottom">
<field name="benefit_id" invisible="1"/>
<field name="name"/>
<field name="car_model"/>
<field name="status"/>
<field name="image_1"/>
<field name="image_2"/>
<field name="image_3"/>
</tree>
</field>
</group>
<field name="car_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">
<tree editable="bottom">
<field name="benefit_id" invisible="1"/>
<field name="member_id" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="name"/>
<field name="car_model" options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
<field name="status"/>
<field name="application_form" widget="binary" filename="application_form_filename"/>
<field name="application_form_filename" invisible="1"/>
<field name="driving_license" widget="binary" filename="driving_license_filename"/>
<field name="driving_license_filename" invisible="1"/>
<field name="owner_identity" widget="binary" filename="owner_identity_filename"/>
<field name="owner_identity_filename" invisible="1"/>
</tree>
</field>
</page>
<page string="Configuration" groups="odex_benefit.group_benefit_manager" invisible="1">
<!-- <group col="4">-->