Improvements

bzr revid: fp@tinyerp.com-20080902132651-yuucw7n89r4cvb3k
This commit is contained in:
Fabien Pinckaers 2008-09-02 15:26:51 +02:00
parent ece0491a4b
commit 96f4b756eb
13 changed files with 113 additions and 72 deletions

View File

@ -141,9 +141,8 @@ class account_account(osv.osv):
context = {} context = {}
pos = 0 pos = 0
while pos<len(args): while pos<len(args):
if args[pos][0]=='code' and args[pos][1] in ('like','ilike'): if args[pos][0]=='code' and args[pos][1] in ('like','ilike') and args[pos][2]:
args[pos][1]='=like' args[pos] = ('code', '=like', str(args[pos][2].replace('%',''))+'%')
args[pos][2]=str(args[pos][2])+'%'
if args[pos][0]=='journal_id': if args[pos][0]=='journal_id':
if not args[pos][2]: if not args[pos][2]:
del args[pos] del args[pos]
@ -342,7 +341,7 @@ class account_account(osv.osv):
for record in reads: for record in reads:
name = record['name'] name = record['name']
if record['code']: if record['code']:
name = record['code']+' - '+name name = record['code']+' '+name
res.append((record['id'],name )) res.append((record['id'],name ))
return res return res
@ -363,10 +362,9 @@ class account_account(osv.osv):
context={} context={}
if 'active' in vals and not vals['active']: if 'active' in vals and not vals['active']:
line_obj = self.pool.get('account.move.line') line_obj = self.pool.get('account.move.line')
account_ids = self.search(cr, uid, [('parent_id', 'child_of', ids)]) account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]): if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
vals=vals.copy() raise osv.except_osv(_('Error !'), _('You can not desactivate an account that contains account moves.'))
del vals['active']
return super(account_account, self).write(cr, uid, ids, vals, context=context) return super(account_account, self).write(cr, uid, ids, vals, context=context)
account_account() account_account()

View File

@ -40,7 +40,7 @@
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id"/> <field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id"/>
<newline/> <newline/>
<field name="price_subtotal"/> <field name="price_subtotal"/>
<field colspan="4" name="invoice_line_tax_id"/> <field colspan="4" name="invoice_line_tax_id" domain="[('parent_id','=',False)]"/>
</page> </page>
<page string="Notes"> <page string="Notes">
<field colspan="4" name="note" nolabel="1"/> <field colspan="4" name="note" nolabel="1"/>

View File

@ -130,7 +130,7 @@
<newline/> <newline/>
<newline/> <newline/>
<field name="child_consol_ids" colspan="4"/> <field name="child_consol_ids" colspan="4"/>
<field colspan="4" name="tax_ids"/> <field colspan="4" name="tax_ids" domain="[('parent_id','=',False)]"/>
</page> </page>
<page string="Notes"> <page string="Notes">
<field colspan="4" name="note" nolabel="1"/> <field colspan="4" name="note" nolabel="1"/>
@ -140,7 +140,7 @@
</field> </field>
</record> </record>
<record id="action_account_form" model="ir.actions.act_window"> <record id="action_account_form" model="ir.actions.act_window">
<field name="name">Financial Accounts</field> <field name="name">List of Accounts</field>
<field name="res_model">account.account</field> <field name="res_model">account.account</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
@ -155,8 +155,8 @@
<field name="field_parent">child_id</field> <field name="field_parent">child_id</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Chart of accounts"> <tree string="Chart of accounts">
<field name="name"/>
<field name="code"/> <field name="code"/>
<field name="name"/>
<field name="debit"/> <field name="debit"/>
<field name="credit"/> <field name="credit"/>
<field name="balance"/> <field name="balance"/>
@ -625,17 +625,9 @@
<field eval="True" name="object"/> <field eval="True" name="object"/>
</record> </record>
<wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Entries by Journal"/> <wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Entries Encoding by Line"/>
<menuitem action="action_move_journal_line_form" id="menu_action_move_journal_line_form" parent="account.menu_finance_entries" type="wizard"/> <menuitem action="action_move_journal_line_form" id="menu_action_move_journal_line_form" parent="account.menu_finance_entries" type="wizard"/>
<record id="action_move_journal_period_line_form" model="ir.actions.act_window">
<field name="name">Entries in Open Journals</field>
<field name="res_model">account.journal.period</field>
<field name="view_type">tree</field>
<field name="domain">[('state','&lt;&gt;','done')]</field>
</record>
<menuitem action="action_move_journal_period_line_form" id="menu_action_move_journal_period_line_form" parent="account.menu_action_move_journal_line_form"/>
<!-- <!--
Entries lines Entries lines
--> -->
@ -702,7 +694,7 @@
<field name="tax_code_id"/> <field name="tax_code_id"/>
<field name="tax_amount"/> <field name="tax_amount"/>
<newline/> <newline/>
<field name="account_tax_id"/> <field name="account_tax_id" domain="[('parent_id','=',False)]"/>
<field name="analytic_account_id"/> <field name="analytic_account_id"/>
<separator colspan="4" string="State"/> <separator colspan="4" string="State"/>
@ -752,7 +744,7 @@
<field name="date_created"/> <field name="date_created"/>
<field name="blocked" select="3"/> <field name="blocked" select="3"/>
<newline/> <newline/>
<field name="account_tax_id"/> <field name="account_tax_id" domain="[('parent_id','=',False)]"/>
<field name="analytic_account_id"/> <field name="analytic_account_id"/>
<separator colspan="4" string="State"/> <separator colspan="4" string="State"/>
@ -1571,7 +1563,7 @@
<newline/> <newline/>
<field name="sequence" select="1"/> <field name="sequence" select="1"/>
<field name="type"/> <field name="type"/>
<field name="domain"/> <field name="domain" groups="base.group_extended"/>
<field name="tax_group" /> <field name="tax_group" />
</form> </form>
</field> </field>

