[MERGE] lp:~openerp-dev/openobject-addons/trunk-first_10_clicks_purchase-mdi/

bzr revid: stw@openerp.com-20120803124606-omnkdxp5ly1tpy4q
This commit is contained in:
Stephane Wirtel 2012-08-03 14:46:06 +02:00
commit 6e7a35e819
7 changed files with 140 additions and 15 deletions

View File

@ -306,7 +306,7 @@ class account_invoice(osv.osv):
if view_type == 'form':
if partner['supplier'] and not partner['customer']:
view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name', '=', 'account.invoice.supplier.form')])
else:
elif partner['customer'] and not partner['supplier']:
view_id = self.pool.get('ir.ui.view').search(cr,uid,[('name', '=', 'account.invoice.form')])
if view_id and isinstance(view_id, (list, tuple)):
view_id = view_id[0]

View File

@ -24,6 +24,21 @@ from osv import fields, osv
class res_partner(osv.osv):
_name = 'res.partner'
_inherit = 'res.partner'
def _purchase_order_count(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for partner in self.browse(cr, uid, ids, context=context):
res[partner.id] = len(partner.purchase_order_ids)
return res
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default.update({'purchase_order_ids': []})
super(res_partner, self).copy(cr, uid, id, default=default, context=context)
_columns = {
'property_product_pricelist_purchase': fields.property(
'product.pricelist',
@ -33,6 +48,8 @@ class res_partner(osv.osv):
string="Purchase Pricelist",
view_load=True,
help="This pricelist will be used, instead of the default one, for purchases from the current partner"),
'purchase_order_count': fields.function(_purchase_order_count, string='# of Purchase Order', type='integer'),
'purchase_order_ids': fields.one2many('purchase.order','partner_id','Purchase Order')
}
res_partner()

View File

@ -16,6 +16,73 @@
</field>
</field>
</record>
<record id="act_res_partner_2_purchase_order" model="ir.actions.act_window">
<field name="name">RFQs and Purchases</field>
<field name="res_model">purchase.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_partner_id': active_id}</field>
<field name="groups_id" eval="[(4, ref('purchase.group_purchase_user'))]"/>
<field name="help">
This supplier has no RFQ or Purchase Order. Click here to create a new RFQ.
&lt;p&gt;
The "Quotation" is the first step of the Purchases flow. Manage your purchases from quotation to invoice.
&lt;p&gt;
You will be able to buy products (manage receptions) as well as services (create projects).
</field>
</record>
<!-- Partner kanban view inherited -->
<record model="ir.ui.view" id="purchase_partner_kanban_view">
<field name="name">res.partner.kanban.purchaseorder.inherit</field>
<field name="model">res.partner</field>
<field name="type">kanban</field>
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
<field name="arch" type="xml">
<field name="mobile" position="after">
<field name="purchase_order_count"/>
</field>
<xpath expr="//div[@class='oe_kanban_partner_links']" position="inside">
<a name="%(purchase.act_res_partner_2_purchase_order)d" type="action" t-if="record.purchase_order_count.value>0">
<t t-esc="record.purchase_order_count.value"/> Purchases
</a>
</xpath>
</field>
</record>
<record id="act_res_partner_2_supplier_invoices" model="ir.actions.act_window">
<field name="name">Supplier Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'search_default_partner_id': active_id, 'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field>
<field name="help">
Click here to create Supplier invoice.
&lt;p&gt;
You can control the invoice from your supplier according to what you purchased or received.
&lt;p&gt;
OpenERP can also generate draft invoices automatically from purchase orders or receipts.
</field>
</record>
<record id="res_partner_view_purchase_buttons" model="ir.ui.view">
<field name="name">res.partner.view.purchase.buttons</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="priority" eval="20"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<button name="%(purchase.act_res_partner_2_purchase_order)d" type="action"
string="RFQs and Purchases"
groups="purchase.group_purchase_user"/>
<button name="%(purchase.act_res_partner_2_supplier_invoices)d" type="action"
string="Supplier Invoices"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -6,12 +6,10 @@
<!-- ids, subject, body, parent_id=False, type='notification', content_subtype='html' -->
<value eval="[ref('mail.group_all_employees')]"/>
<value>Module Purchase Management has been installed</value>
<value>From the top menu Purchases, create purchase orders to buy
products from your suppliers, encode supplier invoices and
manage your payments.
<value>You can &lt;b&gt;click on the top menu Purchases&lt;/b&gt; to manage your
suppliers, request for quotations and control supplier invoices.
You can also manage purchase requisitions, see the Purchase
Settings.
To configure your purchase application, you can add purchase's options in settings menu.
</value>
</function>

View File

@ -491,14 +491,6 @@
</field>
</record>
<act_window
context="{'search_default_partner_id': [active_id], 'default_partner_id': active_id}"
id="act_res_partner_2_purchase_order"
name="RFQs and Purchases"
groups="purchase.group_purchase_user"
res_model="purchase.order"
src_model="res.partner"/>
<act_window
context="{'search_default_product_id': [active_id], 'default_product_id': active_id}"
id="action_purchase_line_product_tree"

View File

@ -75,6 +75,27 @@
<field name="context">{'search_default_purchase_id': active_id,'default_type': 'in'}</field>
<field name="search_view_id" ref="view_picking_in_search_picking_to_invoice"/>
</record>
<record id="act_purchase_order_2_stock_picking_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="stock.view_picking_in_tree"/>
<field name="act_window_id" ref="act_purchase_order_2_stock_picking"/>
</record>
<record id="act_purchase_order_2_stock_picking_form" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="stock.view_picking_in_form"/>
<field name="act_window_id" ref="act_purchase_order_2_stock_picking"/>
</record>
<record id="act_purchase_order_2_stock_picking_calendar" model="ir.actions.act_window.view">
<field eval="3" name="sequence"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="stock.stock_picking_in_calendar"/>
<field name="act_window_id" ref="act_purchase_order_2_stock_picking"/>
</record>
<record id="purchase_order_2_stock_picking" model="ir.ui.view">
<field name="name">Purchase Picking Inherited</field>

View File

@ -914,6 +914,20 @@
</record>
<!-- Sending Products -->
<record model="ir.ui.view" id="stock_picking_out_calendar">
<field name="name">stock.picking.out.calendar</field>
<field name="model">stock.picking.out</field>
<field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
<field name="origin"/>
<field name="type"/>
<field name="partner_id"/>
</calendar>
</field>
</record>
<record id="view_picking_out_tree" model="ir.ui.view">
<field name="name">stock.picking.out.tree</field>
<field name="model">stock.picking</field>
@ -1017,11 +1031,26 @@
<record id="action_picking_tree_out_view2_waiting_cal" model="ir.actions.act_window.view">
<field eval="3" name="sequence"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="stock_picking_out_calendar"/>
<field name="act_window_id" ref="action_picking_tree"/>
</record>
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_warehouse_mgmt" sequence="3"/>
<!-- Incomming Shipments -->
<record model="ir.ui.view" id="stock_picking_in_calendar">
<field name="name">stock.picking.in.calendar</field>
<field name="model">stock.picking.in</field>
<field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
<field name="origin"/>
<field name="type"/>
<field name="partner_id"/>
</calendar>
</field>
</record>
<record id="view_picking_in_tree" model="ir.ui.view">
<field name="name">stock.picking.in.tree</field>
<field name="model">stock.picking.in</field>
@ -1119,6 +1148,7 @@
<record id="action_invoice_tree5_view2_cal" model="ir.actions.act_window.view">
<field eval="3" name="sequence"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="stock_picking_in_calendar"/>
<field name="act_window_id" ref="action_picking_tree4"/>
</record>
<menuitem action="action_picking_tree4" id="menu_action_picking_tree4" parent="menu_stock_warehouse_mgmt" sequence="1"/>
@ -1221,7 +1251,7 @@
<field name="date" groups="base.group_no_one"/>
</group>
<group string="Tracability"
groups="stock.group_tracking_lot,stock.group_production_lot">
groups="stock.group_tracking_lot">
<label for="tracking_id" groups="stock.group_tracking_lot"/>
<div groups="stock.group_tracking_lot">
<field name="tracking_id" class="oe_inline"/>