[MERGE] module desc + stock

bzr revid: fp@tinyerp.com-20121209105527-4ot27zsv5vqr38ls
This commit is contained in:
Fabien Pinckaers 2012-12-09 11:55:27 +01:00
parent 87009adb89
commit f3fc080ef7
19 changed files with 127 additions and 121 deletions

View File

@ -25,7 +25,7 @@
'category': 'Accounting & Finance',
'description': """
Module to automate letters for unpaid invoices, with multi-level recalls.
==========================================================================
=========================================================================
You can define your multiple levels of recall through the menu:
---------------------------------------------------------------

View File

@ -26,7 +26,7 @@
'summary': 'Send Invoices and Track Payments',
'description': """
Invoicing & Payments by Accounting Voucher & Receipts
======================================================
=====================================================
The specific and easy-to-use Invoicing system in OpenERP allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your suppliers and customers.
You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments.

View File

@ -24,7 +24,7 @@
'category': 'Tools',
'description': """
Automated Translations through Gengo API
----------------------------------------
========================================
This module will install passive scheduler job for automated translations
using the Gengo API. To activate it, you must

View File

@ -28,7 +28,7 @@
'summary': 'Leads, Opportunities, Phone Calls',
'description': """
The generic OpenERP Customer Relationship Management
=====================================================
====================================================
This application enables a group of people to intelligently and efficiently manage leads, opportunities, meetings and phone calls.

View File

@ -27,7 +27,7 @@
'description': """
Manage Customer Claims.
================================================================================
=======================
This application allows you to track your customers/suppliers claims and grievances.
It is fully integrated with the email gateway so that you can create

View File

@ -35,7 +35,7 @@ Employee can encode their own expenses and the validation flow puts it automatic
The whole flow is implemented as:
----------------------------------
---------------------------------
* Draft expense
* Confirmation of the sheet by the employee
* Validation by his manager

View File

@ -28,7 +28,7 @@
'summary': 'Jobs, Recruitment, Applications, Job Interviews',
'description': """
Manage job positions and the recruitment process
=================================================
================================================
This application allows you to easily keep track of jobs, vacancies, applications, interviews...

View File

