Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
1282 Visualizzazioni

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
Abbandona
Risposta migliore

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
Abbandona

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>

Autore

Thank you very much Jainesh, I appriciate.

Post correlati Risposte Visualizzazioni Attività
1
mag 25
1087
0
mar 25
1258
0
nov 24
754
0
ott 24
1296
1
set 24
1409