Divyesh Makwana(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-first_10_clicks_purchase-mdi into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-first_10_clicks_purchase-mdi/+merge/117008
Hello Sir,
I have done the following changes:
1. Fix the broken view of 'Incoming Shipments'(Create a PO: confirm it then
click on the "Incoming Shipment" link -> the page is broken).
2. Fix the Error : Invalid Object Architecture! : Insufficient fields to
generate a Calendar View for 'stock.picking.out', missing a date_stop or a
date_delay.(also for 'stock.picking.in').
3. Added tag in kanban for 'Purchases', Added Button 'RFQs and Purchases' on
the form and Removed 'RFQs and Purchases' from sidebar of supplier.
4. Added 'Supplier Invoices' button on 'Supplier' form view and its related
changes.
5. On 'Receive Product' form, all part of Tracability must go to the group
'Manage Logistic Serial Numbers'.
6. Added OpenChatter notification after module installation.
Thanks,
Divyesh
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-first_10_clicks_purchase-mdi/+merge/117008
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-first_10_clicks_purchase-mdi.
=== modified file 'account/account_invoice.py'
--- account/account_invoice.py 2012-07-14 23:18:43 +0000
+++ account/account_invoice.py 2012-07-27 05:47:24 +0000
@@ -306,7 +306,7 @@
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]
=== modified file 'purchase/partner.py'
--- purchase/partner.py 2011-07-05 12:28:57 +0000
+++ purchase/partner.py 2012-07-27 05:47:24 +0000
@@ -24,6 +24,13 @@
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):
+ res[partner.id] = len(partner.purchase_order_ids)
+ return res
+
_columns = {
'property_product_pricelist_purchase': fields.property(
'product.pricelist',
@@ -33,6 +40,8 @@
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()
=== modified file 'purchase/partner_view.xml'
--- purchase/partner_view.xml 2012-06-27 08:34:28 +0000
+++ purchase/partner_view.xml 2012-07-27 05:47:24 +0000
@@ -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.
+ <p>
+ The "Quotation" is the first step of the Purchases flow. Manage your purchases from quotation to invoice.
+ <p>
+ 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="//h4[@class='oe_partner_heading']" position="after">
+ <a name="%(purchase.act_res_partner_2_purchase_order)d" type="action" t-if="record.purchase_order_count.value>0" class="oe_tag">
+ <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.
+ <p>
+ You can control the invoice from your supplier according to what you purchased or received.
+ <p>
+ 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>
=== modified file 'purchase/purchase_data.xml'
--- purchase/purchase_data.xml 2012-07-25 13:22:17 +0000
+++ purchase/purchase_data.xml 2012-07-27 05:47:24 +0000
@@ -6,12 +6,11 @@
<!-- 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>Welcome to OpenERP
+ You can click on the top menu Purchases to manage your
+ suppliers, your request for quotations and control supplier invoicing.
- 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>
=== modified file 'purchase/purchase_view.xml'
--- purchase/purchase_view.xml 2012-07-20 08:20:47 +0000
+++ purchase/purchase_view.xml 2012-07-27 05:47:24 +0000
@@ -511,14 +511,6 @@
</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"
name="Purchases"
=== modified file 'purchase/stock_view.xml'
--- purchase/stock_view.xml 2012-07-18 10:37:36 +0000
+++ purchase/stock_view.xml 2012-07-27 05:47:24 +0000
@@ -89,6 +89,26 @@
<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="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>
=== modified file 'stock/stock_view.xml'
--- stock/stock_view.xml 2012-07-26 10:59:30 +0000
+++ stock/stock_view.xml 2012-07-27 05:47:24 +0000
@@ -946,6 +946,21 @@
# 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>
@@ -1055,6 +1070,7 @@
<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"/>
@@ -1064,6 +1080,21 @@
# 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>
@@ -1167,6 +1198,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"/>
@@ -1272,7 +1304,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"/>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp