Skip to content

Commit

Permalink
Merge fa1f8a7 into e151512
Browse files Browse the repository at this point in the history
  • Loading branch information
tafaRU committed Oct 25, 2019
2 parents e151512 + fa1f8a7 commit be0b9e6
Show file tree
Hide file tree
Showing 35 changed files with 4,104 additions and 0 deletions.
136 changes: 136 additions & 0 deletions sale_blanket_order/README.rst
@@ -0,0 +1,136 @@
===================
Sale Blanket Orders
===================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/12.0/sale_blanket_order
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-12-0/sale-workflow-12-0-sale_blanket_order
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/167/12.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

A blanket order is a pre-agreement to sell a certain number of quantities of
products at a specific price. From a confirmed blanket order, the users can
create new sale orders at such price, until the blanket order expires, either
due to reaching the validity date or exhausting all the quantities of products.

**Table of contents**

.. contents::
:local:

Usage
=====

A new menu in the Sales area is created, allowing users to create new blanket orders.

To create a new Sale Blanket Order go to the sale menu in the Sales section:

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/BO_menu.png
:alt: Blanket Orders menu

Hitting the button create will open the form view in which we can introduce the following
information:

* Vendor
* Salesperson
* Payment Terms
* Validity date
* Order lines:
* Product
* Accorded price
* Original, Ordered, Invoiced, Received and Remaining quantities
* Terms and Conditions of the Blanket Order

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/BO_form.png
:alt: Blanket Orders form

From the form, once the Blanket Order has been confirmed and its state is open, the user can
create a Sale Order, check the Sale Orders associated to the Blanket Order and/or
see the Blanket Order lines associated to the BO.

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/BO_actions.png
:alt: Actions that can be done from Blanket Order

Hitting the button Create Sale Order will open a wizard that will ask for the amount of each
product in the BO lines for which the Sale Order will be created.

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/PO_from_BO.png
:alt: Create Sale Order from Blanket Order

Installing this module will add an additional menu which will show all the blanket order lines
currently defined in the system. From this list the user can create customized Sale Orders
selecting the lines for which the PO (or POs if the customers are different) is (are) created.

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/BO_lines.png
:alt: Blanket Order lines and actions

In the Sale Order form one field is added in the PO lines, the Blanket Order line field. This
field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product
in a newly created Sale Order a blanket order line will be suggested depending on the following
factors:

* Closer Validity date
* Remaining quantity > Quantity introduced in the Sale Order line

.. image:: https://raw.githubusercontent.com/sale_blanket_order/static/description/PO_BOLine.png
:alt: New field added in Sale Order Line

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_blanket_order%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Acsone SA/NV

Contributors
~~~~~~~~~~~~

* André Pereira <github@andreparames.com> (https://www.acsone.eu/)
* Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
* Alex Comba <alex.comba@agilebg.com <https://www.agilebg.com/)

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/12.0/sale_blanket_order>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions sale_blanket_order/__init__.py
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
from . import wizard
29 changes: 29 additions & 0 deletions sale_blanket_order/__manifest__.py
@@ -0,0 +1,29 @@
# Copyright 2018 Acsone
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
'name': 'Sale Blanket Orders',
'category': 'Sale',
'license': 'AGPL-3',
'author': 'Acsone SA/NV, Odoo Community Association (OCA)',
'version': '12.0.1.0.0',
'website': 'https://github.com/OCA/sale-workflow',
'summary': "Blanket Orders",
'depends': [
'uom',
'sale_management',
'web_action_conditionable',
],
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'data/sequence.xml',
'data/ir_cron.xml',
'wizard/create_sale_orders.xml',
'views/sale_config_settings.xml',
'views/sale_blanket_order_views.xml',
'views/sale_order_views.xml',
'report/templates.xml',
'report/report.xml',
],
'installable': True,
}
19 changes: 19 additions & 0 deletions sale_blanket_order/data/ir_cron.xml
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2018 ACSONE SA/NV
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->

<odoo noupdate="1">

<record forcecreate="True" id="expired_blanket_orders_cron" model="ir.cron">
<field name="name">Expire Blanket Orders</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="(DateTime.now() + relativedelta(hour=00, minute=1, second=0)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
<field name="model_id" ref="model_sale_blanket_order"/>
<field name="state">code</field>
<field name="code">model.expire_orders()</field>
</record>

</odoo>
13 changes: 13 additions & 0 deletions sale_blanket_order/data/sequence.xml
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">

<!-- Sequences for sale.blanket.order -->
<record id="seq_blanket_order" model="ir.sequence">
<field name="name">Blanket Order</field>
<field name="code">sale.blanket.order</field>
<field name="prefix">BO</field>
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>

</odoo>

0 comments on commit be0b9e6

Please sign in to comment.