The `sol_product_many2one` field is a sub many2one field that should open the proper configuration system, such as the product configurator. Before this commit, when inputting some data, then clicking on another notebook tab, we would often see a crash, because the field has been destroyed (since it is no longer in the current tab) and it tries to open the configurator, which requires rpcs. It is usually a problem when a destroyed component tries to perform some work. Note that it happens at creation and update. Also, the field overrides some many2one methods that display confirmation dialog. To fix this, this commit simplifies the field by only calling the configuration methods when its value has changed. This is a different strategy that does not interfere with the many2one basic features. Also, it does not crash since it will only call the configuration methods on patched, so it is guaranteed to be alive. It is certainly not a complete solution, since we should probably move the code somewhere else not in a field widget, but this would require a redesign of the code, so it is not appropriate in a bug fix anyway. Note that the tour had to be adapted, since now the methods _onProductUpdate/_onProductTemplateUpdate are now called in an effect (so after a render), which is slightly later than before. But the tour would click on confirm even before the product update code was executed, which means that the product was not properly configurated. This is clearly a concurrency problem: the product configuration code should be properly coordinated with the basic model, but doing so is a significative change. Also, in practice, it is not worse than before this commit. opw 3178297 closes odoo/odoo#127048 X-original-commit: de7a6f5f3d83356eb02f8fc25b4a0b8aabb946b3 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Géry Debongnie <ged@odoo.com>
Sales Management Made Easy
From quotes to invoices, in just a few clicks with the Odoo Sales Management.
Drive your sales operations from quotes to invoices with all the information you need, easily accessible. Keep track of long term contracts, automate invoicing and notify sales when they have things to do.
Create Professional Quotations
Create quotations in a matter of seconds. Send quotes by email or get a professional PDF. Track quotations, and convert them to sales order in one click.
Spend the extra time focusing on selling, not recording data.
Fully Integrated
The information your need, where you need it.
Don't lose time looking for customers, products or contracts related information; they are all conveniently accessible when creating quotations.
Get access to stock availabilities in the different warehouses, to customer's specific prices, to the history of preceeding offers for this prospect, etc.
Your Address Book
So many features, so easy to use.
Assign tags to your prospects, manage relationships between contacts and store all customer's preferences including pricing, billing conditions, addresses, payment terms, etc.
Navigate through all the documents related to a customer with the powerfull breadcrumb: quotations, invoices, emails, meetings.
Fully Integrated Invoicing
Whether you invoice based on time and materials, on delivery orders or fixed price; Odoo supports all possible methods.
Get recurring invoices produced automatically, create advances in just a few clicks, re-invoices expenses easily, etc.
Keep track of your contracts
Get rid of wasted paper and record all your contracts in the application. Invoices are generated automatically based on your contract conditions. Your account managers get alerts before contracts have to be renewed.
Communicate Efficiently With Customers
The chatter feature enables you to communicate faster and more efficiently with your customer. This takes place directly on a quotation or sale order from within Odoo or via email.
Get all the negotiations and discussions attached to the right document and relevent managers notified on specific events.
Fully Extensible
By default, sales order are very simple, limited to a small number of features. Don't be confused by features you don't need.
But you can activate options to fit your specific need: multi-warehouses, multi unit of measures, manage customer specific prices with pricelists, control margins on quotations, use different addresses for shipping and billing, etc.
Built-in Customer Relationship Management
Activate the CRM application to manage your funnel of opportunities, attract leads, log calls, schedule meetings and launch marketing campaigns.
Opportunities can be converted into quotations in just one click.
Drive Engagement with Gamification
Align Sales Teams on clear targets. Define clear commission plans. Get real time statistics on the performance of individual sales or channels. Motivate your teams with challenges, rewards and leaderboards.
Have Clear Pricing Strategies
Use pricelists to record special conditions for a specific customer or to define prices for a segment of customers. Define promotions and have them applied automatically for all your Sales Teams.