The creation of Purchase Orders from Sales Orders should be more usefull and flexible!

Bug #727635 reported by m.karrer
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Opinion
Undecided
Unassigned

Bug Description

Now in 6.0 stable Sales Orders create automatic Purchase Order on confirmation. - For all companies who need an up to date price before they can confirm a Sales Order this workflow is completly useless. In fact an up to date price is often why a custommer asks us for a Sales Order (Quotation) - Think of all service companies or comapnies selling goods wich do not have a fixed price. All of this will not really work with this workflow.

In fact it is even cumbersome because most of the times you have to cancel or delete this automatically created Purchase Order(s) because you already have a confirmed Purchase Order that you made before the confirmation of the Sales Order to get the up to date price(s).

The Solution:
-
Do not automatically create Purchase Orders at the "Sales Order confirmation" at all but instead do it like Purchase Requisitions:
Add a button to the Sales Order wich is able to create Purchase Orders at any time and any number of them. So on any press on this button a new Purchase Order is created with the right products and the right analytic account. - This is flexible and saves the user a lot of double typing the same Product lines over and over again.

The created purchase Orders do not have to belong to the Sales Orders in any way except that the number of the Sales Order is in the Origin Field of the created Purchase Order(s).

Do we loose something with this approach? :
-
I really dont think so. Because even now there is no relation ship between the Purchase Order and the Sales Order after it was created. Wich i think is good because most of the times you need at least two quotations from your suppliers before you can send the Sales Order to your custommer with an up to date price.

Example 1 with the workflow how it is now:
-
1.) Custommer calls and wants Business Cards
2.) We add a new Sales Order and add the Product Line "Business Cards" and change the Description to "Business Cards with extra glossy paint"
3.) We add a new Purchase Order (this is PO/001) and add the Product Line "Business Cards" and change the Description to "Business Cards with extra glossy paint" (Double Work)
4.) We duplicate this Purchase Order because we need a Quotation from at least two suppliers (this is PO/002)
5.) We send the Purchase Orders and get up to date prices
6.) We change our price in our Sales Order to the up to date price from our best supplier quotation (for example let us say PO/001 had the best Price) and send it to our custommer
7.) The custommer accepts the Sales Order and we confirm it -> This creates autimatically another Purchase Order. (PO/003)
8.) We cancel the automatically created Purchase Order
9.) We confirm the best Purchase Order PO/001 and cancel PO/002

Example 2 - with the new workflow:
-
1.) Custommer calls and wants Business Cards
2.) We add a new Sales Order and add the Product Line "Business Cards" and change the Description to "Business Cards with extra glossy paint"
3.) We press our new Button "Create Purchase Order" in the Sales Order form. -> This creates PO/001 with the right Products, and Product Descriptions (and if stated in the Sales Order the right Analytic Account.)
4.) We press the Button again this creates PO/002
5.) We send the Purchase Orders and get up to date prices
6.) We change our price in our Sales Order to the up to date price from our best supplier quotation (for example let us say PO/001 had the best Price) and send it to our custommer
7.) The custommer accepts the Sales Order and we confirm it
8.) We confirm the best Purchase Order PO/001 and cancel PO/002

TADA! :) No double typing - No extra PO/003 - just angles singing and happy employees ;)

Revision history for this message
m.karrer (m-karrer) wrote :
Revision history for this message
Graeme Gellatly (gdgellatly) wrote :

Do we lose something with this approach? You make large assumptions, I am assuming based on your own individual requirement. I think the solutions you want are in there, just differently to what you propose. Also I think your proposal is only good for small business.

Yes we do, massively. Firstly to say PO is not linked to SO is erroneous. PO is linked to procurement order, which in turn is linked to both picking and SO. Take your very scenario of business cards. By using the automatically generated PO when those specific business cards arrive (assuming they are MTO) the stock will be allocated to that SO rather than another SO awaiting a quantity of business cards. Not a big deal if you sell very few business cards, but in any volume business, stock allocation will become problematic.

Second, in a normal business Business Cards with extra glossy paint is another seperate product to standard business cards. If you are using standard costs, you are creating a price difference in your COGS or COS, if you are using weighted average then you are inflating your margin on the glossy, and decreasing your margin on the standard.

Third, the vast majority of businesses do not get 2 or 3 quotes for most of everything they purchase. They order the same product from the same supplier at the same price under preferred supplier agreements for the bulk of their orders. Especially in manufacturing & distribution. On occasion when a special price has been agreed for a particular order, it is a bit of a hassle, and requires processes outside OpenERP to ensure the order is placed at the right price. However the solution is not the proposed workflow.

Four, your proposal assumes the person creating the SO is authorised to Purchase, and conversely the person authorised to purchase is able to sell. Of course this is true in small businesses, but is rarely the case in larger business.

You could solve your individual problem just by making your business cards Make to Stock with an Orderpoint at 0.00 (or for that matter product type consumable). That way the scheduler would see the already incoming PO and not create a new one. You could do this at the product level or the order line level. You could then use RFQ or whatever purchase process you wanted.

Revision history for this message
m.karrer (m-karrer) wrote :

Thank you for your quick answer and it could be that i missed some points in OpenERP but would you be so kind and help me with this questions left:

1.) How are Purchase Orders linked to Sales Orders? :
I did test it i could cancel a Purchase Order that was created from a Sales Order and nothing happens - The Sales Order does not go into Error state - No new Purchase Order gets created so they dont really depend on another or do they and i just can't see how? Service Oders are only linked to outgoing Pickings (Delivery to the Custommer) but not to any incomming supplies as far as we testet it (OpenERP 6.0)

2.) You are right i would have some fuziness in my products but (as you correctly stated) for small companies this is normall - It would be real pain to add every new variation as a new product - We do not have to identicall products most of the time so we would get only a large large base of useless Products wich needs to be "deactivated" after the Sales Order is finished wich creates much more clutter in my Systems than the little fuziness in my product sales - this is not usefull for large companies i totally agree but they would not have to do it that way - they still can create a product for everything and stick with it - like i said i see no other relationship between the SO and the created PO other than the one that i can only deliver the goods to my custommer if i have them? (It is definitly true that this situation affects small businsesses. But wasnt OpenERP supposed to be for small Businisses also?) -
Nothing changes in the workflow for big companies except that no PO is created automatically at SO confirmation but their procurement would still see that they need the goods because an outgoing delivery order (DO) could still be created automatically at SO confirmation (and the custommer invoice in draft state also). Su my procurment team would see what is needed or even the automatic procurment could do its thing because everything is linke just on the outgoing DO and not the PO. PO is created in draft state any way and has nothing to do with the ammounts of good i have in my inventory - So no the person who is responsible for the SO does not need the right to do the purchases also! The only "right" they could have or need is the right to "generate" a PO in draft state - wich is just comfort and time saving

3.) You said "The vast majority of businesses do not get 2 or 3 quotes for most of everything?"
I strongly disagree - In Our company group where i try to establish OpenERP are about 5 different companies in very different markets and (mostly 50 to 130 employees) and they all need to get "fresh" quotations for most of the things.
My father is head of purchase at a large factory of Siemens and key user of SAP and even he has to get for most of the things new quotations - so this is maybe a "point of view" :)

So would you please tell me why and how exactly PO is really LINKED to SO? I think then i would get your point!

Revision history for this message
Graeme Gellatly (gdgellatly) wrote : Re: [Bug 727635] Re: The creation of Purchase Orders from Sales Orders should be more usefull and flexible!
Download full text (8.8 KiB)

Hi,

I told you already -> A Sales Order creates a Procurement Order and a
Picking (both of which are stored in the SO or SO Line), the Procurement
Order then creates a PO if certain conditions are met (although exactly why
there is Procurement Orders anyway is a discussion point) and writes the
purchase ID to the procurement order. When you receive the products, the
scheduler then assigns those MTO products to the associated SO. That is how
they are linked. SO -> Proc -> PO, you can chain back if you want.

I agree that it is poor design that once a PO is cancelled it never throws
an exception for the SO ( or more importantly vice versa, a cancelled SO
raising an exception on the PO) and this is important missing functionality,
but is not a bug IMO. Once again if you wanted the system to behave this
way then for now you'd need to create a custom module but I imagine it would
be less than trivial, but the links are all in place to get from one object
to the other, a number of functions already exist to do the grunt work, so
mainly it is following the logic and linking it up. I don't know, you might
even be able to do it in workflow editing alone.

Maybe it is point of view, but I still think most businesses do not get 2 or
3 quotes for most of what they purchase by $ volume, especially in
manufacturing and distribution. They mostly get none (consistent high
volume, regular supplier), or one (unexpected high volume, regular supplier)
with preferred supplier agreement in place. Certainty of supply and costs,
as well as time constraints generally trump any small savings that might be
made when dealing in large numbers.

On Wed, Mar 2, 2011 at 10:28 PM, m.karrer <email address hidden> wrote:

> Thank you for your quick answer and it could be that i missed some
> points in OpenERP but would you be so kind and help me with this
> questions left:
> 1.) How are Purchase Orders linked to Sales Orders? :
> I did test it i could cancel a Purchase Order that was created from a Sales
> Order and nothing happens - The Sales Order does not go into Error state -
> No new Purchase Order gets created so they dont really depend on another or
> do they and i just can't see how? Service Oders are only linked to outgoing
> Pickings (Delivery to the Custommer) but not to any incomming supplies as
> far as we testet it (OpenERP 6.0)
>
> 2.) You are right i would have some fuziness in my products but (as you
> correctly stated) for small companies this is normall - It would be real
> pain to add every new variation as a new product - We do not have to
> identicall products most of the time so we would get only a large large base
> of useless Products wich needs to be "deactivated" after the Sales Order is
> finished wich creates much more clutter in my Systems than the little
> fuziness in my product sales - this is not usefull for large companies i
> totally agree but they would not have to do it that way - they still can
> create a product for everything and stick with it - like i said i see no
> other relationship between the SO and the created PO other than the one that
> i can only deliver the goods to my custommer if i have them? (It is
> definitly ...

Read more...

Revision history for this message
Vinay Rana (OpenERP) (vra-openerp) wrote :

Hello,

I am setting this issue as a opinion state for more discussion.

Thanks.

Changed in openobject-addons:
status: New → Opinion
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.