Skip to Content
Menú
This question has been flagged
1 Respondre
1243 Vistes

Hello,


I run a parts sales business among others.


I would like to add the ''New Quote'' function in the Helpdesk module in order to avoid converting to a lead, converting to an opportunity which then generates an opportunity in CRM.


We have a large sales team that uses CRM in an excellent way and I do not want to go through CRM for the sale of parts.


Has anyone already done this or do you have a better way to do it?


Thanks for your advice


Danny

Avatar
Descartar
Best Answer

Hello douellette@procepack.com,


To Connect Quotation to help desk ticket. Please follow below points.


1) Create a seperate module and create 2 new .py file.

   

   i) Add below snippet code in helpdek_ticket.py file.

//Code 1 in comment//


   ii) Add below snippet code in sale_order.py file.

//Code 2 in comment//


2) create a new xml file and add below code of snippet.

//Code 3 in comment//


3) Do not forget to add the dependancy for sales and helpdesk in __manifest__.py file.


4) One user will click on "New Quotation" button, Quotation will be created and user will

   be redirected to the form view of newly create quotation.


5) Check below screenshot for the connection between helpdesk ticket and sale order



Hope this helps.

   

If you need any help in customization feel free to contact us.


Thanks & Regards,

Email:  odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

Avatar
Descartar

Code 1:
# -*- coding: utf-8 -*-

from odoo import models, fields
from odoo.exceptions import ValidationError

class HelpdeskTicket(models.Model):
_inherit = 'helpdesk.ticket'

sale_id = fields.Many2one('sale.order', 'Sale Order', copy=False)

def action_create_quote(self):
"""Create a new quote from the helpdesk ticket."""
# Create a new sale order
if not self.partner_id :
raise ValidationError('Customer is required to create a new Quotation')

sale_order = self.env['sale.order'].create({
'partner_id': self.partner_id.id,
'date_order': fields.Datetime.now(),
'state': 'draft',
'ticket_id': self.id,
})
self.sale_id = sale_order.id
return {
'name': 'Quote',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'sale.order',
'res_id': sale_order.id,
'type': 'ir.actions.act_window',
'target': 'current',
}

Code 2:
# -*- coding: utf-8 -*-

from odoo import models, fields

class SaleOrder(models.Model):
_inherit = 'sale.order'

ticket_id = fields.Many2one('helpdesk.ticket', "Helpdesk Ticket", copy=False)

Code 3 :
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_helpdesk_ticket_form_inherit" model="ir.ui.view">
<field name="name">helpdesk.ticket.form.inherit.quote</field>
<field name="model">helpdesk.ticket</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_view_form"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button name="action_create_quote" type="object"
class="btn-primary" string="New Quotation"
invisible="sale_id != False"/>
</xpath>
<xpath expr="//field[@name='email_cc']" position="after">
<field name="sale_id" readonly="1"/>
</xpath>
</field>
</record>

<record id="view_sale_order_form_inherit" model="ir.ui.view">
<field name="name">sale.order.form.inherit.quote</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_term_id']" position="after">
<field name="ticket_id" readonly="1"/>
</xpath>
</field>
</record>
</data>
</odoo>

Autor

Thank you very much Jainesh, I appriciate.

Related Posts Respostes Vistes Activitat
1
de maig 25
1056
0
de març 25
1201
0
de nov. 24
736
0
d’oct. 24
1235
1
de set. 24
1375