Community mailing list archives

community@mail.odoo.com

Re: Sale and purchase workflow

by
Akretion, Raphael Valyi
- 09/17/2015 12:58:38
Dear Odoo experts,

here is my take on the issue: I mostly share the concern about the workflow removal and also agree with Nhomar about this: the issue with workflow was mostly the workflow engine itself but not the BPM concept itself which was a strong selling point of Odoo where it actually works for real. It's a bit like if you would be saying let's drop all the business reports because the legacy RML engine used to be poorly coded... IMHO the proper solution is more like for reports: migrate to a standard well maintained workflow engine and debug the existing flows.

Now, as Odoo SA try to expand on the low end SaaS market with very small companies, probably to keep receiving VC's investments (which nonetheless becomes a real if Odoo becomes way more speculation driven than rooted in the real world), I understand that eventually one could envision some basic usage with no workflow for sale and purchase.

But then I think the proper solution, specially for your existing customer base that is not toying with Odoo would be:
  1. so okay basic sale and purchase modules have no workflow anymore
  2. but still you ensure all existing hooks are present so that the status of these documents can still be BPM driven
  3. you provide advanced official community modules that do provide the same workflows as before by extending the base modules.
I think this not so hard and would avoid your existing customer base to panic about whether or not the core ERP product edited by Odoo SA will still fit their complex need in the future or if instead of Odoo is just running after the perpetually moving target of the last SaaS illusion of the market to keep some investment flow up.

Finally, you wanted to "disrupt" the CMS and the e-commerce market just like a few years ago your RML reportng engine or your BPM workflow engines where marketed as so disruptive. But how do you want serious people to trust you and follow you when years pass and despite massive investments you fail to anticipate major redesign and present such volatile product roadmaps? Just telling...


Regards and really hope to see this proposal of optional workflow powered modules considered to bring some trust back.

On Thu, Sep 17, 2015 at 10:36 AM, Fabien Pinckaers <fp@odoo.com> wrote:

> Sorry which of those features are in Community V9?

All of them. Sale and purchase are community modules.

Fabieb

>
> Many thanks in advance,
> Nuria
>
>
> On 16/09/15 06:47, Fabien Pinckaers wrote:
> <blockquote cite="mid:CANRftau828E6ynruB7FSmKBX2WTWopJZQ2oegFzEFTYiTzOjFA@mail.gmail.com" type="cite">
>