View File

@ -18,7 +18,7 @@
<field name="close_method">balance</field> <field name="close_method">balance</field>
</record> </record>
<record id="account_type_view" model="account.account.type"> <record id="account_type_view" model="account.account.type">
<field name="name">View</field> <field name="name">Total Account</field>
<field name="code">view</field> <field name="code">view</field>
<field name="close_method">none</field> <field name="close_method">none</field>
</record> </record>
@ -69,4 +69,4 @@
<field name="close_method">none</field> <field name="close_method">none</field>
</record> </record>
</data> </data>
</terp> </terp>

View File

@ -7,51 +7,87 @@
--> -->
<record id="minimal_0" model="account.account"> <record id="minimal_0" model="account.account">
<field name="code">0</field> <field name="code">x 0</field>
<field name="name">Minimal account chart</field> <field name="name">Chart For Automated Tests</field>
<field name="close_method">none</field> <field name="close_method">none</field>
<field eval="0" name="parent_id"/> <field eval="0" name="parent_id"/>
<field name="type">view</field> <field name="type">view</field>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record id="a_recv" model="account.account"> <record id="a_recv" model="account.account">
<field name="name">Main Receivable</field> <field name="name">Main Receivable</field>
<field name="code">40</field> <field name="code">x 40000</field>
<field name="type">receivable</field> <field name="type">receivable</field>
<field eval="ref('minimal_0')" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record id="a_pay" model="account.account"> <record id="a_pay" model="account.account">
<field name="name">Main Payable</field> <field name="name">Main Payable</field>
<field name="code">440</field> <field name="code">x 440000</field>
<field name="type">payable</field> <field name="type">payable</field>
<field eval="ref('minimal_0')" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/> <field eval="True" name="reconcile"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record id="cash" model="account.account"> <record id="cash" model="account.account">
<field name="name">Petty Cash</field> <field name="name">Petty Cash</field>
<field name="code">57</field> <field name="code">x 570000</field>
<field name="type">cash</field> <field name="type">cash</field>
<field eval="ref('minimal_0')" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record id="a_expense" model="account.account"> <record id="a_expense" model="account.account">
<field name="name">Products Purchase</field> <field name="name">Products Purchase</field>
<field name="code">600</field> <field name="code">x 600000</field>
<field name="type">expense</field> <field name="type">expense</field>
<field eval="ref('minimal_0')" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record id="a_sale" model="account.account"> <record id="a_sale" model="account.account">
<field name="name">Products Sales</field> <field name="name">Products Sales</field>
<field name="code">701</field> <field name="code">x 701000</field>
<field name="type">income</field> <field name="type">income</field>
<field eval="ref('minimal_0')" name="parent_id"/> <field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record> </record>
<record forcecreate="True" id="property_account_receivable" model="ir.property"> <record forcecreate="True" id="property_account_receivable" model="ir.property">
@ -74,4 +110,4 @@
</record> </record>
</data> </data>
</terp> </terp>

