You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

274 lines
16 KiB

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Mobile service model sequence-->
<record id="mobile_service_sequence" model="ir.sequence">
<field name="name">Service Code</field>
<field name="code">mobile.service</field>
<field name="prefix">SERV/</field>
<field eval="4" name="padding"/>
<field name="company_id" eval="False"/>
</record>
<!--Mobile service model search view-->
<record id="mobile_service_view_search" model="ir.ui.view">
<field name="name">mobile.service.view.search</field>
<field name="model">mobile.service</field>
<field name="arch" type="xml">
<search string="Search in requests">
<field name="person_name" widget="res_partner_many2one"
context="{'res_partner_search_mode': 'customer'}"/>
<field name="contact_no"/>
<field name="technician_name"/>
<field name="imei_no"/>
<field name="return_date"/>
<field name="service_state"/>
<filter string="Returned" name="Service Status" domain="[('service_state', '=', 'returned')]"/>
<filter string="Draft" name="Service Status" domain="[('service_state', '=', 'draft')]"/>
<filter string="Not Solved" name="Service Status" domain="[('service_state', '=', 'not_solved')]"/>
<separator/>
<group expand="0" string="Group By">
<filter string="Service State" name="service_state" domain="[]"
context="{'group_by': 'service_state'}"/>
<filter string="Technician" name="technician" domain="[]"
context="{'group_by': 'technician_name'}"/>
</group>
</search>
</field>
</record>
<!--Mobile service model form view-->
<record id="mobile_service_view_form" model="ir.ui.view">
<field name="name">mobile.service.view.form</field>
<field name="model">mobile.service</field>
<field name="arch" type="xml">
<form string="Mobile Shop">
<header>
<button string="Assign to technician" type="object" name="approve"
class="oe_highlight"
invisible="service_state not in 'draft'"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button string="Completed" type="object" name="complete"
class="oe_highlight"
invisible="service_state not in 'assigned'"/>
<button string="Return advance" type="object" name="return_advance"
class="oe_highlight"
invisible="service_state not in 'not_solved'"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button name="action_invoice_create_wizard" string="Create Invoice"
invisible="service_state not in ('completed', 'assigned')"
type="object" class="oe_highlight"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button name="action_post_stock" string="Post Stock moves"
invisible="service_state not in ('completed', 'assigned')"
type="object" class="oe_highlight"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button string="Return to customer" type="object" name="return_to"
invisible="service_state not in ('completed')"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button string="Not Solved" type="object" name="not_solved"
invisible="service_state not in ('assigned')"/>
<button name="get_ticket" string="Print Ticket" type="object" class="oe_highlight"
groups="mobile_service_shop.mobile_service_group_manager"/>
<button name="action_send_mail" string="Send email" type="object"
invisible="service_state in ('draft')"
groups="mobile_service_shop.mobile_service_group_manager"/>
<field name="service_state" widget="statusbar" statusbar_visible="draft,returned,not_solved"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button name='action_view_invoice' class="oe_stat_button" type="object" icon="fa-money"
invisible="service_state in ('draft')">
<field string="Invoice" name="invoice_count" widget="statinfo"/>
</button>
</div>
<div class="oe_title">
<h1>
<field name="name" readonly="1"/>
</h1>
</div>
<div>
<field name="is_in_warranty"
readonly="service_state in ('returned','not_solved')"/>
<label for="is_in_warranty"/>
<field name="re_repair"
readonly="service_state in ('returned','not_solved')"/>
<label for="re_repair"/>
</div>
<group>
<group>
<field name="person_name" widget="res_partner_many2one"
context="{'res_partner_search_mode': 'customer'}" style="width:50%;"
readonly="service_state not in 'draft'"/>
<field name="contact_no" style="width:50%;"
readonly="service_state in ('returned','not_solved')"/>
<field name="email_id" style="width:50%;"
readonly="service_state in ('returned','not_solved')"/>
<label for="street" string="Address"/>
<div class="o_address_format">
<field name="street" placeholder="Street..." class="o_address_street"/>
<field name="street2" placeholder="Street 2..." class="o_address_street"/>
<field name="city" placeholder="City" class="o_address_city"/>
<field name="state_id" class="o_address_state" placeholder="State"
options='{"no_open": True}'/>
<field name="zip" placeholder="ZIP" class="o_address_zip"/>
<field name="country_id" placeholder="Country" class="o_address_country"
options='{"no_open": True, "no_create": True}'/>
</div>
</group>
<group>
<label for="brand_name"/>
<div class="o_row">
<field name="brand_name" placeholder="Brand name"
readonly="service_state not in 'draft'"/>
<field name="model_name" placeholder="Model name"
readonly="service_state not in 'draft'"/>
</div>
<field name="date_request" style="width:50%;"
readonly="service_state not in 'draft'"/>
<field name="return_date" style="width:50%;"
readonly="service_state in ('returned','not_solved')"/>
<field name="technician_name" style="width:50%;"
readonly="service_state not in 'draft'"/>
<field name="picking_count" invisible="1"/>
</group>
</group>
<notebook>
<page string="Description">
<group>
<group>
<field name="imei_no" style="width:50%;" colspan="1"
readonly="service_state not in 'draft'"/>
<field name="warranty_number" style="width:50%;"
readonly="service_state not in 'draft'"
required="is_in_warranty == True" invisible="is_in_warranty != True"/>
</group>
<group>
<field name="internal_notes"
placeholder="Notes used internally (eg: device password)"
readonly="service_state in ('returned','not_solved')"/>
</group>
</group>
</page>
<page string="Complaints">
<field name="complaints_tree" mode="list"
readonly="service_state in ('returned','not_solved')">
<list string="Complaints" editable="bottom">
<field name="complaint_type_tree"/>
<field name="description_tree"/>
</list>
<form>
<field name="complaint_type_tree"/>
<field name="description_tree"/>
</form>
</field>
</page>
<page string="Parts Usage">
<field name="product_order_line" mode="list"
readonly="service_state in ('returned','not_solved')">
<list string="Complaints" editable="bottom">
<field name="product_id"/>
<field name="product_uom_qty"/>
<field name="product_uom"/>
<field name="price_unit"/>
<field name="qty_stock_move" optional="hide"/>
<field name="qty_invoiced" optional="hide"/>
<field name="part_price"/>
<field name="stock_number" optional="hide"/>
</list>
<form>
<field name="product_id"/>
<field name="product_uom_qty"/>
</form>
</field>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<!--Mobile service model kanban view-->
<record id="mobile_service_view_kanban" model="ir.ui.view">
<field name="name">mobile.service.view.kanban</field>
<field name="model">mobile.service</field>
<field name="arch" type="xml">
<kanban class="o_kanban_small_column">
<field name="image_medium"/>
<field name="id"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_card oe_kanban_global_click">
<div class="o_kanban_image">
<img t-att-src="kanban_image('mobile.service', 'image_medium', record.id.raw_value)"/>
</div>
<div class="oe_kanban_content">
<div>
<strong class="o_kanban_record_title">
<field name="name"/>
</strong>
</div>
<div class="text-muted o_kanban_record_subtitle">
<field name="person_name" widget="res_partner_many2one"
context="{'res_partner_search_mode': 'customer'}"/>
<br/>
<field name="service_state"/>
</div>
</div>
<div class="oe_clear"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!--Mobile service model graph view-->
<record id="mobile_service_view_graph" model="ir.ui.view">
<field name="name">mobile.service.view.graph</field>
<field name="model">mobile.service</field>
<field name="arch" type="xml">
<graph string="Service Graph">
<field name="technician_name" type="row"/>
</graph>
</field>
</record>
<!--Mobile service model tree view-->
<record id="mobile_service_view_tree" model="ir.ui.view">
<field name="name">mobile.service.view.tree</field>
<field name="model">mobile.service</field>
<field name="arch" type="xml">
<list decoration-danger="service_state == 'not_solved'" decoration-muted="service_state=='returned'"
default_order="name desc">
<field name="name"/>
<field name="person_name"/>
<field name="contact_no"/>
<field name="brand_name"/>
<field name="model_name"/>
<field name="imei_no"/>
<field name="image_medium" widget='image' class="Your_custom_class" string="Image"/>
<field name="technician_name"/>
<field name="return_date"/>
<field name="service_state"/>
</list>
</field>
</record>
<!--Mobile service model action view-->
<record id="mobile_service_action_request" model="ir.actions.act_window">
<field name="name">Service Request</field>
<field name="res_model">mobile.service</field>
<field name="view_mode">list,form,kanban,pivot,graph</field>
<field name="search_view_id" ref="mobile_service_view_search"/>
<field name="view_id" ref="mobile_service_view_tree"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to Create a New Record.
</p>
</field>
</record>
<!--Mobile service model menus-->
<menuitem id="mobile_service_shop_menu_root" web_icon="mobile_service_shop,static/description/icon.png"
name="Mobile Service" sequence="20" groups="mobile_service_shop.mobile_service_group_executer"/>
<menuitem id="mobile_service_shop_menu" parent="mobile_service_shop_menu_root" sequence="20"/>
<menuitem action="mobile_service_action_request" id="mobile_service_menu_request"
parent="mobile_service_shop_menu_root"
name="Service Request" sequence="1"/>
<menuitem id="mobile_service_menu_configuration" parent="mobile_service_shop_menu_root"
name="Configuration" sequence="3"/>
</odoo>