[MERGE] module desc + stock

bzr revid: fp@tinyerp.com-20121209105527-4ot27zsv5vqr38ls
This commit is contained in:
Fabien Pinckaers 2012-12-09 11:55:27 +01:00
parent 87009adb89
commit f3fc080ef7
19 changed files with 127 additions and 121 deletions

View File

@ -25,7 +25,7 @@
'category': 'Accounting & Finance', 'category': 'Accounting & Finance',
'description': """ 'description': """
Module to automate letters for unpaid invoices, with multi-level recalls. Module to automate letters for unpaid invoices, with multi-level recalls.
========================================================================== =========================================================================
You can define your multiple levels of recall through the menu: You can define your multiple levels of recall through the menu:
--------------------------------------------------------------- ---------------------------------------------------------------

View File

@ -26,7 +26,7 @@
'summary': 'Send Invoices and Track Payments', 'summary': 'Send Invoices and Track Payments',
'description': """ 'description': """
Invoicing & Payments by Accounting Voucher & Receipts Invoicing & Payments by Accounting Voucher & Receipts
====================================================== =====================================================
The specific and easy-to-use Invoicing system in OpenERP allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your suppliers and customers. The specific and easy-to-use Invoicing system in OpenERP allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your suppliers and customers.
You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments. You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments.

View File

@ -24,7 +24,7 @@
'category': 'Tools', 'category': 'Tools',
'description': """ 'description': """
Automated Translations through Gengo API Automated Translations through Gengo API
---------------------------------------- ========================================
This module will install passive scheduler job for automated translations This module will install passive scheduler job for automated translations
using the Gengo API. To activate it, you must using the Gengo API. To activate it, you must

View File

@ -28,7 +28,7 @@
'summary': 'Leads, Opportunities, Phone Calls', 'summary': 'Leads, Opportunities, Phone Calls',
'description': """ 'description': """
The generic OpenERP Customer Relationship Management The generic OpenERP Customer Relationship Management
===================================================== ====================================================
This application enables a group of people to intelligently and efficiently manage leads, opportunities, meetings and phone calls. This application enables a group of people to intelligently and efficiently manage leads, opportunities, meetings and phone calls.

View File

@ -27,7 +27,7 @@
'description': """ 'description': """
Manage Customer Claims. Manage Customer Claims.
================================================================================ =======================
This application allows you to track your customers/suppliers claims and grievances. This application allows you to track your customers/suppliers claims and grievances.
It is fully integrated with the email gateway so that you can create It is fully integrated with the email gateway so that you can create

View File

@ -35,7 +35,7 @@ Employee can encode their own expenses and the validation flow puts it automatic
The whole flow is implemented as: The whole flow is implemented as:
---------------------------------- ---------------------------------
* Draft expense * Draft expense
* Confirmation of the sheet by the employee * Confirmation of the sheet by the employee
* Validation by his manager * Validation by his manager

View File

@ -28,7 +28,7 @@
'summary': 'Jobs, Recruitment, Applications, Job Interviews', 'summary': 'Jobs, Recruitment, Applications, Job Interviews',
'description': """ 'description': """
Manage job positions and the recruitment process Manage job positions and the recruitment process
================================================= ================================================
This application allows you to easily keep track of jobs, vacancies, applications, interviews... This application allows you to easily keep track of jobs, vacancies, applications, interviews...

View File

