13 changed files with 500 additions and 0 deletions
@ -0,0 +1,14 @@ |
|||||
|
CRM Won/Lost Leads XLS Report |
||||
|
============================= |
||||
|
|
||||
|
This module will generate crm leads won/lost xls report. |
||||
|
|
||||
|
Sales->Report -> Won/Lost Reports |
||||
|
|
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
Cybrosys Techno Solutions |
||||
|
Author |
||||
|
------ |
||||
|
* Cybrosys <www.cybrosys.com> |
@ -0,0 +1,25 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import models |
||||
|
import report |
@ -0,0 +1,44 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
{ |
||||
|
'name': "CRM Won/Lost XLS Report", |
||||
|
'version': '9.0.1.0.0', |
||||
|
"category": "Sales", |
||||
|
'summary': """Generate CRM XLS Report of Won/Lost Leads""", |
||||
|
'description': """Generate CRM XLS Report of Won/Lost leads""", |
||||
|
'author': "Cybrosys Techno Solutions", |
||||
|
'company': "Cybrosys Techno Solutions", |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['base', 'crm', 'report_xlsx'], |
||||
|
'data': [ |
||||
|
'views/new_menu_view.xml', |
||||
|
'security/ir.model.access.csv', |
||||
|
|
||||
|
], |
||||
|
'images': ['static/description/banner.jpg'], |
||||
|
'license': 'LGPL-3', |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import crm_won_lost_report |
@ -0,0 +1,46 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from openerp import models, fields |
||||
|
|
||||
|
|
||||
|
class ResUsers(models.Model): |
||||
|
_inherit = 'res.users' |
||||
|
|
||||
|
user_ref_ids = fields.Many2many('res.users', 'ref2', 'ref1', 'sales_person', string="User", invisible=1) |
||||
|
|
||||
|
|
||||
|
class CrmReport(models.TransientModel): |
||||
|
_name = 'crm.won.lost.report' |
||||
|
|
||||
|
sales_person = fields.Many2many('res.users', 'ref1', 'ref2', 'user_ref_ids', string="Sales Persons") |
||||
|
start_date = fields.Date('Start Date') |
||||
|
end_date = fields.Date('End Date', default=fields.Date.today) |
||||
|
|
||||
|
def print_xls_report(self, cr, uid, ids, context=None): |
||||
|
data = self.read(cr, uid, ids)[0] |
||||
|
return {'type': 'ir.actions.report.xml', |
||||
|
'report_name': 'crm_won_lost_report.report_crm_won_lost_report.xlsx', |
||||
|
'datas': data |
||||
|
} |
||||
|
|
@ -0,0 +1,26 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import crm_won_lost_report |
||||
|
|
||||
|
|
@ -0,0 +1,193 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2016-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Niyas Raphy(<https://www.cybrosys.com>) |
||||
|
# you can modify it under the terms of the GNU LESSER |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
||||
|
# |
||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies |
||||
|
# of the Software or modified copies of the Software. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
||||
|
# If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from time import gmtime, strftime |
||||
|
from openerp.addons.report_xlsx.report.report_xlsx import ReportXlsx |
||||
|
|
||||
|
|
||||
|
class CrmReportWonLost(ReportXlsx): |
||||
|
|
||||
|
def generate_xlsx_report(self, workbook, data, lines): |
||||
|
current_date = strftime("%Y-%m-%d", gmtime()) |
||||
|
logged_users = self.env['res.users'].search([('id', '=', data['create_uid'][0])]) |
||||
|
sheet = workbook.add_worksheet() |
||||
|
format1 = workbook.add_format({'font_size': 16, 'align': 'vcenter', 'bg_color': '#D3D3D3', 'bold': True}) |
||||
|
format3 = workbook.add_format({'font_size': 10, 'bold': True}) |
||||
|
format4 = workbook.add_format({'font_size': 10}) |
||||
|
format5 = workbook.add_format({'font_size': 10, 'bg_color': '#FFFFFF'}) |
||||
|
format7 = workbook.add_format({'font_size': 12, 'bg_color': '#eaeae1'}) |
||||
|
format8 = workbook.add_format({'font_size': 10, 'bg_color': '#D3D3D3'}) |
||||
|
format9 = workbook.add_format({'font_size': 10, 'align': 'vcenter', 'bg_color': '#ff1a1a', 'bold': True}) |
||||
|
format10 = workbook.add_format({'font_size': 10, 'bg_color': '#00ff00'}) |
||||
|
format11 = workbook.add_format({'font_size': 10, 'bg_color': '#ff0000'}) |
||||
|
justify = workbook.add_format({'right': True, 'left': True, 'font_size': 12}) |
||||
|
format3.set_align('center') |
||||
|
justify.set_align('justify') |
||||
|
format1.set_align('center') |
||||
|
sheet.merge_range('A1:B1', logged_users.company_id.name, format5) |
||||
|
sheet.merge_range('A2:M2', logged_users.company_id.street, format5) |
||||
|
sheet.write('A3', logged_users.company_id.city, format5) |
||||
|
sheet.merge_range('B3:N3', logged_users.company_id.zip, format5) |
||||
|
sheet.merge_range('A4:B4', logged_users.company_id.state_id.name, format5) |
||||
|
sheet.merge_range('A5:B5', logged_users.company_id.country_id.name, format5) |
||||
|
sheet.merge_range('M1:N1', logged_users.company_id.rml_header1, format5) |
||||
|
sheet.write('M4', "From Date:", format5) |
||||
|
if data['start_date']: |
||||
|
sheet.write('N4', data['start_date'], format5) |
||||
|
else: |
||||
|
sheet.write('N4', '', format5) |
||||
|
sheet.write('M5', 'To Date:', format5) |
||||
|
if data['end_date']: |
||||
|
sheet.write('N5', data['end_date'], format5) |
||||
|
else: |
||||
|
sheet.write('N5', current_date, format5) |
||||
|
sheet.merge_range(0, 2, 4, 11, "", format5) |
||||
|
sheet.merge_range(1, 2, 2, 13, "", format5) |
||||
|
sheet.merge_range(1, 6, 4, 8, "", format5) |
||||
|
irow = 5 |
||||
|
icol = 0 |
||||
|
sheet.merge_range(irow, icol, irow+2, icol + 13, 'CRM WON/LOST REPORT', format1) |
||||
|
sheet.merge_range('A9:B9', "Sales Person", format7) |
||||
|
sheet.write('C9', "Status", format7) |
||||
|
sheet.merge_range('D9:G9', "Lead Name", format7) |
||||
|
sheet.write('H9', "Exp. Rev", format7) |
||||
|
sheet.merge_range('I9:K9', "Reason", format7) |
||||
|
sheet.merge_range('L9:N9', "Internal Note", format7) |
||||
|
sales_person = [] |
||||
|
if data['sales_person']: |
||||
|
for user_sales in data['sales_person']: |
||||
|
sales_person.append(user_sales) |
||||
|
else: |
||||
|
res_users = self.env['res.users'].search([]) |
||||
|
for users in res_users: |
||||
|
sales_person.append(users.id) |
||||
|
irow = 8 |
||||
|
icol = 0 |
||||
|
for person in sales_person: |
||||
|
lost_list = [] |
||||
|
sale_users = self.env['res.users'].search([('id', '=', person)]) |
||||
|
lost_leads = self.env['crm.lead'].search([('active', '=', False)]) |
||||
|
if data['start_date'] and data['end_date']: |
||||
|
crm_stages = self.env['crm.lead'].search([('user_id', '=', person), |
||||
|
('date_closed', '>=', data['start_date']), |
||||
|
('date_closed', '<=', data['end_date'])]) |
||||
|
|
||||
|
for lost in lost_leads: |
||||
|
if lost.user_id.id == person: |
||||
|
if lost.create_date >= data['start_date'] and lost.create_date < data['end_date']: |
||||
|
lost_list.append(lost.id) |
||||
|
elif data['start_date'] and not data['end_date']: |
||||
|
crm_stages = self.env['crm.lead'].search([('user_id', '=', person), |
||||
|
('date_closed', '>=', data['start_date'])]) |
||||
|
for lost in lost_leads: |
||||
|
if lost.user_id.id == person: |
||||
|
if lost.create_date >= data['start_date']: |
||||
|
lost_list.append(lost.id) |
||||
|
elif not data['start_date'] and data['end_date']: |
||||
|
crm_stages = self.env['crm.lead'].search([('user_id', '=', person), |
||||
|
('date_closed', '<=', data['end_date'])]) |
||||
|
for lost in lost_leads: |
||||
|
if lost.user_id.id == person: |
||||
|
if lost.create_date < data['end_date']: |
||||
|
lost_list.append(lost.id) |
||||
|
else: |
||||
|
crm_stages = self.env['crm.lead'].search([('user_id', '=', person)]) |
||||
|
for lost in lost_leads: |
||||
|
if lost.user_id.id == person: |
||||
|
lost_list.append(lost.id) |
||||
|
if crm_stages or lost_list: |
||||
|
irow += 1 |
||||
|
sheet.merge_range(irow, icol, irow, icol + 1, sale_users.partner_id.name, format8) |
||||
|
sheet.write(irow, icol + 2, '', format8) |
||||
|
sheet.merge_range(irow, icol+3, irow, icol + 6, '', format8) |
||||
|
sheet.write(irow, icol + 7, '', format8) |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol+10, '', format8) |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, '', format8) |
||||
|
won_list = [] |
||||
|
for stages in crm_stages: |
||||
|
if stages.active and stages.date_closed: |
||||
|
won_list.append(stages.id) |
||||
|
if won_list: |
||||
|
irow += 1 |
||||
|
icol = 0 |
||||
|
sheet.merge_range(irow, icol, irow, icol + 1, '', format3) |
||||
|
sheet.write(irow, icol + 2, 'Won', format10) |
||||
|
sheet.merge_range(irow, icol + 3, irow, icol + 6, '', format3) |
||||
|
sheet.write(irow, icol + 7, '', format3) |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol + 10, '', format3) |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, '', format3) |
||||
|
for won_leads in won_list: |
||||
|
lead_won = self.env['crm.lead'].search([('id', '=', won_leads)]) |
||||
|
irow += 1 |
||||
|
icol = 0 |
||||
|
sheet.merge_range(irow, icol, irow, icol + 1, '', format3) |
||||
|
sheet.write(irow, icol + 2, '', format3) |
||||
|
sheet.merge_range(irow, icol + 3, irow, icol + 6, lead_won.name, format4) |
||||
|
if lead_won.planned_revenue: |
||||
|
sheet.write(irow, icol + 7, lead_won.planned_revenue, format4) |
||||
|
else: |
||||
|
sheet.write(irow, icol + 7, '', format4) |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol + 10, '', format4) |
||||
|
if lead_won.description: |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, lead_won.description, format4) |
||||
|
else: |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, '', format4) |
||||
|
|
||||
|
if lost_list: |
||||
|
irow += 1 |
||||
|
icol = 0 |
||||
|
sheet.merge_range(irow, icol, irow, icol + 1, '', format3) |
||||
|
sheet.write(irow, icol + 2, 'Lost', format11) |
||||
|
sheet.merge_range(irow, icol + 3, irow, icol + 6, '', format3) |
||||
|
sheet.write(irow, icol + 7, '', format3) |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol + 10, '', format3) |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, '', format3) |
||||
|
all_lead_lost = self.env['crm.lead'].search([('active', '=', False)]) |
||||
|
for lost_leads in all_lead_lost: |
||||
|
if lost_leads.lost_reason: |
||||
|
get_lost_reason = self.env['crm.lost.reason'].search([('id', '=', lost_leads.lost_reason.id)]) |
||||
|
reason_lost = get_lost_reason.name |
||||
|
if lost_leads.id in lost_list: |
||||
|
irow += 1 |
||||
|
icol = 0 |
||||
|
sheet.merge_range(irow, icol, irow, icol + 1, '', format3) |
||||
|
sheet.write(irow, icol + 2, '', format3) |
||||
|
sheet.merge_range(irow, icol + 3, irow, icol + 6, lost_leads.name, format4) |
||||
|
if lost_leads.planned_revenue: |
||||
|
sheet.write(irow, icol + 7, lost_leads.planned_revenue, format4) |
||||
|
else: |
||||
|
sheet.write(irow, icol + 7, '', format4) |
||||
|
if lost_leads.lost_reason: |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol + 10, reason_lost, format4) |
||||
|
else: |
||||
|
sheet.merge_range(irow, icol + 8, irow, icol + 10, '', format4) |
||||
|
if lost_leads.description: |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, lost_leads.description, format4) |
||||
|
else: |
||||
|
sheet.merge_range(irow, icol + 11, irow, icol + 13, '', format4) |
||||
|
if not won_list and not lost_list: |
||||
|
sheet.merge_range(irow + 1, icol, irow + 2, icol + 13, 'No Won/Lost Leads', format9) |
||||
|
irow += 2 |
||||
|
sheet.merge_range(irow + 1, icol, irow + 2, icol + 13, '', format1) |
||||
|
|
||||
|
CrmReportWonLost('report.crm_won_lost_report.report_crm_won_lost_report.xlsx', 'crm.won.lost.report') |
|
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,79 @@ |
|||||
|
<section class="oe_container"> |
||||
|
<div class="oe_spaced"> |
||||
|
<h2 class="oe_slogan">CRM WON/LOST XLS REPORT</h2> |
||||
|
<h3 class="oe_slogan">This Module generate won / lost XLS report for the CRM leads .</h3> |
||||
|
<h4 class="oe_slogan" style="font-size: 23px;">Author : Cybrosys Techno Solutions , www.cybrosys.com</h4> |
||||
|
</div> |
||||
|
<div class="oe_spaced" style="padding-left:65px;"> |
||||
|
<h4>Features:</h4> |
||||
|
<div> |
||||
|
<span style="color:green;"> ☑ </span> XLS report<br/> |
||||
|
<span style="color:green;"> ☑ </span> In report, filters like sales person, start date and end date is added<br/> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="oe_container oe_dark"> |
||||
|
<div class="oe_row oe_spaced"> |
||||
|
<div class="oe_picture"> |
||||
|
<h3 class="oe_slogan">Overview</h3> |
||||
|
<p class="oe_mt32"> |
||||
|
Currently in Odoo there is no won / lost XLS report for the CRM leads. This module will add such a feature so that |
||||
|
it will be easy to distinguish each sales person's perfomance based on his/her won and lost leads |
||||
|
</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="oe_container"> |
||||
|
<div class="oe_row oe_spaced"> |
||||
|
<h3 class="oe_slogan">Report</h3> |
||||
|
<div class="" style="text-align: center"> |
||||
|
<p> |
||||
|
You can take the report from, |
||||
|
<h4>Sales-> Report -> Won/Lost Reports</h4> |
||||
|
<p> |
||||
|
</div> |
||||
|
<div class="oe_span12"> |
||||
|
<div class="" style="text-align: center"> |
||||
|
<p> |
||||
|
Sample Report |
||||
|
<p> |
||||
|
</div> |
||||
|
<div class="oe_row_img oe_centered"> |
||||
|
<img class="oe_picture oe_screenshot" style="border:10px solid white;" src="report_xls.png"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<br> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="oe_container oe_dark"> |
||||
|
<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> |
||||
|
<div class="oe_slogan" style="margin-top:10px !important;"> |
||||
|
<div> |
||||
|
<a class="btn btn-primary btn-lg mt8" |
||||
|
style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i |
||||
|
class="fa fa-envelope"></i> Email </a> <a |
||||
|
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
||||
|
href="https://www.cybrosys.com/contact/"><i |
||||
|
class="fa fa-phone"></i> Contact Us </a> <a |
||||
|
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
||||
|
href="https://www.cybrosys.com/odoo-customization-and-installation/"><i |
||||
|
class="fa fa-check-square"></i> Request Customization </a> |
||||
|
</div> |
||||
|
<br> |
||||
|
<img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> |
||||
|
<div> |
||||
|
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> |
||||
|
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> |
||||
|
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> |
||||
|
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> |
||||
|
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
|
||||
|
|
After Width: | Height: | Size: 46 KiB |
@ -0,0 +1,46 @@ |
|||||
|
<?xml version="1.0"?> |
||||
|
<openerp> |
||||
|
<data> |
||||
|
<report |
||||
|
id="partner_xlsx" |
||||
|
model="crm.won.lost.report" |
||||
|
string="Won/Lost Report" |
||||
|
report_type="xlsx" |
||||
|
name="crm_won_lost_report.report_crm_won_lost_report.xlsx" |
||||
|
file="crm_won_lost_report.report_crm_won_lost_report.xlsx" |
||||
|
attachment_use="False" |
||||
|
/> |
||||
|
<record id="view_crm_won_lost_report" model="ir.ui.view"> |
||||
|
<field name="name">CRM Report</field> |
||||
|
<field name="model">crm.won.lost.report</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<form string="Choose your details"> |
||||
|
<group> |
||||
|
<group> |
||||
|
<field name="sales_person" widget="many2many_tags" style="width: 40%%" /> |
||||
|
</group> |
||||
|
<group> |
||||
|
<field name="start_date" /> |
||||
|
<field name="end_date" /> |
||||
|
</group> |
||||
|
</group> |
||||
|
<footer> |
||||
|
<button name="print_xls_report" string="Print Report" type="object" class="oe_highlight" /> |
||||
|
or |
||||
|
<button string="Cancel" class="oe_link" special="cancel" groups="base.group_sale_manager"/> |
||||
|
</footer> |
||||
|
</form> |
||||
|
</field> |
||||
|
</record> |
||||
|
<record id="action_crm_won_lost_report" model="ir.actions.act_window"> |
||||
|
<field name="name">WON / LOST Report</field> |
||||
|
<field name="res_model">crm.won.lost.report</field> |
||||
|
<field name="view_type">form</field> |
||||
|
<field name="view_mode">tree,form</field> |
||||
|
<field name="view_id" ref="view_crm_won_lost_report"/> |
||||
|
<field name="target">new</field> |
||||
|
</record> |
||||
|
<menuitem id="crm_won_lost_report_menu" name="WON / LOST Report" parent="base.menu_sale_report" action="action_crm_won_lost_report" groups="base.group_sale_manager"/> |
||||
|
</data> |
||||
|
</openerp> |
||||
|
|
Loading…
Reference in new issue