[MERGE] USablity improvements: product form/kanban/search, membership, projects
bzr revid: fp@tinyerp.com-20120903175638-lq221k6yjyams8kn
This commit is contained in:
@@ -186,19 +186,23 @@
|
||||
<search string="Search Analytic Lines">
|
||||
<field name="name" string="Analytic Line"/>
|
||||
<field name="date"/>
|
||||
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-camera_test" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]" icon="terp-folder-orange"/>
|
||||
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]"/>
|
||||
<separator/>
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/>
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]"/>
|
||||
<field name="account_id"/>
|
||||
<field name="user_id"/>
|
||||
<group string="Group By..." expand="0">
|
||||
<filter string="Account" context="{'group_by':'account_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
|
||||
<filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/>
|
||||
<filter string="Analytic Account" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
|
||||
<separator/>
|
||||
<filter string="Product" context="{'group_by':'product_id'}"/>
|
||||
<filter string="User" context="{'group_by':'user_id'}"/>
|
||||
<separator/>
|
||||
<filter string="Date" context="{'group_by':'date'}" name="group_date"/>
|
||||
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -357,16 +361,6 @@
|
||||
action="action_account_analytic_journal_tree"
|
||||
id="account_analytic_journal_print" parent="account.next_id_40"/>
|
||||
|
||||
|
||||
<act_window
|
||||
context="{'search_default_account_id': [active_id], 'search_default_user_id': False, 'default_account_id': active_id}"
|
||||
id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
|
||||
name="All Analytic Entries"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"
|
||||
view_mode="tree,form"
|
||||
view_type="form"/>
|
||||
|
||||
<record id="view_account_journal_1" model="ir.ui.view">
|
||||
<field name="name">account.journal.form.1</field>
|
||||
<field name="model">account.journal</field>
|
||||
|
||||
@@ -6,12 +6,11 @@
|
||||
Analytic Account form
|
||||
-->
|
||||
|
||||
<act_window
|
||||
id="action_sales_order"
|
||||
name="Sales Orders"
|
||||
res_model="sale.order"
|
||||
src_model="account.analytic.account"
|
||||
/>
|
||||
<record model="ir.actions.act_window" id="action_sales_order">
|
||||
<field name="name">Sales Orders</field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_account_form_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.form.inherit</field>
|
||||
|
||||
@@ -8,12 +8,18 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Analytic Account" version="7.0">
|
||||
<sheet string="Analytic Account">
|
||||
<div class="oe_right oe_button_box" name="buttons">
|
||||
</div>
|
||||
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="name" class="oe_inline"/>
|
||||
</h1>
|
||||
<div name="project"/>
|
||||
<group>
|
||||
<h1>
|
||||
<field name="name" class="oe_inline"/>
|
||||
</h1>
|
||||
<div name="project"/>
|
||||
</div>
|
||||
|
||||
<group name="main">
|
||||
<group>
|
||||
<field name="partner_id" on_change="on_change_partner_id(partner_id, name)" attrs="{'required':[('type','=','contract')]}"/>
|
||||
<field name="manager_id"/>
|
||||
|
||||
@@ -38,7 +38,7 @@ class crm_configuration(osv.osv_memory):
|
||||
'module_import_google': fields.boolean("Google (Contacts and Calendar)",
|
||||
help="""Import google contact in partner address and add google calendar events details in Meeting.
|
||||
This installs the module import_google."""),
|
||||
'module_google_map': fields.boolean("add google maps on customer",
|
||||
'module_google_map': fields.boolean("add google maps on customers",
|
||||
help="""Locate customers on Google Map.
|
||||
This installs the module google_map."""),
|
||||
'group_fund_raising': fields.boolean("Manage Fund Raising",
|
||||
|
||||
@@ -23,23 +23,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- partner To Opportunity Action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_crm_partner2opportunity">
|
||||
<field name="name">Create Opportunity</field>
|
||||
<field name="res_model">crm.partner2opportunity</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree,kanban,calendar</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<!-- partner To Opportunity wizard -->
|
||||
|
||||
<act_window id="crm_partner2opportunity"
|
||||
key2="client_action_multi" name="Create Opportunity"
|
||||
res_model="crm.partner2opportunity" src_model="res.partner"
|
||||
view_id="view_crm_partner2opportunity"
|
||||
view_mode="form" target="new" view_type="form"
|
||||
groups="base.group_sale_salesman"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="purchase_ok" position="after">
|
||||
<field name="event_ok" on_change="onchange_event_ok(event_ok, context)"/>
|
||||
<label for="event_ok"/>
|
||||
</field>
|
||||
<field name='procure_method' position='before'>
|
||||
<field name='default_code' position='before'>
|
||||
<field name="event_type_id" attrs="{'readonly': [('event_ok', '=', False)]}"/>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Employee" version="7.0">
|
||||
<sheet>
|
||||
<field name="image_small" widget='image' class="oe_right oe_image_small"/>
|
||||
<field name="image_medium" widget='image' class="oe_right oe_avatar"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
|
||||
@@ -32,15 +32,15 @@ class hr_config_settings(osv.osv_memory):
|
||||
help ="""This installs the module hr_attendance."""),
|
||||
'module_hr_timesheet': fields.boolean('manage timesheets',
|
||||
help ="""This installs the module hr_timesheet."""),
|
||||
'module_hr_holidays': fields.boolean('manage leaves and allocation requests',
|
||||
'module_hr_holidays': fields.boolean('manage holidays, leaves and allocation requests',
|
||||
help ="""This installs the module hr_holidays."""),
|
||||
'module_hr_expense': fields.boolean('manage employees expenses',
|
||||
help ="""This installs the module hr_expense."""),
|
||||
'module_hr_recruitment': fields.boolean('manage the recruitment pipe',
|
||||
'module_hr_recruitment': fields.boolean('manage the recruitment process',
|
||||
help ="""This installs the module hr_recruitment."""),
|
||||
'module_hr_contract': fields.boolean('manage contract per employee',
|
||||
'module_hr_contract': fields.boolean('record contracts per employee',
|
||||
help ="""This installs the module hr_contract."""),
|
||||
'module_hr_evaluation': fields.boolean('manage employees periodic evaluation',
|
||||
'module_hr_evaluation': fields.boolean('organize employees periodic evaluation',
|
||||
help ="""This installs the module hr_evaluation."""),
|
||||
'module_hr_payroll': fields.boolean('manage payroll',
|
||||
help ="""This installs the module hr_payroll."""),
|
||||
|
||||
@@ -33,6 +33,19 @@
|
||||
<button string="Cancel" type="object" name="cancel" class="oe_link"/>
|
||||
</header>
|
||||
<separator string="Human Resources Management"/>
|
||||
<group name="recruitment_grp">
|
||||
<label for="id" string="Talent Management"/>
|
||||
<div name="recruitment">
|
||||
<div>
|
||||
<field name="module_hr_recruitment" class="oe_inline"/>
|
||||
<label for="module_hr_recruitment"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_evaluation" class="oe_inline"/>
|
||||
<label for="module_hr_evaluation"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<label for="id" string="Additional Features"/>
|
||||
<div>
|
||||
@@ -44,21 +57,6 @@
|
||||
<field name="module_hr_expense" class="oe_inline"/>
|
||||
<label for="module_hr_expense"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_evaluation" class="oe_inline"/>
|
||||
<label for="module_hr_evaluation"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_contract" class="oe_inline"/>
|
||||
<label for="module_hr_contract"/>
|
||||
</div>
|
||||
<div name="hr_payroll">
|
||||
<field name="module_hr_payroll" class="oe_inline"/>
|
||||
<label for="module_hr_payroll"/>
|
||||
<button name="%(open_payroll_modules)d" type="action"
|
||||
string="Install your country's payroll" icon="gtk-go-forward"
|
||||
attrs="{'invisible': [('module_hr_payroll','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group name="timesheet_grp">
|
||||
@@ -78,12 +76,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group name="recruitment_grp">
|
||||
<label for="id" string="Recruitment"/>
|
||||
<div name="recruitment">
|
||||
<group name="contract_grp">
|
||||
<label for="id" string="Contracts"/>
|
||||
<div>
|
||||
<div>
|
||||
<field name="module_hr_recruitment" class="oe_inline"/>
|
||||
<label for="module_hr_recruitment"/>
|
||||
<field name="module_hr_contract" class="oe_inline"/>
|
||||
<label for="module_hr_contract"/>
|
||||
</div>
|
||||
<div name="hr_payroll">
|
||||
<field name="module_hr_payroll" class="oe_inline"/>
|
||||
<label for="module_hr_payroll"/>
|
||||
<button name="%(open_payroll_modules)d" type="action"
|
||||
string="Install your country's payroll" icon="gtk-go-forward"
|
||||
attrs="{'invisible': [('module_hr_payroll','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
|
||||
@@ -126,9 +126,9 @@
|
||||
<field name="active" position="before">
|
||||
<label for="state"/>
|
||||
<div>
|
||||
<field name="state" class="oe_inline"/>
|
||||
<button class="oe_inline oe_right" name="attendance_action_change" states="present" string="Sign Out" type="object" icon="gtk-go-forward" context="{'type':'sign_out'}" groups="base.group_hr_user"/>
|
||||
<button class="oe_inline oe_right" name="attendance_action_change" states="absent" string="Sign In" type="object" icon="gtk-go-back" context="{'type':'sign_in'}" groups="base.group_hr_user"/>
|
||||
<field name="state" class="oe_inline"/> -
|
||||
<button class="oe_link" name="attendance_action_change" states="present" string="Sign Out" type="object" context="{'type':'sign_out'}" groups="base.group_hr_user"/>
|
||||
<button class="oe_link" name="attendance_action_change" states="absent" string="Sign In" type="object" context="{'type':'sign_in'}" groups="base.group_hr_user"/>
|
||||
</div>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
@@ -77,7 +77,17 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window" id="act_analytic_cost_revenue">
|
||||
<field name="context">{'search_default_account_id': [active_id], 'default_account_id': active_id, 'search_default_group_date': 1, 'search_default_group_journal': 1}</field>
|
||||
<field name="name">Costs & Revenues</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="account_analytic_account_timesheet_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.form</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
@@ -87,6 +97,12 @@
|
||||
<field name="use_timesheets"/>
|
||||
<label for="use_timesheets"/>
|
||||
</xpath>
|
||||
<xpath expr='//div[@name="buttons"]' position='inside'>
|
||||
<button string="Costs and Revenues"
|
||||
name="%(act_analytic_cost_revenue)d"
|
||||
type="action"/>
|
||||
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -122,13 +122,13 @@
|
||||
<field name="search_view_id" ref="account_analytic_line_to_invoice_view_filter"/>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
domain="[('invoice_id','=',False),('to_invoice','<>',False), ('journal_id.type', '=', 'general')]"
|
||||
context="{'search_default_account_id': [active_id], 'default_account_id': active_id,'search_default_to_invoice': 1}"
|
||||
id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice"
|
||||
name="Timesheet Lines to Invoice"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"/>
|
||||
<record id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice" model="ir.actions.act_window">
|
||||
<field name="domain">[]</field>
|
||||
<field name="context">{'search_default_account_id': [active_id], 'default_account_id': active_id,'search_default_to_invoice': 1}</field>
|
||||
<field name="name">To Invoice</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Group Form" version="7.0">
|
||||
<sheet class="openerp_mail_group_sheet">
|
||||
<field name="image_small" widget='image' class="oe_avatar oe_left"/>
|
||||
<field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
|
||||
<div class="oe_title">
|
||||
<div class="oe_edit_only">
|
||||
<label for="name" string="Group Name"/>
|
||||
|
||||
@@ -46,7 +46,6 @@ invoice and send propositions for membership renewal.
|
||||
'membership_view.xml',
|
||||
'report/report_membership_view.xml',
|
||||
'process/membership_process.xml',
|
||||
'membership_data.xml'
|
||||
],
|
||||
'demo': ['membership_demo.xml'],
|
||||
'test': ['test/test_membership.yml'],
|
||||
|
||||
@@ -146,7 +146,7 @@ class membership_line(osv.osv):
|
||||
'date_to': fields.date('To', readonly=True),
|
||||
'date_cancel': fields.date('Cancel date'),
|
||||
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'),
|
||||
'member_price': fields.float('Membership Fee', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'),
|
||||
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
|
||||
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
|
||||
'state': fields.function(_state,
|
||||
@@ -444,14 +444,6 @@ class Partner(osv.osv):
|
||||
|
||||
Partner()
|
||||
|
||||
class product_template(osv.osv):
|
||||
_inherit = 'product.template'
|
||||
_columns = {
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price')),
|
||||
}
|
||||
|
||||
product_template()
|
||||
|
||||
class Product(osv.osv):
|
||||
|
||||
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!--
|
||||
Price type
|
||||
-->
|
||||
<record model="product.price.type" id="product_price_type_memberprice" >
|
||||
<field name="name">Member Price</field>
|
||||
<field name="field">member_price</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Price list
|
||||
-->
|
||||
<record model="product.pricelist" id="list1m">
|
||||
<field name="name">Member Sale Pricelist</field>
|
||||
<field name="type">sale</field>
|
||||
</record>
|
||||
<record model="product.pricelist.version" id="ver1m">
|
||||
<field name="pricelist_id" ref="list1m"/>
|
||||
<field name="name">Member Sale Pricelist Version</field>
|
||||
</record>
|
||||
<record model="product.pricelist.item" id="item1m">
|
||||
<field name="price_version_id" ref="ver1m"/>
|
||||
<field name="base" ref="product_price_type_memberprice" />
|
||||
<field name="name">Member Sale Pricelist Line</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -88,11 +88,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<page string="Information" position="after">
|
||||
<page string="Membership">
|
||||
<group>
|
||||
<group col="1">
|
||||
<group>
|
||||
<field name="membership" readonly="0"/>
|
||||
</group>
|
||||
<group>
|
||||
<group attrs="{'invisible':[('membership','=',False)]}">
|
||||
<field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
||||
<field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
||||
</group>
|
||||
@@ -270,17 +270,5 @@
|
||||
<!-- MEMBERSHIP/REPORTING -->
|
||||
<menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
|
||||
|
||||
<!-- View for product.product object inherited from product module -->
|
||||
<record model="ir.ui.view" id="view_product_form_inherit1">
|
||||
<field name="name">product.normal.form</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="list_price" position="after">
|
||||
<field name="member_price" groups="base.group_user"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+25
-32
@@ -501,7 +501,7 @@
|
||||
<field name="res_model">mrp.bom</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="mrp_bom_component_tree_view"/>
|
||||
<field name="domain">[('bom_id','!=',False)]</field>
|
||||
<field name="domain">[]</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a component to a bill of material.
|
||||
@@ -524,6 +524,7 @@
|
||||
action="mrp_bom_form_action2"
|
||||
id="menu_mrp_bom_form_action2"
|
||||
parent="menu_mrp_configuration"
|
||||
groups="base.group_no_one"
|
||||
sequence="20"/>
|
||||
|
||||
<record id="action2" model="ir.actions.act_window">
|
||||
@@ -647,50 +648,42 @@
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/>
|
||||
</header>
|
||||
<sheet>
|
||||
<label for="product_id" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" domain="[('bom_ids','<>',False),('bom_ids.bom_id','=',False)]" class="oe_inline"/>
|
||||
</h1>
|
||||
<label for="product_qty" class="oe_edit_only"/>
|
||||
<h2>
|
||||
<field name="product_qty" class="oe_inline"/>
|
||||
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
|
||||
<button type="action"
|
||||
icon="terp-accessories-archiver+"
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="Change Qty" states="ready,confirmed" class="oe_inline"/>
|
||||
</h2>
|
||||
<div groups="mrp.group_mrp_routings">
|
||||
<label for="routing_id" class="oe_edit_only"/>
|
||||
<h2><field name="routing_id" class="oe_inline"/></h2>
|
||||
<div class="oe_title">
|
||||
<h1>Manufacturing Order <field name="name" class="oe_inline"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="origin"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" domain="[('bom_ids','<>',False),('bom_ids.bom_id','=',False)]" class="oe_inline"/>
|
||||
<label for="product_qty"/>
|
||||
<div>
|
||||
<field name="product_qty" class="oe_inline"/>
|
||||
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
|
||||
<button type="action"
|
||||
icon="terp-accessories-archiver+"
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="(Update)" states="ready,confirmed" class="oe_edit_only oe_link"/>
|
||||
</div>
|
||||
<label for="product_uos_qty" groups="product.group_uos"/>
|
||||
<div groups="product.group_uos">
|
||||
<field name="product_uos_qty" class="oe_inline"/>
|
||||
<label string="-" attrs="{'invisible':[('product_uos','=',False)]}" class="oe_inline"/>
|
||||
<field name="product_uos" class="oe_inline"/>
|
||||
</div>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
|
||||
<field name="routing_id" class="oe_inline" groups="mrp.group_mrp_routings"/>
|
||||
<field name="user_id"/>
|
||||
<field name="origin"/>
|
||||
</group>
|
||||
<group groups="stock.group_locations">
|
||||
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
|
||||
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Consumed Products">
|
||||
<group>
|
||||
<group>
|
||||
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
|
||||
</group>
|
||||
<group groups="stock.group_locations">
|
||||
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
|
||||
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="Products to Consume">
|
||||
<field name="move_lines" domain="[('state','<>', ('done', 'cancel'))]" nolabel="1">
|
||||
|
||||
@@ -1242,7 +1242,7 @@ import io, StringIO
|
||||
class ean_wizard(osv.osv_memory):
|
||||
_name = 'pos.ean_wizard'
|
||||
_columns = {
|
||||
'ean13_pattern': fields.char('Ean13 Pattern', size=32, required=True, translate=True),
|
||||
'ean13_pattern': fields.char('Reference', size=32, required=True, translate=True),
|
||||
}
|
||||
def sanitize_ean13(self, cr, uid, ids, context):
|
||||
for r in self.browse(cr,uid,ids):
|
||||
@@ -1306,7 +1306,7 @@ class product_product(osv.osv):
|
||||
|
||||
def edit_ean(self, cr, uid, ids, context):
|
||||
return {
|
||||
'name': "Edit Ean",
|
||||
'name': _("Assign a Custom EAN"),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
|
||||
@@ -608,35 +608,21 @@
|
||||
<field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
|
||||
</record>
|
||||
|
||||
<record id="product_normal_form_pos_view" model="ir.ui.view">
|
||||
<field name="name">product.normal.pos.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="status" position="after">
|
||||
<group name="pos" string="Point of Sale">
|
||||
<field name="pos_categ_id"/>
|
||||
<field name="to_weight" />
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="product_normal_form_view" model="ir.ui.view">
|
||||
<field name="name">product.normal.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="misc" position="after">
|
||||
<group name="pos" colspan="2" col="2">
|
||||
<separator string="Point of Sale" colspan="2"/>
|
||||
<group name="sale" position="inside">
|
||||
<group name="pos" string="Point of Sale">
|
||||
<field name="pos_categ_id"/>
|
||||
<field name="to_weight" />
|
||||
<field name="income_pdt"/>
|
||||
<field name="expense_pdt"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="ean13" position="after">
|
||||
<button name="edit_ean" type="object" string="Edit" />
|
||||
<button name="edit_ean" type="object" string="Set a Custom EAN" class="oe_link oe_edit_only"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
@@ -1070,9 +1056,17 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Ean13 Generator" version="7.0">
|
||||
<field name="ean13_pattern"/>
|
||||
<p class="oe_grey">
|
||||
Enter a reference for this product, it will be converted
|
||||
automatically to a valid EAN number.
|
||||
</p>
|
||||
<group>
|
||||
<field name="ean13_pattern" class="oe_inline"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="sanitize_ean13" type="object" string="Apply"/>
|
||||
<button name="sanitize_ean13" type="object" string="Apply" class="oe_highlight"/> or
|
||||
<button icon="gtk-stop" special="cancel"
|
||||
string="Cancel" class="oe_link"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -9,13 +9,21 @@
|
||||
<field name="model">make.procurement</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Procurement Request" version="7.0">
|
||||
<group col="4" string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."/>
|
||||
<group>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="qty"/>
|
||||
<field name="uom_id" groups="product.group_uom"/>
|
||||
<field name="date_planned"/>
|
||||
<p class="oe_gray">
|
||||
Fill is this for to launch a procurement request for this
|
||||
product. According to the product configuration, this may
|
||||
trigger a draft purchase order, a manufacturing order or
|
||||
a new task.
|
||||
</p>
|
||||
<group>
|
||||
<field name="warehouse_id" groups="stock.group_locations"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<label for="qty"/>
|
||||
<div>
|
||||
<field name="qty" class="oe_inline"/>
|
||||
<field name="uom_id" groups="product.group_uom"/>
|
||||
</div>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="make_procurement" string="Ask New Products" type="object" class="oe_highlight" />
|
||||
@@ -26,13 +34,13 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Procurement Request"
|
||||
res_model="make.procurement"
|
||||
src_model="product.product"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="act_make_procurement"/>
|
||||
<record model="ir.actions.act_window" id="act_make_procurement">
|
||||
<field name="name">Procurement Request</field>
|
||||
<field name="res_model">make.procurement</field>
|
||||
<field name="src_model">product.product</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -288,13 +288,13 @@ class product_template(osv.osv):
|
||||
'rental': fields.boolean('Can be Rent'),
|
||||
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]" ,help="Select category for the current product"),
|
||||
'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price for computing the customer price. Sometimes called the catalog price."),
|
||||
'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"),
|
||||
'standard_price': fields.float('Cost', digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"),
|
||||
'volume': fields.float('Volume', help="The volume in m3."),
|
||||
'weight': fields.float('Gross Weight', digits_compute=dp.get_precision('Stock Weight'), help="The gross weight in Kg."),
|
||||
'weight_net': fields.float('Net Weight', digits_compute=dp.get_precision('Stock Weight'), help="The net weight in Kg."),
|
||||
'cost_method': fields.selection([('standard','Standard Price'), ('average','Average Price')], 'Costing Method', required=True,
|
||||
help="Standard Price: the cost price is fixed and recomputed periodically (usually at the end of the year), Average Price: the cost price is recomputed at each reception of products."),
|
||||
'warranty': fields.float('Warranty (months)'),
|
||||
'warranty': fields.float('Warranty'),
|
||||
'sale_ok': fields.boolean('Can be Sold', help="Determines if the product can be visible in the list of product within a selection from a sale order line."),
|
||||
'purchase_ok': fields.boolean('Can be Purchased', help="Determine if the product is visible in the list of products within a selection from a purchase order line."),
|
||||
'state': fields.selection([('',''),
|
||||
@@ -302,7 +302,7 @@ class product_template(osv.osv):
|
||||
('sellable','Normal'),
|
||||
('end','End of Lifecycle'),
|
||||
('obsolete','Obsolete')], 'Status', help="Tells the user if he can use the product or not."),
|
||||
'uom_id': fields.many2one('product.uom', 'Default Unit of Measure', required=True, help="Default Unit of Measure used for all stock operation."),
|
||||
'uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True, help="Default Unit of Measure used for all stock operation."),
|
||||
'uom_po_id': fields.many2one('product.uom', 'Purchase Unit of Measure', required=True, help="Default Unit of Measure used for purchase orders. It must be in the same category than the default unit of measure."),
|
||||
'uos_id' : fields.many2one('product.uom', 'Unit of Sale',
|
||||
help='Used by companies that manage two units of measure: invoicing and inventory management. For example, in food industries, you will manage a stock of ham but invoice in Kg. Keep empty to use the default Unit of Measure.'),
|
||||
@@ -354,7 +354,7 @@ class product_template(osv.osv):
|
||||
'list_price': lambda *a: 1,
|
||||
'cost_method': lambda *a: 'standard',
|
||||
'supply_method': lambda *a: 'buy',
|
||||
'standard_price': lambda *a: 1,
|
||||
'standard_price': lambda *a: 0.0,
|
||||
'sale_ok': lambda *a: 1,
|
||||
'sale_delay': lambda *a: 7,
|
||||
'produce_delay': lambda *a: 1,
|
||||
@@ -535,9 +535,9 @@ class product_product(osv.osv):
|
||||
'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'),
|
||||
'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Product Price')),
|
||||
'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')),
|
||||
'code': fields.function(_product_code, type='char', string='Reference'),
|
||||
'code': fields.function(_product_code, type='char', string='Internal Reference'),
|
||||
'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'),
|
||||
'default_code' : fields.char('Reference', size=64, select=True),
|
||||
'default_code' : fields.char('Internal Reference', size=64, select=True),
|
||||
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."),
|
||||
'variants': fields.char('Variants', size=64),
|
||||
'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"),
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
<filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
|
||||
<filter string="Products" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]" help="Both stockable and consumable products"/>
|
||||
<separator/>
|
||||
<filter string="To Sell" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
|
||||
<separator/>
|
||||
<filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
|
||||
<filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
|
||||
<filter name="filter_to_purchase" string="Can be Purchased" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
|
||||
@@ -71,6 +69,12 @@
|
||||
</h1>
|
||||
<label for="categ_id" class="oe_edit_only"/>
|
||||
<h2><field name="categ_id"/></h2>
|
||||
<div name="options" groups="base.group_user">
|
||||
<field name="sale_ok"/>
|
||||
<label for="sale_ok"/>
|
||||
<field name="purchase_ok"/>
|
||||
<label for="purchase_ok"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_right oe_button_box" name="buttons">
|
||||
</div>
|
||||
@@ -78,57 +82,77 @@
|
||||
<page string="Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="default_code"/>
|
||||
<field name="ean13" placeholder="e.g. 5901234123457"/>
|
||||
<field groups="product.group_product_variant" name="variants"/>
|
||||
</group>
|
||||
<group groups="base.group_user">
|
||||
<field name="sale_ok"/>
|
||||
<field name="purchase_ok"/>
|
||||
</group>
|
||||
<group string="Procurement">
|
||||
<field name="type"/>
|
||||
<field name="procure_method" groups="base.group_user" attrs="{'invisible':[('type','=', 'service')]}"/>
|
||||
</group>
|
||||
<group string="Prices">
|
||||
<field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)" groups="product.group_uom"/>
|
||||
<field name="list_price"/>
|
||||
<field name="cost_method" groups="product.group_costing_method"/>
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="default_code"/>
|
||||
<label for="ean13"/>
|
||||
<div name="ean">
|
||||
<field name="ean13" placeholder="e.g. 5901234123457"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field groups="product.group_product_variant" name="variants"/>
|
||||
<field name="price_margin" groups="product.group_product_variant"/>
|
||||
<field name="price_extra" groups="product.group_product_variant"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<field name="description" placeholder="describe the product's characteristics for internal use..."/>
|
||||
</page>
|
||||
<page string="Procurements" groups="base.group_user">
|
||||
<group name="procurement">
|
||||
<group>
|
||||
<field name="procure_method" groups="base.group_user" attrs="{'invisible':[('type','=', 'service')]}"/>
|
||||
<field name="cost_method" groups="product.group_costing_method"/>
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="uom_po_id" groups="product.group_uom"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Notes for Suppliers"/>
|
||||
<field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
|
||||
</page>
|
||||
<page string="Inventory" groups="base.group_user">
|
||||
<group name="inventory">
|
||||
<group name="status" string="Status">
|
||||
<field name="state"/>
|
||||
<field name="product_manager"/>
|
||||
</group>
|
||||
<group name="store" string="Storage Localisation">
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="loc_rack" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<field name="loc_row" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<field name="loc_case" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
</group>
|
||||
<group groups="product.group_stock_packaging" string="Weights">
|
||||
<field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="weight" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
</group>
|
||||
|
||||
<group name="uom" groups="product.group_uom" string="Unit of Measure">
|
||||
<field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)"/>
|
||||
<field name="uom_po_id"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Sales" attrs="{'readonly':[('sale_ok','=',0)]}">
|
||||
<group name="sale">
|
||||
<group string="Sale Conditions">
|
||||
<label for="sale_delay"/>
|
||||
<div>
|
||||
<field name="sale_delay" class="oe_inline"/> days
|
||||
</div>
|
||||
<label for="warranty"/>
|
||||
<div>
|
||||
<field name="warranty" class="oe_inline"/> months
|
||||
</div>
|
||||
</group>
|
||||
<group groups="product.group_uos" string="Unit of Measure">
|
||||
<field name="uos_id"/>
|
||||
<field name="uos_coeff"/>
|
||||
<field name="mes_type"/>
|
||||
</group>
|
||||
|
||||
<group name="status" string="Status">
|
||||
<field name="state"/>
|
||||
<field name="product_manager"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
</page>
|
||||
<page string="Descriptions" groups="base.group_user">
|
||||
<separator string="Description"/>
|
||||
<field name="description"/>
|
||||
<separator string="Sale Description"/>
|
||||
<field name="description_sale" placeholder="This note will be displayed on quotations..."/>
|
||||
<separator string="Purchase Description"/>
|
||||
<field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
|
||||
</page>
|
||||
<page groups="product.group_stock_packaging" string="Packaging">
|
||||
<field name="packaging">
|
||||
<field name="packaging" groups="product.group_stock_packaging">
|
||||
<form string="Packaging" version="7.0">
|
||||
<group col="4">
|
||||
<field name="ean"/>
|
||||
@@ -150,6 +174,8 @@
|
||||
<field name="name"/>
|
||||
</form>
|
||||
</field>
|
||||
<separator string="Notes on Quotations"/>
|
||||
<field name="description_sale" placeholder="note to be displayed on quotations..."/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
@@ -162,42 +188,30 @@
|
||||
</record>
|
||||
|
||||
<!-- Product Kanban View -->
|
||||
<record model="ir.ui.view" id="product_kanban_view">
|
||||
|
||||
<record model="ir.ui.view" id="product.product_kanban_view">
|
||||
<field name="name">Product Kanban</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<field name="color"/>
|
||||
<field name="type"/>
|
||||
<field name="image_medium"/>
|
||||
<field name="image_small"/>
|
||||
<field name="list_price"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-if="record.type.raw_value!='service' and record.qty_available.raw_value lte 0" t-set="border">oe_kanban_color_red</t>
|
||||
<div t-attf-class="#{kanban_color(record.color.raw_value)} #{border || ''}">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle oe_kanban_title">
|
||||
<field name="name"/>
|
||||
</div>
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
|
||||
<img t-att-src="kanban_image('product.product', 'image_medium', record.id.value)" width="48" style="float: left; padding: 0 4px 4px 0"/>
|
||||
Code: <field name="code"/>
|
||||
<div t-if="record.type.raw_value == 'service'">No Stock</div>
|
||||
<t t-if="record.type.raw_value != 'service'">
|
||||
<div>Stock: <field name="qty_available"/> on hand, <field name="virtual_available"/> available</div>
|
||||
<div t-if="record.list_price.raw_value != 0">Public Price: <field name="lst_price"/></div>
|
||||
<!-- TODO would deserve to be hidden at the field level -->
|
||||
<div groups="base.group_user">Cost : <field name="standard_price"/></div>
|
||||
</t>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
|
||||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
</div>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_kanban_vignette">
|
||||
<a type="open"><img t-att-src="kanban_image('product.product', 'image_small', record.id.value)" class="oe_kanban_image"/></a>
|
||||
<div class="oe_kanban_details">
|
||||
<h4>
|
||||
<a type="open">
|
||||
<t t-if="record.code.raw_value">[<field name="code"/>]</t> <field name="name"/>
|
||||
</a>
|
||||
</h4>
|
||||
<div name="tags"/>
|
||||
<ul>
|
||||
<li>Price: <field name="lst_price"></field></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
@@ -227,7 +241,7 @@
|
||||
<field name="name">Products</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">product.product</field>
|
||||
<field name="view_mode">tree,form,kanban</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="context">{"search_default_filter_to_sell":1}</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
@@ -250,7 +264,7 @@
|
||||
<record id="open_view_product_tree1" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action_sell"/>
|
||||
</record>
|
||||
|
||||
@@ -264,8 +278,8 @@
|
||||
<record id="open_view_product_kanban1" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">kanban</field>
|
||||
<field name="view_id" ref="product_kanban_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action"/>
|
||||
<field name="view_id" ref="product_kanban_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action_sell"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
|
||||
@@ -534,7 +548,7 @@
|
||||
<field name="model">product.packaging</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packaging">
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="ean"/>
|
||||
<field name="qty"/>
|
||||
<field name="ul"/>
|
||||
@@ -606,7 +620,7 @@
|
||||
<field name="model">product.supplierinfo</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Supplier Information">
|
||||
<field name="sequence" string="Seq"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="min_qty"/>
|
||||
@@ -716,7 +730,10 @@
|
||||
<group>
|
||||
<group name="delay" string="Delays">
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
<field name="produce_delay"/>
|
||||
<label for="produce_delay"/>
|
||||
<div>
|
||||
<field name="produce_delay" class="oe_inline"/> days
|
||||
</div>
|
||||
<field name="warranty"/>
|
||||
</group>
|
||||
<group name="store" string="Storage Localisation">
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Dates">
|
||||
<group name="inventory">
|
||||
<group string="Dates">
|
||||
<field name="life_time" />
|
||||
<field name="use_time" />
|
||||
<field name="removal_time" />
|
||||
<field name="alert_time" />
|
||||
</page>
|
||||
</notebook>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -7,23 +7,21 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Manufacturer">
|
||||
<group string="Manufacturer">
|
||||
<field name="manufacturer" />
|
||||
<field name="manufacturer_pname"/>
|
||||
<field name="manufacturer_pref"/>
|
||||
</group>
|
||||
<group string="Attributes">
|
||||
<field name="attribute_ids" colspan="4" nolabel="1">
|
||||
<tree string="Product Attributes" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<group name="procurement" position="inside">
|
||||
<group string="Manufacturer">
|
||||
<field name="manufacturer" />
|
||||
<field name="manufacturer_pname"/>
|
||||
<field name="manufacturer_pref"/>
|
||||
</group>
|
||||
<group string="Attributes">
|
||||
<field name="attribute_ids" colspan="4" nolabel="1">
|
||||
<tree string="Product Attributes" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="active" position="after">
|
||||
<field name="project_id" attrs="{'readonly':[('type','!=','service')]}" />
|
||||
<field name="type" position="after">
|
||||
<field name="project_id" attrs="{'invisible':[('type','!=','service')]}" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
parent="base.menu_purchase_root" sequence="6"/>
|
||||
|
||||
<record id="action_invoice_pending" model="ir.actions.act_window">
|
||||
<field name="name">Based on Draft Invoices</field>
|
||||
<field name="name">On Draft Invoices</field>
|
||||
<field name="res_model">account.invoice</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar,graph</field>
|
||||
@@ -95,7 +95,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Based on Draft Invoices"
|
||||
<menuitem
|
||||
id="menu_procurement_management_pending_invoice"
|
||||
action="action_invoice_pending"
|
||||
parent="menu_procurement_management_invoice"
|
||||
@@ -177,7 +177,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Purchase Order" version="7.0">
|
||||
<header>
|
||||
<button name="purchase_confirm" states="draft,sent" string="Confirm Quotation" class="oe_highlight"/>
|
||||
<button name="purchase_confirm" states="draft,sent" string="Confirm Order" class="oe_highlight"/>
|
||||
<button name="wkf_send_rfq" states="draft" string="Send RFQ" type="object" context="{'send_rfq':True}"/>
|
||||
<button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object" class="oe_highlight"/>
|
||||
<button name="action_cancel" states="except_picking,except_invoice" string="Cancel" type="object" />
|
||||
@@ -508,7 +508,7 @@
|
||||
|
||||
|
||||
<record id="purchase_line_form_action2" model="ir.actions.act_window">
|
||||
<field name="name">Based on Purchase Order Lines</field>
|
||||
<field name="name">On Purchase Order Lines</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.order.line</field>
|
||||
<field name="domain">[('order_id.invoice_method','<>','picking'), ('state','in',('confirmed','done')), ('invoiced', '=', False)]</field>
|
||||
@@ -562,11 +562,10 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@string='Descriptions']" position="before">
|
||||
<page string="Suppliers" groups="base.group_user">
|
||||
<field name="seller_ids" context="{'uom_id': uom_id}"/>
|
||||
</page>
|
||||
</xpath>
|
||||
<group name="procurement" position="after">
|
||||
<separator string="Suppliers"/>
|
||||
<field name="seller_ids" context="{'uom_id': uom_id}"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree4_picking_to_invoice" model="ir.actions.act_window">
|
||||
<field name="name">Based on Incoming Shipments</field>
|
||||
<field name="name">On Incoming Shipments</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
|
||||
@@ -183,9 +183,7 @@
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="procure_method" position="before">
|
||||
<group colspan="2" col="2" attrs="{'invisible': [('supply_method','<>','buy')]}">
|
||||
<field name="purchase_requisition"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -56,7 +56,7 @@ class sale_configuration(osv.osv_memory):
|
||||
help ="""Allows you to add delivery methods in sale orders and delivery orders.
|
||||
You can define your own carrier and delivery grids for prices.
|
||||
This installs the module delivery."""),
|
||||
'time_unit': fields.many2one('product.uom', 'The default working time unit for services is'),
|
||||
'time_unit': fields.many2one('product.uom', 'the default working time unit for services is'),
|
||||
'default_picking_policy' : fields.boolean("deliver all at once when all products are available.",
|
||||
help = "Sales order by default will be configured to deliver all products at once instead of delivering each product when it is available. This may have an impact on the shipping price."),
|
||||
'group_sale_pricelist':fields.boolean("use pricelists to adapt your price per customers",
|
||||
|
||||
@@ -32,7 +32,7 @@ class product_product(osv.osv):
|
||||
moves = move_pool.read_group(cr, uid, [
|
||||
('product_id', 'in', ids),
|
||||
('picking_id.type', '=', 'in'),
|
||||
('state','in',('draft','confirmed','assigned','pending'))
|
||||
('state','in',('confirmed','assigned','pending'))
|
||||
], ['product_id'], ['product_id'])
|
||||
for move in moves:
|
||||
product_id = move['product_id'][0]
|
||||
@@ -40,7 +40,7 @@ class product_product(osv.osv):
|
||||
moves = move_pool.read_group(cr, uid, [
|
||||
('product_id', 'in', ids),
|
||||
('picking_id.type', '=', 'out'),
|
||||
('state','in',('draft','confirmed','assigned','pending'))
|
||||
('state','in',('confirmed','assigned','pending'))
|
||||
], ['product_id'], ['product_id'])
|
||||
for move in moves:
|
||||
product_id = move['product_id'][0]
|
||||
@@ -373,7 +373,7 @@ class product_product(osv.osv):
|
||||
"typed as 'internal'."),
|
||||
'virtual_available': fields.function(_product_available, multi='qty_available',
|
||||
type='float', digits_compute=dp.get_precision('Product Unit of Measure'),
|
||||
string='Quantity Available',
|
||||
string='Future Quantity',
|
||||
help="Forecast quantity (computed as Quantity On Hand "
|
||||
"- Outgoing + Incoming)\n"
|
||||
"In a context with a single Stock Location, this includes "
|
||||
|
||||
@@ -50,38 +50,28 @@
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_normal_procurement_locations_form" model="ir.ui.view">
|
||||
<field name="name">product.normal.procurement.locations.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Procurement & Locations" groups="base.group_user">
|
||||
<group>
|
||||
<group name="delay" string="Delays">
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
<field name="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<field name="warranty"/>
|
||||
</group>
|
||||
<group name="store" string="Storage Localisation">
|
||||
<field name="loc_rack" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="loc_row" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="loc_case" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
</group>
|
||||
<group name="store" groups="stock.group_locations">
|
||||
<separator string="Counter-Part Locations Properties" colspan="2"/>
|
||||
<field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
|
||||
<field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
|
||||
<field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
|
||||
</group>
|
||||
<group name="misc" string="Miscellaneous">
|
||||
<field name="active"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<group name="procurement" position="inside">
|
||||
<group name="delay" string="Delays">
|
||||
<label for="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<div attrs="{'invisible':[('type','=','service')]}">
|
||||
<field name="produce_delay" class="oe_inline"/> days
|
||||
</div>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="inventory" position="inside">
|
||||
<group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
|
||||
<field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
|
||||
<field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
|
||||
<field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -93,8 +83,8 @@
|
||||
<field name="standard_price" position="replace" version="7.0">
|
||||
<label string="Cost Price" for="standard_price" align="1.0" groups="base.group_user"/>
|
||||
<div groups="base.group_user">
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}" nolabel="1"/> -
|
||||
<button name="%(action_view_change_standard_price)d" string="update"
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}" nolabel="1"/>
|
||||
<button name="%(action_view_change_standard_price)d" string="- update"
|
||||
type="action" attrs="{'invisible':[('cost_method','<>','average')]}"
|
||||
class="oe_link"/>
|
||||
</div>
|
||||
@@ -132,19 +122,17 @@
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="status" position="before" version="7.0">
|
||||
<group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}">
|
||||
<group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
|
||||
<label for="qty_available"/>
|
||||
<div>
|
||||
<field name="qty_available" class="oe_inline"/>
|
||||
<button name="%(action_view_change_product_quantity)d" string="update"
|
||||
type="action" groups="stock.group_stock_manager,stock.group_stock_user"
|
||||
type="action"
|
||||
class="oe_link"/>
|
||||
</div>
|
||||
<label for="virtual_available" groups="base.group_user"/>
|
||||
<div groups="base.group_user">
|
||||
<field name="virtual_available" class="oe_inline"/>
|
||||
(+<field name="incoming_qty" class="oe_inline"/> -<field name="outgoing_qty" class="oe_inline"/>)
|
||||
</div>
|
||||
<field name="incoming_qty" class="oe_inline"/>
|
||||
<field name="outgoing_qty" class="oe_inline"/>
|
||||
<field name="virtual_available" class="oe_inline"/>
|
||||
</group>
|
||||
<group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
|
||||
<field name="track_production" groups="stock.group_production_lot"/>
|
||||
@@ -164,7 +152,6 @@
|
||||
<field name="domain">[('picking_id.type','=','in')]</field>
|
||||
<field name="view_id" ref="view_move_tree_reception_picking"/>
|
||||
<field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
|
||||
<field name="search_view_id" ref="view_move_search_reception_incoming_picking"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to register a reception for this product.
|
||||
@@ -185,7 +172,6 @@
|
||||
<field name="domain">[('picking_id.type','=','out')]</field>
|
||||
<field name="view_id" ref="view_move_tree_reception_picking"/>
|
||||
<field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
|
||||
<field name="search_view_id" ref="view_move_search_reception_outcoming_picking"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a delivery order for this product.
|
||||
@@ -197,50 +183,27 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="product.product_kanban_view">
|
||||
<field name="name">Product Kanban</field>
|
||||
<record model="ir.ui.view" id="product_kanban_stock_view">
|
||||
<field name="name">Product Kanban Stock</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_kanban_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<field name="color"/>
|
||||
<field name="type"/>
|
||||
<field name="image_medium"/>
|
||||
<field name="list_price"/>
|
||||
<field name="list_price" position="after">
|
||||
<field name="reception_count"/>
|
||||
<field name="delivery_count"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_product_vignette">
|
||||
<div class="oe_product_img">
|
||||
<a type="open"><img t-att-src="kanban_image('product.product', 'image_medium', record.id.value)" class="oe_product_photo"/></a>
|
||||
</div>
|
||||
<div class="oe_product_desc">
|
||||
<h4><a type="open"><field name="name"></field></a></h4>
|
||||
<ul>
|
||||
<li t-if="record.code.raw_value">Code: <field name="code"/></li>
|
||||
<li t-if="record.type.raw_value != 'service'">Stock on hand: <field name="qty_available"/> <field name="uom_id"/></li>
|
||||
<li t-if="record.type.raw_value != 'service'">Stock available: <field name="virtual_available"/> <field name="uom_id"/></li>
|
||||
<li>Price: <field name="lst_price"></field></li>
|
||||
<!-- TODO the 'groups' attribute doesn't work in kanban views -->
|
||||
<li groups="base.group_user">Cost: <field name="standard_price"></field></li>
|
||||
</ul>
|
||||
<div groups="base.group_user">
|
||||
<a name="%(action_receive_move)d" type="action">
|
||||
<t t-if="record.reception_count.value">Receptions(<t t-esc="record.reception_count.value"/>)</t>
|
||||
</a>
|
||||
<a name="%(action_deliver_move)d" type="action">
|
||||
<t t-if="record.delivery_count.value">Deliveries(<t t-esc="record.delivery_count.value"/>)</t>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('.oe_product_photo').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_product_photo_wide') } });
|
||||
</script>
|
||||
<div></div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
<xpath expr="//div[@name='tags']" position="inside">
|
||||
<a name="%(action_receive_move)d" type="action" t-if="record.reception_count.raw_value>0">
|
||||
<t t-esc="record.reception_count.value"/> Receptions
|
||||
</a>
|
||||
<a name="%(action_deliver_move)d" type="action" t-if="record.delivery_count.raw_value>0">
|
||||
<t t-esc="record.delivery_count.value"/> Deliveries
|
||||
</a>
|
||||
</xpath>
|
||||
<ul position="inside">
|
||||
<li t-if="record.type.raw_value != 'service'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>
|
||||
<li t-if="record.type.raw_value != 'service'">Available: <field name="virtual_available"/> <field name="uom_id"/></li>
|
||||
</ul>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
+23
-63
@@ -113,13 +113,14 @@
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div>
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<field name="name" placeholder="e.g. Annual inventory" class="oe_inline"/> -
|
||||
<field name="date" class="oe_inline"/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<group>
|
||||
<field name="name" placeholder="e.g. Annual inventory"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="General Informations">
|
||||
@@ -267,7 +268,8 @@
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="menu_traceability" name="Traceability" parent="menu_stock_root" sequence="3"/>
|
||||
<menuitem id="menu_traceability" name="Traceability" parent="menu_stock_root"
|
||||
sequence="3" groups="stock.group_tracking_lot,stock.group_production_lot"/>
|
||||
<menuitem action="action_tracking_form" id="menu_action_tracking_form"
|
||||
groups="product.group_stock_packaging"
|
||||
sequence="6"
|
||||
@@ -1333,10 +1335,11 @@
|
||||
<field eval="3" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<field name="origin" string="Stock Moves"/>
|
||||
<field name="origin" domain="['|',('origin','ilike',self),('picking_id','ilike',self)]" string="Reference"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
|
||||
<filter icon="terp-camera_test" string="Ready" name="ready" domain="[('state','=','assigned')]" help="Stock moves that are Available (Ready to process)"/>
|
||||
<filter icon="terp-stock" string="Future" name="future" domain="[('state','in',('assigned','confirmed','waiting'))]" help="Stock moves that are Confirmed, Available or Waiting"/>
|
||||
<filter icon="terp-stock" string="To Do" name="future" domain="[('state','in',('assigned','confirmed','waiting'))]" help="Stock moves that are Confirmed, Available or Waiting"/>
|
||||
<filter icon="terp-dialog-close" string="Done" name="done" domain="[('state','=','done')]" help="Stock moves that have been processed"/>
|
||||
<separator/>
|
||||
<filter icon="terp-go-today" string="Today" domain="[('date','<=',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','>=',time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Orders processed Today or planned for Today"/>
|
||||
@@ -1389,8 +1392,10 @@
|
||||
<field name="priority" eval="6"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="grey:state == 'cancel'" string="Moves">
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="date" widget="date"/>
|
||||
<field name="picking_id" string="Reference" invisible="1"/>
|
||||
<field name="origin"/>
|
||||
<field name="partner_id" string="Supplier"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
||||
@@ -1413,8 +1418,13 @@
|
||||
groups="product.group_stock_packaging"
|
||||
icon="terp-stock_effects-object-colorize"
|
||||
states="draft,assigned,confirmed,done"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
<field name="state"/>
|
||||
<button name="%(action_partial_move_server)d"
|
||||
icon="terp-stock_effects-object-colorize" type="action"
|
||||
states="assigned" class="oe_highlight"/>
|
||||
<button name="action_done" states="draft,assigned,confirmed"
|
||||
icon="gtk-go-forward" type="object"
|
||||
class="oe_highlight"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -1435,54 +1445,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_move_search_reception_incoming_picking" model="ir.ui.view">
|
||||
<field name="name">stock.move.incoming.search2</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field eval="6" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<field name="origin" string="Stock Moves"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="receive" string="Waiting " domain="[('state','in',('confirmed','assigned'))]" help="Stock to be receive"/>
|
||||
<filter icon="terp-check" name="available" string="Available" domain="[('state','in',('assigned',))]" help="Stock available to be delivered"/>
|
||||
<filter icon="terp-dialog-close" name="done" string="Done" domain="[('state', '=', 'done')]"/>
|
||||
<separator/>
|
||||
<filter icon="terp-go-today" string="Today" domain="[('date','<=',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','>=',time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Orders planned for today"/>
|
||||
<field name="product_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_move_search_reception_outcoming_picking" model="ir.ui.view">
|
||||
<field name="name">stock.move.outgoing.search2</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field eval="6" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<field name="origin" string="Stock Moves"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="receive" string="Waiting" domain="[('state','in',('confirmed','assigned'))]" help="Stock to be delivered (Available or not)"/>
|
||||
<filter icon="terp-check" name="available" string="Available" domain="[('state','in',('assigned',))]" help="Stock available to be delivered"/>
|
||||
<filter icon="terp-dialog-close" name="received" string="Done" domain="[('state','=','done')]"/>
|
||||
<separator/>
|
||||
<filter icon="terp-go-today" string="Today" domain="[('date','<=',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','>=',time.strftime('%%Y-%%m-%%d 00:00:00'))]" help="Orders planned for today"/>
|
||||
<field name="product_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_reception_picking_move" model="ir.actions.act_window">
|
||||
<field name="name">Receive Products</field>
|
||||
<field name="res_model">stock.move</field>
|
||||
@@ -1491,8 +1453,7 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">['|','&',('picking_id','=',False),('location_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False),('picking_id.type','=','in')]</field>
|
||||
<field name="view_id" ref="view_move_tree_reception_picking"/>
|
||||
<field name="context" eval="'{\'product_receive\' : True, \'default_location_id\':%d, \'default_location_dest_id\':%d}' % (ref('stock_location_suppliers'),ref('stock_location_stock') )"/>
|
||||
<field name="search_view_id" ref="view_move_search_reception_incoming_picking"/>
|
||||
<field name="context" eval="'{\'product_receive\' : True, \'default_location_id\':%d, \'default_location_dest_id\':%d, \'search_default_future\': 1}' % (ref('stock_location_suppliers'),ref('stock_location_stock') )"/>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
Click to register a product reception.
|
||||
@@ -1627,8 +1588,7 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">['|','&',('picking_id','=',False),('location_dest_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False),('picking_id.type','=','out')]</field>
|
||||
<field name="view_id" ref="view_move_tree_reception_picking"/>
|
||||
<field name="context" eval="'{\'default_location_id\':%d, \'default_location_dest_id\':%d}' % (ref('stock_location_stock'),ref('stock_location_customers'))"/>
|
||||
<field name="search_view_id" ref="view_move_search_reception_outcoming_picking"/>
|
||||
<field name="context" eval="'{\'default_location_id\':%d, \'default_location_dest_id\':%d, \'search_default_future\': 1}' % (ref('stock_location_stock'),ref('stock_location_customers'))"/>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
You will find in this list all products you have to deliver to
|
||||
|
||||
@@ -38,62 +38,59 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Logistics Flows">
|
||||
<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 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 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 string="Action Type">
|
||||
<field name="type_proc"/>
|
||||
<field name="company_id"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
<field name="path_ids">
|
||||
<field name="name"/>
|
||||
<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"/>
|
||||
</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="company_id" groups="base.group_multi_company"/>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<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>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -45,16 +45,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Warnings">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Warning when Selling this Product" colspan="4"/>
|
||||
<field name="sale_line_warn" nolabel="1" />
|
||||
<field name="sale_line_warn_msg" colspan="3" nolabel="1"
|
||||
<group string="Warning when Selling this Product">
|
||||
<field name="sale_line_warn"/>
|
||||
<field name="sale_line_warn_msg"
|
||||
attrs="{'required':[('sale_line_warn','!=','no-message')],'readonly':[('sale_line_warn','=','no-message')]}"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Warning when Purchasing this Product" colspan="4" />
|
||||
<field name="purchase_line_warn" nolabel="1" />
|
||||
<field name="purchase_line_warn_msg" colspan="3" nolabel="1"
|
||||
<group string="Warning when Purchasing this Product">
|
||||
<field name="purchase_line_warn"/>
|
||||
<field name="purchase_line_warn_msg"
|
||||
attrs="{'required':[('purchase_line_warn','!=','no-message')],'readonly':[('purchase_line_warn','=','no-message')]}"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
Reference in New Issue
Block a user