<menuitem name="Purchases"
id="base.menu_purchase_root"
groups="group_purchase_manager,group_purchase_user"
- sequence="40"/>
+ sequence="60"/>
<menuitem id="menu_procurement_management" name="Purchase"
parent="base.menu_purchase_root" sequence="1" />
action="purchase_pricelist_version_action" id="menu_purchase_pricelist_version_action"
parent="menu_purchase_config_pricelist" sequence="2" groups="product.group_purchase_pricelist"/>
- <menuitem
- action="product.product_pricelist_action" id="menu_product_pricelist_action_purhase"
- parent="menu_purchase_config_pricelist" sequence="20" groups="base.group_no_one"/>
+
<menuitem
action="product.product_price_type_action" id="menu_product_pricelist_action2_purchase_type"
parent="menu_purchase_config_pricelist" sequence="60" />
action="base.action_partner_supplier_form" sequence="15"/>
<!--Inventory control-->
- <menuitem id="menu_procurement_management_inventory" name="Receive Products"
+ <menuitem id="menu_procurement_management_inventory" name="Incoming Products"
parent="base.menu_purchase_root" sequence="4"/>
<menuitem action="stock.action_picking_tree4" id="menu_action_picking_tree4" parent="menu_procurement_management_inventory"
name="Incoming Shipments" sequence="9"/>
<menuitem name="Products" id="menu_procurement_partner_contact_form" action="product.product_normal_action_puchased"
parent="menu_procurement_management_product"/>
- <!-- Purchase order Read/Unread actions -->
- <record id="actions_server_purchase_order_unread" model="ir.actions.server">
- <field name="name">Mark unread</field>
- <field name="condition">True</field>
- <field name="type">ir.actions.server</field>
- <field name="model_id" ref="model_purchase_order"/>
- <field name="state">code</field>
- <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
- </record>
- <record id="action_purchase_order_unread" model="ir.values">
- <field name="name">action_purchase_order_unread</field>
- <field name="action_id" ref="actions_server_purchase_order_unread"/>
- <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_purchase_order_unread'))" />
- <field name="key">action</field>
- <field name="model_id" ref="model_purchase_order" />
- <field name="model">purchase.order</field>
- <field name="key2">client_action_multi</field>
- </record>
-
- <record id="actions_server_purchase_order_read" model="ir.actions.server">
- <field name="name">Mark read</field>
- <field name="condition">True</field>
- <field name="type">ir.actions.server</field>
- <field name="model_id" ref="model_purchase_order"/>
- <field name="state">code</field>
- <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
- </record>
- <record id="action_purchase_order_read" model="ir.values">
- <field name="name">action_purchase_order_read</field>
- <field name="action_id" ref="actions_server_purchase_order_read"/>
- <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_purchase_order_read'))" />
- <field name="key">action</field>
- <field name="model_id" ref="model_purchase_order" />
- <field name="model">purchase.order</field>
- <field name="key2">client_action_multi</field>
- </record>
-
<record model="ir.ui.view" id="purchase_order_calendar">
<field name="name">purchase.order.calendar</field>
<field name="model">purchase.order</field>
<field name="arch" type="xml">
<form string="Purchase Order" version="7.0">
<header>
- <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="draft" string="Send by EMail" type="object" context="{'send_rfq':True}" class="oe_highlight"/>
+ <button name="wkf_send_rfq" states="sent" string="Send by EMail" type="object" context="{'send_rfq':True}"/>
+ <button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
+ <button name="print_quotation" string="Print" type="object" states="sent" groups="base.group_user"/>
+ <button name="purchase_confirm" states="draft" string="Confirm Order"/>
+ <button name="purchase_confirm" states="sent" string="Confirm Order" class="oe_highlight"/>
<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" />
+ <button name="action_cancel" states="approved,except_picking,except_invoice" string="Cancel" type="object" />
<button name="picking_ok" states="except_picking" string="Manually Corrected"/>
<button name="invoice_ok" states="except_invoice" string="Manually Corrected"/>
<button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_highlight" groups="purchase.group_purchase_manager"/>
- <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
<button name="view_picking" string="Receive Products" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}" class="oe_highlight"/>
+ <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
<button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object" />
<button name="purchase_cancel" states="draft,confirmed,sent" string="Cancel"/>
- <field name="state" widget="statusbar" statusbar_visible="draft,approved,done,sent" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue"}' readonly="1"/>
+ <field name="state" widget="statusbar" statusbar_visible="draft,sent,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue"}' readonly="1"/>
</header>
<sheet>
<div class="oe_title">
<h1>
- <label string="Quotation " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
+ <label string="Request for Quotation " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
<label string="Purchase Order " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<field name="name" class="oe_inline" readonly="1"/>
</h1>
<group>
<field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_supplier':1,'default_supplier':1,'default_customer':0}" domain="[('supplier','=',True)]"/>
<field name="partner_ref"/>
- <field domain="[('type','=','purchase')]" name="pricelist_id" groups="product.group_purchase_pricelist"/>
+ <field domain="[('type','=','purchase')]" name="pricelist_id" groups="product.group_purchase_pricelist" on_change="onchange_pricelist(pricelist_id, context)"/>
+ <field name="currency_id" invisible='1'/>
+ <field name="journal_id" invisible='1'/>
</group>
<group>
<field name="date_order"/>
<page string="Purchase Order">
<field name="order_line">
<tree string="Purchase Order Lines" editable="bottom">
- <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,context)"/>
+ <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,0,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,context)"/>
<field name="name"/>
<field name="date_planned"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</tree>
</field>
<group class="oe_subtotal_footer oe_right">
- <field name="amount_untaxed"/>
- <field name="amount_tax"/>
+ <field name="amount_untaxed" widget="monetary" options="{'currency_field': 'currency_id'}"/>
+ <field name="amount_tax" widget="monetary" options="{'currency_field': 'currency_id'}"/>
<div class="oe_subtotal_footer_separator oe_inline">
<label for="amount_total"/>
<button name="button_dummy"
states="draft" string="(update)" type="object" class="oe_edit_only oe_link"/>
</div>
- <field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator"/>
+ <field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator" widget="monetary" options="{'currency_field': 'currency_id'}"/>
</group>
<div class="oe_clear"/>
- <label for="notes"/>
- <field name="notes"/>
+ <field name="notes" class="oe_inline" placeholder="Terms and conditions..."/>
</page>
- <page string="Reception & Invoicing">
+ <page string="Incoming Shipments & Invoices">
<group>
<group>
- <field name="dest_address_id" string="Customer Address" on_change="onchange_dest_address_id(dest_address_id)"/>
+ <field name="dest_address_id" string="Customer Address" on_change="onchange_dest_address_id(dest_address_id)" groups="stock.group_locations"/>
<field name="minimum_planned_date"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="shipped" groups="base.group_no_one"/>
<group>
<field name="invoice_method"/>
<field name="invoiced"/>
- <field name="fiscal_position"/>
+ <field name="payment_term_id" widget="selection"/>
+ <field name="fiscal_position" attrs="{'readonly': [('invoiced','=', True)]}" />
<!-- We do not need these fields anymore, the information is in open chatter -->
<field name="validator" groups="base.group_no_one"/>
<field name="date_approve" groups="base.group_no_one"/>
</group>
</group>
- <separator string="Invoices"/>
- <field name="invoice_ids" context="{'type':'in_invoice', 'journal_type':'purchase'}"/>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
- <field name="message_ids" widget="mail_thread"/>
<field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
<field name="arch" type="xml">
<search string="Search Purchase Order">
<field name="name" string="Reference"/>
- <filter icon="terp-mail-message-new" string="Inbox" help="Unread messages" name="message_unread" domain="[('message_unread','=',True)]"/>
+ <filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/>
<filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase orders which are in draft state"/>
<filter icon="terp-check" name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]" help="Approved purchase orders"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="minimum_planned_date" invisible="context.get('quotation_only', False)"/>
<field name="origin"/>
- <field name="amount_untaxed" sum="Total Untaxed amount"/>
+ <field name="amount_untaxed" sum="Total Untaxed amount" string="Untaxed"/>
<field name="amount_total" sum="Total amount"/>
<field name="state"/>
</tree>
<field name="name">Quotations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.order</field>
- <field name="context">{}</field>
+ <field name="context">{'search_default_draft': 1, 'search_default_to_approve': 1}</field>
<field name="domain">[('state','in',('draft','sent','confirmed'))]</field>
<field name="view_mode">tree,form,graph,calendar</field>
<field name="search_view_id" ref="view_purchase_order_filter"/>
<sheet>
<group>
<group>
- <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,context)"/>
+ <field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,0,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,context)"/>
<label for="product_qty"/>
<div>
<field name="product_qty" on_change="onchange_product_id(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id,parent.date_order,parent.fiscal_position,date_planned,name,price_unit,context)" class="oe_inline"/>
<field name="name">purchase.order.line.tree</field>
<field name="model">purchase.order.line</field>
<field name="arch" type="xml">
- <tree string="Purchase Order Lines">
+ <tree string="Purchase Order Lines" create="false">
<field name="order_id"/>
<field name="name"/>
<field name="partner_id" string="Supplier" />
<field name="model">purchase.order.line</field>
<field name="priority" eval="20"/>
<field name="arch" type="xml">
- <form string="Purchase Order Line" version="7.0">
+ <form string="Purchase Order Line" version="7.0" create="false">
<sheet>
<label for="order_id" class="oe_edit_only"/>
<h1>
- <field name="order_id" class="oe_inline"/>
+ <field name="order_id" class="oe_inline" domain="[('invoice_method','=','manual')]" />
<label string="," attrs="{'invisible':[('date_order','=',False)]}"/>
<field name="date_order" class="oe_inline"/>
</h1>
<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">['|', ('product_id','=',False),('order_id.invoice_method','<>','picking'),('state','in',('confirmed','done')), ('invoiced', '=', False)]</field>
+ <field name="domain">[('order_id.invoice_method','<>','picking'), ('state','in',('confirmed','done')), ('invoiced', '=', False)]</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="purchase_order_line_search"/>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
+ <div name="options" position="inside">
+ <field name="purchase_ok"/>
+ <label for="purchase_ok"/>
+ </div>
<group name="procurement" position="after">
<separator string="Suppliers"/>
<field name="seller_ids" context="{'uom_id': uom_id}"/>
</group>
</field>
</record>
+
+ <record id="product_product_normal_form_procurement_help_view" model="ir.ui.view">
+ <field name="name">product.normal.form.procurement.help.inherit</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
+ <field name="arch" type="xml">
+ <group name="procurement_help" position="inside">
+ <p attrs="{'invisible': ['|','|',('type','<>','service'),('procure_method','<>','make_to_order'),('supply_method','<>','buy')]}">
+ When you sell this service to a customer, <b>a draft purchase order</b>
+ will be created in order to subcontract the job
+ <i attrs="{'invisible': [('seller_id','=',False)]}">to
+ <field name="seller_id" class="oe_inline"/></i>.
+ </p>
+ <p attrs="{'invisible': ['|','|',('type','=','service'),('procure_method','<>','make_to_order'),('supply_method','<>','buy')]}">
+ When you sell this product, OpenERP will trigger <b>a draft
+ purchase order</b> to buy the required quantities to the supplier.
+ The delivery order will be ready after having received the
+ products.
+ </p>
+ </group>
+ </field>
+ </record>
+
+ <record id="product_search_form_view_purchase" model="ir.ui.view">
+ <field name="name">product.search.purchase.form</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="product.product_search_form_view"/>
+ <field name="arch" type="xml">
+ <filter name="filter_to_sell" position="before">
+ <filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
+ </filter>
+ <filter name="filter_to_sell" position="after">
+ <filter name="filter_to_purchase" string="Can be Purchased" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
+ </filter>
+ </field>
+ </record>
+
+ <record id="view_template_purchase_ok_form" model="ir.ui.view">
+ <field name="name">product.template.purchase.ok.form.inherit</field>
+ <field name="model">product.template</field>
+ <field name="inherit_id" ref="product.product_template_form_view"/>
+ <field name="arch" type="xml">
+ <field name="sale_ok" position="after">
+ <field name="purchase_ok"/>
+ </field>
+ </field>
+ </record>
+
+ <record id="view_product_account_purchase_ok_form" model="ir.ui.view">
+ <field name="name">product.account.purchase.ok.form.inherit</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="account.product_normal_form_view"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='property_account_expense']" position="replace" >
+ <field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" groups="account.group_account_user"/>
+ </xpath>
+ <xpath expr="//field[@name='supplier_taxes_id']" position="replace" >
+ <field name="supplier_taxes_id" colspan="2" widget="many2many_tags" attrs="{'readonly':[('purchase_ok','=',0)]}"/>
+ </xpath>
+ </field>
+ </record>
+
</data>
</openerp>