Skip to Content
Menu
This question has been flagged
1 Atsakyti
1268 Rodiniai

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

Portretas
Atmesti
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

Portretas
Atmesti

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>

Autorius

Thank you very much Jainesh, I appriciate.

Related Posts Replies Rodiniai Veikla
1
geg. 25
1073
0
kov. 25
1240
0
lapkr. 24
748
0
spal. 24
1279
1
rugs. 24
1401