Browse Source

[ADD] Initial Commit

pull/124/head
Ajmalcybrosys 6 years ago
parent
commit
b305813205
  1. 36
      gatepass_slip/README.rst
  2. 22
      gatepass_slip/__init__.py
  3. 41
      gatepass_slip/__manifest__.py
  4. 6
      gatepass_slip/doc/RELEASE_NOTES.md
  5. 22
      gatepass_slip/models/__init__.py
  6. 12
      gatepass_slip/models/gate_pass_details.py
  7. 28
      gatepass_slip/report/gate_pass_report.xml
  8. 119
      gatepass_slip/report/gate_pass_template.xml
  9. BIN
      gatepass_slip/static/description/banner.png
  10. BIN
      gatepass_slip/static/description/gate_pass_details.png
  11. BIN
      gatepass_slip/static/description/gate_pass_print.png
  12. BIN
      gatepass_slip/static/description/gate_pass_report.png
  13. BIN
      gatepass_slip/static/description/icon.png
  14. 354
      gatepass_slip/static/description/index.html
  15. 23
      gatepass_slip/views/gate_pass_details_views.xml
  16. 48
      sale_promotion/README.rst
  17. 27
      sale_promotion/__init__.py
  18. 47
      sale_promotion/__manifest__.py
  19. 6
      sale_promotion/doc/RELEASE_NOTES.md
  20. 28
      sale_promotion/models/__init__.py
  21. 34
      sale_promotion/models/promotion_product.py
  22. 180
      sale_promotion/models/sale_order.py
  23. 81
      sale_promotion/models/sale_promotion_rule.py
  24. 7
      sale_promotion/security/ir.model.access.csv
  25. BIN
      sale_promotion/static/description/banner.jpg
  26. BIN
      sale_promotion/static/description/cybro_logo.png
  27. BIN
      sale_promotion/static/description/icon.png
  28. 310
      sale_promotion/static/description/index.html
  29. BIN
      sale_promotion/static/description/sale_promotion.png
  30. BIN
      sale_promotion/static/description/sale_promotion_1.png
  31. BIN
      sale_promotion/static/description/sale_promotion_2.png
  32. BIN
      sale_promotion/static/description/sale_promotion_3.png
  33. BIN
      sale_promotion/static/description/sale_promotion_4.png
  34. 18
      sale_promotion/views/promotion_product.xml
  35. 23
      sale_promotion/views/sale_order.xml
  36. 129
      sale_promotion/views/sale_promotion_rule.xml

36
gatepass_slip/README.rst