> Hello,
>
> A lot of people are asking more information about the changes in sale and purchase apps in Odoo 9, mostly the removal of the workflow.
>
> In short, we did a huge cleanup of the sale.* and purchase.* modules while porting them to the new API. The result in 5000 lines of code removed, for more features supported, and no feature removed.
>
> Why?
>
> The v8 sale module had a lot of issues:
>
> - not possible to modify a sale order (open orders)
> - no way to handle inter-company invoicing based on delivery/receptions (only one of the two invoices was generated)
> - not possible to invoice kits based on deliveries
> - too many different ways to incoice customers: based on sale order, based on sale order lines, based on support contracts, based on regular contracts, based on expenses, based on delivery orders, final invoice on timesheets, ...
> - those different invoice methods could not be mixed in a single sale order (sell physical products with a support contract on timesheets)
> - some of these invoicing methods were very complex to configure: to invoice on timesheet, you had to: 1/ create a SO, 2/ create a contract, 3/ set a product on the employee form, 4/ set the analytic_user_function to know to role of the user, 5/ invoice from the contract...
> - contracts (based on analytic accounts) are a pain. They are complex to understand (support contracts vs regular contracts) and to manage on a regular basis. (e.g. How do you make a quotation for a new support contract?)
>
> *How?*
>
> Complete rewrite the sale and purchase modules. We cleaned all the legacy code while porting everything to the new API. The net result is 5000 lines of python code removed. Less lines of code for more features is a good sign of something that is technically clean.
>
> *What are the main changes?*
>
> In addition to the quantity ordered field on sale order lines, you have three new fields: Qty Delivered, Qty Invoiced, Qty to Invoice. Qty delivered can be set manually (milestones of a project you invoice manually) or computed based on timesheets or delivery orders. The two others fields are always computed.
>
> The product has a new field "Invoice Method": based on quantities ordered, based on quantities delivered (could be timesheets), based on time and material (reinvoice costs or expenses).
>
> So, whatever the products/services, you always generate invoices based on sales order. All other methods disappeared, you can do everything from the sale order.
>
> The meaning of "Done" in sales order in different. In v8, done means "delivered and invoiced". In v9, done means "you can not change the order anymore". Delivered and Invoiced are written on SO lines, not in the status.
>
> We removed the workflow because it was a mess. For example, in version 8, the "state" field was used for the SO state (quotation --> sale order) as well as the invoice state and delivery state (done=delivered and invoiced). We splitted this in several computed fields:
>
>   - State: Quotation --> Sent  --> Sale Order
>   - Invoice State: Nothing to Invoice, To Invoice, Fully Invoiced, Upselling Opportunity
>   - Delivered: quantities are set on SO lines
>
> More over, as the user can edit the SO at any step, workflows were not useful anymore. It's also much faster now.
>
> *What are the improvements?*
>
> Compared to v8, all complex use cases work perfectly in v9:
>
> - single point of invoicing: sale order --> super easy
> - you can mix any kind of services and invoice everything at once from the sale order: pre-paid support contract, project invoiced on milestones, physical products, extra travel and expenses, etc.
> - the system manages upselling opportunities (when delivered quantities > ordered quantities). Example: you sell a support contract of 25h, when you arrive at 30h on timesheets, the sale order switch to "Upselling Opportunity"
> - inter-company rules with invoice for both the supplier and the customer, based on delivered quantities
> - invoice kits, based on delivered quantities
> - handle correctly unit of measures: sell a support contract by "Pack 40h", work by hours in your timesheets
> - modify a confirmed SO: it will handle delivery and invoicing correctly
> change prices on a confirmed SO: some lines are readonly or not based on what have already been invoiced
> - more efficient management of deposits
> - 3 ways to track services: manually (set milestones as done), timesheet on contract (the v8 method), timesheets on tasks
> - correctly handle the right product when a user do timesheet (defined by the SO line): you can work as a senior developer or on a support contract --> no need for analytic_user_function anymore
>
> What about purchases?
>
> We also reviewed purchase orders with a similar concept (Qty delivered, Qty invoiced) In v8, you had three methods to generate draft invoices: based on PO, based on PO lines, based on receptions. It's much easier in version 9, there are 0 methods :)
>
> We don't pre-generate draft invoices anymore, but you can select POs when you create a vendor bill: it will fill all invoice lines automatically based on what can be invoiced (received products or services).
>
> No more problem of merge, partial invoices, control of quantities if received in several steps, ...
>
>
>
> It's very difficult to explain such a huge change in just a small email.
>
> So I hope this small email helps,
>
> You can get more information in the documentation, some docs have been updated to the new process (check the sale tab): https://docs.google.com/spreadsheets/d/12Xg70FiWQH0LJXsRWVNDO1TwQbhPvV4UFm2UdAAHPrQ/edit#gid=576547174
>
> Thanks,
>
> -- 
> Fabien
>
> _______________________________________________
>
> Mailing-List: https://www.odoo.com/groups/community-59
> Post to: mailto:community@mail.odoo.com
> Unsubscribe: https://www.odoo.com/groups?unsubscribe
>
>
>
> --
> N. Arranz-Velazquez
> OpusVL Odoo Specialist Team (OOST)
> Product Owner
>
> OpusVL
> Drury House
> Drury Lane
> Rugby
> CV21 3DE
>
> T: 01788 298 450
> W: www.opusvl.com
>
> _______________________________________________
> Mailing-List: https://www.odoo.com/groups/community-59
> Post to: mailto:community@mail.odoo.com
> Unsubscribe: https://www.odoo.com/groups?unsubscribe

_______________________________________________
Mailing-List: https://www.odoo.com/groups/community-59
Post to: mailto:community@mail.odoo.com
Unsubscribe: https://www.odoo.com/groups?unsubscribe




--
Raphaël Valyi
Founder and consultant
+55 21 3942-2434