View File

@ -34,10 +34,13 @@ import pooler
from tools.translate import _ from tools.translate import _
_journal_form = '''<?xml version="1.0"?> _journal_form = '''<?xml version="1.0"?>
<form string="Standard entries"> <form string="Validate Account Entries">
<separator string="Select Period and Journal for Validation" colspan="4"/>
<field name="journal_id"/> <field name="journal_id"/>
<newline/> <newline/>
<field name="period_id"/> <field name="period_id"/>
<separator string="Information" colspan="4"/>
<label string="All draft account entries in this journal and period will be validated. It means you won't be able to modify their accouting fields." colspan="4"/>
</form>''' </form>'''
_journal_fields = { _journal_fields = {

View File

@ -7,10 +7,11 @@
<field name="model">res.partner</field> <field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/> <field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="active" position="after"> <field name="property_account_tax" position="after">
<group colspan="2"> <field name="vat" nolabel="1" on_change="vat_change(vat)" select="2"/>
<field name="vat_subject"/> <group colspan="1" col="2">
<field name="vat"/> <label string="VAT :" align="1.0"/>
<field name="vat_subjected" nolabel="1"/>
</group> </group>
</field> </field>
</field> </field>

View File

@ -34,19 +34,18 @@
# #
from osv import osv from osv import osv
from osv import fields
class res_partner(osv.osv): class res_partner(osv.osv):
_inherit = 'res.partner' _inherit = 'res.partner'
def check_vat(self, cr, uid, ids): def check_vat(self, cr, uid, ids):
''' '''
Check the VAT number depending of the country. Check the VAT number depending of the country.
http://sima-pc.com/nif.php http://sima-pc.com/nif.php
''' '''
for partner in self.browse(cr, uid, ids): for partner in self.browse(cr, uid, ids):
if not partner.vat_subject:
continue
if not partner.vat: if not partner.vat:
continue #FIXME return False? empty vat numbre is invalid? continue #FIXME return False? empty vat numbre is invalid?
@ -58,8 +57,14 @@ class res_partner(osv.osv):
return True return True
def vat_change(self, cr, uid, ids, value, context={}):
return {'value': {'vat_subjected': bool(value)}}
_columns = {
'vat_subjected': fields.boolean('Subjected', help="Check this box if the partner is subjected to the VAT. It will be used for the VAT legal statement.")
}
_constraints = [(check_vat, "The VAT doesn't seem to be correct.", ["vat"])] _constraints = [(check_vat, "The VAT doesn't seem to be correct.", ["vat"])]
# code from the following methods come from Tryton (B2CK) # code from the following methods come from Tryton (B2CK)
# http://www.tryton.org/hgwebdir.cgi/modules/relationship/file/544d1de586d9/party.py # http://www.tryton.org/hgwebdir.cgi/modules/relationship/file/544d1de586d9/party.py
def check_vat_at(self, vat): def check_vat_at(self, vat):

View File

@ -35,7 +35,7 @@
"account_chart"], "account_chart"],
"init_xml" : [], "init_xml" : [],
"demo_xml" : ["account_demo.xml","account.report.report.csv"], "demo_xml" : ["account_demo.xml","account.report.report.csv"],
"update_xml" : ["../account_chart/account_chart.xml", "account_pcmn_belgium.xml","l10n_be_wizard.xml", "l10n_be_sequence.xml"], "update_xml" : ["account_pcmn_belgium.xml","l10n_be_wizard.xml", "l10n_be_sequence.xml"],
"installable": True "installable": True
} }

View File

