<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>
  <data>
    <!-- Trees -->
    <record model="ir.ui.view" id="golem_resource_reservation_tree_inherit_golem_resource_account">
      <field name="name">GOLEM Resource Reservation Tree Adaptation to invoicing</field>
      <field name="model">golem.resource.reservation</field>
      <field name='inherit_id' ref="golem_resource.golem_resource_reservation_view_tree"/>
      <field name="arch" type="xml">
        <field name="state" position="after">
          <field name="invoice_id" />
          <field name="invoice_state" string="Invoice status" />
        </field>
      </field>
    </record>

    <!-- Forms -->
    <record model="ir.ui.view"
      id="golem_resource_reservation_form_inherit_golem_resource_account">
      <field name="name"> GOLEM Resource Reservation Form Adaptations to invoicing</field>
      <field name="model">golem.resource.reservation</field>
      <field name='inherit_id' ref="golem_resource.golem_resource_reservation_view_form"/>
      <field name="arch" type="xml">
        <button name="state_rejected"  position="after">
          <button name="create_invoice" type="object" string="Create Invoice" class="oe_highlight"
            attrs="{'invisible': ['|', ('state', '!=', 'validated'), '|', ('resource_product_id', '=', False), ('invoice_id', '!=', False)]}" />
          <button name="show_invoice" type="object" string="Show invoice" class="oe_highlight"
            attrs="{'invisible': [('invoice_id', '=', False)]}" />
          <button name="add_to_invoice" type="object" string="Add To Invoice" class="oe_highlight"
            attrs="{'invisible': ['|', ('state', '!=', 'validated'), '|', ('resource_product_id', '=', False), ('invoice_id', '!=', False)]}" />
        </button>
        <group name="reservation" position="after">
          <group name="invoicing" string="Invoicing"
            attrs="{'invisible': [('invoice_id', '=', False)]}">
            <field name="resource_product_id" />
            <field name="invoice_id" />
            <field name="invoice_state" />
            <field name="invoice_amount_total" />
            <field name="invoice_line_id" />
            <field name="invoice_line_price_subtotal" />
          </group>
        </group>
      </field>
    </record>

    <!-- Searches -->
    <record model="ir.ui.view"
      id="golem_resource_reservation_search_inherit_golem_resource_account">
      <field name="name"> GOLEM Resource Reservation Search Adaptations</field>
      <field name="model">golem.resource.reservation</field>
      <field name='inherit_id'
         ref="golem_resource.golem_resource_reservation_view_search"/>
      <field name="arch" type="xml">
        <field name="state" position="after">
          <field name="invoice_id" string="Invoice"
            filter_domain="[('invoice_id.number', 'ilike', self)]" />
        </field>
        <filter name="state_rejected" position="after">
          <separator />
          <filter name="invoiced" string="Invoiced"
            domain="[('invoice_line_id', '!=', False)]" />
          <filter name="not_invoiced" string="Not invoiced"
            domain="[('state', '=', 'validated'), ('invoice_line_id', '=', False)]" />
        </filter>
        <filter name="group_state" position="after">
          <filter name="group_invoice_state" string="Invoice state"
            context="{'group_by': 'invoice_state'}" />
        </filter>
      </field>
    </record>

    <!-- Add option to the "More" button -->
    <act_window id="action_golem_reservation_invoice_wizard"
      name="Reservations to invoice"
      res_model="golem.reservation.invoice.wizard"
      src_model="golem.resource.reservation"
      view_mode="form"
      multi="True"
      target="new" />

  </data>
</odoo>