|
|
@@ -19,10 +19,10 @@
|
|
|
<field name="actual_non_billable_hours" sum="Total Actual Non-Billable"/>
|
|
|
<field name="total_actual_hours" sum="Total Actual"/>
|
|
|
<field name="expected_hours_to_date" sum="Total Expected"/>
|
|
|
- <field name="overall_efficiency_display" widget="badge"
|
|
|
- decoration-danger="overall_efficiency_display == '0.00' or overall_efficiency < 80"
|
|
|
- decoration-success="overall_efficiency >= 90"
|
|
|
- decoration-warning="overall_efficiency >= 80 and overall_efficiency < 90"/>
|
|
|
+ <field name="overall_efficiency_display" widget="badge"
|
|
|
+ decoration-danger="overall_efficiency_display == '0.00' or overall_efficiency < 80"
|
|
|
+ decoration-success="overall_efficiency >= 90"
|
|
|
+ decoration-warning="overall_efficiency >= 80 and overall_efficiency < 90"/>
|
|
|
</list>
|
|
|
</field>
|
|
|
</record>
|
|
|
@@ -91,33 +91,17 @@
|
|
|
<field name="month_year"/>
|
|
|
<field name="company_id" groups="base.group_multi_company"/>
|
|
|
|
|
|
- <!-- Filtros de indicadores -->
|
|
|
- <filter string="High Overall Efficiency" name="high_overall_efficiency" domain="[('overall_efficiency', '>=', 90)]"/>
|
|
|
+ <!-- Filtros de indicadores -->
|
|
|
+ <filter string="High Overall Efficiency" name="high_overall_efficiency" domain="[('overall_efficiency', '>=', 90)]"/>
|
|
|
|
|
|
<!-- Filtros de tipo de proyecto -->
|
|
|
<separator/>
|
|
|
<filter string="Proyectos Facturables" name="billable_projects" domain="[('planned_billable_hours', '>', 0)]"/>
|
|
|
<filter string="Proyectos No Facturables" name="non_billable_projects" domain="[('planned_non_billable_hours', '>', 0)]"/>
|
|
|
|
|
|
- <!-- Filtros de fecha dinámicos -->
|
|
|
- <separator/>
|
|
|
- <filter string="2 Meses Atrás" name="two_months_ago" domain="[('month_year', '=', (context_today() - relativedelta(months=2)).strftime('%Y-%m'))]"/>
|
|
|
- <filter string="Mes Anterior" name="last_month" domain="[('month_year', '=', (context_today() - relativedelta(months=1)).strftime('%Y-%m'))]"/>
|
|
|
- <filter string="Mes Actual" name="current_month" domain="[('month_year', '=', context_today().strftime('%Y-%m'))]"/>
|
|
|
- <filter string="Próximo Mes" name="next_month" domain="[('month_year', '=', (context_today() + relativedelta(months=1)).strftime('%Y-%m'))]"/>
|
|
|
- <filter string="2 Meses Adelante" name="two_months_ahead" domain="[('month_year', '=', (context_today() + relativedelta(months=2)).strftime('%Y-%m'))]"/>
|
|
|
-
|
|
|
- <!-- Filtros de trimestres dinámicos -->
|
|
|
- <separator/>
|
|
|
- <filter string="Trimestre Actual" name="current_quarter" domain="[('month_year', 'in', [(context_today() + relativedelta(month=((context_today().month-1)//3)*3+1, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(month=((context_today().month-1)//3)*3+2, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(month=((context_today().month-1)//3)*3+3, day=1)).strftime('%Y-%m')])]"/>
|
|
|
- <filter string="Trimestre Anterior" name="last_quarter" domain="[('month_year', 'in', [(context_today() + relativedelta(months=-3, month=((context_today().month-1)//3)*3+1, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(months=-3, month=((context_today().month-1)//3)*3+2, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(months=-3, month=((context_today().month-1)//3)*3+3, day=1)).strftime('%Y-%m')])]"/>
|
|
|
- <filter string="Próximo Trimestre" name="next_quarter" domain="[('month_year', 'in', [(context_today() + relativedelta(months=3, month=((context_today().month-1)//3)*3+1, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(months=3, month=((context_today().month-1)//3)*3+2, day=1)).strftime('%Y-%m'), (context_today() + relativedelta(months=3, month=((context_today().month-1)//3)*3+3, day=1)).strftime('%Y-%m')])]"/>
|
|
|
-
|
|
|
- <!-- Filtros de años dinámicos -->
|
|
|
- <separator/>
|
|
|
- <filter string="Año Anterior" name="last_year" domain="[('month_year', 'like', (context_today() - relativedelta(years=1)).strftime('%Y-'))]"/>
|
|
|
- <filter string="Año Actual" name="current_year" domain="[('month_year', 'like', context_today().strftime('%Y-'))]"/>
|
|
|
- <filter string="Próximo Año" name="next_year" domain="[('month_year', 'like', (context_today() + relativedelta(years=1)).strftime('%Y-'))]"/>
|
|
|
+ <!-- Filtro de fecha como ventas -->
|
|
|
+ <separator/>
|
|
|
+ <filter name="filter_date" date="date" default_period="month" start_month="-2" end_month="2"/>
|
|
|
|
|
|
<!-- Filtro de archivado -->
|
|
|
<separator/>
|
|
|
@@ -126,7 +110,7 @@
|
|
|
|
|
|
<group expand="0" string="Group By">
|
|
|
<filter string="Employee" name="group_employee" context="{'group_by': 'employee_id'}"/>
|
|
|
- <filter string="Month" name="group_month" context="{'group_by': 'month_year'}"/>
|
|
|
+ <filter string="Month" name="group_month" context="{'group_by': 'date:month'}"/>
|
|
|
<filter string="Company" name="group_company" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
|
|
|
</group>
|
|
|
</search>
|
|
|
@@ -140,7 +124,7 @@
|
|
|
<field name="view_mode">list,form</field>
|
|
|
<field name="view_id" ref="view_hr_efficiency_list_inherited"/>
|
|
|
<field name="search_view_id" ref="view_hr_efficiency_search"/>
|
|
|
- <field name="context">{'search_default_current_month': 1}</field>
|
|
|
+ <field name="context">{'search_default_filter_date': 1}</field>
|
|
|
<field name="help" type="html">
|
|
|
<p class="o_view_nocontent_empty_folder">
|
|
|
No efficiency records found!
|