@ -22,8 +22,8 @@
{ {
'name': 'Switzerland - Accounting', 'name': 'Switzerland - Accounting',
'description': """ 'description': """
Swiss localization : Swiss localization:
==================== ===================
- DTA generation for a lot of payment types - DTA generation for a lot of payment types
- BVR management (number generation, report.) - BVR management (number generation, report.)
- Import account move from the bank file (like v11) - Import account move from the bank file (like v11)

View File

@ -32,8 +32,8 @@ French Payroll Rules.
- All main contributions rules for French payslip, for 'cadre' and 'non-cadre' - All main contributions rules for French payslip, for 'cadre' and 'non-cadre'
- New payslip report - New payslip report
TODO : TODO:
------ -----
- Integration with holidays module for deduction and allowance - Integration with holidays module for deduction and allowance
- Integration with hr_payroll_account for the automatic account_move_line - Integration with hr_payroll_account for the automatic account_move_line
creation from the payslip creation from the payslip

View File

@ -687,7 +687,7 @@
groups="stock.group_production_lot"/> groups="stock.group_production_lot"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/> states="draft,waiting,confirmed,assigned"/>
</tree> </tree>
</field> </field>
@ -704,7 +704,7 @@
<button <button
name="%(stock.move_scrap)d" name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" icon="terp-gtk-jump-to-ltr"
states="done,cancel"/> states="done,cancel"/>
</tree> </tree>
</field> </field>
@ -726,7 +726,7 @@
icon="gtk-justify-fill"/> icon="gtk-justify-fill"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/> states="draft,waiting,confirmed,assigned"/>
</tree> </tree>
</field> </field>
@ -744,7 +744,7 @@
<button name="%(stock.track_line)d" <button name="%(stock.track_line)d"
string="Split in Serial Numbers" type="action" icon="gtk-justify-fill" states="done,cancel"/> string="Split in Serial Numbers" type="action" icon="gtk-justify-fill" states="done,cancel"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" icon="gtk-convert" string="Scrap Products" type="action" icon="terp-gtk-jump-to-ltr"
states="done,cancel"/> states="done,cancel"/>
</tree> </tree>
</field> </field>

View File

@ -25,7 +25,7 @@
'category': 'Tools', 'category': 'Tools',
'description': """ 'description': """
This module update memos inside OpenERP for using an external pad This module update memos inside OpenERP for using an external pad
=================================================================== =================================================================
Use for update your text memo in real time with the following user that you invite. Use for update your text memo in real time with the following user that you invite.

View File

@ -28,7 +28,7 @@
'summary': 'Touchscreen Interface for Shops', 'summary': 'Touchscreen Interface for Shops',
'description': """ 'description': """
Quick and Easy sale process Quick and Easy sale process
============================ ===========================
This module allows you to manage your shop sales very easily with a fully web based touchscreen interface. This module allows you to manage your shop sales very easily with a fully web based touchscreen interface.
It is compatible with all PC tablets and the iPad, offering multiple payment methods. It is compatible with all PC tablets and the iPad, offering multiple payment methods.

View File

@ -34,7 +34,7 @@ The double entry inventory system allows you to manage customers, suppliers as w
OpenERP has the capacity to manage lots and serial numbers ensuring compliance with the traceability requirements imposed by the majority of industries. OpenERP has the capacity to manage lots and serial numbers ensuring compliance with the traceability requirements imposed by the majority of industries.
Key Features Key Features
------------- ------------
* Moves history and planning, * Moves history and planning,
* Stock valuation (standard or average price, ...) * Stock valuation (standard or average price, ...)
* Robustness faced with Inventory differences * Robustness faced with Inventory differences

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<document filename="Stock Inventory.pdf"> <document filename="Stock Inventory.pdf">
<template title="Stock Inventory" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20"> <template pageSize="(595.0,842.0)" title="Stock Inventory" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first"> <pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/> <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate> </pageTemplate>
@ -47,6 +47,7 @@
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
</blockTableStyle> </blockTableStyle>
<blockTableStyle id="Table8"> <blockTableStyle id="Table8">
<blockAlignment value="LEFT"/> <blockAlignment value="LEFT"/>
@ -55,12 +56,14 @@
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/> <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/> <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/> <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
</blockTableStyle> </blockTableStyle>
<blockTableStyle id="Table7"> <blockTableStyle id="Table7">
<blockAlignment value="LEFT"/> <blockAlignment value="LEFT"/>
<blockValign value="TOP"/> <blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
</blockTableStyle> </blockTableStyle>
<initialize> <initialize>
<paraStyle name="all" alignment="justify"/> <paraStyle name="all" alignment="justify"/>
@ -104,25 +107,6 @@
<images/> <images/>
</stylesheet> </stylesheet>
<story> <story>
<pto>
<pto_header>
<blockTable colWidths="70.0,103.0,256.0,109.0" style="Table4">
<tr>
<td>
<para style="terp_tblheader_Details">Location</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Production Lot</para>
</td>
<td>
<para style="terp_tblheader_Details">Product </para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Quantity</para>
</td>
</tr>
</blockTable>
</pto_header>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]] </para> <para style="terp_default_8">[[ repeatIn(objects,'o') ]] </para>
<blockTable colWidths="539.0" style="Table3"> <blockTable colWidths="539.0" style="Table3">
<tr> <tr>
@ -163,7 +147,7 @@
<para style="terp_default_8"> <para style="terp_default_8">
<font color="white"> </font> <font color="white"> </font>
</para> </para>
<blockTable colWidths="70.0,103.0,256.0,109.0" style="Table4"> <blockTable colWidths="59.0,86.0,213.0,91.0,91.0" style="Table4">
<tr> <tr>
<td> <td>
<para style="terp_tblheader_Details">Location</para> <para style="terp_tblheader_Details">Location</para>
@ -177,11 +161,14 @@
<td> <td>
<para style="terp_tblheader_Details_Right">Quantity</para> <para style="terp_tblheader_Details_Right">Quantity</para>
</td> </td>
<td>
<para style="terp_tblheader_Details_Centre">Manual Quantity</para>
</td>
</tr> </tr>
</blockTable> </blockTable>
<section> <section>
<para style="terp_default_2">[[ repeatIn(o.inventory_line_id, 'p') ]]</para> <para style="terp_default_2">[[ repeatIn(o.inventory_line_id, 'p') ]]</para>
<blockTable colWidths="70.0,105.0,255.0,109.0" style="Table8"> <blockTable colWidths="58.0,87.0,212.0,91.0,91.0" style="Table8">
<tr> <tr>
<td> <td>
<para style="terp_default_9">[[ p.location_id.name ]]</para> <para style="terp_default_9">[[ p.location_id.name ]]</para>
@ -195,10 +182,15 @@
<td> <td>
<para style="terp_default_Right_9">[[ formatLang(p.product_qty) ]] [[ p.product_uom.name ]]</para> <para style="terp_default_Right_9">[[ formatLang(p.product_qty) ]] [[ p.product_uom.name ]]</para>
</td> </td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
</tr> </tr>
</blockTable> </blockTable>
</section> </section>
<blockTable colWidths="383.0,47.0,109.0" style="Table7"> <blockTable colWidths="318.0,39.0,91.0,91.0" style="Table7">
<tr> <tr>
<td> <td>
<para style="terp_default_Bold_9"> <para style="terp_default_Bold_9">
@ -211,11 +203,16 @@
<td> <td>
<para style="terp_default_Bold_Right_9">[[ formatLang(qty_total(o.inventory_line_id)['quantity']) ]] [[ qty_total(o.inventory_line_id)['uom'] ]]</para> <para style="terp_default_Bold_Right_9">[[ formatLang(qty_total(o.inventory_line_id)['quantity']) ]] [[ qty_total(o.inventory_line_id)['uom'] ]]</para>
</td> </td>
<td>
<para style="terp_default_Bold_Right_9">
<font color="white"> </font>
</para>
</td>
</tr> </tr>
</blockTable> </blockTable>
<para style="terp_default_8"> <para style="terp_default_8">
<font color="white"> </font> <font color="white"> </font>
</para> </para>
</pto>
</story> </story>
</document> </document>