@ -22,8 +22,8 @@
{
'name': 'Switzerland - Accounting',
'description': """
Swiss localization :
====================
Swiss localization:
===================
- DTA generation for a lot of payment types
- BVR management (number generation, report.)
- Import account move from the bank file (like v11)

View File

@ -32,8 +32,8 @@ French Payroll Rules.
- All main contributions rules for French payslip, for 'cadre' and 'non-cadre'
- New payslip report
TODO :
------
TODO:
-----
- Integration with holidays module for deduction and allowance
- Integration with hr_payroll_account for the automatic account_move_line
creation from the payslip

View File

@ -687,7 +687,7 @@
groups="stock.group_production_lot"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
</tree>
</field>
@ -704,7 +704,7 @@
<button
name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert"
icon="terp-gtk-jump-to-ltr"
states="done,cancel"/>
</tree>
</field>
@ -726,7 +726,7 @@
icon="gtk-justify-fill"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
</tree>
</field>
@ -744,7 +744,7 @@
<button name="%(stock.track_line)d"
string="Split in Serial Numbers" type="action" icon="gtk-justify-fill" states="done,cancel"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" icon="gtk-convert"
string="Scrap Products" type="action" icon="terp-gtk-jump-to-ltr"
states="done,cancel"/>
</tree>
</field>

View File

@ -25,7 +25,7 @@
'category': 'Tools',
'description': """
This module update memos inside OpenERP for using an external pad
===================================================================
=================================================================
Use for update your text memo in real time with the following user that you invite.

View File

@ -28,7 +28,7 @@
'summary': 'Touchscreen Interface for Shops',
'description': """
Quick and Easy sale process
============================
===========================
This module allows you to manage your shop sales very easily with a fully web based touchscreen interface.
It is compatible with all PC tablets and the iPad, offering multiple payment methods.

View File

@ -34,7 +34,7 @@ The double entry inventory system allows you to manage customers, suppliers as w
OpenERP has the capacity to manage lots and serial numbers ensuring compliance with the traceability requirements imposed by the majority of industries.
Key Features
-------------
------------
* Moves history and planning,
* Stock valuation (standard or average price, ...)
* Robustness faced with Inventory differences

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="Stock Inventory.pdf">
<template title="Stock Inventory" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<template pageSize="(595.0,842.0)" title="Stock Inventory" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
@ -47,6 +47,7 @@
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table8">
<blockAlignment value="LEFT"/>
@ -55,12 +56,14 @@
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
@ -104,25 +107,6 @@
<images/>
</stylesheet>
<story>
<pto>
<pto_header>
<blockTable colWidths="70.0,103.0,256.0,109.0" style="Table4">
<tr>
<td>
<para style="terp_tblheader_Details">Location</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Production Lot</para>
</td>
<td>
<para style="terp_tblheader_Details">Product </para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Quantity</para>
</td>
</tr>
</blockTable>
</pto_header>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]] </para>
<blockTable colWidths="539.0" style="Table3">
<tr>
@ -163,7 +147,7 @@
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="70.0,103.0,256.0,109.0" style="Table4">
<blockTable colWidths="59.0,86.0,213.0,91.0,91.0" style="Table4">
<tr>
<td>
<para style="terp_tblheader_Details">Location</para>
@ -177,11 +161,14 @@
<td>
<para style="terp_tblheader_Details_Right">Quantity</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Manual Quantity</para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_2">[[ repeatIn(o.inventory_line_id, 'p') ]]</para>
<blockTable colWidths="70.0,105.0,255.0,109.0" style="Table8">
<blockTable colWidths="58.0,87.0,212.0,91.0,91.0" style="Table8">
<tr>
<td>
<para style="terp_default_9">[[ p.location_id.name ]]</para>
@ -195,10 +182,15 @@
<td>
<para style="terp_default_Right_9">[[ formatLang(p.product_qty) ]] [[ p.product_uom.name ]]</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
</section>
<blockTable colWidths="383.0,47.0,109.0" style="Table7">
<blockTable colWidths="318.0,39.0,91.0,91.0" style="Table7">
<tr>
<td>
<para style="terp_default_Bold_9">
@ -211,11 +203,16 @@
<td>
<para style="terp_default_Bold_Right_9">[[ formatLang(qty_total(o.inventory_line_id)['quantity']) ]] [[ qty_total(o.inventory_line_id)['uom'] ]]</para>
</td>
<td>
<para style="terp_default_Bold_Right_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</pto>
</story>
</document>
</document>

View File

@ -243,7 +243,7 @@ class stock_location(osv.osv):
elif location.chained_location_type == 'fixed':
result = location.chained_location_id
if result:
return result, location.chained_auto_packing, location.chained_delay, location.chained_journal_id and location.chained_journal_id.id or False, location.chained_company_id and location.chained_company_id.id or False, location.chained_picking_type
return result, location.chained_auto_packing, location.chained_delay, location.chained_journal_id and location.chained_journal_id.id or False, location.chained_company_id and location.chained_company_id.id or False, location.chained_picking_type, False
return result
def picking_type_get(self, cr, uid, from_location, to_location, context=None):
@ -2131,7 +2131,7 @@ class stock_move(osv.osv):
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context)
else:
pickid = False
for move, (loc, dummy, delay, dummy, company_id, ptype) in todo:
for move, (loc, dummy, delay, dummy, company_id, ptype, invoice_state) in todo:
new_id = move_obj.copy(cr, uid, move.id, {
'location_id': move.location_dest_id.id,
'location_dest_id': loc.id,
@ -2140,7 +2140,7 @@ class stock_move(osv.osv):
'state': 'waiting',
'company_id': company_id or res_obj._company_default_get(cr, uid, 'stock.company', context=context) ,
'move_history_ids': [],
'date': (datetime.strptime(move.date, '%Y-%m-%d %H:%M:%S') + relativedelta(days=delay or 0)).strftime('%Y-%m-%d'),
'date_expected': (datetime.strptime(move.date, '%Y-%m-%d %H:%M:%S') + relativedelta(days=delay or 0)).strftime('%Y-%m-%d'),
'move_history_ids2': []}
)
move_obj.write(cr, uid, [move.id], {

View File

@ -65,7 +65,7 @@
<field domain="[('usage','=','internal')]" name="location_id"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split Inventory Line" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize"/>
type="action" icon="gtk-justify-fill"/>
</group>
</form>
</field>
@ -136,7 +136,7 @@
<field name="prod_lot_id" groups="stock.group_production_lot"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize" states="draft,confirm"/>
type="action" icon="gtk-justify-fill" states="draft,confirm"/>
<field name="state" invisible="True"/>
</tree>
<form string="Products" version="7.0">
@ -154,7 +154,7 @@
<field name="prod_lot_id" groups="stock.group_production_lot"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize"/>
type="action" icon="gtk-justify-fill"/>
</group>
</group>
</form>
@ -168,7 +168,7 @@
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in serial numbers" type="action"
icon="terp-stock_effects-object-colorize"
icon="gtk-justify-fill"
attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,done,cancel"
context="{'inventory_id':parent.id}"
@ -176,7 +176,7 @@
<field groups="stock.group_tracking_lot" name="tracking_id"/>
<button name="%(split_into)d" string="Put in a new pack" type="action"
groups="stock.group_tracking_lot"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
context="{'inventory_id':parent.id}"
states="draft,done,cancel"/>
<field name="location_id" groups="stock.group_locations"/>
@ -1130,21 +1130,21 @@
<field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
<field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in Serial Numbers" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
icon="gtk-justify-fill" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done"
groups="stock.group_tracking_lot"/>
<field name="tracking_id" groups="stock.group_tracking_lot"/>
<button name="setlast_tracking" string="Put in current pack" type="object"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
icon="terp-accessories-archiver" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
states="draft,assigned,confirmed,done"/>
<button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
states="draft,assigned,confirmed,done"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="location_dest_id" groups="stock.group_locations"/>
@ -1168,7 +1168,7 @@
<field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"
groups="base.group_user"/>
<field name="scrapped" invisible="1"/>
@ -1177,17 +1177,17 @@
name="%(stock.track_line)d"
string="Split in Serial Number"
groups="stock.group_production_lot"
type="action" icon="terp-stock_effects-object-colorize"
type="action" icon="gtk-justify-fill"
states="draft,waiting,confirmed,assigned"/>
<field groups="stock.group_tracking_lot" name="tracking_id"/>
<button name="setlast_tracking" string="Put in current pack" type="object"
attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver"
groups="stock.group_tracking_lot"
states="draft,assigned,confirmed"/>
<button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/>
<field name="location_dest_id" groups="stock.group_locations"/>
<field name="state"/>
@ -1221,7 +1221,7 @@
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d"
string="Scrap" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/>
</div>
<label for="product_uos_qty" groups="product.group_uos"/>
@ -1255,7 +1255,7 @@
<field name="tracking_id" class="oe_inline"/>
<button name="%(split_into)d" string="New Pack" type="action"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/>
</div>
<label for="prodlot_id" groups="stock.group_production_lot"/>
@ -1266,7 +1266,7 @@
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)"/>
<button name="%(track_line)d"
states="draft,waiting,confirmed,assigned"
string="Split" type="action" icon="terp-stock_effects-object-colorize"/>
string="Split" type="action" icon="gtk-justify-fill"/>
</div>
</group>
</group>
@ -1298,7 +1298,7 @@
<field name="product_uom" string="Unit Of Measure" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d"
string="Scrap" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"
groups="base.group_user"/>
</div>
@ -1328,7 +1328,7 @@
<button name="%(split_into)d"
string="New Pack" type="action"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/>
</div>
@ -1341,7 +1341,7 @@
<button name="%(track_line)d"
groups="stock.group_tracking_lot"
states="draft,waiting,confirmed,assigned"
string="Split" type="action" icon="terp-stock_effects-object-colorize"/>
string="Split" type="action" icon="gtk-justify-fill"/>
</div>
</group>
</group>
@ -1439,22 +1439,22 @@
<field name="create_date" invisible="1"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/>
<field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in Serial Numbers" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
icon="gtk-justify-fill" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done"
groups="stock.group_tracking_lot"/>
<field name="tracking_id" groups="stock.group_tracking_lot"/>
<button name="setlast_tracking" string="Put in current pack" type="object"
attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver"
states="draft,assigned,confirmed,done"/>
<button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize"
icon="terp-accessories-archiver+"
states="draft,assigned,confirmed,done"/>
<field name="state"/>
<button name="%(action_partial_move_server)d"

View File

@ -109,6 +109,11 @@ class stock_move(osv.osv):
self.action_cancel(cr, uid, [m.move_dest_id.id], context=context)
res = super(stock_move,self).action_cancel(cr,uid,ids,context)
return res
def _prepare_chained_picking(self, cr, uid, picking_name, picking, picking_type, moves_todo, context=None):
res = super(stock_move, self)._prepare_chained_picking(cr, uid, picking_name, picking, picking_type, moves_todo, context=context)
res.update({'invoice_state': moves_todo[0][1][6] or 'none'})
return res
stock_move()
class stock_location(osv.osv):
@ -117,7 +122,7 @@ class stock_location(osv.osv):
if product:
for path in product.path_ids:
if path.location_from_id.id == location.id:
return path.location_dest_id, path.auto, path.delay, path.journal_id and path.journal_id.id or False, path.company_id and path.company_id.id or False, path.picking_type
return path.location_dest_id, path.auto, path.delay, path.journal_id and path.journal_id.id or False, path.company_id and path.company_id.id or False, path.picking_type, path.invoice_state
return super(stock_location, self).chained_location_get(cr, uid, location, partner, product, context)
stock_location()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -39,57 +39,61 @@
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<group name="inventory" position="after">
<field name="flow_pull_ids" colspan="4" nolabel="1">
<tree string="Pulled flows">
<field name="name"/>
<field name="location_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="type_proc"/>
<field name="journal_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
<form string="Pulled Paths">
<group>
<group string="Conditions">
<field name="name" placeholder="Fulfill needs on location X from location Y "/>
<field name="location_id"/>
</group>
<group string="Action Type">
<field name="type_proc"/>
<field name="company_id"/>
</group>
</group>
<group attrs="{'invisible':[('type_proc','!=','move')]}">
<field name="location_src_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="picking_type"/>
<field name="partner_address_id"/>
<field name="procure_method"/>
<field name="cancel_cascade"/>
<field name="invoice_state"/>
<group string="Pull Flow">
<field name="flow_pull_ids" colspan="4" nolabel="1">
<tree string="Pulled flows">
<field name="name"/>
<field name="location_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="type_proc"/>
<field name="journal_id"/>
</group>
</form>
</field>
<field name="path_ids">
<tree string="Pushed flows">
<field name="location_from_id"/>
<field name="location_dest_id"/>
<field name="auto"/>
<field name="name"/>
<field name="invoice_state"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
<form string="Pushed flows">
<field name="name" placeholder="When receiving at location X, move to location Y"/>
<field name="location_from_id"/>
<field name="location_dest_id"/>
<field name="auto"/>
<field name="delay"/>
<field name="journal_id"/>
<field name="picking_type"/>
<field name="invoice_state"/>
<field name="company_id" groups="base.group_multi_company"/>
</form>
</field>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
<form string="Pulled Paths">
<group>
<group string="Conditions">
<field name="name" placeholder="Fulfill needs on location X from location Y "/>
<field name="location_id"/>
</group>
<group string="Action Type">
<field name="type_proc"/>
<field name="company_id"/>
</group>
</group>
<group attrs="{'invisible':[('type_proc','!=','move')]}">
<field name="location_src_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="picking_type"/>
<field name="partner_address_id"/>
<field name="procure_method"/>
<field name="cancel_cascade"/>
<field name="invoice_state"/>
<field name="journal_id"/>
</group>
</form>
</field>
</group>
<group string="Push Flow">
<field name="path_ids" nolabel="1">
<tree string="Pushed flows">
<field name="location_from_id"/>
<field name="location_dest_id"/>
<field name="auto"/>
<field name="name"/>
<field name="invoice_state"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
<form string="Pushed flows">
<field name="name" placeholder="When receiving at location X, move to location Y"/>
<field name="location_from_id"/>
<field name="location_dest_id"/>
<field name="auto"/>
<field name="delay"/>
<field name="journal_id"/>
<field name="picking_type"/>
<field name="invoice_state"/>
<field name="company_id" groups="base.group_multi_company"/>
</form>
</field>
</group>
</group>
</field>
</record>

View File

@ -25,7 +25,7 @@
'complexity': "easy",
'description': """
Google Analytics.
==============================
=================
Collects web application usage with Google Analytics.
""",