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 index a68e1541c..27ecf2160 100644 --- a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst +++ b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders.rst @@ -1,96 +1,107 @@ -============================================================= -Use blanket orders to create purchase agreements with vendors -============================================================= +============== +Blanket orders +============== + +.. _purchase/manage_deals/blanket-orders: + +.. |SO| replace:: :abbr:`SO (Sales Order)` +.. |PO| replace:: :abbr:`PO (Purchase Order)` +.. |UoM| replace:: :abbr:`UoM (Unit of Measure)` +.. |RfQ| replace:: :abbr:`RfQ (Request for Quotation)` +.. |RfQs| replace:: :abbr:`RfQs (Requests for Quotation)` 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. +on a recurring basis with predetermined pricing. + +Blanket orders are helpful when products are consistently purchased from the same vendor, but in +different quantities, and 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). +To create blanket orders, enable the *Purchase Agreements* feature from the *Purchase* app settings. +Navigate to :menuselection:`Purchase app --> Configuration --> Settings`, and under the +:guilabel:`Orders` section, click the checkbox for :guilabel:`Purchase Agreements`. Then click +:guilabel:`Save` to implement the changes. -.. image:: blanket_orders/blanket-orders-settings-page.png +.. note:: + In addition to creating blanket orders, the *Purchase Agreements* setting also allows users to + create alternative requests for quotation (RfQs). + +.. image:: blanket_orders/blanket-orders-enabled-setting.png :align: center - :alt: Purchase Agreements enabled in the Purshase app settings. + :alt: Purchase Agreements enabled in the Purchase 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. +To create a blanket order, go to :menuselection:`Purchase app --> Orders --> Blanket Orders`, and +click :guilabel:`New`. This opens 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: +Configure the following fields in the new blanket order form to establish predetermined rules for +the recurring long-term agreement: -- :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 +- :guilabel:`Purchase Representative`: 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`: the type of purchase agreement this blanket order is classified as. In + Odoo, blanket orders are the only official purchase agreement. +- :guilabel:`Vendor`: 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 +- :guilabel:`Currency`: the agreed-upon currency to 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. +- :guilabel:`Agreement Deadline`: the date that this purchase agreement will be set to expire on. If + this blanket order should not expire, leave this field blank. +- :guilabel:`Ordering Date`: 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 + automatically populates the *Order Deadline* field on the |RfQ|. +- :guilabel:`Delivery Date`: the expected delivery date that the products included in an |RfQ| are + expected, if created directly from a blanket order form. If a new quotation is created, this value + automatically populates the *Expected Arrival* field on the |RfQ|. +- :guilabel:`Source Document`: the source purchase order (PO) that this blanket order is tied to. If + this blanket order should not be tied to any existing |PO|, leave this field blank. +- :guilabel:`Company`: 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 **cannot** be changed, and defaults 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. +the :guilabel:`Product` column. Then, in the :guilabel:`Quantity` column, change the quantity of +each product, 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**. + When adding products to a new blanket order, the pre-existing prices of products are not + automatically added to the product lines. Instead, 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. +blanket order form, click the :guilabel:`➡️ (right arrow)` icon that becomes visible when hovering +over the :guilabel:`Agreement Type` field, where :guilabel:`Blanket Order` is listed. This navigates +to the blanket order settings. + +.. image:: blanket_orders/blanket-orders-internal-link-arrow.png + :align: center + :alt: Internal link arrow next to Agreement Type field on blanket order form. 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: +section, the name of the :guilabel:`Agreement Type` can be changed, 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. +- :guilabel:`Select only one RfQ (exclusive)`: when a purchase order is confirmed, the remaining + purchase orders are canceled. +- :guilabel:`Select multiple RfQ (non-exclusive)`: when a purchase order is confirmed, remaining + purchase orders are **not** 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. +Under the :guilabel:`Data For New Quotations` section, the :guilabel:`Lines` and +:guilabel:`Quantities` fields can be edited. Doing so sets how new quotations should be populated +when using this purchase agreement. .. image:: blanket_orders/blanket-orders-edit-agreement-type.png :align: center @@ -98,107 +109,76 @@ to the :guilabel:`Lines` and :guilabel:`Quantities` fields. 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. +- :guilabel:`Use lines of agreement`: when creating a new quotation, the product lines pre-populate + with the same products listed on the blanket order, if said blanket order is chosen for the new + quotation. +- :guilabel:`Do not create RfQ lines automatically`: when creating a new quotation, **and** + selecting an existing blanket order, the settings carry over to the new quotation, but the product + lines do **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. + listed on the blanket order pre-populate on the product lines, if said blanket order is chosen for + the new quotation. +- :guilabel:`Set quantities manually`: when creating a new quotation, **and** selecting an existing + blanket order, the product lines pre-populate, but all quantities are set to `0`. The quantities + **must** 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)`. +Once any desired changes have been made, click :guilabel:`New` (via the breadcrumbs, at the top of +the page) to navigate back to the blanket order form. Then, click :guilabel:`Confirm` to save this +new purchase agreement. + +Once confirmed, the blanket order's stage (in the upper-right corner) changes from :guilabel:`Draft` +to :guilabel:`Ongoing`, meaning this agreement can be selected and used when creating new |RfQs|. .. 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 -======================================================================= +Create a new |RfQ| 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. +form. |RfQs| using this form are pre-populated with information based on the rules set in the form. +Additionally, new quotations are 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. +To create a new quotation from the blanket order form, click the :guilabel:`New Quotation` button. +This opens a new |RfQ|, 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). +From the new |RfQ| 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 |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. +Once the |PO| 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 |RfQ| 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 |PO| 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 -================================ +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. +the products included in the order. -.. image:: blanket_orders/blanket-orders-automated-replenishment.png +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 +dictates when, where, and at what price the product should be replenished. + +.. image:: blanket_orders/blanket-orders-product-form.png :align: center :alt: Product form with replenishment agreement linked to blanket order. + +.. seealso:: + :doc:`calls_for_tenders` 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 deleted file mode 100644 index ee8442fa3..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-automated-replenishment.png and /dev/null 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 index aa270e4ad..91e520390 100644 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-edit-agreement-type.png 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-enabled-setting.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-enabled-setting.png new file mode 100644 index 000000000..2e6dc3c34 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-enabled-setting.png differ diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-internal-link-arrow.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-internal-link-arrow.png new file mode 100644 index 000000000..ab7a68b7d Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-internal-link-arrow.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 index c744abe85..77ca8d601 100644 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-agreement.png 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 deleted file mode 100644 index 25fa24faa..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-blanket-order.png and /dev/null 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 index 542698394..91308ba9b 100644 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-new-quotation.png 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-product-form.png b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-product-form.png new file mode 100644 index 000000000..f55f5a735 Binary files /dev/null and b/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-product-form.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 index 27153ac58..a965ff453 100644 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-rfq-smart-button.png 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 deleted file mode 100644 index 8f1bca12e..000000000 Binary files a/content/applications/inventory_and_mrp/purchase/manage_deals/blanket_orders/blanket-orders-settings-page.png and /dev/null differ