View File

@ -243,7 +243,7 @@ class stock_location(osv.osv):
elif location.chained_location_type == 'fixed': elif location.chained_location_type == 'fixed':
result = location.chained_location_id result = location.chained_location_id
if result: if result:
return result, location.chained_auto_packing, location.chained_delay, location.chained_journal_id and location.chained_journal_id.id or False, location.chained_company_id and location.chained_company_id.id or False, location.chained_picking_type return result, location.chained_auto_packing, location.chained_delay, location.chained_journal_id and location.chained_journal_id.id or False, location.chained_company_id and location.chained_company_id.id or False, location.chained_picking_type, False
return result return result
def picking_type_get(self, cr, uid, from_location, to_location, context=None): def picking_type_get(self, cr, uid, from_location, to_location, context=None):
@ -2131,7 +2131,7 @@ class stock_move(osv.osv):
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context) self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context)
else: else:
pickid = False pickid = False
for move, (loc, dummy, delay, dummy, company_id, ptype) in todo: for move, (loc, dummy, delay, dummy, company_id, ptype, invoice_state) in todo:
new_id = move_obj.copy(cr, uid, move.id, { new_id = move_obj.copy(cr, uid, move.id, {
'location_id': move.location_dest_id.id, 'location_id': move.location_dest_id.id,
'location_dest_id': loc.id, 'location_dest_id': loc.id,
@ -2140,7 +2140,7 @@ class stock_move(osv.osv):
'state': 'waiting', 'state': 'waiting',
'company_id': company_id or res_obj._company_default_get(cr, uid, 'stock.company', context=context) , 'company_id': company_id or res_obj._company_default_get(cr, uid, 'stock.company', context=context) ,
'move_history_ids': [], 'move_history_ids': [],
'date': (datetime.strptime(move.date, '%Y-%m-%d %H:%M:%S') + relativedelta(days=delay or 0)).strftime('%Y-%m-%d'), 'date_expected': (datetime.strptime(move.date, '%Y-%m-%d %H:%M:%S') + relativedelta(days=delay or 0)).strftime('%Y-%m-%d'),
'move_history_ids2': []} 'move_history_ids2': []}
) )
move_obj.write(cr, uid, [move.id], { move_obj.write(cr, uid, [move.id], {

View File

@ -65,7 +65,7 @@
<field domain="[('usage','=','internal')]" name="location_id"/> <field domain="[('usage','=','internal')]" name="location_id"/>
<button name="%(stock.action_view_stock_inventory_line_split)d" <button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split Inventory Line" groups="stock.group_inventory_valuation" string="Split Inventory Line" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize"/> type="action" icon="gtk-justify-fill"/>
</group> </group>
</form> </form>
</field> </field>
@ -136,7 +136,7 @@
<field name="prod_lot_id" groups="stock.group_production_lot"/> <field name="prod_lot_id" groups="stock.group_production_lot"/>
<button name="%(stock.action_view_stock_inventory_line_split)d" <button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines" groups="stock.group_inventory_valuation" string="Split inventory lines" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize" states="draft,confirm"/> type="action" icon="gtk-justify-fill" states="draft,confirm"/>
<field name="state" invisible="True"/> <field name="state" invisible="True"/>
</tree> </tree>
<form string="Products" version="7.0"> <form string="Products" version="7.0">
@ -154,7 +154,7 @@
<field name="prod_lot_id" groups="stock.group_production_lot"/> <field name="prod_lot_id" groups="stock.group_production_lot"/>
<button name="%(stock.action_view_stock_inventory_line_split)d" <button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines" groups="stock.group_inventory_valuation" string="Split inventory lines" groups="stock.group_inventory_valuation"
type="action" icon="terp-stock_effects-object-colorize"/> type="action" icon="gtk-justify-fill"/>
</group> </group>
</group> </group>
</form> </form>
@ -168,7 +168,7 @@
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/> <field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="prodlot_id" groups="stock.group_production_lot"/> <field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in serial numbers" type="action" <button name="%(track_line)d" string="Split in serial numbers" type="action"
icon="terp-stock_effects-object-colorize" icon="gtk-justify-fill"
attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,done,cancel" states="draft,done,cancel"
context="{'inventory_id':parent.id}" context="{'inventory_id':parent.id}"
@ -176,7 +176,7 @@
<field groups="stock.group_tracking_lot" name="tracking_id"/> <field groups="stock.group_tracking_lot" name="tracking_id"/>
<button name="%(split_into)d" string="Put in a new pack" type="action" <button name="%(split_into)d" string="Put in a new pack" type="action"
groups="stock.group_tracking_lot" groups="stock.group_tracking_lot"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
context="{'inventory_id':parent.id}" context="{'inventory_id':parent.id}"
states="draft,done,cancel"/> states="draft,done,cancel"/>
<field name="location_id" groups="stock.group_locations"/> <field name="location_id" groups="stock.group_locations"/>
@ -1130,21 +1130,21 @@
<field name="product_uos" groups="product.group_uos"/> <field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/> states="draft,waiting,confirmed,assigned"/>
<field name="prodlot_id" groups="stock.group_production_lot"/> <field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in Serial Numbers" type="action" <button name="%(track_line)d" string="Split in Serial Numbers" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}" icon="gtk-justify-fill" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done" states="draft,waiting,confirmed,assigned,done"
groups="stock.group_tracking_lot"/> groups="stock.group_tracking_lot"/>
<field name="tracking_id" groups="stock.group_tracking_lot"/> <field name="tracking_id" groups="stock.group_tracking_lot"/>
<button name="setlast_tracking" string="Put in current pack" type="object" <button name="setlast_tracking" string="Put in current pack" type="object"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}" icon="terp-accessories-archiver" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
states="draft,assigned,confirmed,done"/> states="draft,assigned,confirmed,done"/>
<button name="%(split_into)d" string="Put in a new pack" type="action" <button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
states="draft,assigned,confirmed,done"/> states="draft,assigned,confirmed,done"/>
<field name="location_id" groups="stock.group_locations"/> <field name="location_id" groups="stock.group_locations"/>
<field name="location_dest_id" groups="stock.group_locations"/> <field name="location_dest_id" groups="stock.group_locations"/>
@ -1168,7 +1168,7 @@
<field name="product_uos" groups="product.group_uos"/> <field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" states="draft,waiting,confirmed,assigned"
groups="base.group_user"/> groups="base.group_user"/>
<field name="scrapped" invisible="1"/> <field name="scrapped" invisible="1"/>
@ -1177,17 +1177,17 @@
name="%(stock.track_line)d" name="%(stock.track_line)d"
string="Split in Serial Number" string="Split in Serial Number"
groups="stock.group_production_lot" groups="stock.group_production_lot"
type="action" icon="terp-stock_effects-object-colorize" type="action" icon="gtk-justify-fill"
states="draft,waiting,confirmed,assigned"/> states="draft,waiting,confirmed,assigned"/>
<field groups="stock.group_tracking_lot" name="tracking_id"/> <field groups="stock.group_tracking_lot" name="tracking_id"/>
<button name="setlast_tracking" string="Put in current pack" type="object" <button name="setlast_tracking" string="Put in current pack" type="object"
attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver"
groups="stock.group_tracking_lot" groups="stock.group_tracking_lot"
states="draft,assigned,confirmed"/> states="draft,assigned,confirmed"/>
<button name="%(split_into)d" string="Put in a new pack" type="action" <button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/> states="draft,assigned,confirmed"/>
<field name="location_dest_id" groups="stock.group_locations"/> <field name="location_dest_id" groups="stock.group_locations"/>
<field name="state"/> <field name="state"/>
@ -1221,7 +1221,7 @@
<field name="product_uom" groups="product.group_uom" class="oe_inline"/> <field name="product_uom" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap" type="action" string="Scrap" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/> states="draft,waiting,confirmed,assigned" colspan="1"/>
</div> </div>
<label for="product_uos_qty" groups="product.group_uos"/> <label for="product_uos_qty" groups="product.group_uos"/>
@ -1255,7 +1255,7 @@
<field name="tracking_id" class="oe_inline"/> <field name="tracking_id" class="oe_inline"/>
<button name="%(split_into)d" string="New Pack" type="action" <button name="%(split_into)d" string="New Pack" type="action"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/> states="draft,assigned,confirmed"/>
</div> </div>
<label for="prodlot_id" groups="stock.group_production_lot"/> <label for="prodlot_id" groups="stock.group_production_lot"/>
@ -1266,7 +1266,7 @@
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)"/> on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id, product_uom)"/>
<button name="%(track_line)d" <button name="%(track_line)d"
states="draft,waiting,confirmed,assigned" states="draft,waiting,confirmed,assigned"
string="Split" type="action" icon="terp-stock_effects-object-colorize"/> string="Split" type="action" icon="gtk-justify-fill"/>
</div> </div>
</group> </group>
</group> </group>
@ -1298,7 +1298,7 @@
<field name="product_uom" string="Unit Of Measure" groups="product.group_uom" class="oe_inline"/> <field name="product_uom" string="Unit Of Measure" groups="product.group_uom" class="oe_inline"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap" type="action" string="Scrap" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" states="draft,waiting,confirmed,assigned"
groups="base.group_user"/> groups="base.group_user"/>
</div> </div>
@ -1328,7 +1328,7 @@
<button name="%(split_into)d" <button name="%(split_into)d"
string="New Pack" type="action" string="New Pack" type="action"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
states="draft,assigned,confirmed"/> states="draft,assigned,confirmed"/>
</div> </div>
@ -1341,7 +1341,7 @@
<button name="%(track_line)d" <button name="%(track_line)d"
groups="stock.group_tracking_lot" groups="stock.group_tracking_lot"
states="draft,waiting,confirmed,assigned" states="draft,waiting,confirmed,assigned"
string="Split" type="action" icon="terp-stock_effects-object-colorize"/> string="Split" type="action" icon="gtk-justify-fill"/>
</div> </div>
</group> </group>
</group> </group>
@ -1439,22 +1439,22 @@
<field name="create_date" invisible="1"/> <field name="create_date" invisible="1"/>
<button name="%(stock.move_scrap)d" <button name="%(stock.move_scrap)d"
string="Scrap Products" type="action" string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}" icon="terp-gtk-jump-to-ltr" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned"/> states="draft,waiting,confirmed,assigned"/>
<field name="prodlot_id" groups="stock.group_production_lot"/> <field name="prodlot_id" groups="stock.group_production_lot"/>
<button name="%(track_line)d" string="Split in Serial Numbers" type="action" <button name="%(track_line)d" string="Split in Serial Numbers" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}" icon="gtk-justify-fill" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done" states="draft,waiting,confirmed,assigned,done"
groups="stock.group_tracking_lot"/> groups="stock.group_tracking_lot"/>
<field name="tracking_id" groups="stock.group_tracking_lot"/> <field name="tracking_id" groups="stock.group_tracking_lot"/>
<button name="setlast_tracking" string="Put in current pack" type="object" <button name="setlast_tracking" string="Put in current pack" type="object"
attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}" attrs="{'invisible': [('tracking_id','&lt;&gt;',False)]}"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver"
states="draft,assigned,confirmed,done"/> states="draft,assigned,confirmed,done"/>
<button name="%(split_into)d" string="Put in a new pack" type="action" <button name="%(split_into)d" string="Put in a new pack" type="action"
groups="product.group_stock_packaging" groups="product.group_stock_packaging"
icon="terp-stock_effects-object-colorize" icon="terp-accessories-archiver+"
states="draft,assigned,confirmed,done"/> states="draft,assigned,confirmed,done"/>
<field name="state"/> <field name="state"/>
<button name="%(action_partial_move_server)d" <button name="%(action_partial_move_server)d"

