diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals.rst b/content/applications/inventory_and_mrp/purchase/manage_deals.rst index 02036b8c2..c33dac527 100644 --- a/content/applications/inventory_and_mrp/purchase/manage_deals.rst +++ b/content/applications/inventory_and_mrp/purchase/manage_deals.rst @@ -7,6 +7,7 @@ Manage deals .. toctree:: :titlesonly: - manage_deals/agreements + manage_deals/blanket_orders + manage_deals/calls_for_tenders manage_deals/control_bills manage_deals/manage diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements.rst b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements.rst deleted file mode 100644 index 4841ad9b4..000000000 --- a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements.rst +++ /dev/null @@ -1,153 +0,0 @@ -========================================================= -Purchase agreements: blanket orders and calls for tenders -========================================================= - -There are two main types of purchase agreements preconfigured in Odoo: blanket orders and call for -tenders. - -#. Blanket orders are long-term agreements between a company and a vendor to deliver products on a - recurring basis with predetermined pricing. Your company should consider using them when you - frequently purchase the same products from the same vendor in varying quantities and/or at - different times. Among their many benefits, you can save time as the ordering process is - simplified, and money thanks to more advantageous bulk pricing. - -#. Calls for tenders use a special procedure to request offers from multiple vendors at the same - time. While public sector organizations are often legally bound to release calls for tenders when - they want to purchase goods or services, private organizations can also use them to get the best - deal among several vendors. - -Enable purchase agreements -========================== - -From the Purchase app, go to :menuselection:`Configuration --> Settings` and activate *Purchase -Agreements*. - -.. image:: agreements/agreements-enable-purchase-agreements.png - :align: center - :alt: Enable purchase agreements in Odoo Purchase - -Configure or create new types of purchase agreements -==================================================== - -Before you start using purchase agreements, make sure they are configured the way you want by going -to :menuselection:`Configuration --> Purchase Agreement Types`. From there, you can edit the way -blanket orders and calls for tenders or *Create* a new type of purchase agreement. You can configure -the: - -#. Agreement Type: the name you want to give to the agreement. - -#. Agreement Selection Type: you can either select multiple offers using *Select multiple RFQ - (non-exclusive)*, which is the default setting for both blanket orders and calls for tenders, or - a single offer using *Select only one RFQ (exclusive)*, which is sometimes needed for calls for - tenders where you only want to select a single vendor. - -#. Lines: generally, you would always want to select *Use lines of agreement*, which are the - different product lines you can configure when you set up your purchase agreement. However, you - can select *Do not create RfQ lines automatically* if you don't want your requests for quotations - to be pre-filled in with that information. - -#. Quantities: if you use lines of agreements, you can also specify independently if the products' - quantities should be used to pre-fill new requests for quotations. The default option for blanket - orders is *Set quantities manually*, while for calls for tenders are set to *Use quantities of - agreement*. - -.. image:: agreements/agreements-configure-types.png - :align: center - :alt: Configure purchase agreements types in Odoo Purchase - -Set up a blanket order -====================== - -Go to :menuselection:`Orders --> Purchase Agreements` and click on *Create*. Select *Blanket Order* -as your *Agreement Type*. Next, select the vendor. The other fields aren't mandatory. - -Next, add the products you want to order and their price. Note that you can also add a *Quantity* -for each product, for example, if you have agreed with your vendor to order a specific minimum -quantity each time or in total. If you have configured your blanket order to *Set quantities -manually*, this is only used for informational purposes. - -.. image:: agreements/agreements-set-blanket-order.png - :align: center - :alt: Set up a blanket order in Odoo Purchase - -You can also write any *Terms and Conditions* at the bottom of the agreement. Once you are satisfied -with your blanket order, click on *Confirm*. Its status then changes from *Draft* to *Ongoing* and -it's ready to be used. - -Create requests for quotation from the blanket order ----------------------------------------------------- - -You can now create new quotations from the blanket order whenever you need it by clicking on *New -Quotation*. Odoo automatically fills in requests for quotation with the information initially -defined when you set up the blanket order. Depending on the way you configured the *Purchase -Agreement Type*, product lines can also be pre-filled. - -From here, you can quickly view all the requests for quotations made under that blanket order by -clicking on *RFQs/Orders*. - -.. image:: agreements/agreements-ongoing-blanket-order.png - :align: center - :alt: Create new quotations for an ongoing blanket order in Odoo Purchase - -.. tip:: - You can also create a *Request for Quotation* the usual way and then link it to an existing - *Blanket Order*. - -Blanket orders and replenishment -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Blanket orders can be used for :doc:`automated replenishment <../../purchase/products/reordering>`, -as once a blanket order is confirmed, a new vendor line is added to your product. Make sure the -related vendor is in the first position if you have several vendors linked to your product. - -.. image:: agreements/agreements-blanket-order-replenishment.png - :align: center - :alt: Blanket order added to product configuration in Odoo Purchase - -Set up a call for tenders -========================= - -Go to :menuselection:`Orders --> Purchase Agreements` and click on *Create*. Select *Call for -Tenders* as your *Agreement Type*. The other fields aren't mandatory, but you can add the date you -want to be delivered and set an agreement deadline. You usually don't want to select a vendor for -calls for tenders as you are looking to get quotations from multiple vendors. - -Next, add the products you want to order and in what quantity. For calls for tenders, you typically -don't add a price, as the vendors should give you their best quote. - -You can also write any *Terms and Conditions* at the bottom of the agreement. Once you are ready, -click on *Confirm*. - -.. image:: agreements/agreements-set-call-for-tenders.png - :align: center - :alt: Set up a call for tenders in Odoo Purchase - -Requests quotations from the call for tenders ---------------------------------------------- - -You can now request new quotations from the call for tenders. Click on *New Quotation* and select -one of your vendors you want to invite to the call for tenders. Product lines should also be -pre-filled in, depending on how you configured the *Purchase Agreement Type*. Click on *Send by -email* to send it to the vendor. Go back to the call for tenders and repeat this process for each -vendor. - -.. image:: agreements/agreements-request-quotation.png - :align: center - :alt: Request a quotation from a call for tenders in Odoo Purchase - -Once you have sent a request for quotation to every vendor and receiving their quotes, click on -*Validate* to proceed to the bid selection. Next, click on the RFQs/Orders smart button to view all -your vendors' quotations. - -.. image:: agreements/agreements-validate-call-for-tenders.png - :align: center - :alt: Validate a call for tenders and view all quotations in Odoo Purchase - -Click on each request for quotation to add the price communicated by your vendors manually. When -that's done, select the most advantageous offer and click on *Confirm Order*. This automatically -closes the call for tenders. You can now proceed with the purchase order as you would for a regular -one. - -.. image:: agreements/agreements-confirm-order.png - :align: center - :alt: Confirm an order in Odoo Purchase diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-blanket-order-replenishment.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-blanket-order-replenishment.png deleted file mode 100644 index d5acbfe77..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-blanket-order-replenishment.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-configure-types.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-configure-types.png deleted file mode 100644 index 8b33fa93b..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-configure-types.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-confirm-order.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-confirm-order.png deleted file mode 100644 index 1e3654d7b..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-confirm-order.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-enable-purchase-agreements.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-enable-purchase-agreements.png deleted file mode 100644 index 58e9f7e21..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-enable-purchase-agreements.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-ongoing-blanket-order.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-ongoing-blanket-order.png deleted file mode 100644 index 1554d13c1..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-ongoing-blanket-order.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-request-quotation.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-request-quotation.png deleted file mode 100644 index 7c079961c..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-request-quotation.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-blanket-order.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-blanket-order.png deleted file mode 100644 index 7fcc5294c..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-blanket-order.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-call-for-tenders.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-call-for-tenders.png deleted file mode 100644 index 804061170..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-set-call-for-tenders.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-validate-call-for-tenders.png b/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-validate-call-for-tenders.png deleted file mode 100644 index 52de4a640..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/agreements/agreements-validate-call-for-tenders.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst new file mode 100644 index 000000000..a68e1541c --- /dev/null +++ b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst @@ -0,0 +1,204 @@ +============================================================= +Use blanket orders to create purchase agreements with vendors +============================================================= + +Blanket orders are long-term purchase agreements between a company and a vendor to deliver products +on a recurring basis with predetermined pricing. Using blanket orders are useful when products are +always purchased from the same vendor, but in different quantities at different times. + +By simplifying the ordering process, blanket orders not only save time, they also save money, since +they can be advantageous when negotiating bulk pricing with vendors. + +.. seealso:: + :doc:`calls_for_tenders` + +Create a new blanket order +========================== + +To create blanket orders, the *Purchase Agreements* feature first needs to be enabled in the +settings of the *Purchase* app. To do this, go to :menuselection:`Purchase --> Configuration --> +Settings`, and under the :guilabel:`Orders` section, click the checkbox next to :guilabel:`Purchase +Agreements`. Doing so will enable the ability to create blanket orders, as well as alternative +requests for quotation (RFQs). + +.. image:: blanket_orders/blanket-orders-settings-page.png + :align: center + :alt: Purchase Agreements enabled in the Purshase app settings. + +To create a blanket order, go to :menuselection:`Purchase --> Orders --> blanket orders`, and click +:guilabel:`New`. This creates (and navigates to) a new blanket order form. + +From this new blanket order form, different fields and settings can be configured, so there are +pre-determined rules that the recurring long-term agreement must follow: + +- :guilabel:`Purchase Representative`: is the user assigned to this specific blanket order. By + default, this is the user who created the agreement; the user can be changed directly from the + drop-down menu next to this field. +- :guilabel:`Agreement Type`: is the type of purchase agreement this blanket order is classified + as. In Odoo, blanket orders are the only official purchase agreement. +- :guilabel:`Vendor`: is the supplier to whom this agreement is tied, either once or on a recurring + basis. The vendor can be selected directly from the drop-down menu next to this field. +- :guilabel:`Currency`: is the agreed-upon currency that will be used for this exchange. If multiple + currencies have been activated in the database, the currency can be changed from the drop-down + menu next to this field. +- :guilabel:`Agreement Deadline`: is the date that this purchase agreement will be set to expire on + (if desired). If this blanket order should not expire, leave this field blank. +- :guilabel:`Ordering Date`: is the date that this blanket order should be placed on if a new + quotation is created directly from the blanket order form. If a new quotation is created, this + value will automatically populate the *Order Deadline* field on the :abbr:`RFQ (Request for + Quotation)`. +- :guilabel:`Delivery Date`: is the expected delivery date that the products included in an + :abbr:`RFQ (Request for Quotation)` created directly from the blanket order form will be expected + to arrive. If a new quotation is created, this value will automatically populate the *Expected + Arrival* field on the :abbr:`RFQ (Request for Quotation)`. +- :guilabel:`Source Document`: is the source purchase order (PO) that this blanket order will be + tied to. If this blanket order should not be tied to any existing :abbr:`POs (Purchase Orders)`, + leave this field blank. +- :guilabel:`Company`: is the company assigned to this specific blanket order. By default, this is + the company that the user creating the blanket order is listed under. If the database is not a + multi-company database, this field can not be changed, and will default to the only company + listed in the database. + +.. image:: blanket_orders/blanket-orders-new-agreement.png + :align: center + :alt: New blanket order purchase agreement with added products. + +Once all relevant fields have been filled out, click :guilabel:`Add a line` to add products under +the :guilabel:`Product` column. Then, change the quantity of each product in the +:guilabel:`Quantity` column (if desired), and set a price in the :guilabel:`Unit Price` column. + +.. important:: + When adding products to a new blanket order, the pre-existing prices of products will not be + added automatically to the product lines. The prices must be manually assigned by changing the + value in the :guilabel:`Unit Price` column to an agreed-upon price with the listed vendor. + Otherwise, the price will remain **0**. + +To view and change the default purchase agreement settings for blanket orders directly from the +blanket order form, click the :guilabel:`internal link (arrow icon)` next to the +:guilabel:`Agreement Type` field where :guilabel:`Blanket Order` is listed. This navigates to the +blanket order settings. + +From here, the settings for blanket orders can be edited. Under the :guilabel:`Agreement Type` +section, the name of the :guilabel:`Agreement Type` can be changed (if desired), and the +:guilabel:`Agreement Selection Type` can be changed, as well. There are two options that can be +activated for the type of selection: + +- :guilabel:`Select only one RFQ (exclusive)`: when a purchase order is confirmed, the remaining + purchase orders will be canceled. +- :guilabel:`Select multiple RFQ (non-exclusive)`: when a purchase order is confirmed, remaining + purchase orders will ***not** be canceled. Instead, multiple purchase orders are allowed. + +Under the :guilabel:`Data For New Quotations` section, the settings for how product lines and +quantities will be populated on new quotations using this purchase agreeement can be changed next +to the :guilabel:`Lines` and :guilabel:`Quantities` fields. + +.. image:: blanket_orders/blanket-orders-edit-agreement-type.png + :align: center + :alt: Purchase Agreement type edit screen for blanket orders. + +There are two options that can be activated for :guilabel:`Lines`: + +- :guilabel:`Use lines of agreement`: when creating a new quotation, the product lines will + pre-populate with the same products listed on the blanket order, if said blanket order is chosen + on the new quotation. +- :guilabel:`Do not create RfQ lines automatically`: when creating a new quotation and selecting + an existing blanket order, the settings will carry over to the new quotation, but the product + lines will not populate. + +And, there are two options that can be activated for :guilabel:`Quantities`: + +- :guilabel:`Use quantities of agreement`: when creating a new quotation, the product quantities + listed on the blanket order will pre-populate on the product lines, if said blanket order is + chosen on the new quotation. +- :guilabel:`Set quantities manually`: when creating a new quotation and selecting an existing + blanket order, the product lines will pre-populate, but all quantities will be set to **0**. The + quantities will need to be manually set by the user. + +Once the desired changes have been made (if any), click :guilabel:`New` (via the breadcrumbs, at +the top of the page) to navigate back to the blanket order form, and click :guilabel:`Confirm` to +save this new purchase agreement. Once confirmed, the blanket order changes from *Draft* to +*Ongoing*, meaning this agreement can be selected and used when creating new :abbr:`RFQs (Requests +for Quotation)`. + +.. tip:: + After creating and confirming a blanket order, products, quantities, and prices can still be + edited, added, and removed from the purchase agreement. + +Create a new :abbr:`RFQ (Request for Quotation)` from the blanket order +======================================================================= + +After confirming a blanket order, new quotations can be created directly from the blanket order +form that will use the rules set on the form and pre-populate the new quotation with the correct +information. Additionally, this new quotation will be automatically linked to this blanket order +form via the :guilabel:`RFQs/Orders` smart button at the top right of the form. + +To create a new quotation from the blanket order form, click :guilabel:`New Quotation`. This +creates (and navigates to) a new :abbr:`RFQ (Request for Quotation)`, that is pre-populated with +the correct information, depending on the settings configured on the blanket order form. + +From the new :abbr:`RFQ (Request for Quotation)` form, click :guilabel:`Send by Email` to compose +and send an email to the listed vendor; click :guilabel:`Print RFQ` to generate a printable PDF of +the quotation; or, once ready, click :guilabel:`Confirm Order` to confirm the purchase order (PO). + +.. image:: blanket_orders/blanket-orders-new-quotation.png + :align: center + :alt: New quotation with copied products and rules from blanket order. + +Once the :abbr:`PO (Purchase Order)` has been confirmed, click back to the blanket order form (via +the breadcrumbs, at the top of the page). From the blanket order form, there is now one :abbr:`RFQ +(Request for Quotation)` listed in the :guilabel:`RFQs/Orders` smart button at the top right of the +form. Click the :guilabel:`RFQs/Orders` smart button to see the purchase order that was just created. + +.. image:: blanket_orders/blanket-orders-rfq-smart-button.png + :align: center + :alt: RFQs and Orders smart button from blanket order form. + +Create a new blanket order from an :abbr:`RFQ (Request for Quotation)` +====================================================================== + +To create a new :abbr:`RFQ (Request for Quotation)`, navigate to the :menuselection:`Purchase` app, +and click :guilabel:`New`. + +Then, add information to the :abbr:`RFQ (Request for Quotation)` form: add a vendor from the +drop-down menu next to the :guilabel:`Vendor` field, and click :guilabel:`Add a product` to select +a product from the drop-down menu in the :guilabel:`Product` column. Then, set the desired purchase +quantity in the :guilabel:`Quantity` column, and change the purchase price in the :guilabel:`Unit +Price` column, if desired. + +Clicking the :guilabel:`additional options (two-dots)` icon provides additional visibility options +to add to the line item. Repeat these steps to add as many additional options as desired, including +the :guilabel:`UoM` (Units of Measure) to purchase the products in, and the :guilabel:`Expected +Arrival` date. + +Before confirming the new quotation and creating a purchase order, click the drop-down menu next to +the :guilabel:`Blanket Order` field, and type a new name for the new blanket order. This creates a +brand new purchase agreement, and saves the information entered in the fields of the purchase order +form, as well as the product information entered on the product lines. + +From the new :abbr:`RFQ (Request for Quotation)` form, click :guilabel:`Send by Email` to compose +and send an email to the listed vendor; click :guilabel:`Print RFQ` to generate a printable PDF of +the quotation; or, once ready, click :guilabel:`Confirm Order` to confirm the :abbr:`PO (purchase +order)`. + +.. image:: blanket_orders/blanket-orders-new-blanket-order.png + :align: center + :alt: New blanket order created directly from quotation. + +.. note:: + To see the newly-created blanket order purchase agreement, go to :menuselection:`Orders --> + Blanket Orders`, and click into the new blanket order. From here, settings and rules can be + changed, if desired. + +Blanket orders and replenishment +================================ + +Once a blanket order is confirmed, a new vendor line is added under the :guilabel:`Purchase` tab of +of the products included in the :abbr:`BO (Blanket Order)`. This makes blanket orders useful with +:doc:`automated replenishment <../../purchase/products/reordering>`, because information about the +:guilabel:`Vendor`, :guilabel:`Price`, and the :guilabel:`Agreement` are referenced on the vendor +line. This information is used to determine where, when, and for what price this product could be +replenished. + +.. image:: blanket_orders/blanket-orders-automated-replenishment.png + :align: center + :alt: Product form with replenishment agreement linked to blanket order. diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-automated-replenishment.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-automated-replenishment.png new file mode 100644 index 000000000..ee8442fa3 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-automated-replenishment.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-edit-agreement-type.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-edit-agreement-type.png new file mode 100644 index 000000000..aa270e4ad Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-edit-agreement-type.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-agreement.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-agreement.png new file mode 100644 index 000000000..c744abe85 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-agreement.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-blanket-order.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-blanket-order.png new file mode 100644 index 000000000..25fa24faa Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-blanket-order.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-quotation.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-quotation.png new file mode 100644 index 000000000..542698394 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-quotation.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-rfq-smart-button.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-rfq-smart-button.png new file mode 100644 index 000000000..27153ac58 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-rfq-smart-button.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-settings-page.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-settings-page.png new file mode 100644 index 000000000..8f1bca12e Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-settings-page.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.rst b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.rst new file mode 100644 index 000000000..3ddd1baed --- /dev/null +++ b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders.rst @@ -0,0 +1,267 @@ +============================================================== +Create alternative requests for quotation for multiple vendors +============================================================== + +Sometimes, companies might want to request offers from multiple vendors at the same time, by +inviting those vendors to submit offers for similar goods or services all at once. This helps +companies to select the cheapest (and fastest) vendors, depending on their specific business needs. + +In Odoo, this can be done by adding alternative requests for quotation (RFQs) for different +vendors. Once a response is received from each vendor, the product lines from each :abbr:`RFQ +(Request for Quotation)` can be compared, and a decision can be made for which products to purchase +from which vendors. + +Sometimes referred to as a *call for tender*, this process is primarily used by organizations in +the public sector, who are legally bound to use it when making a purchase. However, private +companies can also use alternative :abbr:`RFQs (Requests for Quotation)` to spend money efficiently, +as well. + +.. seealso:: + :doc:`blanket_orders` + +Configure purchase agreement settings +===================================== + +To create alternative :abbr:`RFQs (Requests for Quotation)` directly from a quotation, the *Purchase +Agreements* feature first needs to be enabled in the settings of the *Purchase* app. To do this, go +to :menuselection:`Purchase --> Configuration --> Settings`, and under the :guilabel:`Orders` +section, click the checkbox next to :guilabel:`Purchase Agreements`. Doing so will enable the +ability to create alternative :abbr:`RFQs (Requests for Quotation)`, as well as the ability to +create *blanket orders*. + +.. image:: calls_for_tenders/calls-for-tenders-settings-page.png + :align: center + :alt: Purchase Agreements enabled in the Purchase app settings. + +.. tip:: + To save time on a *call for tender*, custom vendors, prices, and delivery lead times can be set + in the :guilabel:`Purchase` tab on a product form. To do so, navigate to + :menuselection:`Purchase --> Products --> Products`, and select a product to edit. From the + product form, click the :guilabel:`Purchase tab`, then click :guilabel:`Add a line`. From the + drop-down menu, choose a vendor to set under the :guilabel:`Vendor` column, and set a + :guilabel:`Price` and :guilabel:`Delivery Lead Time` if desired. Clicking the + :guilabel:`additional options (two-dots)` icon provides additional visibility options to add to + the line item. + +Create an :abbr:`RFQ (Request for Quotation)` +============================================= + +To create a new :abbr:`RFQ (Request for Quotation)`, navigate to the :menuselection:`Purchase` app, +and click :guilabel:`New`. + +Then, add information to the :abbr:`RFQ (Request for Quotation)` form: add a vendor from the +drop-down next to the :guilabel:`Vendor` field, and click :guilabel:`Add a product` to select a +product from the drop-down menu in the :guilabel:`Product` column. Then, set the desired purchase +quantity in the :guilabel:`Quantity` column, and change the purchase price in the :guilabel:`Unit +Price` column, if desired. + +Clicking the :guilabel:`additional options (two-dots)` icon provides additional visibility options +to add to the line item. Repeat these steps to add as many options as desired, including the +:guilabel:`UoM` (Units of Measure) to purchase the products in, and the :guilabel:`Expected Arrival` +date. + +Once ready, click :guilabel:`Send by Email`. This causes a :guilabel:`Compose Email` pop-up window +to appear, wherein the message to the vendor can be customized. Once ready, click :guilabel:`Send`. +This turns the :abbr:`RFQ (Request for Quotation)` into a purchase order (PO), and sends an email +to the vendor listed on the purchase order form. + +.. image:: calls_for_tenders/calls-for-tenders-email-popup.png + :align: center + :alt: Compose and send quotation email pop-up. + +.. note:: + Sending emails to each vendor can be useful when creating alternative + :abbr:`RFQs (Requests for Quotation)`, because vendors can confirm if their past prices still + hold today, which can help companies choose the best offers for them. + +Create alternatives to an :abbr:`RFQ (Request for Quotation)` +============================================================= + +Once a :abbr:`PO (Purchase Order)` is created and sent by email to a vendor, alternative :abbr:`RFQs +(Requests for Quotation)` can be created and sent to additional, alternate vendors to compare +prices, delivery times, and other factors to make a decision from which vendors to order which +products. + +To create alternative :abbr:`RFQs (Requests for Quotation)`, click the :guilabel:`Alternatives` tab +from the purchase order form, then click :guilabel:`Create Alternative`. When clicked, a +:guilabel:`Create alternative` pop-up window appears. + +.. image:: calls_for_tenders/calls-for-tenders-alternatives-popup.png + :align: center + :alt: Calls for tenders pop-up to create alternative quotation. + +From this window, select a new/different vendor from the drop-down menu next to the +:guilabel:`Vendor` field to assign this alternative quotation to. + +Next to this, there is a :guilabel:`Copy Products` checkbox that is selected by default. When +selected, the product quantities of the original :abbr:`PO (Purchase Order)` are copied to the +alternative. For this first alternative quotation, leave the checkbox checked. Once finished, click +:guilabel:`Create Alternative`. This creates (and navigates to) a new :abbr:`PO (Purchase Order)`. + +Since the :guilabel:`Create Alternative` checkbox was left checked, this new purchase order form is +already populated with the same products, quantities, and other details as the previous, original +:abbr:`PO (Purchase Order)`. + +.. note:: + When the :guilabel:`Copy Products` checkbox is selected while creating an alternative quotation, + additional products do not need to be added on the purchase order form unless desired. However, + if a chosen vendor is listed in the :guilabel:`Vendor` column under the :guilabel:`Purchase` tab + on a product form included in the purchase order, the values set on the product form carry over + to the :abbr:`PO (Purchase Order)`, and have to be changed manually, if desired. + +Once ready, create a second alternative quotation by clicking the :guilabel:`Alternatives` tab, and +once again, click :guilabel:`Create Alternative`. This causes the :guilabel:`Create alternative` +pop-up window to appear again. This time, choose a different vendor from the drop-down menu next to +:guilabel:`Vendor`, and this time, *uncheck* the :guilabel:`Copy Products` checkbox. Then, click +:guilabel:`Create Alternative`. + +.. tip:: + If an alternative quotation needs to be removed from the :guilabel:`Alternatives` tab, they can + be individually removed by clicking on the :guilabel:`Remove (X)` icon at the end of their row. + +This creates a third, new purchase order. But, since the product quantities of the original +:abbr:`PO (Purchase Order)` were *not* copied over, the product lines are empty, and new products +need to be added by clicking :guilabel:`Add a product`, and selecting the desired products from the +drop-down menu. Once the desired number of products are added, click :guilabel:`Send by Email`. + +.. image:: calls_for_tenders/calls-for-tenders-blank-alternative.png + :align: center + :alt: Blank alternative quotation with alternatives in breadcrumbs. + +This causes a :guilabel:`Compose Email` pop-up window to appear, wherein the message to the vendor +can be customized. Once ready, click :guilabel:`Send` to send an email to the vendor listed on the +purchase order form. + +From this newest purchase order form, click the :guilabel:`Alternatives` tab. Under this tab, all +three purchase orders can be seen in the :guilabel:`Reference` column. Additionally, the vendors +are listed under the :guilabel:`Vendor` column, and the order :guilabel:`Total` and +:guilabel:`Status` of the orders are in the rows, as well. + +Link a new :abbr:`RFQ (Request for Quotation)` to existing quotations +===================================================================== + +Creating alternative quotations directly from a purchase order form under the +:guilabel:`Alternatives` tab is the easiest way to create and link quotations. However, separate +:abbr:`RFQs (Requests for Quotation)` can also be linked *after* the fact, even if they are created +completely separately at first. + +To create a new :abbr:`RFQ (Request for Quotation)`, navigate to the :menuselection:`Purchase` app, +and click :guilabel:`New`. + +Then, add information to the :abbr:`RFQ (Request for Quotation)` form: add a vendor from the +drop-down next to the :guilabel:`Vendor` field, and click :guilabel:`Add a product` to select a +product from the drop-down menu in the :guilabel:`Product` column. Then, set the desired purchase +quantity in the :guilabel:`Quantity` column, and change the purchase price in the +:guilabel:`Unit Price` column, if desired. + +Once ready, click :guilabel:`Send by Email`. This causes a :guilabel:`Compose Email` pop-up window +to appear, wherein the message to the vendor can be customized. Once ready, click :guilabel:`Send` +to send an email to the vendor listed on the purchase order form. + +Then, click the :guilabel:`Alternatives` tab once more. Since this new :abbr:`PO (Purchase Order)` +was created separately, there are no other orders linked yet. To link this order with the +alternatives created previously, click :guilabel:`Link to Existing RfQ` on the first line in the +:guilabel:`Vendor` column. + +.. image:: calls_for_tenders/calls-for-tenders-link-existing-rfq.png + :align: center + :alt: pop-up to link new quotation to existing RFQs. + +This causes an :guilabel:`Add: Alternative POs` pop-up window to appear. Select the three purchase +orders created previously, and click :guilabel:`Select`. All of these orders are now copied to this +:abbr:`PO (Purchase Order)` under the :guilabel:`Alternatives` tab. + +.. tip:: + If a large number of purchase orders are being processed and the previous + :abbr:`POs (Purchase Orders)` can't be located, try clicking :menuselection:`Group By --> + Vendor` under the search bar at the top of the pop-up window to group by the vendors selected on + the previous orders. + +Compare product lines +===================== + +When there are multiple :abbr:`RFQs (Requests for Quotation)` linked as alternatives, they can be +compared side-by-side in order to determine which vendors offer the best deals on which products. +To compare each quotation, go to the :menuselection:`Purchase` app, and select one of the +quotations created previously. + +Then, click the :guilabel:`Alternatives` tab to see all the linked +:abbr:`RFQs (Requests for Quotation)`. Next, under the :guilabel:`Create Alternative` tab, click +:guilabel:`Compare Product Lines`. This navigates to a Compare Order Lines page. + +.. image:: calls_for_tenders/calls-for-tenders-compare-product-lines.png + :align: center + :alt: Compare Product Lines page for alternative RFQs. + +The Compare Order Lines page, by default, groups by :guilabel:`Product`. Each product included in +any of the :abbr:`RFQs (Requests for Quotation)` is displayed in its own drop-down, along with all +of the :abbr:`PO (Purchase Order)` numbers in the :guilabel:`Reference` column. + +Additional columns on this page include the :guilabel:`Vendor` from which products were ordered, +the :guilabel:`Status` of the quotation (i.e., RFQ, RFQ Sent); the :guilabel:`Quantity` of products +ordered from each vendor; the :guilabel:`Unit Price` per product and :guilabel:`Total` price of the +order, and more. + +.. note:: + To remove product lines from the Compare Order Lines page, click :guilabel:`Clear` at the far + right end of that product line's row. This removes this product as a chooseable option from the + page, and changes the :guilabel:`Total` price of that product on the page to **0**. On the + purchase order form in which that product was included, its ordered quantity is changed to + **0**, as well. + +Once the best offers have been identified, at the end of each row, individual products can be +selected by clicking :guilabel:`Choose`. Once all the desired products have been chosen, click +:guilabel:`Requests for Quotation` (in the breadcrumbs, at the top of the page) to navigate back to +an overview of all :abbr:`RFQs (Requests for Quotation)`. + +Cancel (or keep) alternatives +============================= + +Now that the desired products have been chosen, based on which vendors provided the best offer, the +other :abbr:`RFQs (Requests for Quotation)` (from which no products were chosen) can be canceled. + +Under the :guilabel:`Total` column, at the far right of each row, the orders from which no products +were chosen have automatically had their total cost set to **0**. Although they haven't been +canceled yet, this means that they can ultimately be canceled without repercussions, *after* the +desired purchase orders have been confirmed. + +.. image:: calls_for_tenders/calls-for-tenders-canceled-quotes.png + :align: center + :alt: Canceled quotations in the Purchase app overview. + +To confirm a quotation that contains the chosen product quantities, click into one. Then, click +:guilabel:`Confirm Order`. This causes an :guilabel:`Alternative Warning` pop-up window to appear. +From there, either :guilabel:`Cancel Alternatives` or :guilabel:`Keep Alternatives` can be clicked. +If this :abbr:`PO (Purchase Order)` should *not* be confirmed, click :guilabel:`Cancel`. + +:guilabel:`Cancel Alternatives` automatically cancels the alternative purchase orders. +:guilabel:`Keep Alternatives` keeps the alternative purchase orders open, so they can still be +accessed if any additional product quantities need to be ordered. Once all products are ordered, +:guilabel:`Cancel Alternatives` can be selected from whichever :abbr:`PO (Purchase Order)` is open. + +To view a detailed form of one of the :abbr:`RFQs (Requests for Quotation)` listed, click the line +item for that quotation. This causes an :guilabel:`Open: Alternative POs` pop-up window to appear, +from which all details of that particular quotation can be viewed. Click :guilabel:`Close` when +finished. + +.. image:: calls_for_tenders/calls-for-tenders-keep-cancel-alternatives.png + :align: center + :alt: Keep or cancel pop-up for alternative RFQs. + +From the :guilabel:`Alternative Warning` pop-up window, click :guilabel:`Keep Alternatives` to keep +all alternative quotations open for now. Then, click :guilabel:`Requests for Quotation` (in the +breadcrumbs, at the top of the page) to navigate back to an overview of all :abbr:`RFQs (Requests +for Quotation)`. + +Click into the remaining quotation(s) that contain products that need to be ordered, and click +:guilabel:`Confirm Order`. This causes the :guilabel:`Alternative Warning` pop-up window to appear +again. This time, click :guilabel:`Cancel Alternatives` to cancel all other alternative :abbr:`RFQs` +linked with this quotation. + +Finally, click :guilabel:`Requests for Quotation` (in the breadcrumbs, at the top of the page) to +navigate back to an overview of all :abbr:`RFQs (Requests for Quotation)`. The canceled orders can +be seen greyed out and listed with a :guilabel:`Cancelled` status under the :guilabel:`Status` +column at the far right of their rows. + +Now that all product quantities have been ordered, the purchase process can be followed, and +continued to completion, until the products are received into the warehouse. diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-alternatives-popup.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-alternatives-popup.png new file mode 100644 index 000000000..564eebaff Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-alternatives-popup.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-blank-alternative.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-blank-alternative.png new file mode 100644 index 000000000..7eea005f2 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-blank-alternative.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-canceled-quotes.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-canceled-quotes.png new file mode 100644 index 000000000..a0c79e0c4 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-canceled-quotes.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-compare-product-lines.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-compare-product-lines.png new file mode 100644 index 000000000..6a191f4a6 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-compare-product-lines.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-email-popup.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-email-popup.png new file mode 100644 index 000000000..10b1973dc Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-email-popup.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-keep-cancel-alternatives.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-keep-cancel-alternatives.png new file mode 100644 index 000000000..69ed78704 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-keep-cancel-alternatives.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-link-existing-rfq.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-link-existing-rfq.png new file mode 100644 index 000000000..5602d505b Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-link-existing-rfq.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-settings-page.png b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-settings-page.png new file mode 100644 index 000000000..76cb3b887 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/calls_for_tenders/calls-for-tenders-settings-page.png differ diff --git a/redirects/16.0.txt b/redirects/16.0.txt index 4cc1524bf..257788544 100644 --- a/redirects/16.0.txt +++ b/redirects/16.0.txt @@ -56,6 +56,9 @@ developer/howtos/discover_js_framework/04_miscellaneous.rst developer/tutorials/ developer/howtos/discover_js_framework/05_custom_kanban_view.rst developer/tutorials/discover_js_framework/05_custom_kanban_view.rst # reorganize the developer doc developer/howtos/discover_js_framework/06_creating_view_from_scratch.rst developer/tutorials/discover_js_framework/06_creating_view_from_scratch.rst # reorganize the developer doc developer/howtos/discover_js_framework/07_testing.rst developer/tutorials/discover_js_framework/07_testing.rst # reorganize the developer doc +# applications/purchase + +applications/inventory_and_mrp/purchase/manage_deals/agreements.rst applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst # agreements.rst -> blanket_orders.rst # developer/reference/frontend