hr_efficiency_views.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <odoo>
  3. <data>
  4. <!-- Tree View -->
  5. <record id="view_hr_efficiency_tree" model="ir.ui.view">
  6. <field name="name">hr.efficiency.tree</field>
  7. <field name="model">hr.efficiency</field>
  8. <field name="arch" type="xml">
  9. <list string="Employee Efficiency">
  10. <field name="month_year"/>
  11. <field name="employee_id"/>
  12. <field name="wage" sum="Total Gross Salary" optional="show"/>
  13. <field name="utilization_rate" avg="Average Utilization" optional="show"/>
  14. <field name="overhead" avg="Average Overhead" optional="show"/>
  15. <field name="precio_por_hora" avg="Average Precio por Hora" optional="show"/>
  16. <field name="company_id" groups="base.group_multi_company" optional="hide"/>
  17. <field name="calculation_date" optional="hide"/>
  18. <field name="available_hours" sum="Total Available" optional="show"/>
  19. <field name="planned_hours" sum="Total Planned" optional="show"/>
  20. <field name="planned_billable_hours" sum="Total Planned Billable" optional="hide"/>
  21. <field name="planned_non_billable_hours" sum="Total Planned Non-Billable" optional="hide"/>
  22. <field name="actual_billable_hours" sum="Total Actual Billable" optional="show"/>
  23. <field name="actual_non_billable_hours" sum="Total Actual Non-Billable" optional="show"/>
  24. <field name="total_actual_hours" sum="Total Actual" optional="show"/>
  25. <field name="expected_hours_to_date" sum="Total Expected" optional="hide"/>
  26. <field name="overall_efficiency_display" widget="badge"
  27. decoration-danger="overall_efficiency_display == '0.00' or overall_efficiency &lt; 80"
  28. decoration-success="overall_efficiency >= 90"
  29. decoration-warning="overall_efficiency >= 80 and overall_efficiency &lt; 90"/>
  30. </list>
  31. </field>
  32. </record>
  33. <!-- Form View -->
  34. <record id="view_hr_efficiency_form" model="ir.ui.view">
  35. <field name="name">hr.efficiency.form</field>
  36. <field name="model">hr.efficiency</field>
  37. <field name="arch" type="xml">
  38. <form string="Employee Efficiency">
  39. <sheet>
  40. <div class="oe_title">
  41. <h1>
  42. <field name="display_name" readonly="1"/>
  43. </h1>
  44. </div>
  45. <group>
  46. <group>
  47. <field name="month_year"/>
  48. <field name="employee_id"/>
  49. <field name="wage"/>
  50. <field name="utilization_rate"/>
  51. <field name="overhead"/>
  52. <field name="precio_por_hora"/>
  53. <field name="company_id" groups="base.group_multi_company"/>
  54. <field name="calculation_date"/>
  55. </group>
  56. <group>
  57. <!-- Dynamic indicator fields will be added here -->
  58. <field name="overall_efficiency" widget="badge"
  59. decoration-danger="overall_efficiency_display == '0.00' or overall_efficiency &lt; 80"
  60. decoration-success="overall_efficiency >= 90"
  61. decoration-warning="overall_efficiency >= 80 and overall_efficiency &lt; 90"/>
  62. </group>
  63. </group>
  64. <notebook>
  65. <page string="Available Hours" name="available">
  66. <group>
  67. <field name="available_hours" widget="float_time"/>
  68. </group>
  69. </page>
  70. <page string="Planned Hours" name="planned">
  71. <group>
  72. <field name="planned_hours" widget="float_time"/>
  73. <field name="planned_billable_hours" widget="float_time"/>
  74. <field name="planned_non_billable_hours" widget="float_time"/>
  75. </group>
  76. </page>
  77. <page string="Actual Hours" name="actual">
  78. <group>
  79. <field name="actual_billable_hours" widget="float_time"/>
  80. <field name="actual_non_billable_hours" widget="float_time"/>
  81. <field name="total_actual_hours" widget="float_time"/>
  82. <field name="expected_hours_to_date" widget="float_time"/>
  83. </group>
  84. </page>
  85. </notebook>
  86. </sheet>
  87. </form>
  88. </field>
  89. </record>
  90. <!-- Search View -->
  91. <record id="view_hr_efficiency_search" model="ir.ui.view">
  92. <field name="name">hr.efficiency.search</field>
  93. <field name="model">hr.efficiency</field>
  94. <field name="arch" type="xml">
  95. <search string="Search Efficiency">
  96. <field name="employee_id"/>
  97. <field name="month_year"/>
  98. <field name="company_id" groups="base.group_multi_company"/>
  99. <!-- Filtros de indicadores -->
  100. <filter string="High Overall Efficiency" name="high_overall_efficiency" domain="[('overall_efficiency', '>=', 90)]"/>
  101. <!-- Filtros de tipo de proyecto -->
  102. <separator/>
  103. <filter string="Proyectos Facturables" name="billable_projects" domain="[('planned_billable_hours', '>', 0)]"/>
  104. <filter string="Proyectos No Facturables" name="non_billable_projects" domain="[('planned_non_billable_hours', '>', 0)]"/>
  105. <!-- Filtro de fecha como ventas -->
  106. <separator/>
  107. <filter name="filter_date" date="date" default_period="month" start_month="-2" end_month="2"/>
  108. <!-- Filtro de archivado -->
  109. <separator/>
  110. <filter string="Archivado" name="archived" domain="[('active', '=', False)]"/>
  111. <filter string="No Archivado" name="not_archived" domain="[('active', '=', True)]"/>
  112. <group expand="0" string="Group By">
  113. <filter string="Employee" name="group_employee" context="{'group_by': 'employee_id'}"/>
  114. <filter string="Month" name="group_month" context="{'group_by': 'date:month'}"/>
  115. <filter string="Company" name="group_company" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
  116. </group>
  117. </search>
  118. </field>
  119. </record>
  120. <!-- Action -->
  121. <record id="action_hr_efficiency" model="ir.actions.act_window">
  122. <field name="name">Employee Efficiency</field>
  123. <field name="res_model">hr.efficiency</field>
  124. <field name="view_mode">list,form</field>
  125. <field name="view_id" ref="view_hr_efficiency_tree"/>
  126. <field name="search_view_id" ref="view_hr_efficiency_search"/>
  127. <field name="context">{'search_default_filter_date': 1}</field>
  128. <field name="help" type="html">
  129. <p class="o_view_nocontent_empty_folder">
  130. No efficiency records found!
  131. </p><p>
  132. Create efficiency records by running the calculation wizard or wait for the automatic weekly calculation.
  133. </p>
  134. </field>
  135. </record>
  136. <!-- Menu - REMOVED: Now only in Planning -->
  137. <!-- <menuitem id="menu_hr_efficiency"
  138. name="Efficiency"
  139. parent="hr.menu_hr_root"
  140. action="action_hr_efficiency"
  141. sequence="50"
  142. groups="hr.group_hr_user"/> -->
  143. </data>
  144. </odoo>