Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.

Commit

Permalink
Merge a8d3093 into f75d881
Browse files Browse the repository at this point in the history
  • Loading branch information
legalsylvain committed Oct 19, 2018
2 parents f75d881 + a8d3093 commit 9d9eec9
Show file tree
Hide file tree
Showing 31 changed files with 923 additions and 622 deletions.
49 changes: 49 additions & 0 deletions stock_picking_mass_change/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: https://www.gnu.org/licenses/agpl
:alt: License: AGPL-3

===========================
Stock Picking - Mass Change
===========================

This module extends Odoo Stock module to provide a wizard to easily mass edit
pickings.

It provides a wizard where user can select a product, and some method to change
product quantities massively, if the user doesn't have enough product to give
to its customers.

2 methods are implemented

* A prorata method, the wizard will redistribute fairly, reducing the quantity
for all the moves.

.. figure:: /stock_picking_mass_change/static/description/wizard_form_pro_rata.png
:width: 800 px

* A fifo method, the wizard will reduce the quantity of the last pickings.

.. figure:: /stock_picking_mass_change/static/description/wizard_form_fifo.png
:width: 800 px


Roadmap / Known Issues
======================

* add a new field Replacement Product, to allow user to change massively
from a product to another. (if UoM are coherents)

Credits
=======

Contributors
------------

