@ -0,0 +1,19 @@ |
|||
POS Dashboard v14 |
|||
================= |
|||
POS Dashboard |
|||
|
|||
Installation |
|||
============ |
|||
- www.odoo.com/documentation/14.0/setup/install.html |
|||
- Install our custom addon |
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
No additional configurations needed |
|||
|
|||
Credits |
|||
======= |
|||
Developer: Irfan v13 @ cybrosys, Contact: odoo@cybrosys.com |
|||
Jibin James V14 @ cybrosys, Contact: odoo@cybrosys.com |
|||
|
@ -0,0 +1,23 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Irfan (<https://www.cybrosys.com>) |
|||
# |
|||
# This program is free software: you can modify |
|||
# it under the terms of the GNU Affero General Public License (AGPL) 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 Affero 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 |
@ -0,0 +1,44 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Irfan (<https://www.cybrosys.com>) |
|||
# |
|||
# This program is free software: you can modify |
|||
# it under the terms of the GNU Affero General Public License (AGPL) 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 Affero 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': "POS Dashboard", |
|||
'version': '14.0.1.0.0', |
|||
'summary': """POS Dashboard""", |
|||
'description': """POS Dashboard""", |
|||
'category': 'Point of Sale', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.openhrms.com", |
|||
'depends': ['hr', 'point_of_sale'], |
|||
'external_dependencies': { |
|||
'python': ['pandas'], |
|||
}, |
|||
'data': [ |
|||
'views/dashboard_views.xml' |
|||
], |
|||
'qweb': ["static/src/xml/pos_dashboard.xml"], |
|||
'images': ['static/description/banner.png'], |
|||
'license': "AGPL-3", |
|||
'installable': True, |
|||
'application': False, |
|||
} |
@ -0,0 +1,7 @@ |
|||
## Module <pos_dashboard> |
|||
|
|||
#### 09.04.2021 |
|||
#### Version 14.0.1.0.0 |
|||
|
|||
##### Initial Commit for pos_dashboard |
|||
|
@ -0,0 +1,23 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Irfan (<https://www.cybrosys.com>) |
|||
# |
|||
# This program is free software: you can modify |
|||
# it under the terms of the GNU Affero General Public License (AGPL) 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 Affero 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 pos_dashboard |
@ -0,0 +1,227 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Irfan (<https://www.cybrosys.com>) |
|||
# |
|||
# This program is free software: you can modify |
|||
# it under the terms of the GNU Affero General Public License (AGPL) 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 Affero 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/>. |
|||
# |
|||
################################################################################### |
|||
import pytz |
|||
from odoo import models, fields, api |
|||
from datetime import timedelta, datetime, date |
|||
|
|||
|
|||
class PosDashboard(models.Model): |
|||
_inherit = 'pos.order' |
|||
|
|||
@api.model |
|||
def get_department(self, option): |
|||
company_id = self.env.company.id |
|||
if option == 'pos_hourly_sales': |
|||
|
|||
user_tz = self.env.user.tz if self.env.user.tz else pytz.UTC |
|||
query = '''select EXTRACT(hour FROM date_order at time zone 'utc' at time zone '{}') |
|||
as date_month,sum(amount_total) from pos_order where |
|||
EXTRACT(month FROM date_order::date) = EXTRACT(month FROM CURRENT_DATE) |
|||
AND pos_order.company_id = ''' + str( |
|||
company_id) + ''' group by date_month ''' |
|||
query = query.format(user_tz) |
|||
label = 'HOURS' |
|||
elif option == 'pos_monthly_sales': |
|||
query = '''select date_order::date as date_month,sum(amount_total) from pos_order where |
|||
EXTRACT(month FROM date_order::date) = EXTRACT(month FROM CURRENT_DATE) AND pos_order.company_id = ''' + str( |
|||
company_id) + ''' group by date_month ''' |
|||
label = 'DAYS' |
|||
else: |
|||
query = '''select TO_CHAR(date_order,'MON')date_month,sum(amount_total) from pos_order where |
|||
EXTRACT(year FROM date_order::date) = EXTRACT(year FROM CURRENT_DATE) AND pos_order.company_id = ''' + str( |
|||
company_id) + ''' group by date_month''' |
|||
label = 'MONTHS' |
|||
|
|||
self._cr.execute(query) |
|||
docs = self._cr.dictfetchall() |
|||
order = [] |
|||
for record in docs: |
|||
order.append(record.get('sum')) |
|||
today = [] |
|||
for record in docs: |
|||
today.append(record.get('date_month')) |
|||
final = [order, today, label] |
|||
return final |
|||
|
|||
@api.model |
|||
def get_details(self): |
|||
company_id = self.env.company.id |
|||
cr = self._cr |
|||
cr.execute( |
|||
"""select pos_payment_method.name,sum(amount) from pos_payment inner join pos_payment_method on |
|||
pos_payment_method.id=pos_payment.payment_method_id group by pos_payment_method.name ORDER |
|||
BY sum(amount) DESC; """) |
|||
payment_details = cr.fetchall() |
|||
cr.execute( |
|||
'''select hr_employee.name,sum(pos_order.amount_paid) as total,count(pos_order.amount_paid) as orders |
|||
from pos_order inner join hr_employee on pos_order.user_id = hr_employee.user_id |
|||
where pos_order.company_id =''' + str(company_id) + '''GROUP BY hr_employee.name order by total DESC;''') |
|||
salesperson = cr.fetchall() |
|||
total_sales = [] |
|||
for rec in salesperson: |
|||
rec = list(rec) |
|||
sym_id = rec[1] |
|||
company = self.env.company |
|||
if company.currency_id.position == 'after': |
|||
rec[1] = "%s %s" % (sym_id, company.currency_id.symbol) |
|||
else: |
|||
rec[1] = "%s %s" % (company.currency_id.symbol, sym_id) |
|||
rec = tuple(rec) |
|||
total_sales.append(rec) |
|||
cr.execute( |
|||
'''select DISTINCT(product_template.name) as product_name,sum(qty) as total_quantity from |
|||
pos_order_line inner join product_product on product_product.id=pos_order_line.product_id inner join |
|||
product_template on product_product.product_tmpl_id = product_template.id where pos_order_line.company_id =''' + str( |
|||
company_id) + ''' group by product_template.id ORDER |
|||
BY total_quantity DESC Limit 10 ''') |
|||
selling_product = cr.fetchall() |
|||
sessions = self.env['pos.config'].search([]) |
|||
sessions_list = [] |
|||
dict = { |
|||
'closing_control': 'Closed', |
|||
'opened': 'Opened', |
|||
'new_session': 'New Session', |
|||
'opening_control': "Opening Control" |
|||
} |
|||
for session in sessions: |
|||
sessions_list.append({ |
|||
'session': session.name, |
|||
'status': dict.get(session.pos_session_state) |
|||
}) |
|||
payments =[] |
|||
for rec in payment_details: |
|||
rec = list(rec) |
|||
sym_id = rec[1] |
|||
company = self.env.company |
|||
if company.currency_id.position == 'after': |
|||
rec[1] = "%s %s" % (sym_id, company.currency_id.symbol) |
|||
else: |
|||
rec[1] = "%s %s" % (company.currency_id.symbol, sym_id) |
|||
rec = tuple(rec) |
|||
payments.append(rec) |
|||
return { |
|||
'payment_details': payments, |
|||
'salesperson': total_sales, |
|||
'selling_product': sessions_list, |
|||
} |
|||
|
|||
@api.model |
|||
def get_refund_details(self): |
|||
default_date = datetime.today().date() |
|||
pos_order = self.env['pos.order'].search([]) |
|||
total = 0 |
|||
today_refund_total = 0 |
|||
total_order_count = 0 |
|||
total_refund_count = 0 |
|||
today_sale = 0 |
|||
a = 0 |
|||
for rec in pos_order: |
|||
if rec.amount_total < 0.0 and rec.date_order.date() == default_date: |
|||
today_refund_total = today_refund_total + 1 |
|||
total_sales = rec.amount_total |
|||
total = total + total_sales |
|||
total_order_count = total_order_count + 1 |
|||
if rec.date_order.date() == default_date: |
|||
today_sale = today_sale + 1 |
|||
if rec.amount_total < 0.0: |
|||
total_refund_count = total_refund_count + 1 |
|||
magnitude = 0 |
|||
while abs(total) >= 1000: |
|||
magnitude += 1 |
|||
total /= 1000.0 |
|||
# add more suffixes if you need them |
|||
val = '%.2f%s' % (total, ['', 'K', 'M', 'G', 'T', 'P'][magnitude]) |
|||
pos_session = self.env['pos.session'].search([]) |
|||
total_session = 0 |
|||
for record in pos_session: |
|||
total_session = total_session + 1 |
|||
return { |
|||
'total_sale': val, |
|||
'total_order_count': total_order_count, |
|||
'total_refund_count': total_refund_count, |
|||
'total_session': total_session, |
|||
'today_refund_total': today_refund_total, |
|||
'today_sale': today_sale, |
|||
} |
|||
|
|||
@api.model |
|||
def get_the_top_customer(self, ): |
|||
company_id = self.env.company.id |
|||
query = '''select res_partner.name as customer,pos_order.partner_id,sum(pos_order.amount_paid) as amount_total from pos_order |
|||
inner join res_partner on res_partner.id = pos_order.partner_id where pos_order.company_id = ''' + str( |
|||
company_id) + ''' GROUP BY pos_order.partner_id, |
|||
res_partner.name ORDER BY amount_total DESC LIMIT 10;''' |
|||
self._cr.execute(query) |
|||
docs = self._cr.dictfetchall() |
|||
print(docs) |
|||
|
|||
order = [] |
|||
for record in docs: |
|||
order.append(record.get('amount_total')) |
|||
day = [] |
|||
for record in docs: |
|||
day.append(record.get('customer')) |
|||
final = [order, day] |
|||
return final |
|||
|
|||
@api.model |
|||
def get_the_top_products(self): |
|||
company_id = self.env.company.id |
|||
|
|||
query = '''select DISTINCT(product_template.name) as product_name,sum(qty) as total_quantity from |
|||
pos_order_line inner join product_product on product_product.id=pos_order_line.product_id inner join |
|||
product_template on product_product.product_tmpl_id = product_template.id where pos_order_line.company_id = ''' + str( |
|||
company_id) + ''' group by product_template.id ORDER |
|||
BY total_quantity DESC Limit 10 ''' |
|||
|
|||
self._cr.execute(query) |
|||
top_product = self._cr.dictfetchall() |
|||
|
|||
total_quantity = [] |
|||
for record in top_product: |
|||
# if record.get('total_quantity') != 0: |
|||
# print(total_quantity.append(record.get('total_quantity'))) |
|||
total_quantity.append(record.get('total_quantity')) |
|||
product_name = [] |
|||
for record in top_product: |
|||
product_name.append(record.get('product_name')) |
|||
final = [total_quantity, product_name] |
|||
return final |
|||
|
|||
@api.model |
|||
def get_the_top_categories(self): |
|||
company_id = self.env.company.id |
|||
query = '''select DISTINCT(product_category.complete_name) as product_category,sum(qty) as total_quantity |
|||
from pos_order_line inner join product_product on product_product.id=pos_order_line.product_id inner join |
|||
product_template on product_product.product_tmpl_id = product_template.id inner join product_category on |
|||
product_category.id =product_template.categ_id where pos_order_line.company_id = ''' + str( |
|||
company_id) + ''' group by product_category ORDER BY total_quantity DESC ''' |
|||
self._cr.execute(query) |
|||
top_product = self._cr.dictfetchall() |
|||
total_quantity = [] |
|||
for record in top_product: |
|||
total_quantity.append(record.get('total_quantity')) |
|||
product_categ = [] |
|||
for record in top_product: |
|||
product_categ.append(record.get('product_category')) |
|||
final = [total_quantity, product_categ] |
|||
return final |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 507 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 110 KiB |
@ -0,0 +1,541 @@ |
|||
<div class="row" |
|||
style="margin: 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4;text-align: center; margin: auto; display: flex;justify-content: center;"> |
|||
<a href="https://www.cybrosys.com/" target="_blank"><img src="images/cybrosys.png" |
|||
style=" width: 293px; padding: 1rem 0rem; margin: auto" |
|||
alt="cybrosys-logo"></a></div> |
|||
<div class="row" |
|||
style="margin:75px 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4; padding-bottom: 30px;"> |
|||
<div class="col-md-7 col-sm-12 col-xs-12" style="padding: 0px"> |
|||
<div style=" margin: 0 0 0px;padding: 20px 0 10;font-size: 23px;line-height: 35px;font-weight: 400;color: #000;border-top: 1px solid rgba(255,255,255,0.1);border-bottom: 1px solid rgba(255,255,255,0.11);text-align: left;"> |
|||
<h1 style="font-size: 39px;font-weight: 600;margin: 0px !important;">POS Dashboard</h1> |
|||
<h3 style="font-size: 21px;margin-top: 8px;position: relative;"> |
|||
Detailed Dashboard View for POS |
|||
</h3> |
|||
</div> |
|||
<h2 style="font-weight: 600;font-size: 1.8rem;margin-top: 15px;">Key Highlights</h2> |
|||
<ul style=" padding: 0 1px; list-style: none; "> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> |
|||
Total Pos Orders |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Session |
|||
Details |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Customer |
|||
List |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Sale |
|||
Report |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
<div class="col-md-5 col-sm-12 col-xs-12"><img src="images/pos_dashboard.gif" class="img-responsive" alt=""></div> |
|||
</div> |
|||
<div> |
|||
<section class="oe_container" style="padding: 1rem 0rem 1rem; background-color: #ffffff !important;"> |
|||
<div class="row py-4 px-3"> |
|||
<div class="w-100" style="padding-top:30px;padding-bottom:45px;border-radius: 10px;"> |
|||
<ul role="tablist" class="nav nav-pills justify-content-center" data-tabs="tabs" id="pills-tab" |
|||
style="border: none;background: unset;"> |
|||
<li class="nav-item mr-1 mb-3" |
|||
style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> |
|||
<a id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" |
|||
aria-controls="pills-home" aria-selected="true" class="nav-link active show" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400;text-align: center; |
|||
color: #fff;">Overview </a></li> |
|||
<li class="nav-item mr-1 mb-3" |
|||
style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> |
|||
<a id="pills-home-tab" data-toggle="pill" href="#pills-home1" role="tab" |
|||
aria-controls="pills-home" aria-selected="true" class="nav-link " style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; |
|||
color: #fff;">Features </a></li> |
|||
<li class="nav-item mr-1 mb-3" |
|||
style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #ffffff;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> |
|||
<a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" |
|||
aria-controls="pills-profile" aria-selected="false" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; |
|||
color: #fff;">Screenshots </a></li> |
|||
</ul> |
|||
<div class="tab-content" id="pills-tabContent" |
|||
style="padding-top: 30px; padding-bottom: 30px; padding: 30px;"> |
|||
<div class="px-3 pt-1 tab-pane fade active show" id="pills-home" role="tabpanel" aria-labelledby=" |
|||
pills-home-tab"> |
|||
<!-- Overview--> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">Overview</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<h3 class="oe_slogan" |
|||
style="text-align: center;font-size: 19px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 31px;font-weight: 400;letter-spacing: .5px;margin-bottom: 21px;"> |
|||
This module helps you to see the Overview of POS, here You can see the total orders, |
|||
sessions, top customers, top products etc |
|||
</h3> |
|||
</div> |
|||
<div class="px-3 pt-1 tab-pane fade " id="pills-home1" role="tabpanel" aria-labelledby=" |
|||
pills-home-tab"> |
|||
<!-- feature tab--> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">POS Dashboard</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<ul> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Total Pos Orders |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Session Details |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Refund Details |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Sale Details |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Sale Report Charts |
|||
</li> |
|||
<li class="mb8" |
|||
style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Top Products |
|||
</li> |
|||
|
|||
</ul> |
|||
</div> |
|||
<!-- Screenshot tab--> |
|||
<div class="px-3 tab-pane fade" id="pills-profile" role="tabpanel" |
|||
aria-labelledby="pills-profile-tab"> |
|||
<div class="tab-pane"> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">Screenshots</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div> |
|||
<section class="oe_container"> |
|||
<div id="demo" class="row carousel slide mb32" data-ride="carousel"> |
|||
<div class="carousel-inner"> |
|||
<div class="carousel-item active" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" |
|||
style="float: left;"> |
|||
<h3 class="alert" |
|||
style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> |
|||
After installation, open POS</h3> |
|||
<div style=""><img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/dashboard.png"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" |
|||
style="float: left;"> |
|||
<h3 class="alert" |
|||
style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Order and Session details</h3> |
|||
<div style=""><img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/tile_view.png"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" |
|||
style="float: left;"> |
|||
<h3 class="mb32 alert" |
|||
style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px; "> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Possible to see the pos details |
|||
in different charts</h3> |
|||
<div style=""><img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/chart_view.png"></div> |
|||
</div> |
|||
</div> |
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" |
|||
style="float: left;"> |
|||
<h3 class="mb32 alert" |
|||
style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px; "> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Details like |
|||
bank, session status, salesperson details are listed.</h3> |
|||
<div style=""><img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/tree_view.png"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<a class="carousel-control-prev" href="#demo" data-slide="prev" |
|||
style="left:-25px;width: 35px;color: #000;"> <span |
|||
class="carousel-control-prev-icon"><i class="fa fa-chevron-left" |
|||
style="font-size:24px"></i></span> |
|||
</a> <a class="carousel-control-next" href="#demo" data-slide="next" |
|||
style="right:-25px;width: 35px;color: #000;"> <span |
|||
class="carousel-control-next-icon"><i class="fa fa-chevron-right" |
|||
style="font-size:24px"></i></span> |
|||
</a> |
|||
</div> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- <div class="px-3 pt-1 tab-pane fade" id="pills-video" role="tabpanel" aria-labelledby="--> |
|||
<!-- pills-home-tab">--> |
|||
<!-- <!– Video–>--> |
|||
<!-- <h2 style="font-weight: 600;text-align: center;width: 100%;">Video</h2>--> |
|||
<!-- <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;">--> |
|||
<!-- <center>--> |
|||
<!-- <p>Project Task Timer Demo</p>--> |
|||
<!-- <!–<a href="https://www.youtube.com/watch?v=57QWXrMYe84&feature=youtu.be" target="_blank"> <img src="addon-youtube.png" style="width:80%;"></a>–>--> |
|||
<!-- <div class="s_panel_video" data-video-id="7PFB7FpMFyM?rel=0" style="cursor:pointer;">--> |
|||
<!-- <img class="img-fluid s_tooltip_tabs_tooltip_image s_figure_link pb0" src="images/task_timer_youtube.png" alt="Cybrosys Cover Video" style="max-width:100%;">--> |
|||
<!-- </div>--> |
|||
<!-- </center>--> |
|||
<!-- </div>--> |
|||
<!-- faq tab--> |
|||
<div class="px-2 px-lg-4 pt-3 tab-pane fade" id="pills-contact" role="tabpanel" |
|||
aria-labelledby="pills-contact-tab"> |
|||
<ul class="list-unstyled"> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 2rem 3rem 1rem;"> |
|||
<h2 style="font-weight: 600;text-align: center;margin-bottom: 25px;width: 100%;">Suggested Products</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div id="demo1" class="row carousel slide" data-ride="carousel"> |
|||
<!-- The slideshow --> |
|||
<div class="carousel-inner"> |
|||
<div class="carousel-item active" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/12.0/project_report_pdf/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/booking_order.png"></div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_status_level_report/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/mrp_orders.png"></div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_lifeline/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/order_line_image.png"></div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_subtask/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/pos_coupons.png"></div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/12.0/task_deadline_reminder/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/pos_return.png"></div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_time_spend/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> |
|||
<img class="img img-responsive center-block" |
|||
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
|||
src="images/product_creation.png"></div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- Left and right controls --> |
|||
<a class="carousel-control-prev" href="#demo1" data-slide="prev" |
|||
style="left:-25px;width: 35px;color: #000;"> <span class="carousel-control-prev-icon"><i |
|||
class="fa fa-chevron-left" style="font-size:24px"></i></span> </a> <a class="carousel-control-next" |
|||
href="#demo1" |
|||
data-slide="next" |
|||
style="right:-25px;width: 35px;color: #000;"> |
|||
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> |
|||
</a> |
|||
</div> |
|||
</section> |
|||
<section class="row" style="padding: 2rem 3rem 1rem;margin:0px"> |
|||
<h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;">Our Service</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div class="row" style=" display: flex; justify-content: center; flex-wrap: wrap;width: 100%; "> |
|||
<!-- <div style="display:flex;padding-top: 20px;justify-content: space-between;"> --> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Odoo Customization </a></h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Odoo Implementation </a></h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Odoo Integration </a></h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Odoo Support</a></h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Hire Odoo Developers</a></h3> |
|||
</a> |
|||
</div> |
|||
<!-- </div> --> |
|||
</div> |
|||
</section> |
|||
<section class="row" style="padding: 2rem 3rem 1rem;margin:0px"> |
|||
<div class="row" style="margin: 0"> |
|||
<h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;">Our Industries</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<!-- <div style="display:flex;justify-content: space-between;flex-wrap:wrap;"> --> |
|||
<div class="row" style="width: 100%"> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> |
|||
Trading </a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> |
|||
Easily procure and sell your products. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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;" style=" margin-bottom: 10px; "> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> |
|||
Manufacturing</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> |
|||
Plan, track and schedule your operations. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> |
|||
Restaurant</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> |
|||
Run your bar or restaurant methodical. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> |
|||
POS</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> |
|||
Easy configuring and convivial selling. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
E-commerce & Website</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> |
|||
Mobile friendly, awe-inspiring product pages. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Hotel Management</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> |
|||
An all-inclusive hotel management application. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Education</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> |
|||
A Collaborative platform for educational management. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div> |
|||
<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" |
|||
style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> |
|||
Service Management</a></h3> |
|||
<h3 class="oe_slogan" |
|||
style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> |
|||
Keep track of services and invoice accordingly. </h3> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> |
|||
<center> |
|||
<div class="col-md-12" style="margin: auto !important; |
|||
width: 70%; |
|||
padding: 30px;"> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">Need Any Help?</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<h4 style="font-size:16px;"> If you have anything to share with us based on your use of this module, please |
|||
let us know. We are ready to offer our support. </h4> |
|||
<div class="col-md-6" style="float:left; padding:20px;"> |
|||
<h4><i class="fa fa-envelope"></i>Email us </h4> |
|||
<p>odoo@cybrosys.com / info@cybrosys.com</p> |
|||
</div> |
|||
<div class="col-md-6" style="float:left; padding:20px;"> |
|||
<h4><i class="fa fa-phone"></i> Contact Us </h4> |
|||
<a href="https://www.cybrosys.com/contact/" target="_blank"> www.cybrosys.com</a> |
|||
</div> |
|||
</div> |
|||
</center> |
|||
</section> |
|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> |
|||
<div class="oe_slogan" style="margin-bottom: 0px;"> |
|||
<div style=" display: flex; justify-content: center; flex-wrap: wrap; "> |
|||
</div> |
|||
<br> |
|||
<img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" |
|||
class="center-block"> |
|||
<div style=" display: flex; justify-content: center; flex-wrap: wrap; "><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;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://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" |
|||
style="color:white;background: #ac0f18;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> |
|||
</td> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
</div> |
@ -0,0 +1,544 @@ |
|||
odoo.define('dashboard_pos.Dashboard', function (require) { |
|||
"use strict"; |
|||
|
|||
var AbstractAction = require('web.AbstractAction'); |
|||
var ajax = require('web.ajax'); |
|||
var core = require('web.core'); |
|||
var rpc = require('web.rpc'); |
|||
var session = require('web.session'); |
|||
var web_client = require('web.web_client'); |
|||
var _t = core._t; |
|||
var QWeb = core.qweb; |
|||
|
|||
var PosDashboard = AbstractAction.extend({ |
|||
template: 'PosDashboard', |
|||
events: { |
|||
'click .pos_order_today':'pos_order_today', |
|||
'click .pos_order':'pos_order', |
|||
'click .pos_total_sales':'pos_order', |
|||
'click .pos_session':'pos_session', |
|||
'click .pos_refund_orders':'pos_refund_orders', |
|||
'click .pos_refund_today_orders':'pos_refund_today_orders', |
|||
'change #pos_sales': 'onclick_pos_sales', |
|||
}, |
|||
|
|||
init: function(parent, context) { |
|||
this._super(parent, context); |
|||
this.dashboards_templates = ['PosOrders','PosChart','PosCustomer']; |
|||
this.payment_details = []; |
|||
this.top_salesperson = []; |
|||
this.selling_product = []; |
|||
this.total_sale = []; |
|||
this.total_order_count = []; |
|||
this.total_refund_count = []; |
|||
this.total_session = []; |
|||
this.today_refund_total = []; |
|||
this.today_sale = []; |
|||
}, |
|||
|
|||
willStart: function() { |
|||
var self = this; |
|||
return $.when(ajax.loadLibs(this), this._super()).then(function() { |
|||
return self.fetch_data(); |
|||
}); |
|||
}, |
|||
|
|||
start: function() { |
|||
var self = this; |
|||
this.set("title", 'Dashboard'); |
|||
return this._super().then(function() { |
|||
self.render_dashboards(); |
|||
self.render_graphs(); |
|||
self.$el.parent().addClass('oe_background_grey'); |
|||
}); |
|||
}, |
|||
|
|||
fetch_data: function() { |
|||
var self = this; |
|||
var def1 = this._rpc({ |
|||
model: 'pos.order', |
|||
method: 'get_refund_details' |
|||
}).then(function(result) { |
|||
self.total_sale = result['total_sale'], |
|||
self.total_order_count = result['total_order_count'] |
|||
self.total_refund_count = result['total_refund_count'] |
|||
self.total_session = result['total_session'] |
|||
self.today_refund_total = result['today_refund_total'] |
|||
self.today_sale = result['today_sale'] |
|||
}); |
|||
var def2 = self._rpc({ |
|||
model: "pos.order", |
|||
method: "get_details", |
|||
}) |
|||
.then(function (res) { |
|||
self.payment_details = res['payment_details']; |
|||
self.top_salesperson = res['salesperson']; |
|||
self.selling_product = res['selling_product']; |
|||
}); |
|||
return $.when(def1,def2); |
|||
}, |
|||
|
|||
render_dashboards: function() { |
|||
var self = this; |
|||
_.each(this.dashboards_templates, function(template) { |
|||
self.$('.o_pos_dashboard').append(QWeb.render(template, {widget: self})); |
|||
}); |
|||
}, |
|||
render_graphs: function(){ |
|||
var self = this; |
|||
self.render_top_customer_graph(); |
|||
self.render_top_product_graph(); |
|||
self.render_product_category_graph(); |
|||
}, |
|||
// get_emp_image_url: function(employee){
|
|||
// return window.location.origin + '/web/image?model=pos.order&field=image&id='+employee;
|
|||
// },
|
|||
|
|||
|
|||
|
|||
|
|||
pos_order_today: function(e){ |
|||
var self = this; |
|||
var date = new Date(); |
|||
var yesterday = new Date(date.getTime()); |
|||
yesterday.setDate(date.getDate() - 1); |
|||
console.log(yesterday) |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
|
|||
session.user_has_group('hr.group_hr_user').then(function(has_group){ |
|||
if(has_group){ |
|||
var options = { |
|||
on_reverse_breadcrumb: self.on_reverse_breadcrumb, |
|||
}; |
|||
self.do_action({ |
|||
name: _t("Today Order"), |
|||
type: 'ir.actions.act_window', |
|||
res_model: 'pos.order', |
|||
view_mode: 'tree,form,calendar', |
|||
view_type: 'form', |
|||
views: [[false, 'list'],[false, 'form']], |
|||
domain: [['date_order','<=', date],['date_order', '>=', yesterday]], |
|||
target: 'current' |
|||
}, options) |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
|
|||
|
|||
pos_refund_orders: function(e){ |
|||
var self = this; |
|||
var date = new Date(); |
|||
// alert(date,"date")
|
|||
var yesterday = new Date(date.getTime()); |
|||
yesterday.setDate(date.getDate() - 1); |
|||
console.log(yesterday) |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
|
|||
session.user_has_group('hr.group_hr_user').then(function(has_group){ |
|||
if(has_group){ |
|||
var options = { |
|||
on_reverse_breadcrumb: self.on_reverse_breadcrumb, |
|||
}; |
|||
self.do_action({ |
|||
name: _t("Refund Orders"), |
|||
type: 'ir.actions.act_window', |
|||
res_model: 'pos.order', |
|||
view_mode: 'tree,form,calendar', |
|||
view_type: 'form', |
|||
views: [[false, 'list'],[false, 'form']], |
|||
domain: [['amount_total', '<', 0.0]], |
|||
|
|||
// domain: [['date_order', '=', date]],
|
|||
target: 'current' |
|||
}, options) |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
pos_refund_today_orders: function(e){ |
|||
var self = this; |
|||
var date = new Date(); |
|||
// alert(date,"date")
|
|||
var yesterday = new Date(date.getTime()); |
|||
yesterday.setDate(date.getDate() - 1); |
|||
console.log(yesterday) |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
|
|||
session.user_has_group('hr.group_hr_user').then(function(has_group){ |
|||
if(has_group){ |
|||
var options = { |
|||
on_reverse_breadcrumb: self.on_reverse_breadcrumb, |
|||
}; |
|||
self.do_action({ |
|||
name: _t("Refund Orders"), |
|||
type: 'ir.actions.act_window', |
|||
res_model: 'pos.order', |
|||
view_mode: 'tree,form,calendar', |
|||
view_type: 'form', |
|||
views: [[false, 'list'],[false, 'form']], |
|||
domain: [['amount_total', '<', 0.0],['date_order','<=', date],['date_order', '>=', yesterday]], |
|||
// domain: [['date_order', '=', date]],
|
|||
target: 'current' |
|||
}, options) |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
|
|||
pos_order: function(e){ |
|||
var self = this; |
|||
var date = new Date(); |
|||
var yesterday = new Date(date.getTime()); |
|||
yesterday.setDate(date.getDate() - 1); |
|||
console.log(yesterday) |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
session.user_has_group('hr.group_hr_user').then(function(has_group){ |
|||
if(has_group){ |
|||
var options = { |
|||
on_reverse_breadcrumb: self.on_reverse_breadcrumb, |
|||
}; |
|||
self.do_action({ |
|||
name: _t("Total Order"), |
|||
type: 'ir.actions.act_window', |
|||
res_model: 'pos.order', |
|||
view_mode: 'tree,form,calendar', |
|||
view_type: 'form', |
|||
views: [[false, 'list'],[false, 'form']], |
|||
// domain: [['amount_total', '<', 0.0]],
|
|||
target: 'current' |
|||
}, options) |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
pos_session: function(e){ |
|||
var self = this; |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
session.user_has_group('hr.group_hr_user').then(function(has_group){ |
|||
if(has_group){ |
|||
var options = { |
|||
on_reverse_breadcrumb: self.on_reverse_breadcrumb, |
|||
}; |
|||
self.do_action({ |
|||
name: _t("sessions"), |
|||
type: 'ir.actions.act_window', |
|||
res_model: 'pos.session', |
|||
view_mode: 'tree,form,calendar', |
|||
view_type: 'form', |
|||
views: [[false, 'list'],[false, 'form']], |
|||
// domain: [['state','=', In Progress]],
|
|||
target: 'current' |
|||
}, options) |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
|
|||
onclick_pos_sales:function(events){ |
|||
var option = $(events.target).val(); |
|||
console.log('came monthly') |
|||
var self = this |
|||
var ctx = self.$("#canvas_1"); |
|||
rpc.query({ |
|||
model: "pos.order", |
|||
method: "get_department", |
|||
args: [option], |
|||
}).then(function (arrays) { |
|||
console.log(arrays) |
|||
var data = { |
|||
labels: arrays[1], |
|||
datasets: [ |
|||
{ |
|||
label: arrays[2], |
|||
data: arrays[0], |
|||
backgroundColor: [ |
|||
"rgba(255, 99, 132,1)", |
|||
"rgba(54, 162, 235,1)", |
|||
"rgba(75, 192, 192,1)", |
|||
"rgba(153, 102, 255,1)", |
|||
"rgba(10,20,30,1)" |
|||
], |
|||
borderColor: [ |
|||
"rgba(255, 99, 132, 0.2)", |
|||
"rgba(54, 162, 235, 0.2)", |
|||
"rgba(75, 192, 192, 0.2)", |
|||
"rgba(153, 102, 255, 0.2)", |
|||
"rgba(10,20,30,0.3)" |
|||
], |
|||
borderWidth: 1 |
|||
}, |
|||
|
|||
] |
|||
}; |
|||
|
|||
//options
|
|||
var options = { |
|||
responsive: true, |
|||
title: { |
|||
display: true, |
|||
position: "top", |
|||
text: "SALE DETAILS", |
|||
fontSize: 18, |
|||
fontColor: "#111" |
|||
}, |
|||
legend: { |
|||
display: true, |
|||
position: "bottom", |
|||
labels: { |
|||
fontColor: "#333", |
|||
fontSize: 16 |
|||
} |
|||
}, |
|||
scales: { |
|||
yAxes: [{ |
|||
ticks: { |
|||
min: 0 |
|||
} |
|||
}] |
|||
} |
|||
}; |
|||
|
|||
//create Chart class object
|
|||
if (window.myCharts != undefined) |
|||
window.myCharts.destroy(); |
|||
window.myCharts = new Chart(ctx, { |
|||
// var chart = new Chart(ctx, {
|
|||
type: "bar", |
|||
data: data, |
|||
options: options |
|||
}); |
|||
|
|||
}); |
|||
}, |
|||
|
|||
|
|||
render_top_customer_graph:function(){ |
|||
var self = this |
|||
var ctx = self.$(".top_customer"); |
|||
rpc.query({ |
|||
model: "pos.order", |
|||
method: "get_the_top_customer", |
|||
}).then(function (arrays) { |
|||
|
|||
|
|||
var data = { |
|||
labels: arrays[1], |
|||
datasets: [ |
|||
{ |
|||
label: "", |
|||
data: arrays[0], |
|||
backgroundColor: [ |
|||
"rgb(148, 22, 227)", |
|||
"rgba(54, 162, 235)", |
|||
"rgba(75, 192, 192)", |
|||
"rgba(153, 102, 255)", |
|||
"rgba(10,20,30)" |
|||
], |
|||
borderColor: [ |
|||
"rgba(255, 99, 132,)", |
|||
"rgba(54, 162, 235,)", |
|||
"rgba(75, 192, 192,)", |
|||
"rgba(153, 102, 255,)", |
|||
"rgba(10,20,30,)" |
|||
], |
|||
borderWidth: 1 |
|||
}, |
|||
|
|||
] |
|||
}; |
|||
|
|||
//options
|
|||
var options = { |
|||
responsive: true, |
|||
title: { |
|||
display: true, |
|||
position: "top", |
|||
text: " Top Customer", |
|||
fontSize: 18, |
|||
fontColor: "#111" |
|||
}, |
|||
legend: { |
|||
display: true, |
|||
position: "bottom", |
|||
labels: { |
|||
fontColor: "#333", |
|||
fontSize: 16 |
|||
} |
|||
}, |
|||
scales: { |
|||
yAxes: [{ |
|||
ticks: { |
|||
min: 0 |
|||
} |
|||
}] |
|||
} |
|||
}; |
|||
|
|||
//create Chart class object
|
|||
var chart = new Chart(ctx, { |
|||
type: "pie", |
|||
data: data, |
|||
options: options |
|||
}); |
|||
|
|||
}); |
|||
}, |
|||
|
|||
render_top_product_graph:function(){ |
|||
var self = this |
|||
var ctx = self.$(".top_selling_product"); |
|||
rpc.query({ |
|||
model: "pos.order", |
|||
method: "get_the_top_products", |
|||
}).then(function (arrays) { |
|||
|
|||
|
|||
var data = { |
|||
labels: arrays[1], |
|||
datasets: [ |
|||
{ |
|||
label: "Quantity", |
|||
data: arrays[0], |
|||
backgroundColor: [ |
|||
"rgba(255, 99, 132,1)", |
|||
"rgba(54, 162, 235,1)", |
|||
"rgba(75, 192, 192,1)", |
|||
"rgba(153, 102, 255,1)", |
|||
"rgba(10,20,30,1)" |
|||
], |
|||
borderColor: [ |
|||
"rgba(255, 99, 132, 0.2)", |
|||
"rgba(54, 162, 235, 0.2)", |
|||
"rgba(75, 192, 192, 0.2)", |
|||
"rgba(153, 102, 255, 0.2)", |
|||
"rgba(10,20,30,0.3)" |
|||
], |
|||
borderWidth: 1 |
|||
}, |
|||
|
|||
] |
|||
}; |
|||
|
|||
//options
|
|||
var options = { |
|||
responsive: true, |
|||
title: { |
|||
display: true, |
|||
position: "top", |
|||
text: " Top products", |
|||
fontSize: 18, |
|||
fontColor: "#111" |
|||
}, |
|||
legend: { |
|||
display: true, |
|||
position: "bottom", |
|||
labels: { |
|||
fontColor: "#333", |
|||
fontSize: 16 |
|||
} |
|||
}, |
|||
scales: { |
|||
yAxes: [{ |
|||
ticks: { |
|||
min: 0 |
|||
} |
|||
}] |
|||
} |
|||
}; |
|||
|
|||
//create Chart class object
|
|||
var chart = new Chart(ctx, { |
|||
type: "horizontalBar", |
|||
data: data, |
|||
options: options |
|||
}); |
|||
|
|||
}); |
|||
}, |
|||
|
|||
render_product_category_graph:function(){ |
|||
var self = this |
|||
var ctx = self.$(".top_product_categories"); |
|||
rpc.query({ |
|||
model: "pos.order", |
|||
method: "get_the_top_categories", |
|||
}).then(function (arrays) { |
|||
|
|||
|
|||
var data = { |
|||
labels: arrays[1], |
|||
datasets: [ |
|||
{ |
|||
label: "Quantity", |
|||
data: arrays[0], |
|||
backgroundColor: [ |
|||
"rgba(255, 99, 132,1)", |
|||
"rgba(54, 162, 235,1)", |
|||
"rgba(75, 192, 192,1)", |
|||
"rgba(153, 102, 255,1)", |
|||
"rgba(10,20,30,1)" |
|||
], |
|||
borderColor: [ |
|||
"rgba(255, 99, 132, 0.2)", |
|||
"rgba(54, 162, 235, 0.2)", |
|||
"rgba(75, 192, 192, 0.2)", |
|||
"rgba(153, 102, 255, 0.2)", |
|||
"rgba(10,20,30,0.3)" |
|||
], |
|||
borderWidth: 1 |
|||
}, |
|||
|
|||
|
|||
] |
|||
}; |
|||
|
|||
//options
|
|||
var options = { |
|||
responsive: true, |
|||
title: { |
|||
display: true, |
|||
position: "top", |
|||
text: " Top product categories", |
|||
fontSize: 18, |
|||
fontColor: "#111" |
|||
}, |
|||
legend: { |
|||
display: true, |
|||
position: "bottom", |
|||
labels: { |
|||
fontColor: "#333", |
|||
fontSize: 16 |
|||
} |
|||
}, |
|||
scales: { |
|||
yAxes: [{ |
|||
ticks: { |
|||
min: 0 |
|||
} |
|||
}] |
|||
} |
|||
}; |
|||
|
|||
//create Chart class object
|
|||
var chart = new Chart(ctx, { |
|||
type: "horizontalBar", |
|||
data: data, |
|||
options: options |
|||
}); |
|||
|
|||
}); |
|||
}, |
|||
}); |
|||
|
|||
|
|||
core.action_registry.add('pos_dashboard', PosDashboard); |
|||
|
|||
return PosDashboard; |
|||
|
|||
}); |
@ -0,0 +1,305 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<templates id="template" xml:space="preserve"> |
|||
<t t-name="PosDashboard"> |
|||
<div class="oh_dashboards"> |
|||
<div class="container-fluid o_pos_dashboard"> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
<t t-name="PosOrders"> |
|||
<div class="row main-section"> |
|||
<div class="col-md-4 col-sm-6 pos_order_today oh-payslip"> |
|||
<div class="oh-card" style="width: 288px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<!-- <div class="stat-icon" style="background:#5bcbd0"><t t-esc="widget.today_sale"/></div>--> |
|||
|
|||
<div class="stat-icon" style="background:#5bcbd0"><i class="fa fa-shopping-bag"/></div> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Today Orders</div> |
|||
<div class="stat_count"><t t-esc="widget.today_sale"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 pos_order oh-payslip"> |
|||
<div class="oh-card" style="width: 288px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<!-- <div class="stat-icon" style="background:#645bd0"><t t-esc="widget.total_order_count"/></div>--> |
|||
<div class="stat-icon" style="background:#645bd0"><i class="fa fa-shopping-bag"/></div> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Total Orders</div> |
|||
<div class="stat_count"><t t-esc="widget.total_order_count"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 pos_total_sales oh-payslip"> |
|||
<div class="oh-card" style="width: 350px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<div class="stat-icon" style="background:#85d05b"><i class="fa fa-shopping-cart"/></div> |
|||
<!-- <div class="stat-icon" style="width:150px;background:##85d05b"><t t-esc="widget.total_sale"/></div>--> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Total Sales</div> |
|||
<div class="stat_count"><t t-esc="widget.total_sale"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 pos_session oh-payslip"> |
|||
<div class="oh-card" style="width: 288px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<div class="stat-icon" style="background:#d05bb8"><i class="fa fa-signal"/></div> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Sessions</div> |
|||
<div class="stat_count"><t t-esc="widget.total_session"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-md-4 col-sm-6 pos_refund_orders oh-payslip"> |
|||
<div class="oh-card" style="width: 288px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<div class="stat-icon" style="background:#d0c35b"><i class="fa fa-minus-circle"/></div> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Total Refund Orders</div> |
|||
<div class="stat_count"><t t-esc="widget.total_refund_count"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 pos_refund_today_orders oh-payslip"> |
|||
<div class="oh-card" style="width: 350px;"> |
|||
<div class="oh-card-body"> |
|||
<div class="stat-widget-one"> |
|||
<div class="stat-icon" style="background:#5b8ed0"><i class="fa fa-minus-circle"/></div> |
|||
<div class="stat-content"> |
|||
<div class="stat-head">Today Refund Order</div> |
|||
<div class="stat_count"><t t-esc="widget.today_refund_total"/></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</t> |
|||
<t t-name="PosChart"> |
|||
<div class="col-xs-12 col-sm-12 col-lg-12 col-md-12"> |
|||
<div class="row" style="margin:0px;"> |
|||
<div class="col-md-6" id="col-graph"> |
|||
<div class="card"> |
|||
<div class="card-header"> |
|||
<div class="card-title"> |
|||
<b> |
|||
<h3 class="custom-h3">SALE REPORT</h3> |
|||
</b> |
|||
</div> |
|||
<div class="card-tools"> |
|||
<select id="pos_sales"> |
|||
<!-- <option value="pos_hourly_sales">Select</option>--> |
|||
<option style="display:none;"> -- select an option -- </option> |
|||
<option value="pos_hourly_sales">Hourly</option> |
|||
<option value="pos_monthly_sales">Monthly</option> |
|||
<option value="pos_year_sales">Yearly</option> |
|||
</select> |
|||
</div> |
|||
</div> |
|||
<div class="card-body mt-3" id="in_ex_body_hide"> |
|||
<div class="row"> |
|||
<div class="col-md-12"> |
|||
<p id="myelement1"></p> |
|||
<div class="chart"> |
|||
<canvas id="canvas_1" width="200" height="90"></canvas> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-sm-6 col-lg-6 top_customer_graph_view"> |
|||
<div class="oh-card text-color"> |
|||
<div class="oh-card-body pb-0"> |
|||
<h4 class="mb-0"> |
|||
</h4> |
|||
</div> |
|||
<canvas class="top_customer" width="200" height="120"/> |
|||
</div> |
|||
</div> |
|||
<div class="col-sm-6 col-lg-6 selling_product_graph_view"> |
|||
<div class="oh-card text-color"> |
|||
<div class="oh-card-body pb-0"> |
|||
<h4 class="mb-0"> |
|||
</h4> |
|||
</div> |
|||
<canvas class="top_selling_product" width="200" height="120"/> |
|||
</div> |
|||
</div> |
|||
<div class="col-sm-6 col-lg-6 selling_product_graph_view"> |
|||
<div class="oh-card text-color"> |
|||
<div class="oh-card-body pb-0"> |
|||
<h4 class="mb-0"> |
|||
</h4> |
|||
</div> |
|||
<canvas class="top_product_categories" width="200" height="120"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</t> |
|||
|
|||
<t t-name="PosCustomer"> |
|||
<div class="employee_dashboard_main"> |
|||
<div class="row main-section"> |
|||
<div class="col-md-4 col-lg-4"> |
|||
<div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); |
|||
height: 316px;overflow-y: auto;margin-bottom: 15px;"> |
|||
<div class="hr_notification_head" |
|||
style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background: #de6a5e;margin-bottom: 9px;"> |
|||
Sale by Salesperson |
|||
</div> |
|||
<div class="col-sm-12 col-lg-12" style="padding:0;"> |
|||
<div class="text-color"> |
|||
<div class=""> |
|||
<div class="media"> |
|||
<div class="media-body"> |
|||
<table class="table table-sm"> |
|||
<thead> |
|||
<tr> |
|||
<th rowspan="12">Name   </th> |
|||
<th rowspan="12">orders</th> |
|||
<th rowspan="12">Amount</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<t t-foreach="widget.top_salesperson" t-as="salesperson"> |
|||
<tr> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="salesperson[0]"/> |
|||
</h2> |
|||
</td> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="salesperson[2]"/> |
|||
</h2> |
|||
</td> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="salesperson[1]"/> |
|||
</h2> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</div></div></div></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-lg-4"> |
|||
<div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); |
|||
height: 316px;overflow-y: auto;margin-bottom: 15px;"> |
|||
<div class="hr_notification_head" |
|||
style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background:#de6a5e;;margin-bottom: 9px;"> |
|||
Payment Method |
|||
</div> |
|||
<div class="col-sm-12 col-lg-12" style="padding:0;"> |
|||
<div class="text-color"> |
|||
<div class=""> |
|||
<div class="media"> |
|||
<div class="media-body"> |
|||
<table class="table table-sm"> |
|||
<thead> |
|||
<tr> |
|||
<th rowspan="12">Payment Method   </th> |
|||
<th rowspan="12">Amount</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<t t-foreach="widget.payment_details" t-as="payment_method"> |
|||
<tr> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="payment_method[0]"/> |
|||
</h2> |
|||
</td> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="payment_method[1]"/> |
|||
</h2> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</div></div></div></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="col-md-4 col-lg-4"> |
|||
<div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); |
|||
height: 316px;overflow-y: auto;margin-bottom: 15px;"> |
|||
<div class="hr_notification_head" |
|||
style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background: #de6a5e;margin-bottom: 9px;"> |
|||
Session Status |
|||
</div> |
|||
<div class="col-sm-12 col-lg-12" style="padding:0;"> |
|||
<div class="text-color"> |
|||
<div class=""> |
|||
<div class="media"> |
|||
<div class="media-body"> |
|||
<table class="table table-sm"> |
|||
<thead> |
|||
<tr> |
|||
<th rowspan="12">Session   </th> |
|||
<th rowspan="12">Status</th> |
|||
<!-- <th rowspan="12">Amount</th>--> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<t t-foreach="widget.selling_product" t-as="session"> |
|||
<tr> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="session['session']"/> |
|||
</h2> |
|||
</td> |
|||
<td> |
|||
<h2 class="text-color display-6" style="font-size: 15px;"> |
|||
<t t-esc="session['status']"/> |
|||
</h2> |
|||
</td> |
|||
<!-- <td>--> |
|||
<!-- <h2 class="text-color display-6" style="font-size: 15px;">--> |
|||
<!-- <t t-esc="salesperson[1]"/>--> |
|||
<!-- </h2>--> |
|||
<!-- </td>--> |
|||
</tr> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</div></div></div></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</t> |
|||
</templates> |
@ -0,0 +1,21 @@ |
|||
<odoo> |
|||
<data> |
|||
<record id="action_pos_dashboard" model="ir.actions.client"> |
|||
<field name="name">Dashboard</field> |
|||
<field name="tag">pos_dashboard</field> |
|||
</record> |
|||
|
|||
<menuitem name="Dashboard" id="pos_dashboard" parent="point_of_sale.menu_point_rep" |
|||
sequence="1" |
|||
groups="point_of_sale.group_pos_manager" |
|||
action="action_pos_dashboard"/> |
|||
</data> |
|||
|
|||
<template id="assets_backend_dashboard" name="POS Dashboard assets inherit" inherit_id="web.assets_backend"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/dashboard_pos/static/src/js/pos_dashboard.js"/> |
|||
<link rel="stylesheet" href="/dashboard_pos/static/src/css/pos_dashboard.css"/> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.js"></script> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
@ -0,0 +1,14 @@ |
|||
POS Serial Number Validator v14 |
|||
=============================== |
|||
|
|||
Validate Serial number of a product by checking availability in stock |
|||
|
|||
Credits |
|||
======= |
|||
Cybrosys Techno Solutions |
|||
|
|||
Author |
|||
------ |
|||
* Akhilesh N S <odoo@cybrosys.com> |
|||
* V13 Sreenath |
|||
* V14 Jibin James |
@ -0,0 +1,22 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2019-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Akhilesh N S(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from . import models |
@ -0,0 +1,40 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2020-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Akhilesh N S(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
{ |
|||
'name': 'POS Serial Number Validator', |
|||
'version': '14.0.1.0.0', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': 'https://www.cybrosys.com', |
|||
'category': 'Point of Sale', |
|||
'summary': """Validate Serial number of a product by checking availability in stock""", |
|||
'description': """Validate Serial number of a product by checking availability in stock""", |
|||
'depends': ['point_of_sale'], |
|||
'data': [ |
|||
'static/src/xml/pos_templates.xml', |
|||
], |
|||
'images': ['static/description/banner.png'], |
|||
'license': 'LGPL-3', |
|||
'installable': True, |
|||
'auto_install': False, |
|||
} |
|||
|
@ -0,0 +1,7 @@ |
|||
## Module <pos_traceability_validation> |
|||
|
|||
#### 08.04.2021 |
|||
#### Version 14.0.1.0.0 |
|||
#### ADD |
|||
|
|||
Initial Commit |
@ -0,0 +1,22 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2019-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Akhilesh N S(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from . import traceability_validation |
@ -0,0 +1,45 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# |
|||
# Copyright (C) 2019-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Akhilesh N S(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# 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 <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from odoo import models, api |
|||
|
|||
|
|||
class ValidateLotNumber(models.Model): |
|||
_name = 'serial_no.validation' |
|||
|
|||
@api.model |
|||
def validate_lots(self, lots): |
|||
processed = [] |
|||
LotObj = self.env['stock.production.lot'] |
|||
for lot in lots: |
|||
lot_id = LotObj.search([('name', '=', lot)], limit=1) |
|||
try: |
|||
if lot_id.product_qty > 0 and lot not in processed: |
|||
processed.append(lot) |
|||
continue |
|||
else: |
|||
if lot in processed: |
|||
return ['duplicate', lot] |
|||
else: |
|||
return ['no_stock', lot] |
|||
except Exception: |
|||
return ['except', lot] |
|||
return True |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 57 KiB |
@ -0,0 +1,296 @@ |
|||
<div class="row" style="margin: 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4;text-align: center; margin: auto; display: flex;justify-content: center;"> <a href="https://www.cybrosys.com/" target="_blank"><img src="images/cybrosys.png" style=" width: 293px; padding: 1rem 0rem; margin: auto" alt="cybrosys-logo"></a> </div> |
|||
<div class="row" style="margin:75px 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4; padding-bottom: 30px;"> |
|||
<div class="col-md-7 col-sm-12 col-xs-12" style="padding: 0px"> |
|||
<div style=" margin: 0 0 0px;padding: 20px 0 10;font-size: 23px;line-height: 35px;font-weight: 400;color: #000;border-top: 1px solid rgba(255,255,255,0.1);border-bottom: 1px solid rgba(255,255,255,0.11);text-align: left;"> |
|||
<h1 style="font-size: 39px;font-weight: 600;margin: 0px !important;"> POS Serial Number Validator </h1> |
|||
<h3 style="font-size: 21px;margin-top: 8px;position: relative;"> Validate the given Serial number of a product from stock </h3> |
|||
</div> |
|||
<h2 style="font-weight: 600;font-size: 1.8rem;margin-top: 15px;">Key Highlights</h2> |
|||
<ul style=" padding: 0 1px; list-style: none; "> |
|||
<li style="display: flex;align-items: center;padding: 8px 0;font-size: 18px;"><i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Validates given serial number is available in stock </li> |
|||
<li style="display: flex;align-items: center;padding: 8px 0;font-size: 18px;"><i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Prevents duplicated entry for more than one quantity </li> |
|||
|
|||
</ul> |
|||
</div> |
|||
<div class="col-md-5 col-sm-12 col-xs-12"> <img src="images/pos.png" class="img-responsive" alt=""> </div> |
|||
</div> |
|||
|
|||
<div> |
|||
<section class="oe_container" style="padding: 1rem 0rem 1rem; background-color: #ffffff !important;"> |
|||
<div class="row py-4 px-3"> |
|||
<div class="w-100" style="padding-top:30px;padding-bottom:45px;border-radius: 10px;"> |
|||
<ul role="tablist" class="nav nav-pills justify-content-center" data-tabs="tabs" id="pills-tab" style="border: none;background: unset;"> |
|||
<li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true" class="nav-link active show" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400;text-align: center; |
|||
color: #fff;">Overview </a> </li> |
|||
<li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a id="pills-home-tab" data-toggle="pill" href="#pills-home1" role="tab" aria-controls="pills-home" aria-selected="true" class="nav-link " style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; |
|||
color: #fff;" >Features </a> </li> |
|||
<li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #ffffff;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; |
|||
color: #fff;">Screenshots </a> </li> |
|||
|
|||
</ul> |
|||
<div class="tab-content" id="pills-tabContent" |
|||
style="padding-top: 30px; padding-bottom: 30px; padding: 30px;"> |
|||
<div class="px-3 pt-1 tab-pane fade active show" id="pills-home" role="tabpanel" aria-labelledby=" |
|||
pills-home-tab"> |
|||
<!-- Overview--> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">Overview</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<h3 class="oe_slogan" style="text-align: center;font-size: 19px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 31px;font-weight: 400;letter-spacing: .5px;margin-bottom: 21px;"> |
|||
Currently in Odoo, Serial number validation at POS not available. This module validates given serial number is available in stock and prevent duplicated entry for more than one quantity. </h3> |
|||
</div> |
|||
<div class="px-3 pt-1 tab-pane fade " id="pills-home1" role="tabpanel" aria-labelledby=" |
|||
pills-home-tab"> |
|||
<!-- feature tab--> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;"> POS Serial Number Validator </h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<ul> |
|||
<li class="mb8" style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Validates given serial number is available in stock |
|||
</li> |
|||
|
|||
<li class="mb8" style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;"> |
|||
<i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Prevents duplicated entry for more than one quantity |
|||
</li> |
|||
|
|||
</ul> |
|||
</div> |
|||
<!-- Screenshot tab--> |
|||
<div class="px-3 tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab" > |
|||
<div class="tab-pane"> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;">Screenshots</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div> |
|||
<section class="oe_container"> |
|||
<div id="demo" class="row carousel slide mb32" data-ride="carousel"> |
|||
<div class="carousel-inner"> |
|||
|
|||
<div class="carousel-item active" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> |
|||
<h3 class="alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Warnings for invalid Serial Number </h3> |
|||
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/pos1.png"> </div> |
|||
|
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> |
|||
|
|||
<h3 class="alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Warnings for Duplicate Serial Number </h3> |
|||
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/pos2.png"> </div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<a class="carousel-control-prev" href="#demo" data-slide="prev" style="left:-25px;width: 35px;color: #000;"> <span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span> </a> <a class="carousel-control-next" href="#demo" data-slide="next" style="right:-25px;width: 35px;color: #000;"> <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> </a> |
|||
</div> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- faq tab--> |
|||
<div class="px-2 px-lg-4 pt-3 tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab"> |
|||
<ul class="list-unstyled"> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 2rem 3rem 1rem;"> |
|||
<h2 style="font-weight: 600;text-align: center;margin-bottom: 25px;width: 100%;"> Suggested Products </h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div id="demo1" class="row carousel slide" data-ride="carousel"> |
|||
<!-- The slideshow --> |
|||
<div class="carousel-inner"> |
|||
<div class="carousel-item active" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/12.0/project_report_pdf/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_project_report_xls_pdf.png"> </div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_status_level_report/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_project_status_report.png"> </div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_lifeline/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_lifeline_for_task.jpeg"> </div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<div class="carousel-item" style="min-height: 0px;"> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_subtask/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_subtask.jpeg"> </div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/12.0/task_deadline_reminder/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_task_deadline_reminder.jpeg"> </div> |
|||
</a> |
|||
</div> |
|||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> |
|||
<a href="https://apps.odoo.com/apps/modules/10.0/project_time_spend/" target="_blank"> |
|||
<div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/banner_task_statusbar.jpeg"> </div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- Left and right controls --> |
|||
<a class="carousel-control-prev" href="#demo1" data-slide="prev" style="left:-25px;width: 35px;color: #000;"> <span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span> </a> <a class="carousel-control-next" href="#demo1" data-slide="next" style="right:-25px;width: 35px;color: #000;"> <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> </a> |
|||
</div> |
|||
</section> |
|||
<section class="row" style="padding: 2rem 3rem 1rem;margin:0px"> |
|||
<h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;"> Our Service </h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<div class="row" style=" display: flex; justify-content: center; flex-wrap: wrap;width: 100%; "> |
|||
<!-- <div style="display:flex;padding-top: 20px;justify-content: space-between;"> --> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Customization </a> </h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Implementation </a> </h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Integration </a> </h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Support</a> </h3> |
|||
</div> |
|||
<div class="col-md-2 col-sm-6 col-xs-12"> |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Hire Odoo Developers</a> </h3> |
|||
</a> |
|||
</div> |
|||
<!-- </div> --> |
|||
</div> |
|||
</section> |
|||
<section class="row" style="padding: 2rem 3rem 1rem;margin:0px"> |
|||
<div class="row" style="margin: 0"> |
|||
<h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;"> Our Industries</h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<!-- <div style="display:flex;justify-content: space-between;flex-wrap:wrap;"> --> |
|||
<div class="row" style="width: 100%"> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Trading </a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> Easily procure and sell your products. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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;" style=" margin-bottom: 10px; "> |
|||
<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" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Manufacturing</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> Plan, track and schedule your operations. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Restaurant</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> Run your bar or restaurant methodical. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> POS</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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;font-family: 'Montserrat',sans-serif;"> Easy configuring and convivial selling. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> E-commerce & Website</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> Mobile friendly, awe-inspiring product pages. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Hotel Management</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> An all-inclusive hotel management application. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Education</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> A Collaborative platform for educational management. </h3> |
|||
</div> |
|||
</div> |
|||
<div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> |
|||
<div > |
|||
<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" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Service Management</a> </h3> |
|||
<h3 class="oe_slogan" style=" text-align: left;font-size: 12px;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; font-family: 'Montserrat',sans-serif;"> Keep track of services and invoice accordingly. </h3> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> |
|||
<center> |
|||
<div class="col-md-12" style="margin: auto !important; |
|||
width: 70%; |
|||
padding: 30px;"> |
|||
<h2 style="font-weight: 600;text-align: center;width: 100%;"> Need Any Help? </h2> |
|||
<hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> |
|||
<h4 style="font-size:16px;"> If you have anything to share with us based on your use of this module, please let us know. We are ready to offer our support. </h4> |
|||
<div class="col-md-6" style="float:left; padding:20px;"> |
|||
<h4><i class="fa fa-envelope"></i> Email us </h4> |
|||
<p>odoo@cybrosys.com / info@cybrosys.com</p> |
|||
</div> |
|||
<div class="col-md-6" style="float:left; padding:20px;"> |
|||
<h4><i class="fa fa-phone"></i> Contact Us </h4> |
|||
<a href="https://www.cybrosys.com/contact/" target="_blank"> www.cybrosys.com </a> |
|||
</div> |
|||
</div> |
|||
</center> |
|||
</section> |
|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> |
|||
<div class="oe_slogan" style="margin-bottom: 0px;"> |
|||
<div style=" display: flex; justify-content: center; flex-wrap: wrap; "> |
|||
</div> |
|||
<br> |
|||
<img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" class="center-block"> |
|||
<div style=" display: flex; justify-content: center; flex-wrap: wrap; "> <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;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://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> |
|||
</td> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
</div> |
@ -0,0 +1,64 @@ |
|||
odoo.define('pos_traceability_validation.pos_models', function (require) { |
|||
"use strict"; |
|||
|
|||
const EditListPopup = require('point_of_sale.EditListPopup'); |
|||
const Registries = require('point_of_sale.Registries'); |
|||
var rpc = require('web.rpc'); |
|||
|
|||
const PosEditlistpopup = (EditListPopup) => |
|||
class extends EditListPopup { |
|||
async confirm() { |
|||
|
|||
if (this.props.title == 'Lot/Serial Number(s) Required'){ |
|||
|
|||
var lot_string = this.state.array |
|||
var lot_names = []; |
|||
for (var i = 0; i < lot_string.length; i++) { |
|||
|
|||
if (lot_string[i].text != ""){ |
|||
lot_names.push(lot_string[i].text); |
|||
} |
|||
|
|||
} |
|||
|
|||
const result = await rpc.query({ |
|||
model: 'serial_no.validation', |
|||
method: 'validate_lots', |
|||
args: [lot_names] |
|||
}) |
|||
|
|||
if(result != true){ |
|||
if(result[0] == 'no_stock'){ |
|||
alert("Insufficient stock for " + result[1]) |
|||
} |
|||
else if(result[0] == 'duplicate'){ |
|||
alert("Duplicate entry for " + result[1]) |
|||
} |
|||
else if(result[0] == 'except'){ |
|||
alert("Exception occured with " + result[1]) |
|||
} |
|||
} |
|||
else{ |
|||
this.props.resolve({ confirmed: true, payload: await this.getPayload() }); |
|||
this.trigger('close-popup'); |
|||
|
|||
} |
|||
} |
|||
else{ |
|||
this.props.resolve({ confirmed: true, payload: await this.getPayload() }); |
|||
this.trigger('close-popup'); |
|||
} |
|||
|
|||
} |
|||
|
|||
}; |
|||
|
|||
Registries.Component.extend(EditListPopup, PosEditlistpopup); |
|||
|
|||
return EditListPopup; |
|||
|
|||
|
|||
}); |
|||
|
|||
|
|||
|
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<odoo> |
|||
<template id="pos_extend_assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_traceability_validation/static/src/js/pos_models.js"/> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
|||
|