@ -277,7 +277,7 @@
<menuitem action="mrp_bom_form_action" id="menu_mrp_bom_form_action" parent="menu_mrp_configuration"/> <menuitem action="mrp_bom_form_action" id="menu_mrp_bom_form_action" parent="menu_mrp_configuration"/>
<record id="mrp_bom_tree_action" model="ir.actions.act_window"> <record id="mrp_bom_tree_action" model="ir.actions.act_window">
<field name="name">BoM Structure</field> <field name="name">Bill of Material Structure</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.bom</field> <field name="res_model">mrp.bom</field>
<field name="view_type">tree</field> <field name="view_type">tree</field>
@ -285,18 +285,27 @@
<field name="view_id" ref="mrp_bom_tree_view"/> <field name="view_id" ref="mrp_bom_tree_view"/>
</record> </record>
<menuitem action="mrp_bom_tree_action" id="menu_bom_tree" parent="menu_mrp_bom_form_action"/> <menuitem action="mrp_bom_tree_action" id="menu_bom_tree" parent="menu_mrp_bom_form_action"/>
<record id="mrp_bom_form_action_new" model="ir.actions.act_window">
<record id="mrp_bom_form_action2" model="ir.actions.act_window"> <field name="name">New Bill of Materials</field>
<field name="name">BoM Lines</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.bom</field> <field name="res_model">mrp.bom</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_id" ref="mrp_bom_tree_view"/> <field name="view_form">form,tree</field>
<field name="domain">[('bom_id','=',False)]</field>
</record> </record>
<menuitem action="mrp_bom_form_action2" id="menu_mrp_bom_form_action2" parent="menu_mrp_bom_form_action"/> <menuitem action="mrp_bom_form_action_new" id="menu_mrp_bom_form_action_new" parent="menu_mrp_bom_form_action"/>
<record id="mrp_bom_form_action2" model="ir.actions.act_window">
<field name="name">Bill of Materials Components</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.bom</field>
<field name="view_type">form</field>
<field name="domain">[('bom_id','<>',False)]</field>
</record>
<menuitem action="mrp_bom_form_action2" id="menu_mrp_bom_form_action2" parent="menu_mrp_configuration"/>
<record id="action2" model="ir.actions.act_window"> <record id="action2" model="ir.actions.act_window">
<field name="name">Bill of Materials Architecture</field> <field name="name">Bill of Materials Structure</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.bom</field> <field name="res_model">mrp.bom</field>
<field name="domain">[('id','in',active_ids)]</field> <field name="domain">[('id','in',active_ids)]</field>
@ -306,7 +315,7 @@
<record id="ir_bom_architecture_open" model="ir.values"> <record id="ir_bom_architecture_open" model="ir.values">
<field eval="'client_action_multi'" name="key2"/> <field eval="'client_action_multi'" name="key2"/>
<field eval="'mrp.bom'" name="model"/> <field eval="'mrp.bom'" name="model"/>
<field name="name">Bill of Material Architecture</field> <field name="name">Bill of Materials Structure</field>
<field eval="'ir.actions.act_window,'+str(action2)" name="value"/> <field eval="'ir.actions.act_window,'+str(action2)" name="value"/>
<field eval="True" name="object"/> <field eval="True" name="object"/>
</record> </record>

View File

@ -44,7 +44,7 @@
<field name="purchase_ok" select="2"/> <field name="purchase_ok" select="2"/>
<field groups="base.group_extended" name="rental" select="2"/> <field groups="base.group_extended" name="rental" select="2"/>
</group> </group>
<notebook> <notebook colspan="4">
<page string="Information"> <page string="Information">
<group colspan="2" col="2"> <group colspan="2" col="2">
<separator string="Procurement" colspan="2"/> <separator string="Procurement" colspan="2"/>
@ -53,11 +53,11 @@
<field name="supply_method"/> <field name="supply_method"/>
</group> </group>
<group colspan="2" col="2"> <group colspan="2" col="2" groups="base.group_extended">
<separator string="Weigths" colspan="2"/> <separator string="Weigths" colspan="2"/>
<field digits="(14, 3)" groups="base.group_extended" name="volume" attrs="{'readonly':[('type','=','service')]}"/> <field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
<field digits="(14, 3)" groups="base.group_extended" name="weight" attrs="{'readonly':[('type','=','service')]}"/> <field digits="(14, 3)" name="weight" attrs="{'readonly':[('type','=','service')]}"/>
<field digits="(14, 3)" groups="base.group_extended" name="weight_net" attrs="{'readonly':[('type','=','service')]}"/> <field digits="(14, 3)" name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
</group> </group>
<group colspan="2" col="2" name="status"> <group colspan="2" col="2" name="status">

