[IMP] odex_benefit: IMP benefit
This commit is contained in:
parent
df61a5339e
commit
1e03138dd1
|
|
@ -15209,16 +15209,19 @@ 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_service_request__application_form
|
||||
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_service_request__driving_license
|
||||
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_service_request__owner_identity
|
||||
msgid "Owner Identity"
|
||||
msgstr "هوية المالك"
|
||||
|
||||
|
|
@ -16753,3 +16756,42 @@ msgstr "يحتوي على موظفين"
|
|||
msgid "Number"
|
||||
msgstr "رقم"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_payroll
|
||||
msgid "Member Payroll"
|
||||
msgstr "مرتب الفرد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__has_marriage_course
|
||||
msgid "Has Marriage Course"
|
||||
msgstr "الحصول على دورة تأهيلية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
msgid "Total Moves"
|
||||
msgstr "القيد المحاسبي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Car Information"
|
||||
msgstr "بيانات السيارة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__car_name
|
||||
msgid "Car Name"
|
||||
msgstr "اسم السيارة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__car_owner_id
|
||||
msgid "Car Owner"
|
||||
msgstr "اسم المالك"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__car_model_id
|
||||
msgid "Car model"
|
||||
msgstr "موديل السيارة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__none
|
||||
msgid "No Limit"
|
||||
msgstr "لا يوجد"
|
||||
|
|
@ -181,6 +181,15 @@ class ServiceRequest(models.Model):
|
|||
string='Has money to pay first payment?')
|
||||
has_money_field_is_appearance = fields.Boolean(string='Has money Field is appearance?',
|
||||
compute='_get_money_field_is_appearance')
|
||||
car_name = fields.Char(string='Car Name')
|
||||
car_owner_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id)]", string="Car Owner")
|
||||
car_model_id = fields.Many2one('benefit.vehicle.model', string='Car model')
|
||||
application_form = fields.Many2many('ir.attachment', 'request_application_form_rel', 'request_id', 'attachment_id',
|
||||
string="Application Form")
|
||||
driving_license = fields.Many2many('ir.attachment', 'request_driving_license_rel', 'request_id', 'attachment_id',
|
||||
string="Driving License")
|
||||
owner_identity = fields.Many2many('ir.attachment', 'request_owner_identity_rel', 'request_id', 'attachment_id',
|
||||
string="Owner Identity")
|
||||
|
||||
@api.depends('requested_service_amount', 'service_max_amount')
|
||||
def _get_money_for_payment_is_appearance(self):
|
||||
|
|
@ -427,6 +436,16 @@ class ServiceRequest(models.Model):
|
|||
|
||||
def action_researcher_send_request(self):
|
||||
for rec in self:
|
||||
if not rec.requested_service_amount or rec.requested_service_amount <= 0:
|
||||
raise UserError("Please enter a valid service amount.")
|
||||
|
||||
if rec.attachment_lines:
|
||||
for attach_line in rec.attachment_lines:
|
||||
if not attach_line.service_attach:
|
||||
raise UserError(
|
||||
"Some attachment records are missing files. Please make sure all required attachments are uploaded before submitting."
|
||||
)
|
||||
|
||||
rec.state = 'waiting_approve'
|
||||
|
||||
def action_operations_chief_approve(self):
|
||||
|
|
@ -474,8 +493,6 @@ class ServiceRequest(models.Model):
|
|||
if rec.service_type == 'electrical_devices':
|
||||
rec.state = 'approval_of_beneficiary_services'
|
||||
else:
|
||||
if rec.service_type == 'buy_car':
|
||||
rec.family_id.has_car = True
|
||||
rec.service_approval_date = fields.Datetime.now()
|
||||
rec.state = 'send_request_to_supplier'
|
||||
|
||||
|
|
@ -486,6 +503,21 @@ class ServiceRequest(models.Model):
|
|||
|
||||
def action_request_done(self):
|
||||
for rec in self:
|
||||
if rec.service_type == 'buy_car':
|
||||
car_vals = {
|
||||
'benefit_id': rec.family_id.id,
|
||||
'name': rec.car_name,
|
||||
'member_id': rec.car_owner_id.id,
|
||||
'car_model': rec.car_model_id.id,
|
||||
}
|
||||
car = self.env['cars.line'].create(car_vals)
|
||||
if rec.application_form:
|
||||
car.application_form = [(6, 0, rec.application_form.ids)]
|
||||
if rec.driving_license:
|
||||
car.driving_license = [(6, 0, rec.driving_license.ids)]
|
||||
if rec.owner_identity:
|
||||
car.owner_identity = [(6, 0, rec.owner_identity.ids)]
|
||||
rec.family_id.has_car = True
|
||||
rec.state = 'family_received_device'
|
||||
|
||||
def action_send_request_to_supplier(self):
|
||||
|
|
@ -757,6 +789,8 @@ class ServiceRequest(models.Model):
|
|||
'max_amount_for_bill'), default=0.0) or 0
|
||||
elif max_limit_type == 'service':
|
||||
pass
|
||||
elif max_limit_type == 'none':
|
||||
pass
|
||||
elif max_limit_type == 'amount_person':
|
||||
rec.service_max_amount = rec.service_cat.limit_person_line_ids and max(rec.service_cat.limit_person_line_ids.filtered(
|
||||
lambda x: x.min_count_member <= rec.benefit_member_count <= x.max_count_member)).amount or 0
|
||||
|
|
@ -814,7 +848,7 @@ class ServiceRequest(models.Model):
|
|||
raise UserError(_("You Should take a course"))
|
||||
continue
|
||||
|
||||
if rec.requested_service_amount > rec.service_max_amount and service_type not in special_services:
|
||||
if rec.requested_service_amount > rec.service_max_amount and service_type not in special_services and not max_limit_type == 'none':
|
||||
raise ValidationError(
|
||||
_("You cannot request more than %s") % rec.service_max_amount
|
||||
)
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ class ServicesSettings(models.Model):
|
|||
string="Requires Visit?"
|
||||
)
|
||||
max_limit_type = fields.Selection([
|
||||
('none', 'No Limit'),
|
||||
('fixed', 'Fixed Amount'),
|
||||
('amount_person', 'Amount by Individuals'),
|
||||
('category', 'Amount by Category'),
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@
|
|||
states="account_manager" groups="odex25_account_payment_fix.group_general_manager"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box" attrs="{'invisible':[('state','in',['draft'])]}">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_open_related_invoice_records"
|
||||
class="oe_stat_button"
|
||||
icon="fa-file-text-o"
|
||||
type="object">
|
||||
type="object" attrs="{'invisible': [('total_invoices', '=', 0)]}">
|
||||
<field name="total_invoices" widget="statinfo" string="Total Moves"/>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@
|
|||
<field name="date"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"
|
||||
required="1"/>
|
||||
<field name="benefit_type" readonly="1" force_save="1"/>
|
||||
<field name="benefit_type" invisible="1"/>
|
||||
<field name="family_id"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"
|
||||
required="1"/>
|
||||
|
|
@ -210,17 +210,17 @@
|
|||
<div name="dates" class="o_row"
|
||||
attrs="{'invisible': ['&', ('service_type', '!=', 'rent'), ('max_limit_period', '!=', 'month')]}">
|
||||
<field name="start"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
attrs="{'required': [('max_limit_period', '=', 'month')],'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only"
|
||||
aria-label="Arrow icon" title="Arrow"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only"
|
||||
aria-label="Arrow icon" title="Arrow"
|
||||
attrs="{'invisible': [('start', '=', False), ('end', '=', False)]}"/>
|
||||
<field name="end"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
attrs="{'required': [('max_limit_period', '=', 'month')],'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
</div>
|
||||
<field name="marriage_contract_date"
|
||||
attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
attrs="{'invisible':[('service_type', '!=', 'marriage')],'required':[('service_type','=','marriage')]}"/>
|
||||
<field name="service_approval_date"
|
||||
attrs="{'invisible':[('service_approval_date','=',False)]}"/>
|
||||
<field name="need_status"
|
||||
|
|
@ -247,8 +247,6 @@
|
|||
attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="home_age" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="aid_amount" invisible="1"/>
|
||||
<field name="description"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
<field name="service_attach" invisible="1" widget="many2many_attachment_preview"/>
|
||||
<field name="has_marriage_course"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])],'invisible':[('service_type','!=','marriage')],'required':[('service_type','=','marriage')]}"/>
|
||||
|
|
@ -257,12 +255,16 @@
|
|||
readonly="1"/>
|
||||
<field name="refuse_reason" attrs="{'invisible': [('refuse_reason', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="return_reason" attrs="{'invisible': [('return_reason', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="specialist_note" attrs="{'invisible': [('return_reason', '=', False)]}"/>
|
||||
<field name="required_attach" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="description"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
<field name="return_reason" attrs="{'invisible': [('return_reason', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="specialist_note" attrs="{'invisible': [('return_reason', '=', False)]}"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Services Attachments Settings"
|
||||
attrs="{'invisible':[('required_attach','=',False)]}">
|
||||
|
|
@ -434,6 +436,20 @@
|
|||
<field name="service_conditions"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Car Information" attrs="{'invisible':[('service_type', '!=', 'buy_car')]}">
|
||||
<group>
|
||||
<group>
|
||||
<field name="car_name"/>
|
||||
<field name="car_owner_id"/>
|
||||
<field name="car_model_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="application_form" widget="many2many_attachment_preview"/>
|
||||
<field name="driving_license" widget="many2many_attachment_preview"/>
|
||||
<field name="owner_identity" widget="many2many_attachment_preview"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
|
|
|
|||
Loading…
Reference in New Issue