[ADD] Add the period for replace and waiting
This commit is contained in:
parent
bc0b2e56d0
commit
fe43385055
|
|
@ -101,30 +101,52 @@ class DonationsDetailsLines(models.Model):
|
|||
ages = fields.Integer(compute='_compute_get_age_range' , store=True)
|
||||
waiting_date = fields.Date(
|
||||
string="تاريخ الانتظار",
|
||||
compute="_compute_dates",
|
||||
store=True
|
||||
)
|
||||
|
||||
replace_date = fields.Date(
|
||||
string="تاريخ الاستبدال",
|
||||
compute="_compute_dates",
|
||||
store=True
|
||||
)
|
||||
period_display = fields.Char(
|
||||
string="Period",
|
||||
compute="_compute_period_display" )
|
||||
|
||||
@api.depends('state')
|
||||
@api.depends('end_date', 'waiting_date')
|
||||
def _compute_period_display(self):
|
||||
today = date.today()
|
||||
print('Hiiiii')
|
||||
for rec in self:
|
||||
|
||||
# pick whichever date is set
|
||||
if rec.state == 'replace' :
|
||||
base_date = rec.end_date
|
||||
elif rec.state == 'waiting':
|
||||
base_date = rec.waiting_date
|
||||
else:
|
||||
base_date = False
|
||||
print('Base >>> ' , base_date)
|
||||
if base_date:
|
||||
print('rec.waiting_date >>> ' , rec.waiting_date)
|
||||
delta = relativedelta(today, base_date)
|
||||
print('rec.delta >>> ' , str(delta))
|
||||
# build human-readable string
|
||||
if delta.years > 0:
|
||||
rec.period_display = f"{delta.years} year(s)"
|
||||
elif delta.months > 0:
|
||||
rec.period_display = f"{delta.months} month(s)"
|
||||
elif delta.days > 0:
|
||||
rec.period_display = f"{delta.days} day(s)"
|
||||
else:
|
||||
rec.period_display = "Today"
|
||||
else:
|
||||
rec.period_display = "No date"
|
||||
|
||||
|
||||
|
||||
@api.constrains('state')
|
||||
def _compute_dates(self):
|
||||
"""Automatically set waiting_date or replace_date based on state."""
|
||||
for rec in self:
|
||||
if rec.state == 'waiting':
|
||||
print(date.today())
|
||||
rec.waiting_date = date.today()
|
||||
rec.replace_date = False
|
||||
elif rec.state == 'replace':
|
||||
rec.replace_date = date.today()
|
||||
rec.waiting_date = False
|
||||
else:
|
||||
rec.waiting_date = False
|
||||
rec.replace_date = False
|
||||
|
||||
|
||||
# cheque_number = fields.Integer(string="Cheque Number")
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@
|
|||
<field name="sponsorship_creation_date" />
|
||||
<field name="create_date" optional="hide"/>
|
||||
<field name="waiting_date" widget="date" optional="hide"/>
|
||||
<field name="replace_date" widget="date" optional="hide"/>
|
||||
<field name="state" widget="badge"
|
||||
decoration-muted="state == 'draft'"
|
||||
decoration-warning="state == 'waiting'"
|
||||
|
|
@ -182,7 +181,8 @@
|
|||
<group>
|
||||
<group string="Donation Information">
|
||||
<field name="ages" invisible="1" />
|
||||
<field name="waiting_date" widget="date" />
|
||||
<field name="period_display" invisible="0" />
|
||||
<field name="waiting_date" widget="date" invisible="1"/>
|
||||
<field name="donation_type" invisible="1"/>
|
||||
<field name="donation_types"
|
||||
attrs="{'invisible': [('donation_type', '!=', 'donation')], 'readonly': [('parent_state', '!=', 'draft')]}" />
|
||||
|
|
@ -354,6 +354,98 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="donations_details_lines_view_tree_waiting" model="ir.ui.view">
|
||||
<field name="name">donations.details.lines.view.tree.waiting</field>
|
||||
<field name="model">donations.details.lines</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree default_order="waiting_date asc" create="0" edit="0" >
|
||||
<field name="sponsorship_scheduling_line_ids" invisible="1" />
|
||||
<field name="direct_debit" invisible="1" />
|
||||
<field name="sequence_no" />
|
||||
<field name="sponsor_id" />
|
||||
<field name="sponsor_phone" widget="phone"/>
|
||||
<field name="donation_type" optional="show"/>
|
||||
<field name="sponsorship_duration" optional="hide"/>
|
||||
<field name="donation_mechanism" optional="hide"/>
|
||||
<field name="product_template_id" />
|
||||
<field name="benefit_status" widget="badge"
|
||||
decoration-success="benefit_status == 'benefit'"
|
||||
decoration-danger="benefit_status == 'non_benefit'"/>
|
||||
<field name="start_date" widget="date"/>
|
||||
<field name="end_date" widget="date"/>
|
||||
<field name="donation_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="total_donation_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="branch_custom_id" optional="hide" />
|
||||
<field name="benefit_family_code" optional="hide" />
|
||||
<field name="benefit_id" optional="hide" />
|
||||
<field name="sponsorship_creation_date" />
|
||||
<field name="create_date" optional="hide"/>
|
||||
<field name="waiting_date" widget="date" />
|
||||
<field name="period_display" />
|
||||
<field name="state" widget="badge"
|
||||
decoration-muted="state == 'draft'"
|
||||
decoration-warning="state == 'waiting'"
|
||||
decoration-success="state in ['active', 'paid','confirmed']"
|
||||
decoration-danger="state == 'closed'"
|
||||
decoration-info="state == 'extended'" />
|
||||
|
||||
<button name="action_view_scheduling_lines"
|
||||
string="View Scheduling Lines"
|
||||
type="object"
|
||||
attrs="{'invisible': ['|', ('direct_debit', '=', False), ('sponsorship_scheduling_line_ids', '=', [])]}"
|
||||
class="btn-secondary"
|
||||
icon="fa-calendar" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="donations_details_lines_view_tree_replace" model="ir.ui.view">
|
||||
<field name="name">donations.details.lines.view.tree.replace</field>
|
||||
<field name="model">donations.details.lines</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree default_order="end_date asc" create="0" edit="0" >
|
||||
<field name="sponsorship_scheduling_line_ids" invisible="1" />
|
||||
<field name="direct_debit" invisible="1" />
|
||||
<field name="sequence_no" />
|
||||
<field name="sponsor_id" />
|
||||
<field name="sponsor_phone" widget="phone"/>
|
||||
<field name="donation_type" optional="show"/>
|
||||
<field name="sponsorship_duration" optional="hide"/>
|
||||
<field name="donation_mechanism" optional="hide"/>
|
||||
<field name="product_template_id" />
|
||||
<field name="benefit_status" widget="badge"
|
||||
decoration-success="benefit_status == 'benefit'"
|
||||
decoration-danger="benefit_status == 'non_benefit'"/>
|
||||
<field name="start_date" widget="date"/>
|
||||
<field name="end_date" widget="date"/>
|
||||
<field name="donation_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="total_donation_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="branch_custom_id" optional="hide" />
|
||||
<field name="benefit_family_code" optional="hide" />
|
||||
<field name="benefit_id" optional="hide" />
|
||||
<field name="sponsorship_creation_date" />
|
||||
<field name="create_date" optional="hide"/>
|
||||
<field name="end_date" widget="date" />
|
||||
<field name="period_display" />
|
||||
<field name="state" widget="badge"
|
||||
decoration-muted="state == 'draft'"
|
||||
decoration-warning="state == 'waiting'"
|
||||
decoration-success="state in ['active', 'paid','confirmed']"
|
||||
decoration-danger="state == 'closed'"
|
||||
decoration-info="state == 'extended'" />
|
||||
|
||||
<button name="action_view_scheduling_lines"
|
||||
string="View Scheduling Lines"
|
||||
type="object"
|
||||
attrs="{'invisible': ['|', ('direct_debit', '=', False), ('sponsorship_scheduling_line_ids', '=', [])]}"
|
||||
class="btn-secondary"
|
||||
icon="fa-calendar" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="donations_details_lines_action" model="ir.actions.act_window">
|
||||
<field name="name">Donations Details Lines</field>
|
||||
<field name="res_model">donations.details.lines</field>
|
||||
|
|
@ -368,6 +460,9 @@
|
|||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state', '=', 'waiting')]</field>
|
||||
<field name="search_view_id" ref="donations_details_lines_view_search"/>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('donations_details_lines_view_tree_waiting')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('donations_details_lines_view_form')})]"/>
|
||||
<field name="context">{'create': False, 'delete': False}</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -376,6 +471,9 @@
|
|||
<field name="res_model">donations.details.lines</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state', '=', 'replace')]</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('donations_details_lines_view_tree_replace')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('donations_details_lines_view_form')})]"/>
|
||||
<field name="search_view_id" ref="donations_details_lines_view_search"/>
|
||||
<field name="context">{'create': False, 'delete': False}</field>
|
||||
</record>
|
||||
|
|
|
|||
Loading…
Reference in New Issue