Sale Stock Deposit

This module helps you to create and control stock deposits for customer
sales.
With the deposits, you will be able to create:
- Deposit Sales: Sales and pickings that act as a stock reservation in
your deposit for a customer
- Deposit Deliveries: Sales and pickigs that act as the delivery of the
reserved stock of the deposit. This sales are not invoiced.
This is achieved with some special warehouse operation types and routes,
that this module provides.
NOTE: As the deposits are reservation locations, we represent this
putting in them negative amounts. That decreases the stock count of the
warehouse, and prevents it from being taking into account in the
available stock calculation. For this reason, despite that the stock is
correcly calculated, the special warehouse operations are less
intuitive.
Table of contents
Note: Once installed the module will create the warehouses, types of
operations, routes and rules for each warehouse available. This will
also be done automatically for each warehouse you create after the
installation.
To configure this module, you need to:
- Go to the Inventory module
- Click on Configuration and then Settings
- In the Traceability section activate ‘Lots & Serial Numbers’.
- In the Warehouse section activate ‘Storage Locations’ and ‘Multi-Step
Routes’.
To create a customer’s deposit:
- From the contact, go to the ‘Stock deposit’ tab and click on ‘Create
New Deposit’.
- Enter the name. By default ‘Deposit + <contact_name>’.
- Select the Location from the different available deposits and save.
To use this module, you need to:
To create a new ‘Deposit Sale’:
- Create a new quotation.
- Select a customer who has a deposit.
- Go to the ‘Other Info’ tab -> ‘Delivery’ section
- Select the warehouse where the customer’s deposit is located.
- Add a new product and Select the Route: ‘(<warehouse_name>) / Deposit
Sale’
- Confirm the Sale
- Validate the generated picking. Remember to set the done quantities
manually.
- This picking will ‘reserve’ the stock of that product in your
warehouse for the customer. This is achieved by moving (in Odoo) the
stock from the deposit location to the customer location. Though the
product is still in warehouse and it has not been delivered yet, it
belongs to the customer, and the negative stock in the deposit
location represents this, reserving the product for him.
To create a new ‘Deposit Delivery’:
- Create a new quotation.
- Select a customer who has a deposit.
- Go to the ‘Other Info’ tab -> ‘Delivery’ section
- Select the warehouse where the customer’s deposit is located.
- Add the same product that was added to the deposit in the sale to
deposit.
- Select the Route: ‘(<warehouse_name>) / Deposit Delivery’
- Confirm the Sale
- Validate the generated picking
- This picking will remove the stock from the deposit, completing the
delivery cicle in odoo. This is achieved by moving the stock (in
odoo) from the deposit location to the customer location. This
operation works correcly because the stock has previously been moved
(in odoo) to the customer location, and the deposit location is
negative.
On the other hand, you will be able to see the state of the customer’s
deposits.
- Go to the ‘Stock Deposits’ tab of the contact and click on ‘View
Deposit Status’, if you only want to see the status of one deposit.
- From the contact’s view header click on ‘Deposits’ to see the status
of all the customer’s deposits.
- In future versions, we will consider modifying the sale order line
widget to show the available quantity of the product in the customer’s
deposit.
- Note: If you make a ‘Deposit Sale’ of a product with lot numbers. You
will need to use the same lot number in the ‘Deposit Delivery’, or
another existing lot in the deposit. Odoo is not able to automatically
select by default a lot that is in the deposit, because deposit
delivery operations do not have the deposit as origin (the location
odoo uses to get the lots). You can also make an inventory adjustment
to fix this.
- The code inside the _search_rule() has been encapsulated in another
function and also called from _get_rule(). Now, _get_rule() does not
call _search_rule() inside sales confirmations, so the code to get
the deposit rule has been moved to _get_rule(). Other functions could
have been inherited, but, as they were too complex, this is the best
way.
- The res_partner fields should be reviewed to determine if they should
be commercial fields.
- Potential issue with multi-company configuration.
- Potential issue with contact merging.
- Review inherited functions.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
feedback.
Do not contact contributors directly about support or help with technical issues.
- Sygel:
- Ángel García de la Chica Herrera
- Valentin Vinagre
- Alberto Martínez
- Harald Panten
This module is part of the sygel-technology/sy-sale-workflow project on GitHub.
You are welcome to contribute.