Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
1448 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit

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 Odpovědi Zobrazení Aktivita
1
kvě 25
1242
0
bře 25
1488
0
lis 24
917
0
říj 24
1469
1
zář 24
1580