@ -0,0 +1,36 @@
Gatepass
========
Gatepass tickets for delivery orders.
Installation
============
- www.odoo.com/documentation/12.0/setup/install.html
- Install our custom addon
License
=======
GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3)
(http://www.gnu.org/licenses/agpl.html)
Bug Tracker
===========
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Credits
=======
* Cybrosys Techno Solutions <https://www.cybrosys.com>
Author
------
Developer: Sayooj AO @ Cybrosys
Maintainer
----------
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com.

22
gatepass_slip/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
###################################################################################
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Sayooj A O(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Lesser General Public License(LGPLv3) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# 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 for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
from . import models

41
gatepass_slip/__manifest__.py

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
###################################################################################
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Sayooj A O(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Lesser General Public License(LGPLv3) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# 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 for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
{
'name': 'Gate Pass',
'summary': """Generating Gate pass slip in delivery orders""",
'version': '12.0.1.0.0',
'description': """Generating Gate pass slip in delivery orders""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'website': 'http://www.cybrosys.com',
'category': 'Inventory',
'depends': ['base', 'stock'],
'license': 'LGPL-3',
'data': [
'views/gate_pass_details_views.xml',
'report/gate_pass_template.xml',
'report/gate_pass_report.xml',
],
'demo': [],
'images': ['static/description/banner.png'],
'installable': True,
'auto_install': False,
}

6
gatepass_slip/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <gatepass_slip>
#### 24.04.2019
#### Version 12.0.1.0.0
##### ADD
- Initial commit

22
gatepass_slip/models/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
###################################################################################
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>).
# Author: Sayooj A O(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Lesser General Public License(LGPLv3) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# 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 for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###################################################################################
from . import gate_pass_details

12
gatepass_slip/models/gate_pass_details.py

@ -0,0 +1,12 @@
from odoo import models, api, fields
class GatePass(models.Model):
_inherit = 'stock.picking'
enable_order_line = fields.Boolean(string='Include Product Details', default=True)
vehicle_no = fields.Char(string='Vehicle Number')
vehicle_driver_name = fields.Char(string='Driver Name')
driver_contact_number = fields.Char(string='Contact No')
corresponding_company = fields.Char(string='Company')

28
gatepass_slip/report/gate_pass_report.xml

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="gatepass_slip_format" model="report.paperformat">
<field name="name">Gate Pass</field>
<field name="default" eval="True"/>
<field name="format">custom</field>
<field name="page_height">150</field>
<field name="page_width">240</field>
<field name="orientation">Portrait</field>
<field name="margin_top">40</field>
<field name="margin_bottom">5</field>
<field name="margin_left">5</field>
<field name="margin_right">5</field>
<field name="header_line" eval="False"/>
<field name="header_spacing">40</field>
<field name="dpi">90</field>
</record>
<report
string="Gate Pass"
id="action_gatepass_generate"
model="stock.picking"
report_type="qweb-pdf"
name="gatepass_slip.report_gatepass_slip"
file="gatepass_slip.report_gatepass_slip"
paperformat="gatepass_slip.gatepass_slip_format"/>
</data>
</odoo>

119
gatepass_slip/report/gate_pass_template.xml

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<template id="report_gatepass_slip">
<t t-call="web.html_container">
<t t-call="gatepass_slip.gate_pass_layout">
<t t-foreach="docs" t-as="o">
<div class="page">
<br/>
<br/>
<center>
<h2>GATE PASS</h2>
</center>
<br/>
<table class="table table-bordered" style="border: 1px solid black;">
<thead style="border: 1px solid black;">
<tr style="border: 1px solid black;">
<t t-if="o.vehicle_no">
<th style="border: 1px solid black;"><strong>Vehicle Number</strong></th>
</t>
<t t-if="o.vehicle_driver_name">
<th style="border: 1px solid black;"><strong>Driver Name</strong></th>
</t>
<t t-if="o.driver_contact_number">
<th style="border: 1px solid black;"><strong>Contact No</strong></th>
</t>
<t t-if="o.corresponding_company">
<th style="border: 1px solid black;"><strong>Company</strong></th>
</t>
<th style="border: 1px solid black;"><strong>Date</strong></th>
<th style="border: 1px solid black;"><strong>Entry Time</strong></th>
</tr>
</thead>
<tbody style="border: 1px solid black;">
<tr style="border: 1px solid black;">
<td style="border: 1px solid black;" t-if="o.vehicle_no">
<span t-field="o.vehicle_no"/>
</td>
<td style="border: 1px solid black;" t-if="o.vehicle_driver_name">
<span t-field="o.vehicle_driver_name"/>
</td>
<td style="border: 1px solid black;" t-if="o.driver_contact_number">
<span t-field="o.driver_contact_number"/>
</td>
<td style="border: 1px solid black;" t-if="o.corresponding_company">
<span t-field="o.corresponding_company"/>
</td>
<td style="border: 1px solid black;">
<span t-esc="datetime.datetime.now().strftime('%Y-%m-%d')"/>
</td>
<td style="border: 1px solid black;">
<span t-esc="datetime.datetime.now().strftime('%H:%M:%S %p')"/>
</td>
</tr>
</tbody>
</table>
<t t-if="o.enable_order_line">
<center>
<h2>PRODUCT DETAILS</h2>
</center>
<table class="table table-condensed" style="border: 0px solid black;">
<thead>
<tr style="border: 0px solid black;">
<th><strong>Product</strong></th>
<th><strong>Quantity</strong></th>
</tr>
</thead>
<tbody>
<tr t-foreach="o.move_lines" t-as="move_line" style="border: 0px solid black;">
<td>
<span t-field="move_line.product_id"/>
</td>
<td>
<span t-field="move_line.product_uom_qty"/>
</td>
</tr>
</tbody>
</table>
</t>
</div>
</t>
</t>
</t>
</template>
<template id="gate_pass_layout">
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"/>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"/>
</t>
<div class="header">
<div class="pull-left" >
<span t-esc="context_timestamp(datetime.datetime.now()).strftime('%Y-%m-%d %H:%M')"/>
<br/>
<span t-esc="company.name"/>
<br/>
<span t-esc="company.street"/>
<br/>
<br/>
</div>
<div class="pull-right">
<t t-foreach="docs" t-as="o">
<h4>Shipping Address</h4>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.city"/>
<span t-esc="o.partner_id.zip"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</t>
</div>
</div>
<div class="article">
<t t-raw="0" />
</div>
</template>
</odoo>

BIN
gatepass_slip/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

BIN
gatepass_slip/static/description/gate_pass_details.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
gatepass_slip/static/description/gate_pass_print.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
gatepass_slip/static/description/gate_pass_report.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
gatepass_slip/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

354
gatepass_slip/static/description/index.html

@ -0,0 +1,354 @@
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-header-banner.png);background-repeat:no-repeat;background-size:100%;padding: 4% 0% 2% 15%;background-position-y: -107px;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="font-size: 35px;color: #fff;font-weight: 900;text-transform: uppercase;text-align: left;margin: 0;margin-bottom: 16px;">
Gatepass
</h2>
<h3 class="oe_slogan" style="font-size: 25px;color: #fff;font-weight: 600;text-align: left;opacity: 1;margin: 0 !important;">
Module For generating gatepass tickets for delivery orders
</h3>
<h5 class="oe_slogan" style="text-align: left;background: #fff;width: 293px;padding: 10px;color: #080808 !important;opacity: 1 !important;font-weight: 600;font-size: 20px;">
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank">Cybrosys Technologies</a>
</h5>
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank">
<div style="width: 215px;margin-left: 57%;text-align: center;background: #ffffff;height: 215px;border-radius: 100%;display: flex;justify-content: center;align-items: center;box-shadow: 0 0 12px 4px #00000059;">
<img src="https://www.cybrosys.com/images/cybro-logo-oca.png" alt="cybrosys technologies" style="width: 180px;"/>
</div>
</a>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 3% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Overview
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
Gatepass modules helps to generate gatepass tickets including the details of the vehicle,driver and the information about the
company which the vehicle belongs to with entry date and time.And the information of the products in the delivery order.
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;padding: 2% 0% 0% 0%;">
Configuration
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
No additional configuration required
</h3>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-banner1.png); background-repeat:no-repeat; background-size:cover;padding: 10% 0% 25% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Features
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Creating the details of Gatepass with details of Vehicle number,Driver's name,Contact information of the driver,
company of the driver
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Information about the products in the delivery order also provided in the ticket.
This can be enable from the "Gatepass details'" form
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Printing Gatepass ticket
</h3>
</div>
</section>
<section class="oe_container" style="padding: 3% 0% 0% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Screenshots
</h2>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Here we can fill the details regarding to the Gate Pass
</h3>
<div class="oe_row oe_spaced">
<img src="gate_pass_details.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
From the Print menu we can print the Gate Pass Ticket
</h3>
<div class="oe_row oe_spaced">
<img src="gate_pass_print.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
This would be the printed Gate Pass Ticket
</h3>
<div class="oe_row oe_spaced">
<img src="gate_pass_report.png" alt="" style="width: 95%;"/>
</div>
</div>
</section>
<section class="oe_container" style="padding: 7px 0% 0% 3%;">
<div class="oe_row oe_spaced">
<a style="color: #080808 !important;" href="https://apps.odoo.com/apps/modules/browse?search=cybrosys" target="_blank"><img src="https://www.cybrosys.com/images/view-more-apps.jpg" alt="cybrosys technologies" style="width: 100%;margin-bottom: 50px;"/></a>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Services
</h2>
<div style="display:flex;padding-top: 20px;justify-content: space-between;">
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-customization.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank">
Odoo Customization
</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-implementation.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank">
Odoo Implementation </a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-integration.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank">
Odoo Integration
</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-support.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank">
Odoo Support</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank">
<img src="https://www.cybrosys.com/images/hire-odoo-developer.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank">
Hire Odoo Developers</a>
</h3>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Industries
</h2>
<div style="display:flex;justify-content: space-between;flex-wrap:wrap;">
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-1.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank">
Trading
</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easily procure and sell your products.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-2.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank">
Manufacturing</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Plan, track and schedule your operations.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-3.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank">
Restaurant</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Run your bar or restaurant methodical.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-4.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank">
POS</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easy configuring and convivial selling.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-5.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 0px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank">
E-commerce & Website</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Mobile friendly, awe-inspiring product pages.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-6.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank">
Hotel Management</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
An all-inclusive hotel management application.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-7.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank">
Education</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
A Collaborative platform for educational management.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-8.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank">
Service Management</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Keep track of services and invoice accordingly.
</h3>
</div>
</div>
</div>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-footer-bg.png); background-repeat:no-repeat; background-size:100%;padding: 13% 0% 6% 0%;">
<div class="oe_slogan" style="margin-top:10px !important;margin-bottom: 0px;">
<div>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="mailto:odoo@cybrosys.com"><i class="fa fa-envelope"></i> Email us </a>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" 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 style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com/contact/"><i class="fa fa-check-square"></i> Request Customization </a>
</div>
<br>
<img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" 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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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; ;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
</div>
</div>
</section>

23
gatepass_slip/views/gate_pass_details_views.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record model="ir.ui.view" id="gate_slip_view">
<field name="name">gate slip</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='note']" position="after">
<page name="gate_pass_info" string="Gatepass Details">
<group col="4" colspan="4">
<field name="vehicle_no" />
<field name="vehicle_driver_name"/>
<field name="driver_contact_number"/>
<field name="corresponding_company"/>
<field name="enable_order_line"/>
</group>
</page>
</xpath>
</field>
</record>
</data>
</odoo>

48
sale_promotion/README.rst

@ -0,0 +1,48 @@
==================
Sale Promotion v12
==================
Add option to give promotion for your products.
Contacts
========
* Cybrosys Techno Solutions <https://www.cybrosys.com>
Depends
=======
[sale] addon Odoo
[account_invoicing] addon Odoo
Tech
====
* [Python] - Models
* [XML] - Odoo views
Installation
============
- www.odoo.com/documentation/12.0/setup/install.html
- Install our custom addon
License
=======
GNU Affero General Public License
(http://www.gnu.org/licenses/agpl.html)
Bug Tracker
===========
Contact odoo@cybrosys.com
Authors
-------
* Developer v10: Anusha @ Cybrosys
* Developer v11, V12: Niyas Raphy @ Cybrosys
Maintainer
----------
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com.

27
sale_promotion/__init__.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anusha P P(<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 . import models

47
sale_promotion/__manifest__.py

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anusha P P(<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': "Sale Promotion",
'version': '12.0.1.0.0',
'summary': """Create Promotion Offers For Sales""",
'description': """This Module Allows to Set Promotion Offers On Products And Product Categories.""",
'author': "Cybrosys Techno Solutions",
'maintainer': 'Cybrosys Techno Solutions',
'company': "Cybrosys Techno Solutions",
'website': "https://www.cybrosys.com",
'category': 'Sales',
'depends': ['sale', 'account'],
'data': [
'security/ir.model.access.csv',
'views/promotion_product.xml',
'views/sale_promotion_rule.xml',
'views/sale_order.xml',
],
'images': ['static/description/banner.jpg'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
}

6
sale_promotion/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <sale_promotion>
#### 24.04.2019
#### Version 12.0.1.0.0
##### ADD
- Initial commit

28
sale_promotion/models/__init__.py

@ -0,0 +1,28 @@
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anusha P P(<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 . import promotion_product
from . import sale_promotion_rule
from . import sale_order

34
sale_promotion/models/promotion_product.py

@ -0,0 +1,34 @@
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anusha P P(<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 odoo import models, fields
class PromotionProduct(models.Model):
_inherit = 'product.template'
is_promotion_product = fields.Boolean(string="Promotion Product",
default=False,
help='This is a promotion product')

180
sale_promotion/models/sale_order.py

@ -0,0 +1,180 @@
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Cybrosys(<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 dateutil import parser
from odoo import models, fields, api, _
from odoo.exceptions import UserError
class SalePromotion(models.Model):
_inherit = 'sale.order'
sale_promotion_id = fields.Many2one('sale.promotion', string="Sale Promotion")
@api.multi
def button_dump_sale_promotion(self):
for order in self:
if order.sale_promotion_id:
date_order = order.date_order
product_list = []
category_list = []
for line in order.order_line:
count = 0
categ_count = 0
if line.is_promotion_line:
line.unlink()
else:
if product_list:
for data in product_list:
if data['product_id'] == line.product_id.id:
data['qty'] += line.product_uom_qty
count += 1
if count == 0:
product_list.append({
'product_id': line.product_id.id,
'qty': line.product_uom_qty,
})
else:
product_list.append({
'product_id': line.product_id.id,
'qty': line.product_uom_qty,
})
if category_list:
for prod in category_list:
if prod['category'] == line.product_id.categ_id.id:
prod['qty'] += line.product_uom_qty
categ_count += 1
if categ_count == 0:
category_list.append({
'qty': line.product_uom_qty,
'category': line.product_id.categ_id.id,
})
else:
category_list.append({
'qty': line.product_uom_qty,
'category': line.product_id.categ_id.id,
})
category_rule_ids = []
product_rule_ids = []
for obj in self.sale_promotion_id:
for promo_lines in obj.item_ids:
if not promo_lines.date_start or promo_lines.date_start <= date_order:
if not promo_lines.date_end or promo_lines.date_end >= date_order:
if promo_lines.applied_on == 'product_category':
categ_val = {'rule': promo_lines,
'category': promo_lines.categ_id.id,
'qty': promo_lines.min_quantity,
}
category_rule_ids.append(categ_val)
elif promo_lines.applied_on == 'product':
pr_val = {'rule': promo_lines,
'product_id': promo_lines.product_tmpl_id.id,
'qty': promo_lines.min_quantity,
}
product_rule_ids.append(pr_val)
sale_line_obj = self.env['sale.order.line']
if product_rule_ids and product_list:
for data in product_list:
rules = []
for i in product_rule_ids:
if i['product_id'] == data['product_id']:
if data['qty'] >= i['rule'].min_quantity:
rules.append(i)
if len(rules) > 1:
max_qty_rule = max(rules, key=lambda x: x['qty'])
for line in max_qty_rule['rule'].promotion_rule_lines:
sale_line_obj.create({
'name': line.product_id.name,
'price_unit': 0,
'product_uom_qty': line.quantity,
'order_id': order.id,
'discount': 0.0,
'product_uom': line.product_id.uom_id.id,
'product_id': line.product_id.id,
'tax_id': [],
'is_promotion_line': True,
})
elif len(rules) == 1:
for r in rules:
for line in r['rule'].promotion_rule_lines:
sale_line_obj.create({
'name': line.product_id.name,
'price_unit': 0,
'product_uom_qty': line.quantity,
'order_id': order.id,
'discount': 0.0,
'product_uom': line.product_id.uom_id.id,
'product_id': line.product_id.id,
'tax_id': [],
'is_promotion_line': True,
})
else:
pass
if category_rule_ids and category_list:
for categ in category_list:
rules = []
for r in category_rule_ids:
if categ['category'] == r['category']:
if categ['qty'] >= r['rule'].min_quantity:
rules.append(r)
if len(rules) > 1:
max_qty_rule = max(rules, key=lambda x: x['qty'])
for line in max_qty_rule['rule'].promotion_rule_lines:
sale_line_obj.create({
'name': line.product_id.name,
'price_unit': 0,
'product_uom_qty': line.quantity,
'order_id': order.id,
'discount': 0.0,
'product_uom': line.product_id.uom_id.id,
'product_id': line.product_id.id,
'tax_id': [],
'is_promotion_line': True,
})
elif len(rules) == 1:
for r in rules:
for line in r['rule'].promotion_rule_lines:
sale_line_obj.create({
'name': line.product_id.name,
'price_unit': 0,
'product_uom_qty': line.quantity,
'order_id': order.id,
'discount': 0.0,
'product_uom': line.product_id.uom_id.id,
'product_id': line.product_id.id,
'tax_id': [],
'is_promotion_line': True,
})
else:
pass
else:
raise UserError(_('Please Select an Promotion Rule.'))
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
is_promotion_line = fields.Boolean(string='Promotion Line')

81
sale_promotion/models/sale_promotion_rule.py

@ -0,0 +1,81 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anusha P P(<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 odoo.exceptions import UserError
from odoo import models, fields, _, api
class SalePromotion(models.Model):
_name = 'sale.promotion'
def _get_default_currency_id(self):
return self.env.user.company_id.currency_id.id
name = fields.Char(string="Name", required=True)
item_ids = fields.One2many('sale.promotion.rule', 'promotion_id', string="Promotion Rules")
company_id = fields.Many2one('res.company')
currency_id = fields.Many2one('res.currency')
class SalePromotionRule(models.Model):
_name = 'sale.promotion.rule'
name = fields.Char(string="Name", required=True)
promotion_id = fields.Many2one('sale.promotion', string="Promotion Rule")
applied_on = fields.Selection([('product_category', 'Product Category'),
('product', 'Product')], string="Applied On", default='product', required=True)
min_quantity = fields.Integer(string="Minimum Quantity")
date_start = fields.Date(string="Date Start")
date_end = fields.Date(string="Date End")
categ_id = fields.Many2one('product.category', string="Product Category")
product_tmpl_id = fields.Many2one('product.product', string="Product")
company_id = fields.Many2one('res.company', string='Company', readonly=True, related='promotion_id.company_id', store=True)
currency_id = fields.Many2one('res.currency', string='Currency',
readonly=True, related='promotion_id.currency_id', store=True)
promotion_rule_lines = fields.One2many('sale.promotion.rule.line', 'promotion_rule_id', string="Promotion Lines")
@api.constrains('date_start', 'date_end')
def check_date(self):
if self.date_start and self.date_end:
if self.date_end < self.date_start:
raise UserError(_('Please check the Ending date.'))
@api.constrains('promotion_rule_lines')
def check_promotion(self):
if not self.promotion_rule_lines:
raise UserError(_('Please Add some promotion products.'))
class SalePromotionLines(models.Model):
_name = 'sale.promotion.rule.line'
product_id = fields.Many2one('product.product', string="Product")
quantity = fields.Integer(string="Quantity")
promotion_rule_id = fields.Many2one('sale.promotion.rule', string="Promotion Lines")

7
sale_promotion/security/ir.model.access.csv

@ -0,0 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sale_promotion_manager,sale.promotion,model_sale_promotion,sales_team.group_sale_manager,1,1,1,1
access_sale_promotion_salesman,sale.promotion,model_sale_promotion,sales_team.group_sale_salesman,1,1,1,1
access_sale_promotion_rule_manager,sale.promotion.rule,model_sale_promotion_rule,sales_team.group_sale_manager,1,1,1,1
access_sale_promotion_rule_salesman,sale.promotion.rule,model_sale_promotion_rule,sales_team.group_sale_salesman,1,1,1,1
access_sale_promotion_rule_line_manager,sale.promotion.rule.line,model_sale_promotion_rule_line,sales_team.group_sale_manager,1,1,1,1
access_sale_promotion_rule_line_salesman,sale.promotion.rule.line,model_sale_promotion_rule_line,sales_team.group_sale_salesman,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sale_promotion_manager sale.promotion model_sale_promotion sales_team.group_sale_manager 1 1 1 1
3 access_sale_promotion_salesman sale.promotion model_sale_promotion sales_team.group_sale_salesman 1 1 1 1
4 access_sale_promotion_rule_manager sale.promotion.rule model_sale_promotion_rule sales_team.group_sale_manager 1 1 1 1
5 access_sale_promotion_rule_salesman sale.promotion.rule model_sale_promotion_rule sales_team.group_sale_salesman 1 1 1 1
6 access_sale_promotion_rule_line_manager sale.promotion.rule.line model_sale_promotion_rule_line sales_team.group_sale_manager 1 1 1 1
7 access_sale_promotion_rule_line_salesman sale.promotion.rule.line model_sale_promotion_rule_line sales_team.group_sale_salesman 1 1 1 1

BIN
sale_promotion/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
sale_promotion/static/description/cybro_logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
sale_promotion/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

310
sale_promotion/static/description/index.html

@ -0,0 +1,310 @@
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-header-banner.png); background-repeat:no-repeat; background-size:cover;padding: 13% 0% 22% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="font-size: 35px;color: #fff;font-weight: 900;text-transform: uppercase;text-align: left;margin: 0;margin-bottom: 16px;">
Sale Promotion
</h2>
<h3 class="oe_slogan" style="font-size: 25px;color: #fff;font-weight: 600;text-align: left;opacity: 1;margin: 0 !important;">
Set sales promotion offers on product and product categories.
</h3>
<h5 class="oe_slogan" style="text-align: left;background: #fff;width: 293px;padding: 10px;color: #080808 !important;opacity: 1 !important;font-weight: 600;font-size: 20px;">
<a style="color: #080808 !important;" href="https://www.cybrosys.com">Cybrosys Technologies</a>
</h5>
</div>
</section>
<section class="oe_container" style="padding: 3% 0% 3% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Overview
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
The module, allows the user to set sales promotion offers on products and product category.
Create product and Product category based specific promotion rules and improve the sales.
</h3>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-banner.png); background-repeat:no-repeat; background-size:cover;padding: 19% 0% 30% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Features
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Create sales promotion offers for products.
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Create sales promotion offers for product categories.
</h3><h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Attract more customers.
</h3>
</div>
</section>
<section class="oe_container" style="padding: 3% 0% 0% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Create Promotion Rules
</h2>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Case 1.Buy One get One Free.
</h3>
<div class="oe_row oe_spaced">
<img src="sale_promotion_1.png" alt="" style="width: 95%;"/>
</div>
<div class="oe_row oe_spaced">
<img src="sale_promotion_2.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Case 2.Buy 2 Get Another Free
</h3>
<div class="oe_row oe_spaced">
<img src="sale_promotion_3.png" alt="" style="width: 95%;"/>
</div>
<div class="oe_row oe_spaced">
<img src="sale_promotion_4.png" alt="" style="width: 95%;"/>
</div>
<h3>Select Offer In Sale Order</h3>
<h3 class="oe_slogan" style="text-align: left;padding: 1% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Select the promotion rule in the sale order and click on 'Apply Offer'
</h3>
<div class="oe_row oe_spaced">
<img src="sale_promotion.png" alt="" style="width: 95%;"/>
</div>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Service
</h2>
<div style="display:flex;padding-top: 20px;justify-content: space-between;">
<div style="flex-basis: 18%;">
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<img src="https://www.cybrosys.com/images/odoo-customization.png" style="width: 100%;border-radius: 100%;"/>
</div>
<h3 class="oe_slogan" style="text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
Odoo <br/>Customization
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<img src="https://www.cybrosys.com/images/odoo-erp-implementation.png" style="width: 100%;border-radius: 100%;"/>
</div>
<h3 class="oe_slogan" style="text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
Odoo <br/>Implementation
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<img src="https://www.cybrosys.com/images/odoo-erp-integration.png" style="width: 100%;border-radius: 100%;"/>
</div>
<h3 class="oe_slogan" style="text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
Odoo <br/>Integration
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<img src="https://www.cybrosys.com/images/odoo-erp-support.png" style="width: 100%;border-radius: 100%;"/>
</div>
<h3 class="oe_slogan" style="text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
Odoo <br/>Support
</h3>
</a>
</div>
<div style="flex-basis: 18%;">
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<img src="https://www.cybrosys.com/images/hire-odoo-developer.png" style="width: 100%;border-radius: 100%;"/>
</div>
<h3 class="oe_slogan" style="text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
Hire <br/>Odoo Developer
</h3>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="padding: 3% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Industries
</h2>
<div style="display:flex;justify-content: space-between;flex-wrap:wrap;">
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-1.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Trading
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easily procure and sell your products.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-2.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Manufacturing
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Plan, track and schedule your operations.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-3.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Restaurant
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Run your bar or restaurant methodical.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-4.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
POS
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easy configuring and convivial selling.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-5.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 0px;margin-left: 16px;">
E-commerce & Website
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Mobile friendly, awe-inspiring product pages.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-6.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Hotel Management
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
An all-inclusive hotel management application.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-7.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Education
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
A Collaborative platform for educational management.
</h3>
</div>
</a>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<img src="https://www.cybrosys.com/images/odoo-index-industry-8.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:600;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
Service Management
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Keep track of services and invoice accordingly.
</h3>
</div>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-footer-bg.png); background-repeat:no-repeat; background-size:100%;padding: 13% 0% 6% 0%;">
<div class="oe_slogan" style="margin-top:10px !important;margin-bottom: 0px;">
<div>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 14px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" 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 us </a>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 14px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" 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 style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 14px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" 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="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" 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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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; ;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></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;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
</div>
</div>
</section>

BIN
sale_promotion/static/description/sale_promotion.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

BIN
sale_promotion/static/description/sale_promotion_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
sale_promotion/static/description/sale_promotion_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
sale_promotion/static/description/sale_promotion_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
sale_promotion/static/description/sale_promotion_4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

18
sale_promotion/views/promotion_product.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="product_template_form_view_inherit" model="ir.ui.view">
<field name="name">product.template</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<xpath expr="//field[@name='type']" position="before">
<field name="is_promotion_product"/>
</xpath>
</field>
</record>
</data>
</odoo>

23
sale_promotion/views/sale_order.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!--showing promotion list in sale order form-->
<record id="sale_promotion_in_sale_order_form" model="ir.ui.view">
<field name="name">sale.order.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<xpath expr="//button[@name='print_quotation']" position="after">
<button name="button_dump_sale_promotion" class="btn-primary"
string="Apply offer" states="draft,sent" type="object" context="{'show_sale': True}"/>
</xpath>
<xpath expr="//field[@name='pricelist_id']" position="after">
<field name="sale_promotion_id"/>
</xpath>
<xpath expr="/form/sheet/notebook/page/field[@name='order_line']/tree/field[@name='name']" position="after">
<field name="is_promotion_line" invisible="1"/>
</xpath>
</field>
</record>
</data>
</odoo>

129
sale_promotion/views/sale_promotion_rule.xml

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<!--Sale promotion rule view-->
<record id="sale_promotion_rule_tree_view" model="ir.ui.view">
<field name="name">sale.promotion.rule.tree</field>
<field name="model">sale.promotion.rule</field>
<field name="arch" type="xml">
<tree string="Sale Promotion Rules">
<field colspan="4" name="name"/>
<field name="product_tmpl_id"/>
<field name="categ_id"/>
<field name="min_quantity"/>
<field name="date_start"/>
<field name="date_end"/>
</tree>
</field>
</record>
<record id="sale_promotion_rule_form_view" model="ir.ui.view">
<field name="name">sale.promotion.rule.form</field>
<field name="model">sale.promotion.rule</field>
<field name="arch" type="xml">
<form string="Sale Promotion Rule">
<h1><field name="name"/></h1>
<group>
<group>
<field name="applied_on" widget="radio"/>
<field name="categ_id" attrs="{'invisible':[('applied_on', '!=', 'product_category')], 'required':[('applied_on', '=', 'product_category')]}"/>
<field name="product_tmpl_id"
attrs="{'invisible':[('applied_on', '!=', 'product')],'required':[('applied_on', '=', 'product')]}" string="Product"/>
</group>
<group>
<field name="min_quantity"/>
<field name="date_start"/>
<field name="date_end"/>
</group>
</group>
<notebook>
<page string="Promotion Rule lines">
<field name="promotion_rule_lines">
<tree name="Promotion Rule Lines">
<field name="product_id" domain="[('is_promotion_product','=',True),('sale_ok', '=', True)]"/>
<field name="quantity"/>
</tree>
</field>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="sale_promotion_view_search">
<field name="name">sale.promotion.search</field>
<field name="model">sale.promotion</field>
<field name="arch" type="xml">
<search string="Sale Promotion Search">
<field name="name" string="Promotion"/>
</search>
</field>
</record>
<record id="sale_promotion_view_tree" model="ir.ui.view">
<field name="name">sale.promotion.tree</field>
<field name="model">sale.promotion</field>
<field name="arch" type="xml">
<tree string="Sale promotion">
<field name="name"/>
</tree>
</field>
</record>
<record id="sale_promotion_view_form" model="ir.ui.view">
<field name="name">sale.promotion.form</field>
<field name="model">sale.promotion</field>
<field name="arch" type="xml">
<form string="Sale Promotion">
<sheet>
<div class="oe_title">
<h1><field name="name" placeholder="e.g.Buy 1 get 1 free"/></h1>
</div>
<div>
<separator string="Sale Promotion Rules"/>
<field name="item_ids" nolabel="1">
<tree string="Sale Promotion Rules">
<field name="name" string="Applicable On"/>
<field name="min_quantity"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="applied_on" invisible="1"/>
</tree>
</field>
</div>
</sheet>
</form>
</field>
</record>
<record id="action_sale_promotion_menu" model="ir.actions.act_window">
<field name="name">Sale Promotions</field>
<field name="res_model">sale.promotion</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<!--sale promotion rule lines form view-->
<record id="sale_promotion_rule_lines_form_view" model="ir.ui.view">
<field name="name">sale.promotion.rule.line.form</field>
<field name="model">sale.promotion.rule.line</field>
<field name="arch" type="xml">
<form string="Sale Promotion Rule">
<group>
<group>
<field name="product_id" domain="[('is_promotion_product','=',True),('sale_ok', '=', True)]" options="{'no_create': True}"/>
<field name="quantity"/>
</group>
</group>
</form>
</field>
</record>
<menuitem name="Sale Promotions" id="sale_promotion_menu"
parent="sale.menu_sale_config" sequence="3" />
<menuitem name="Sale Promotions" id="sale_promotion_child_menu" action="action_sale_promotion_menu"
parent="sale_promotion_menu" sequence="3" />
</data>
</odoo>
Loading…
Cancel
Save