* Sylvain LE GAL (https://www.twitter.com/legalsylvain)

Funders
-------

The development of this module has been financially supported by:

* GRAP, Groupement Régional Alimentaire de Proximité (http://www.grap.coop)
2 changes: 2 additions & 0 deletions stock_picking_mass_change/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# coding: utf-8
from . import models
29 changes: 29 additions & 0 deletions stock_picking_mass_change/__openerp__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# coding: utf-8
# Copyright (C) 2015 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

{
'name': 'Stock Picking - Mass Change',
'summary': 'Possibility to change massively a product for many pickings',
'version': '8.0.2.0.0',
'category': 'Stock',
'author': 'GRAP',
'website': 'http://www.grap.coop',
'license': 'AGPL-3',
'depends': [
'stock',
],
'data': [
'views/view_stock_picking_mass_change_wizard.xml',
],
'demo': [
'demo/stock_picking.xml',
'demo/stock_move.xml',
],
'images': [
'/static/description/wizard_form_fifo.png',
'/static/description/wizard_form_pro_rata.png',
],
'installable': True,
}
32 changes: 32 additions & 0 deletions stock_picking_mass_change/demo/stock_move.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<openerp><data>

<record id="move_1_A" model="stock.move">
<field name="name">Demo Move - Blank CD (picking 1)</field>
<field name="picking_id" ref="picking_1"/>
<field name="product_id" ref="product.product_product_9" />
<field name="product_uom_qty">200</field>
<field name="product_uom" ref="product.product_uom_unit"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>

</record>

<record id="move_2_A" model="stock.move">
<field name="name">Demo Move - Blank CD (picking 2)</field>
<field name="picking_id" ref="picking_2"/>
<field name="product_id" ref="product.product_product_9" />
<field name="product_uom_qty">100</field>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="product_uom" ref="product.product_uom_unit"/>
</record>

</data></openerp>


21 changes: 21 additions & 0 deletions stock_picking_mass_change/demo/stock_picking.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<openerp><data>

<record id="picking_1" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="date" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-%d %H:%M')"/>
</record>

<record id="picking_2" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="date" eval="(DateTime.today()).strftime('%Y-%m-%d %H:%M')"/>
</record>

</data></openerp>


189 changes: 189 additions & 0 deletions stock_picking_mass_change/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_mass_change
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-08 12:40+0000\n"
"PO-Revision-Date: 2018-08-08 12:40+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: stock_picking_mass_change
#: view:stock.picking.mass.change.wizard:stock_picking_mass_change.view_stock_picking_mass_change_wizard_form
msgid "Apply"
msgstr "Appliquer"

#. module: stock_picking_mass_change
#: view:stock.picking.mass.change.wizard:stock_picking_mass_change.view_stock_picking_mass_change_wizard_form
msgid "Cancel"
msgstr "Annuler"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,change_method:0
msgid "Change Method"
msgstr "Méthode de changement"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,computed_product_qty:0
msgid "Computed Product Quantity"
msgstr "Quantité de produit calculé"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,concerned_picking_qty:0
msgid "Concerned Picking Quantity"
msgstr "Quantité de Bons concernés"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,create_uid:0
#: field:stock.picking.mass.change.wizard.line,create_uid:0
msgid "Created by"
msgstr "Created by"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,create_date:0
#: field:stock.picking.mass.change.wizard.line,create_date:0
msgid "Created on"
msgstr "Created on"

#. module: stock_picking_mass_change
#: help:stock.picking.mass.change.wizard,product_uom_id:0
msgid "Default Unit of Measure used for all stock operation."
msgstr "Default Unit of Measure used for all stock operation."

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,display_name:0
#: field:stock.picking.mass.change.wizard.line,display_name:0
msgid "Display Name"
msgstr "Display Name"

#. module: stock_picking_mass_change
#: selection:stock.picking.mass.change.wizard,change_method:0
msgid "First In First Served"
msgstr "Premier arrivé, premier servi"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,id:0
#: field:stock.picking.mass.change.wizard.line,id:0
msgid "ID"
msgstr "ID"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,__last_update:0
#: field:stock.picking.mass.change.wizard.line,__last_update:0
msgid "Last Modified on"
msgstr "Last Modified on"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,write_uid:0
#: field:stock.picking.mass.change.wizard.line,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,write_date:0
#: field:stock.picking.mass.change.wizard.line,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"

#. module: stock_picking_mass_change
#: view:stock.picking.mass.change.wizard:stock_picking_mass_change.view_stock_picking_mass_change_wizard_form
#: field:stock.picking.mass.change.wizard,line_ids:0
msgid "Lines"
msgstr "Lignes"

#. module: stock_picking_mass_change
#: model:ir.actions.act_window,name:stock_picking_mass_change.action_stock_picking_mass_change_wizard
msgid "Mass Quantity Change"
msgstr "Changement de quantité en masse"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,move_id:0
msgid "Move"
msgstr "Mouvement"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,ordered_product_qty:0
msgid "Ordered Product Quantity"
msgstr "Quantité de produit demandée"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,ordered_qty:0
msgid "Ordered Qty"
msgstr "Quantité demandée"

#. module: stock_picking_mass_change
#: view:stock.picking.mass.change.wizard:stock_picking_mass_change.view_stock_picking_mass_change_wizard_form
msgid "Parameters"
msgstr "Paramètres"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,partner_id:0
msgid "Partner"
msgstr "Partenaires"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,picking_id:0
msgid "Picking"
msgstr "Bons"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,picking_date:0
msgid "Picking Creation Date"
msgstr "date de création de l'opération"

#. module: stock_picking_mass_change
#: selection:stock.picking.mass.change.wizard,change_method:0
msgid "Pro Rata"
msgstr "Pro Rata"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,product_id:0
msgid "Product"
msgstr "Article"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,rounding:0
msgid "Rounding"
msgstr "Arrondi"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,picking_qty:0
msgid "Selected Picking Qty"
msgstr "Nombre de Bons sélectionnés"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,origin:0
msgid "Source Document"
msgstr "Document d'origine"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,target_product_qty:0
msgid "Target Product Quantity"
msgstr "Qté de produit cible"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,target_qty:0
msgid "Target Qty"
msgstr "Qté Cible"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,exact_target_qty:0
msgid "Theoretical Target Qty"
msgstr "Qté cible théorique"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard,product_uom_id:0
msgid "UoM"
msgstr "UdM"

#. module: stock_picking_mass_change
#: field:stock.picking.mass.change.wizard.line,wizard_id:0
msgid "Wizard"
msgstr "Assistant"
3 changes: 3 additions & 0 deletions stock_picking_mass_change/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# coding: utf-8
from . import stock_picking_mass_change_wizard
from . import stock_picking_mass_change_wizard_line
Loading

0 comments on commit 9d9eec9

Please sign in to comment.