View File

@ -109,6 +109,11 @@ class stock_move(osv.osv):
self.action_cancel(cr, uid, [m.move_dest_id.id], context=context) self.action_cancel(cr, uid, [m.move_dest_id.id], context=context)
res = super(stock_move,self).action_cancel(cr,uid,ids,context) res = super(stock_move,self).action_cancel(cr,uid,ids,context)
return res return res
def _prepare_chained_picking(self, cr, uid, picking_name, picking, picking_type, moves_todo, context=None):
res = super(stock_move, self)._prepare_chained_picking(cr, uid, picking_name, picking, picking_type, moves_todo, context=context)
res.update({'invoice_state': moves_todo[0][1][6] or 'none'})
return res
stock_move() stock_move()
class stock_location(osv.osv): class stock_location(osv.osv):
@ -117,7 +122,7 @@ class stock_location(osv.osv):
if product: if product:
for path in product.path_ids: for path in product.path_ids:
if path.location_from_id.id == location.id: if path.location_from_id.id == location.id:
return path.location_dest_id, path.auto, path.delay, path.journal_id and path.journal_id.id or False, path.company_id and path.company_id.id or False, path.picking_type return path.location_dest_id, path.auto, path.delay, path.journal_id and path.journal_id.id or False, path.company_id and path.company_id.id or False, path.picking_type, path.invoice_state
return super(stock_location, self).chained_location_get(cr, uid, location, partner, product, context) return super(stock_location, self).chained_location_get(cr, uid, location, partner, product, context)
stock_location() stock_location()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -39,57 +39,61 @@
<field name="inherit_id" ref="product.product_normal_form_view"/> <field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<group name="inventory" position="after"> <group name="inventory" position="after">
<field name="flow_pull_ids" colspan="4" nolabel="1"> <group string="Pull Flow">
<tree string="Pulled flows"> <field name="flow_pull_ids" colspan="4" nolabel="1">
<field name="name"/> <tree string="Pulled flows">
<field name="location_id" attrs="{'required': [('type_proc', '=', 'move')]}"/> <field name="name"/>
<field name="type_proc"/> <field name="location_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="journal_id"/> <field name="type_proc"/>
<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>
<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"/> <field name="journal_id"/>
</group> <field name="company_id" groups="base.group_multi_company"/>
</form> </tree>
</field> <form string="Pulled Paths">
<field name="path_ids"> <group>
<tree string="Pushed flows"> <group string="Conditions">
<field name="location_from_id"/> <field name="name" placeholder="Fulfill needs on location X from location Y "/>
<field name="location_dest_id"/> <field name="location_id"/>
<field name="auto"/> </group>
<field name="name"/> <group string="Action Type">
<field name="invoice_state"/> <field name="type_proc"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id"/>
</tree> </group>
<form string="Pushed flows"> </group>
<field name="name" placeholder="When receiving at location X, move to location Y"/> <group attrs="{'invisible':[('type_proc','!=','move')]}">
<field name="location_from_id"/> <field name="location_src_id" attrs="{'required': [('type_proc', '=', 'move')]}"/>
<field name="location_dest_id"/> <field name="picking_type"/>
<field name="auto"/> <field name="partner_address_id"/>
<field name="delay"/> <field name="procure_method"/>
<field name="journal_id"/> <field name="cancel_cascade"/>
<field name="picking_type"/> <field name="invoice_state"/>
<field name="invoice_state"/> <field name="journal_id"/>
<field name="company_id" groups="base.group_multi_company"/> </group>
</form> </form>
</field> </field>
</group>
<group string="Push Flow">
<field name="path_ids" nolabel="1">
<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>
</group> </group>
</field> </field>
</record> </record>

View File

@ -25,7 +25,7 @@
'complexity': "easy", 'complexity': "easy",
'description': """ 'description': """
Google Analytics. Google Analytics.
============================== =================
Collects web application usage with Google Analytics. Collects web application usage with Google Analytics.
""", """,