View File

@ -161,7 +161,7 @@
<field name="price_unit"/> <field name="price_unit"/>
<field name="account_analytic_id"/> <field name="account_analytic_id"/>
<field name="price_subtotal" readonly="1"/> <field name="price_subtotal" readonly="1"/>
<field colspan="4" name="taxes_id"/> <field colspan="4" name="taxes_id" domain="[('parent_id','=',False)]"/>
</page> </page>
<page string="Notes"> <page string="Notes">
<field colspan="4" name="notes" nolabel="1"/> <field colspan="4" name="notes" nolabel="1"/>

View File

@ -101,7 +101,7 @@
<field name="type"/> <field name="type"/>
<field name="delay" select="2"/> <field name="delay" select="2"/>
<newline/> <newline/>
<field colspan="4" name="tax_id"/> <field colspan="4" name="tax_id" domain="[('parent_id','=',False)]"/>
<separator colspan="4" string="States"/> <separator colspan="4" string="States"/>
<field name="state" select="2"/> <field name="state" select="2"/>
<group col="3" colspan="2"> <group col="3" colspan="2">
@ -208,6 +208,15 @@
</record> </record>
<menuitem action="action_order_tree_all" id="menu_action_order_tree_all" parent="sale.menu_sale_order"/> <menuitem action="action_order_tree_all" id="menu_action_order_tree_all" parent="sale.menu_sale_order"/>
<record id="action_order_tree_new" model="ir.actions.act_window">
<field name="name">New Sale Order / Quotation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
</record>
<menuitem action="action_order_tree_new" id="menu_action_order_tree_new" parent="sale.menu_sale_order"/>
<record id="action_order_tree2" model="ir.actions.act_window"> <record id="action_order_tree2" model="ir.actions.act_window">
<field name="name">Sales in Exception</field> <field name="name">Sales in Exception</field>
@ -345,7 +354,7 @@
<field name="type"/> <field name="type"/>
<field name="delay" select="2"/> <field name="delay" select="2"/>
<field name="price_subtotal"/> <field name="price_subtotal"/>
<field colspan="4" name="tax_id"/> <field colspan="4" name="tax_id" domain="[('parent_id','=',False)]"/>
<separator colspan="4" string="States"/> <separator colspan="4" string="States"/>
<field name="state" select="2"/> <field name="state" select="2"/>
<group col="2" colspan="2"> <group col="2" colspan="2">
@ -372,7 +381,7 @@
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order.line</field> <field name="res_model">sale.order.line</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_id" ref="view_order_line_form2"/> <field name="view_id" eval="False"/>
</record> </record>
<menuitem action="action_order_line_tree1" id="menu_action_order_line_tree1" parent="sale.menu_sale_root"/> <menuitem action="action_order_line_tree1" id="menu_action_order_line_tree1" parent="sale.menu_sale_root"/>
@ -396,22 +405,10 @@
</record> </record>
<menuitem action="action_order_line_tree3" id="menu_action_order_line_tree3" parent="sale.menu_action_order_line_tree2"/> <menuitem action="action_order_line_tree3" id="menu_action_order_line_tree3" parent="sale.menu_action_order_line_tree2"/>
<record id="action_order_line_tree4" model="ir.actions.act_window">
<field name="name">All Sale Order Lines</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_order_line_tree4" id="menu_action_order_line_tree4" parent="sale.menu_action_order_line_tree1"/>
<act_window context="{'partner_id': active_id}" domain="[('partner_id', '=', active_id)]" id="act_res_partner_2_sale_order" name="Sales" res_model="sale.order" src_model="res.partner"/> <act_window context="{'partner_id': active_id}" domain="[('partner_id', '=', active_id)]" id="act_res_partner_2_sale_order" name="Sales" res_model="sale.order" src_model="res.partner"/>
<act_window domain="[('product_id','=',active_id)]" id="action_order_line_product_tree" name="Product sales" res_model="sale.order.line" src_model="product.product"/> <act_window domain="[('product_id','=',active_id)]" id="action_order_line_product_tree" name="Product sales" res_model="sale.order.line" src_model="product.product"/>
<!-- configartion view --> <!-- configartion view -->
<record id="view_config_picking_policy" model="ir.ui.view"> <record id="view_config_picking_policy" model="ir.ui.view">