@ -0,0 +1,18 @@ |
|||||
|
Payment Approval v14 |
||||
|
==================== |
||||
|
Enables to use the approval feature in customer and vendor payments. |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
No additional files neeeded. |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
|
||||
|
No configurations needed. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
Developer: v13.0 Mashood K U @ cybrosys, odoo@cybrosys.com |
||||
|
v14.0 Minhaj T @ cybrosys, odoo@cybrosys.com |
||||
|
|
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
||||
|
# Author: Cybrosys Techno Solutions(<https://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 |
||||
|
# (LGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
|
||||
|
from . import models |
@ -0,0 +1,44 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
||||
|
# Author: Cybrosys Techno Solutions(<https://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 |
||||
|
# (LGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
|
||||
|
{ |
||||
|
'name': 'Payment Approvals', |
||||
|
'version': '14.0.1.0.0', |
||||
|
'category': 'Accounting', |
||||
|
'summary': """ This modules enables approval feature in the payment.""", |
||||
|
'description': """This modules enables approval feature in the payment. """, |
||||
|
'author': ' Cybrosys Techno Solutions', |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'maintainer': 'Cybrosys Techno Solutions', |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['account'], |
||||
|
'data': [ |
||||
|
'views/res_config_settings_views.xml', |
||||
|
'views/account_payment_view.xml', |
||||
|
], |
||||
|
'license': 'LGPL-3', |
||||
|
'images': ['static/description/banner.png'], |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': True, |
||||
|
} |
||||
|
|
@ -0,0 +1,7 @@ |
|||||
|
## Module <account_payment_approval> |
||||
|
|
||||
|
#### 27.10.2020 |
||||
|
#### Version 14.0.1.0.0 |
||||
|
##### ADD |
||||
|
- Initial commit for Payment Approval |
||||
|
|
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
||||
|
# Author: Cybrosys Techno Solutions(<https://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 |
||||
|
# (LGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
|
||||
|
from . import account_payment |
||||
|
from . import res_config_settings |
@ -0,0 +1,94 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
||||
|
# Author: Cybrosys Techno Solutions(<https://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 |
||||
|
# (LGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
|
||||
|
from odoo import models, fields, _ |
||||
|
from odoo.exceptions import UserError, ValidationError |
||||
|
|
||||
|
|
||||
|
class AccountMove(models.Model): |
||||
|
_inherit = "account.move" |
||||
|
state = fields.Selection(selection_add=[('waiting_approval', 'Waiting For Approval'), |
||||
|
('approved', 'Approved'), |
||||
|
('rejected', 'Rejected')], |
||||
|
ondelete={'waiting_approval': 'set default', 'approved': 'set default', |
||||
|
'rejected': 'set default'}) |
||||
|
|
||||
|
|
||||
|
class AccountPayment(models.Model): |
||||
|
_inherit = "account.payment" |
||||
|
_inherits = {'account.move': 'move_id'} |
||||
|
|
||||
|
def _check_is_approver(self): |
||||
|
approval = self.env['ir.config_parameter'].sudo().get_param( |
||||
|
'account_payment_approval.payment_approval') |
||||
|
approver_id = int(self.env['ir.config_parameter'].sudo().get_param( |
||||
|
'account_payment_approval.approval_user_id')) |
||||
|
self.is_approver = True if self.env.user.id == approver_id and approval else False |
||||
|
|
||||
|
is_approver = fields.Boolean(compute=_check_is_approver, readonly=True) |
||||
|
|
||||
|
def action_post(self): |
||||
|
"""Overwrites the _post() to validate the payment in the 'approved' stage too. |
||||
|
Currently Odoo allows payment posting only in draft stage. |
||||
|
""" |
||||
|
validation = self._check_payment_approval() |
||||
|
if validation: |
||||
|
if self.state not in ('draft', 'approved'): |
||||
|
raise UserError(_("Only a draft or approved payment can be posted.")) |
||||
|
|
||||
|
if any(inv.state != 'posted' for inv in self.reconciled_invoice_ids): |
||||
|
raise ValidationError(_("The payment cannot be processed because the invoice is not open!")) |
||||
|
self.move_id._post(soft=False) |
||||
|
|
||||
|
def _check_payment_approval(self): |
||||
|
if self.state == "draft": |
||||
|
first_approval = self.env['ir.config_parameter'].sudo().get_param( |
||||
|
'account_payment_approval.payment_approval') |
||||
|
if first_approval: |
||||
|
amount = float(self.env['ir.config_parameter'].sudo().get_param( |
||||
|
'account_payment_approval.approval_amount')) |
||||
|
payment_currency_id = int(self.env['ir.config_parameter'].sudo().get_param( |
||||
|
'account_payment_approval.approval_currency_id')) |
||||
|
payment_amount = self.amount |
||||
|
if payment_currency_id: |
||||
|
if self.currency_id and self.currency_id.id != payment_currency_id: |
||||
|
currency_id = self.env['res.currency'].browse(payment_currency_id) |
||||
|
payment_amount = self.currency_id._convert( |
||||
|
self.amount, currency_id, self.company_id, |
||||
|
self.date or fields.Date.today(), round=True) |
||||
|
if payment_amount > amount: |
||||
|
self.write({ |
||||
|
'state': 'waiting_approval' |
||||
|
}) |
||||
|
return False |
||||
|
return True |
||||
|
|
||||
|
def approve_transfer(self): |
||||
|
if self.is_approver: |
||||
|
self.write({ |
||||
|
'state': 'approved' |
||||
|
}) |
||||
|
|
||||
|
def reject_transfer(self): |
||||
|
self.write({ |
||||
|
'state': 'rejected' |
||||
|
}) |
@ -0,0 +1,42 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |
||||
|
# Author: Cybrosys Techno Solutions(<https://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 |
||||
|
# (LGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
|
||||
|
from odoo import fields, models |
||||
|
|
||||
|
|
||||
|
class ResConfigSettings(models.TransientModel): |
||||
|
_inherit = 'res.config.settings' |
||||
|
|
||||
|
def _get_account_manager_ids(self): |
||||
|
user_ids = self.env['res.users'].search([]) |
||||
|
account_manager_ids = user_ids.filtered(lambda l: l.has_group('account.group_account_manager')) |
||||
|
return [('id', 'in', account_manager_ids.ids)] |
||||
|
|
||||
|
payment_approval = fields.Boolean('Payment Approval', config_parameter='account_payment_approval.payment_approval') |
||||
|
approval_user_id = fields.Many2one('res.users', string="Payment Approver", required=False, |
||||
|
domain=_get_account_manager_ids, |
||||
|
config_parameter='account_payment_approval.approval_user_id') |
||||
|
approval_amount = fields.Float('Minimum Approval Amount', config_parameter='account_payment_approval.approval_amount', |
||||
|
help="If amount is 0.00, All the payments go through approval.") |
||||
|
approval_currency_id = fields.Many2one('res.currency', string='Approval Currency', |
||||
|
config_parameter='account_payment_approval.approval_currency_id', |
||||
|
help="Converts the payment amount to this currency if chosen.") |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 145 KiB |
After Width: | Height: | Size: 133 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 81 KiB |
@ -0,0 +1,568 @@ |
|||||
|
<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;">Payment Approval</h1> |
||||
|
<h3 style="font-size: 21px;margin-top: 8px;position: relative;">Enables to use the approval feature in |
||||
|
customer and vendor payments. |
||||
|
</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;"><img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " |
||||
|
alt="check">Approval stages in payments |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="col-md-5 col-sm-12 col-xs-12"><img src="images/payment-approval-01.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> |
||||
|
<!-- <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-video" 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;">Video </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 the accounting department to have a control over the payments. |
||||
|
It enables payment approval feature in the payment transaction. |
||||
|
</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%;">Dynamic Product Fields</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> |
||||
|
Approval stage in payment. |
||||
|
</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>Can |
||||
|
Enable/disable payment approval from the settings. |
||||
|
</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>Can |
||||
|
Approval feature can be applied based on the given amount. |
||||
|
</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>Can |
||||
|
Currency wise amount specification. |
||||
|
</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>Can |
||||
|
Quick access of the approval stages like Waiting For Approval, Approved, Rejected etc |
||||
|
from the filter window. |
||||
|
</li> |
||||
|
</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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
Goto <b>Settings</b> and click on <b>Invoicing</b></h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-02.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
Enable Payment Approval</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-03.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
Fill the fields.</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-04.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
Once the user tries to create a payment, it goes through payment approvals.</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-05.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
Approvar can approve or reject request.</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-06.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
User will be able to filter the payment records with 'Waiting For Approval', 'Approved' and 'Rejected'.</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/payment-approval-07.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>Website Maintenance Request 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/13.0/product_brand_sale/" 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-accounting-kit.gif"></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/13.0/product_expiry_warning/" 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-account-bank-book.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/sale_purchase_previous_product_cost/" |
||||
|
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-account-cash-book.jpg"></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/13.0/customer_sequence/" 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-account-day-book.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/barcode_scanning_sale_purchase/" |
||||
|
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-account-recurring-payment.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/amount_currency_sale/" 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-customer-follow-ups.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,45 @@ |
|||||
|
<odoo> |
||||
|
<data> |
||||
|
<record id="view_account_payment_form_inherit" model="ir.ui.view"> |
||||
|
<field name="name">account.payment.form</field> |
||||
|
<field name="model">account.payment</field> |
||||
|
<field name="inherit_id" ref="account.view_account_payment_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="//header//button[@name='action_post']" position="after"> |
||||
|
<button name="approve_transfer" string="Approve" type="object" |
||||
|
class="oe_highlight" |
||||
|
attrs="{'invisible': ['|',('is_approver', '=', False),('state', '!=', 'waiting_approval')]}"/> |
||||
|
<button name="reject_transfer" string="Reject" type="object" |
||||
|
class="oe_highlight" |
||||
|
attrs="{'invisible': ['|',('is_approver', '=', False),('state', '!=', 'waiting_approval')]}"/> |
||||
|
</xpath> |
||||
|
<xpath expr="//header//button[@name='action_post']" position="attributes"> |
||||
|
<attribute name="states">draft,approved</attribute> |
||||
|
</xpath> |
||||
|
<xpath expr="//header//button[@name='action_cancel']" position="attributes"> |
||||
|
<attribute name="attrs">{'invisible': [('state', 'in', ('cancelled', 'posted', 'rejected'))]} |
||||
|
</attribute> |
||||
|
</xpath> |
||||
|
<field name="partner_id" position="after"> |
||||
|
<field name="is_approver" invisible="1"/> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="view_account_payment_search_inherit" model="ir.ui.view"> |
||||
|
<field name="name">account.payment.search.inherit</field> |
||||
|
<field name="model">account.payment</field> |
||||
|
<field name="inherit_id" ref="account.view_account_payment_search"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="//search/filter[@name='state_draft']" position="after"> |
||||
|
<filter string="Waiting For Approval" name="state_waiting_approval" |
||||
|
domain="[('state', '=', 'waiting_approval')]"/> |
||||
|
<filter string="Approved" name="state_approved" |
||||
|
domain="[('state', '=', 'approved')]"/> |
||||
|
<filter string="Rejected" name="state_rejected" |
||||
|
domain="[('state', '=', 'rejected')]"/> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,52 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data> |
||||
|
<record id="res_config_settings_view_form_inherit" model="ir.ui.view"> |
||||
|
<field name="name">res.config.settings.view.form.inherit.account</field> |
||||
|
<field name="model">res.config.settings</field> |
||||
|
<field name="priority" eval="40"/> |
||||
|
<field name="inherit_id" ref="base.res_config_settings_view_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="//div[@data-key='account']" position="inside"> |
||||
|
<h2>Payment Approval</h2> |
||||
|
<div class="row mt16 o_settings_container"> |
||||
|
<div class="col-12 col-lg-6 o_setting_box" title="Enables approval feature in payments." |
||||
|
groups="account.group_account_manager"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
<field name="payment_approval"/> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="payment_approval"/> |
||||
|
<div class="text-muted"> |
||||
|
Enable to bring the approval in the payment. |
||||
|
Only account managers can approve the request. |
||||
|
</div> |
||||
|
<div class="content-group" attrs="{'invisible': [('payment_approval', '=', False)]}"> |
||||
|
<div class="row"> |
||||
|
<label string="Approvar" for="approval_user_id" |
||||
|
class="col-lg-3 o_light_label"/> |
||||
|
<field name="approval_user_id" |
||||
|
attrs="{'required': [('payment_approval', '=', True)]}"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="content-group" attrs="{'invisible': [('payment_approval', '=', False)]}"> |
||||
|
<div class="row"> |
||||
|
<label string="Amount" for="approval_amount" |
||||
|
class="col-lg-3 o_light_label"/> |
||||
|
<field name="approval_amount" |
||||
|
attrs="{'required': [('payment_approval', '=', True)]}"/> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<label string="Currency" for="approval_currency_id" |
||||
|
class="col-lg-3 o_light_label"/> |
||||
|
<field name="approval_currency_id"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,19 @@ |
|||||
|
Employee Late Check-in Penalty v14 |
||||
|
================================== |
||||
|
Employee Late Check-in |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
- www.odoo.com/documentation/14.0/setup/install.html |
||||
|
- Install our custom addon |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
|
||||
|
No additional configurations needed |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
Developer: Ijaz Ahammed v13 @ cybrosys, Contact: odoo@cybrosys.com |
||||
|
Minhaj v14 @ cybrosys, Contact: odoo@cybrosys.com |
||||
|
|
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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,49 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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': 'Employee Late Check-in', |
||||
|
'version': '14.0.1.0.0', |
||||
|
'summary': """This module Allows Employee Late check-in deduction/penalty""", |
||||
|
'description': """This module Allows Employee Late check-in deduction/penalty""", |
||||
|
'author': "Cybrosys Techno Solutions", |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'website': 'https://www.cybrosys.com', |
||||
|
'maintainer': 'Cybrosys Techno Solutions', |
||||
|
'category': 'Human Resources', |
||||
|
'depends': ['hr_attendance', 'hr_payroll_community', 'hr_contract'], |
||||
|
'data': [ |
||||
|
'views/res_config_settings.xml', |
||||
|
'views/hr_attendance_view.xml', |
||||
|
'views/late_check_in_view.xml', |
||||
|
'views/hr_employee.xml', |
||||
|
'security/ir.model.access.csv', |
||||
|
'data/cron.xml', |
||||
|
'data/salary_rule.xml', |
||||
|
], |
||||
|
'images': ['static/description/banner.png'], |
||||
|
'license': 'AGPL-3', |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data> |
||||
|
<record forcecreate="True" id="ir_cron_late_check_in" model="ir.cron"> |
||||
|
<field name="name">Attendance: Late Check-in</field> |
||||
|
<field name="model_id" ref="model_hr_attendance"/> |
||||
|
<field name="state">code</field> |
||||
|
<field name="code">model.late_check_in_records()</field> |
||||
|
<field name="user_id" ref="base.user_root" /> |
||||
|
<field name="interval_number">1</field> |
||||
|
<field name="interval_type">days</field> |
||||
|
<field name="numbercall">-1</field> |
||||
|
<field eval="False" name="doall" /> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,29 @@ |
|||||
|
<odoo> |
||||
|
<data> |
||||
|
<record id="late_check_in" model="hr.salary.rule"> |
||||
|
<field name="name">Late Check-in</field> |
||||
|
<field name="sequence" eval="6"/> |
||||
|
<field name="code">LC</field> |
||||
|
<field name="category_id" ref="hr_payroll_community.DED"/> |
||||
|
<field name="amount_select">code</field> |
||||
|
<field name="amount_select">code</field> |
||||
|
<field name="amount_python_compute"> |
||||
|
amount = 0 |
||||
|
try: |
||||
|
if inputs.LC: |
||||
|
amount = inputs.LC.amount |
||||
|
except: |
||||
|
amount = 0 |
||||
|
result = -amount</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
<record id="late_check_in_salary_structure" model="hr.payroll.structure"> |
||||
|
<field name="code">LCS</field> |
||||
|
<field name="name">Base Salary Structure For Late Check-in</field> |
||||
|
<field eval="[(6, 0, [ref('hr_payroll_community.hr_rule_basic'),ref('hr_payroll_community.hr_rule_net') |
||||
|
,ref('hr_payroll_community.hr_rule_taxable'), ref('late_check_in')])]" name="rule_ids"/> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,8 @@ |
|||||
|
## Module <employee_late_check_in> |
||||
|
|
||||
|
#### 02.05.2020 |
||||
|
#### Version 14.0.1.0.0 |
||||
|
#### ADD |
||||
|
|
||||
|
Initial Commit for employee_late_check_in |
||||
|
|
@ -0,0 +1,28 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 res_config_settings |
||||
|
from . import hr_attendance |
||||
|
from . import late_check_in |
||||
|
from . import hr_payslip |
||||
|
from . import hr_employee |
@ -0,0 +1,76 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 datetime import datetime, timedelta, date |
||||
|
from pytz import timezone, UTC |
||||
|
import pytz |
||||
|
from odoo import models, fields, api |
||||
|
|
||||
|
|
||||
|
class HrAttendance(models.Model): |
||||
|
_inherit = 'hr.attendance' |
||||
|
|
||||
|
late_check_in = fields.Integer(string="Late Check-in(Minutes)", compute="get_late_minutes") |
||||
|
|
||||
|
def get_late_minutes(self): |
||||
|
for rec in self: |
||||
|
|
||||
|
rec.late_check_in = 0.0 |
||||
|
week_day = rec.sudo().check_in.weekday() |
||||
|
if rec.employee_id.contract_id: |
||||
|
work_schedule = rec.sudo().employee_id.contract_id.resource_calendar_id |
||||
|
for schedule in work_schedule.sudo().attendance_ids: |
||||
|
if schedule.dayofweek == str(week_day) and schedule.day_period == 'morning': |
||||
|
work_from = schedule.hour_from |
||||
|
result = '{0:02.0f}:{1:02.0f}'.format(*divmod(work_from * 60, 60)) |
||||
|
|
||||
|
user_tz = self.env.user.tz |
||||
|
dt = rec.check_in |
||||
|
|
||||
|
if user_tz in pytz.all_timezones: |
||||
|
old_tz = pytz.timezone('UTC') |
||||
|
new_tz = pytz.timezone(user_tz) |
||||
|
dt = old_tz.localize(dt).astimezone(new_tz) |
||||
|
str_time = dt.strftime("%H:%M") |
||||
|
check_in_date = datetime.strptime(str_time, "%H:%M").time() |
||||
|
start_date = datetime.strptime(result, "%H:%M").time() |
||||
|
t1 = timedelta(hours=check_in_date.hour, minutes=check_in_date.minute) |
||||
|
t2 = timedelta(hours=start_date.hour, minutes=start_date.minute) |
||||
|
if check_in_date > start_date: |
||||
|
final = t1 - t2 |
||||
|
rec.sudo().late_check_in = final.total_seconds() / 60 |
||||
|
|
||||
|
def late_check_in_records(self): |
||||
|
existing_records = self.env['late.check_in'].sudo().search([]).attendance_id.ids |
||||
|
minutes_after = int(self.env['ir.config_parameter'].sudo().get_param('late_check_in_after')) or 0 |
||||
|
max_limit = int(self.env['ir.config_parameter'].sudo().get_param('maximum_minutes')) or 0 |
||||
|
late_check_in_ids = self.sudo().search([('id', 'not in', existing_records)]) |
||||
|
for rec in late_check_in_ids: |
||||
|
late_check_in = rec.sudo().late_check_in + 210 |
||||
|
if rec.late_check_in > minutes_after and late_check_in > minutes_after and late_check_in < max_limit: |
||||
|
self.env['late.check_in'].sudo().create({ |
||||
|
'employee_id': rec.employee_id.id, |
||||
|
'late_minutes': late_check_in, |
||||
|
'date': rec.check_in.date(), |
||||
|
'attendance_id': rec.id, |
||||
|
}) |
@ -0,0 +1,68 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 odoo import models, fields, _ |
||||
|
|
||||
|
|
||||
|
class HrEmployee(models.Model): |
||||
|
_inherit = 'hr.employee' |
||||
|
|
||||
|
late_check_in_count = fields.Integer(string="Late Check-In", compute="get_late_check_in_count") |
||||
|
|
||||
|
def action_to_open_late_check_in_records(self): |
||||
|
domain = [ |
||||
|
('employee_id', '=', self.id), |
||||
|
] |
||||
|
return { |
||||
|
'name': _('Employee Late Check-in'), |
||||
|
'domain': domain, |
||||
|
'res_model': 'late.check_in', |
||||
|
'type': 'ir.actions.act_window', |
||||
|
'view_mode': 'tree,form', |
||||
|
'limit': 80, |
||||
|
} |
||||
|
|
||||
|
def get_late_check_in_count(self): |
||||
|
self.late_check_in_count = self.env['late.check_in'].search_count([('employee_id', '=', self.id)]) |
||||
|
|
||||
|
|
||||
|
class HrEmployees(models.Model): |
||||
|
_inherit = 'hr.employee.public' |
||||
|
|
||||
|
late_check_in_count = fields.Integer(string="Late Check-In", compute="get_late_check_in_count") |
||||
|
|
||||
|
def action_to_open_late_check_in_records(self): |
||||
|
domain = [ |
||||
|
('employee_id', '=', self.id), |
||||
|
] |
||||
|
return { |
||||
|
'name': _('Employee Late Check-in'), |
||||
|
'domain': domain, |
||||
|
'res_model': 'late.check_in', |
||||
|
'type': 'ir.actions.act_window', |
||||
|
'view_mode': 'tree,form', |
||||
|
'limit': 80, |
||||
|
} |
||||
|
|
||||
|
def get_late_check_in_count(self): |
||||
|
self.late_check_in_count = self.env['late.check_in'].search_count([('employee_id', '=', self.id)]) |
@ -0,0 +1,68 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 odoo import models, api, fields |
||||
|
|
||||
|
|
||||
|
class PayslipLateCheckIn(models.Model): |
||||
|
_inherit = 'hr.payslip' |
||||
|
|
||||
|
late_check_in_ids = fields.Many2many('late.check_in') |
||||
|
|
||||
|
@api.model |
||||
|
def get_inputs(self, contracts, date_from, date_to): |
||||
|
""" |
||||
|
function used for writing late check-in record in payslip |
||||
|
input tree. |
||||
|
|
||||
|
""" |
||||
|
res = super(PayslipLateCheckIn, self).get_inputs(contracts, date_to, date_from) |
||||
|
late_check_in_type = self.env.ref('employee_late_check_in.late_check_in') |
||||
|
contract = self.contract_id |
||||
|
late_check_in_id = self.env['late.check_in'].search([('employee_id', '=', self.employee_id.id), |
||||
|
('date', '<=', self.date_to), |
||||
|
('date', '>=', self.date_from), |
||||
|
('state', '=', 'approved'), |
||||
|
]) |
||||
|
amount = late_check_in_id.mapped('amount') |
||||
|
cash_amount = sum(amount) |
||||
|
if late_check_in_id: |
||||
|
self.late_check_in_ids = late_check_in_id |
||||
|
input_data = { |
||||
|
'name': late_check_in_type.name, |
||||
|
'code': late_check_in_type.code, |
||||
|
'amount': cash_amount, |
||||
|
'contract_id': contract.id, |
||||
|
} |
||||
|
res.append(input_data) |
||||
|
return res |
||||
|
|
||||
|
def action_payslip_done(self): |
||||
|
""" |
||||
|
function used for marking deducted Late check-in |
||||
|
request. |
||||
|
|
||||
|
""" |
||||
|
for recd in self.late_check_in_ids: |
||||
|
recd.state = 'deducted' |
||||
|
return super(PayslipLateCheckIn, self).action_payslip_done() |
@ -0,0 +1,59 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 odoo import models, fields, api |
||||
|
|
||||
|
|
||||
|
class LateCheckIn(models.Model): |
||||
|
_name = 'late.check_in' |
||||
|
|
||||
|
name = fields.Char() |
||||
|
employee_id = fields.Many2one('hr.employee', string="Employee") |
||||
|
late_minutes = fields.Integer(string="Late Minutes") |
||||
|
date = fields.Date(string="Date") |
||||
|
amount = fields.Float(string="Amount", compute="get_penalty_amount") |
||||
|
state = fields.Selection([('draft', 'Draft'), |
||||
|
('approved', 'Approved'), |
||||
|
('refused', 'Refused'), |
||||
|
('deducted', 'Deducted')], string="state", |
||||
|
default="draft") |
||||
|
attendance_id = fields.Many2one('hr.attendance', string='attendance') |
||||
|
|
||||
|
# current_user_boolean = fields.Boolean() |
||||
|
@api.model |
||||
|
def create(self, values): |
||||
|
seq = self.env['ir.sequence'].next_by_code('late.check_in') or '/' |
||||
|
values['name'] = seq |
||||
|
return super(LateCheckIn, self.sudo()).create(values) |
||||
|
|
||||
|
def get_penalty_amount(self): |
||||
|
for rec in self: |
||||
|
amount = float(self.env['ir.config_parameter'].sudo().get_param('deduction_amount')) |
||||
|
rec.amount = amount |
||||
|
if self.env['ir.config_parameter'].sudo().get_param('deduction_type') == 'minutes': |
||||
|
rec.amount = amount * rec.late_minutes |
||||
|
|
||||
|
def approve(self): |
||||
|
self.state = 'approved' |
||||
|
|
||||
|
def reject(self): |
||||
|
self.state = 'refused' |
@ -0,0 +1,48 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
||||
|
# Author: Ijaz Ahammed (odoo@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 odoo import models, fields |
||||
|
|
||||
|
|
||||
|
class LateCheckinSettings(models.TransientModel): |
||||
|
_inherit = 'res.config.settings' |
||||
|
|
||||
|
deduction_amount = fields.Float(string="Deduction Amount", |
||||
|
config_parameter='employee_late_check_in.deduction_amount') |
||||
|
maximum_minutes = fields.Char(string="Maximum Late Minute", |
||||
|
config_parameter='employee_late_check_in.maximum_minutes') |
||||
|
late_check_in_after = fields.Char(string="Late Check-in Starts After", |
||||
|
config_parameter='employee_late_check_in.late_check_in_after') |
||||
|
unpaid_leave = fields.Boolean(string="Unpaid Leave", |
||||
|
config_parameter='employee_late_check_in.unpaid_leave') |
||||
|
deduction_type = fields.Selection([('minutes', 'Per Minutes'), ('total', 'Per Total')], |
||||
|
config_parameter='employee_late_check_in.deduction_type', default="minutes") |
||||
|
|
||||
|
def set_values(self): |
||||
|
res = super(LateCheckinSettings, self).set_values() |
||||
|
self.env['ir.config_parameter'].sudo().set_param('deduction_amount', self.deduction_amount) |
||||
|
self.env['ir.config_parameter'].sudo().set_param('maximum_minutes', self.maximum_minutes) |
||||
|
self.env['ir.config_parameter'].sudo().set_param('late_check_in_after', self.late_check_in_after) |
||||
|
self.env['ir.config_parameter'].sudo().set_param('unpaid_leave', self.unpaid_leave) |
||||
|
self.env['ir.config_parameter'].sudo().set_param('deduction_type', self.deduction_type) |
||||
|
return res |
|
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 22 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: 56 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 110 KiB |
@ -0,0 +1,568 @@ |
|||||
|
<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;">Employee Late Check-in Penalty</h1> |
||||
|
<h3 style="font-size: 21px;margin-top: 8px;position: relative;"> |
||||
|
Employee Late Check-in deduction from payroll |
||||
|
</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> |
||||
|
Late Check-in Minutes in attendance log |
||||
|
</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>Deduction based on configuration |
||||
|
</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>Manager Approval |
||||
|
</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>Late check-in deduction from payslip |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="col-md-5 col-sm-12 col-xs-12"><img src="images/late_checkin_main_image.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;"> |
||||
|
This module Allows Employee Late check-in deduction/penalty |
||||
|
</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>Late Check-in minutes in Attendance log |
||||
|
</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>Deduction based on configuration |
||||
|
</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>Manager Approval |
||||
|
</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>Late check-in deduction from payslip |
||||
|
</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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check"> |
||||
|
After installation, open Attendance >> Configuration</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot1.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;"> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Late Check-in Minutes</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot2.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; "> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Late check-in records(Group by employees)<br/> |
||||
|
Attendance >> Late Check-in</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot3.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; "> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Manager approve the late Check-in entry and when confirm the payslip it will set to 'Deduct' state.</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot4.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; "> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Select the Salary Structure</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot5.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; "> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Payslip Input Lines</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot6.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; "> |
||||
|
<img src="images/checked.png" |
||||
|
style=" width: 22px; margin-right: 6px; " alt="check">Salary Computation</h3> |
||||
|
<div style=""><img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius: 10px;border-top-right-radius: 10px;" |
||||
|
src="images/late_check_in_screen_shot7.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,14 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<!-- Customize Attendance Report --> |
||||
|
<record id="inherited_view_attendance_tree_view" model="ir.ui.view"> |
||||
|
<field name="name">inherited_hr.attendance.tree</field> |
||||
|
<field name="model">hr.attendance</field> |
||||
|
<field name="inherit_id" ref="hr_attendance.view_attendance_tree"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="check_out" position="after"> |
||||
|
<field name="late_check_in"/> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
</odoo> |
@ -0,0 +1,36 @@ |
|||||
|
<odoo> |
||||
|
<data> |
||||
|
<record model="ir.ui.view" id="view_employee_form_inherits"> |
||||
|
<field name="name">view.employee.form</field> |
||||
|
<field name="model">hr.employee.public</field> |
||||
|
<field name="inherit_id" ref="hr.hr_employee_public_view_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<div name="button_box" position="inside"> |
||||
|
<button name="action_to_open_late_check_in_records" |
||||
|
type="object" |
||||
|
class="oe_stat_button" |
||||
|
icon="fa-clock-o"> |
||||
|
<field name="late_check_in_count" widget="statinfo" string="Late Check-In"/> |
||||
|
</button> |
||||
|
</div> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
<record model="ir.ui.view" id="view_employee_form_inherits_late"> |
||||
|
<field name="name">view.employee.form</field> |
||||
|
<field name="model">hr.employee</field> |
||||
|
<field name="inherit_id" ref="hr.view_employee_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<div name="button_box" position="inside"> |
||||
|
<button name="action_to_open_late_check_in_records" |
||||
|
type="object" |
||||
|
class="oe_stat_button" |
||||
|
icon="fa-clock-o"> |
||||
|
<field name="late_check_in_count" widget="statinfo" string="Late Check-In"/> |
||||
|
</button> |
||||
|
</div> |
||||
|
</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,117 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data noupdate="1"> |
||||
|
<record id="late_check_in_sequence" model="ir.sequence"> |
||||
|
<field name="name">late.check_in.sequence</field> |
||||
|
<field name="code">late.check_in</field> |
||||
|
<field name="prefix">LC</field> |
||||
|
<field eval="1" name="number_next"/> |
||||
|
<field eval="1" name="number_increment"/> |
||||
|
<field name="padding">5</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
<data> |
||||
|
<!-- Views --> |
||||
|
<!-- Form View --> |
||||
|
<record id="late_check_inform_view" model="ir.ui.view"> |
||||
|
<field name="name">late.check_in.form</field> |
||||
|
<field name="model">late.check_in</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<form string="Late Check-in" create="false"> |
||||
|
<header> |
||||
|
<field name="state" widget="statusbar" |
||||
|
statusbar_visible="f_approve,approved,done"/> |
||||
|
<button name="approve" string="Approve" |
||||
|
type="object" class="btn-primary" |
||||
|
attrs="{'invisible': [('state', '!=', 'draft')]}" groups="hr.group_hr_manager"/> |
||||
|
<button name="reject" string="Refuse" type="object" |
||||
|
class="btn-primary" |
||||
|
attrs="{'invisible': [('state', 'not in', ['draft'])]}" groups="hr.group_hr_manager"/> |
||||
|
</header> |
||||
|
<sheet> |
||||
|
<div class="oe_title"> |
||||
|
<h1> |
||||
|
<field name="name" required="0" |
||||
|
placeholder="Reference ...."/> |
||||
|
</h1> |
||||
|
</div> |
||||
|
<group> |
||||
|
<group> |
||||
|
<field name='employee_id' |
||||
|
options="{'no_quick_create': True, 'no_create_edit' : True}" |
||||
|
attrs="{'readonly': [('state', '!=', 'draft')]}"/> |
||||
|
<field name='late_minutes'/> |
||||
|
</group> |
||||
|
<group> |
||||
|
<field name='date'/> |
||||
|
<field name="amount"/> |
||||
|
<field name="attendance_id"/> |
||||
|
</group> |
||||
|
</group> |
||||
|
</sheet> |
||||
|
</form> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="late_check_in_view_search" model="ir.ui.view"> |
||||
|
<field name="name">late.check_in.search.view</field> |
||||
|
<field name="model">late.check_in</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<search string="Search Late check-in records"> |
||||
|
<group expand="0" string="Group By"> |
||||
|
<filter string="Employee" name="group_employee" domain="[]" |
||||
|
context="{'group_by':'employee_id'}"/> |
||||
|
</group> |
||||
|
</search> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<!-- Tree View --> |
||||
|
<record id="late_check_in_tree_view" model="ir.ui.view"> |
||||
|
<field name="name">late.check_in.tree</field> |
||||
|
<field name="model">late.check_in</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<tree string="Late Check-in"> |
||||
|
<field name="name"/> |
||||
|
<field name="employee_id"/> |
||||
|
<field name="late_minutes"/> |
||||
|
<field name="date"/> |
||||
|
<field name="amount"/> |
||||
|
</tree> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<!-- Actions --> |
||||
|
<!-- overtime --> |
||||
|
<record id="late_check_in_action" model="ir.actions.act_window"> |
||||
|
<field name="name">Late Check-in</field> |
||||
|
<field name="res_model">late.check_in</field> |
||||
|
<field name="view_mode">tree,form</field> |
||||
|
<field name="context">{ |
||||
|
'search_default_group_employee': 1, |
||||
|
} |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
<!-- MenuItems --> |
||||
|
<menuitem id="menu_late_check_in" name="Late Check-in" |
||||
|
parent="hr_attendance.menu_hr_attendance_root" |
||||
|
action="late_check_in_action" |
||||
|
sequence="21" |
||||
|
groups="hr.group_hr_user"/> |
||||
|
|
||||
|
<record id="hr_payslip_inherited_view_late_check_in" model="ir.ui.view"> |
||||
|
<field name="name">late_check_in.Inherited.View</field> |
||||
|
<field name="model">hr.payslip</field> |
||||
|
<field name="inherit_id" ref="hr_payroll_community.view_hr_payslip_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="name" position="after"> |
||||
|
<field name="late_check_in_ids" invisible="1"/> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
|
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,75 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data> |
||||
|
<record id="late_check_in_setting_view" model="ir.ui.view"> |
||||
|
<field name="name">Late Check-in Configurations</field> |
||||
|
<field name="model">res.config.settings</field> |
||||
|
<field name="inherit_id" ref="hr_attendance.res_config_settings_view_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="//div[@data-key='hr_attendance']" position="inside"> |
||||
|
<!-- <div class="app_settings_block" data-string="late_check_in" string="Late Check in" data-key="employee_late_check_in" groups="hr.group_hr_manager">--> |
||||
|
<h2>Late Check-in</h2> |
||||
|
<div class="row mt16 o_settings_container"> |
||||
|
<div class="col-xs-12 col-md-6 o_setting_box"> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="deduction_amount"/> |
||||
|
<div class="text-muted"> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="content-group mt16"> |
||||
|
<!-- <group>--> |
||||
|
<field name="deduction_amount" colspan="4" nolabel="1"/>/<field name="deduction_type" style="width:100px;"/> |
||||
|
<!-- </group>--> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
<label for="late_check_in_after"/> |
||||
|
<div class="text-muted"> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="content-group mt16"> |
||||
|
<!-- <group>--> |
||||
|
<field name="late_check_in_after" colspan="4" nolabel="1"/>Minutes |
||||
|
<!-- </group>--> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-xs-12 col-md-6 o_setting_box"> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="maximum_minutes"/> |
||||
|
<div class="text-muted"> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="content-group mt16"> |
||||
|
<field name="maximum_minutes" colspan="4" nolabel="1"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
<!-- </div>--> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<!-- <record id="late_check_in_settings_action" model="ir.actions.act_window">--> |
||||
|
<!-- <field name="name">Late Check-in Configuration</field>--> |
||||
|
<!-- <field name="res_model">res.config.settings</field>--> |
||||
|
<!-- <field name="view_id" ref="late_check_in_setting_view"/>--> |
||||
|
<!-- <field name="view_mode">form</field>--> |
||||
|
<!-- <field name="target">inline</field>--> |
||||
|
<!-- <field name="context">{'module' : 'employee_late_check_in'}</field>--> |
||||
|
<!-- </record>--> |
||||
|
|
||||
|
<!-- <menuitem id="employee_late_check_in_settings_menu" name="Late Check-in" sequence="60"--> |
||||
|
<!-- parent="hr_attendance.menu_hr_attendance_root"--> |
||||
|
<!-- action="late_check_in_settings_action"--> |
||||
|
<!-- web_icon=""/>--> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,41 @@ |
|||||
|
Employee Vehicle Request |
||||
|
======================== |
||||
|
This module is used for manage vehicle requests from employee. |
||||
|
This module also checking the vehicle availability at the requested time slot |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
* No additional configurations needed |
||||
|
|
||||
|
Company |
||||
|
------- |
||||
|
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ |
||||
|
|
||||
|
Credits |
||||
|
------- |
||||
|
* Developers: Nilmar Shereef @ Cybrosys, odoo@cybrosys.com |
||||
|
Niyas Raphy @cybrosys, odoo@cybrosys.com |
||||
|
Yadhukrishna K @cybrosys, odoo@cybrosys.com |
||||
|
Muhammed Nafih @cybrosys, odoo@cybrosys.com |
||||
|
|
||||
|
Contacts |
||||
|
-------- |
||||
|
* Mail Contact : odoo@cybrosys.com |
||||
|
* Website : https://cybrosys.com |
||||
|
|
||||
|
Bug Tracker |
||||
|
----------- |
||||
|
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. |
||||
|
|
||||
|
Maintainer |
||||
|
========== |
||||
|
.. image:: https://cybrosys.com/images/logo.png |
||||
|
:target: https://cybrosys.com |
||||
|
|
||||
|
This module is maintained by Cybrosys Technologies. |
||||
|
|
||||
|
For support and more information, please visit `Our Website <https://cybrosys.com/>`__ |
||||
|
|
||||
|
Further information |
||||
|
=================== |
||||
|
HTML Description: `<static/description/index.html>`__ |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Nilmar Shereef @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Niyas Raphy @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Yadhukrishna @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from . import models |
@ -0,0 +1,44 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Nilmar Shereef @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
{ |
||||
|
'name': 'Employee Vehicle Request', |
||||
|
'version': '14.0.1.0.0', |
||||
|
'summary': """Manage Vehicle Requests From Employee""", |
||||
|
'description': """This module is used for manage vehicle requests from employee. |
||||
|
This module also checking the vehicle availability at the requested time slot.""", |
||||
|
'category': "Generic Modules/Human Resources", |
||||
|
'author': 'Cybrosys Techno Solutions', |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['base', 'hr', 'fleet'], |
||||
|
'data': [ |
||||
|
'data/data.xml', |
||||
|
'security/security.xml', |
||||
|
'security/ir.model.access.csv', |
||||
|
'views/employee_fleet_view.xml', |
||||
|
], |
||||
|
'images': ['static/description/banner.png'], |
||||
|
'license': 'AGPL-3', |
||||
|
'demo': [], |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data noupdate="1"> |
||||
|
|
||||
|
<record id="fleet.fleet_rule_vehicle_visibility_user" model="ir.rule"> |
||||
|
<field name="name">User can only see his/her vehicle</field> |
||||
|
<field name="model_id" ref="fleet.model_fleet_vehicle"/> |
||||
|
<field name="groups" eval="[(4, ref('base.group_user'))]"/> |
||||
|
<field name="perm_read" eval="True"/> |
||||
|
<field name="perm_write" eval="True"/> |
||||
|
<field name="perm_create" eval="True"/> |
||||
|
<field name="perm_unlink" eval="False"/> |
||||
|
<field name="domain_force">[]</field> |
||||
|
</record> |
||||
|
|
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,5 @@ |
|||||
|
## Module <employee_vehicle_request> |
||||
|
|
||||
|
#### 12.11.2020 |
||||
|
#### Version 14.0.1.0.0 |
||||
|
#### ADD |
@ -0,0 +1,25 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Nilmar Shereef @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Niyas Raphy @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Yadhukrishna @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
from . import employee_fleet |
@ -0,0 +1,176 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Nilmar Shereef @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Niyas Raphy @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# Yadhukrishna @ Cybrosys, (odoo@cybrosys.com) |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
from datetime import datetime |
||||
|
from odoo import models, fields, api, _ |
||||
|
from odoo.exceptions import UserError |
||||
|
|
||||
|
|
||||
|
class FleetReservedTime(models.Model): |
||||
|
_name = "fleet.reserved" |
||||
|
_description = "Reserved Time" |
||||
|
|
||||
|
employee = fields.Many2one('hr.employee', string='Employee') |
||||
|
date_from = fields.Datetime(string='Reserved Date From') |
||||
|
date_to = fields.Datetime(string='Reserved Date To') |
||||
|
reserved_obj = fields.Many2one('fleet.vehicle') |
||||
|
|
||||
|
|
||||
|
class FleetVehicleInherit(models.Model): |
||||
|
_inherit = 'fleet.vehicle' |
||||
|
|
||||
|
check_availability = fields.Boolean(default=True, copy=False) |
||||
|
reserved_time = fields.One2many('fleet.reserved', 'reserved_obj', String='Reserved Time', readonly=1, |
||||
|
ondelete='cascade') |
||||
|
|
||||
|
|
||||
|
class EmployeeFleet(models.Model): |
||||
|
_name = 'employee.fleet' |
||||
|
_description = 'Employee Vehicle Request' |
||||
|
_inherit = 'mail.thread' |
||||
|
|
||||
|
@api.model |
||||
|
def create(self, vals): |
||||
|
vals['name'] = self.env['ir.sequence'].next_by_code('employee.fleet') |
||||
|
return super(EmployeeFleet, self).create(vals) |
||||
|
|
||||
|
def send(self): |
||||
|
if self.date_from and self.date_to: |
||||
|
fleet_obj = self.env['fleet.vehicle'].search([]) |
||||
|
check_availability = 0 |
||||
|
for i in fleet_obj: |
||||
|
for each in i.reserved_time: |
||||
|
if each.date_from <= self.date_from <= each.date_to: |
||||
|
check_availability = 1 |
||||
|
elif self.date_from < each.date_from: |
||||
|
if each.date_from <= self.date_to <= each.date_to: |
||||
|
check_availability = 1 |
||||
|
elif self.date_to > each.date_to: |
||||
|
check_availability = 1 |
||||
|
else: |
||||
|
check_availability = 0 |
||||
|
else: |
||||
|
check_availability = 0 |
||||
|
if check_availability == 0: |
||||
|
reserved_id = self.fleet.reserved_time.create({'employee': self.employee.id, |
||||
|
'date_from': self.date_from, |
||||
|
'date_to': self.date_to, |
||||
|
'reserved_obj': self.fleet.id, |
||||
|
}) |
||||
|
self.write({'reserved_fleet_id': reserved_id.id}) |
||||
|
self.state = 'waiting' |
||||
|
else: |
||||
|
raise UserError(_('Sorry This vehicle is already requested by another employee')) |
||||
|
|
||||
|
def approve(self): |
||||
|
# self.fleet.fleet_status = True |
||||
|
self.state = 'confirm' |
||||
|
mail_content = _('Hi %s,<br>Your vehicle request for the reference %s is approved.') % \ |
||||
|
(self.employee.name, self.name) |
||||
|
main_content = { |
||||
|
'subject': _('%s: Approved') % self.name, |
||||
|
'author_id': self.env.user.partner_id.id, |
||||
|
'body_html': mail_content, |
||||
|
'email_to': self.employee.work_email, |
||||
|
} |
||||
|
mail_id = self.env['mail.mail'].create(main_content) |
||||
|
mail_id.mail_message_id.body = mail_content |
||||
|
mail_id.send() |
||||
|
if self.employee.user_id: |
||||
|
mail_id.mail_message_id.write({'needaction_partner_ids': [(4, self.employee.user_id.partner_id.id)]}) |
||||
|
mail_id.mail_message_id.write({'partner_ids': [(4, self.employee.user_id.partner_id.id)]}) |
||||
|
|
||||
|
def reject(self): |
||||
|
self.reserved_fleet_id.unlink() |
||||
|
self.state = 'reject' |
||||
|
mail_content = _('Hi %s,<br>Sorry, Your vehicle request for the reference %s is Rejected.') % \ |
||||
|
(self.employee.name, self.name) |
||||
|
|
||||
|
main_content = { |
||||
|
'subject': _('%s: Approved') % self.name, |
||||
|
'author_id': self.env.user.partner_id.id, |
||||
|
'body_html': mail_content, |
||||
|
'email_to': self.employee.work_email, |
||||
|
} |
||||
|
mail_id = self.env['mail.mail'].create(main_content) |
||||
|
mail_id.mail_message_id.body = mail_content |
||||
|
mail_id.send() |
||||
|
if self.employee.user_id: |
||||
|
mail_id.mail_message_id.write({'needaction_partner_ids': [(4, self.employee.user_id.partner_id.id)]}) |
||||
|
mail_id.mail_message_id.write({'partner_ids': [(4, self.employee.user_id.partner_id.id)]}) |
||||
|
|
||||
|
def cancel(self): |
||||
|
if self.reserved_fleet_id: |
||||
|
self.reserved_fleet_id.unlink() |
||||
|
self.state = 'cancel' |
||||
|
|
||||
|
def returned(self): |
||||
|
self.reserved_fleet_id.unlink() |
||||
|
self.returned_date = fields.datetime.now() |
||||
|
self.state = 'return' |
||||
|
|
||||
|
@api.constrains('date_rom', 'date_to') |
||||
|
def onchange_date_to(self): |
||||
|
for each in self: |
||||
|
if each.date_from > each.date_to: |
||||
|
raise UserError(_('Date To must be greater than Date From')) |
||||
|
|
||||
|
@api.onchange('date_from', 'date_to') |
||||
|
def check_availability(self): |
||||
|
if self.date_from and self.date_to: |
||||
|
self.fleet = '' |
||||
|
fleet_obj = self.env['fleet.vehicle'].search([]) |
||||
|
for i in fleet_obj: |
||||
|
for each in i.reserved_time: |
||||
|
if each.date_from <= self.date_from <= each.date_to: |
||||
|
i.write({'check_availability': False}) |
||||
|
elif self.date_from < each.date_from: |
||||
|
if each.date_from <= self.date_to <= each.date_to: |
||||
|
i.write({'check_availability': False}) |
||||
|
elif self.date_to > each.date_to: |
||||
|
i.write({'check_availability': False}) |
||||
|
else: |
||||
|
i.write({'check_availability': True}) |
||||
|
else: |
||||
|
i.write({'check_availability': True}) |
||||
|
|
||||
|
reserved_fleet_id = fields.Many2one('fleet.reserved', invisible=1, copy=False) |
||||
|
name = fields.Char(string='Request Number', copy=False) |
||||
|
employee = fields.Many2one('hr.employee', string='Employee', required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}) |
||||
|
req_date = fields.Date(string='Requested Date', default=fields.Date.context_today, required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}, help="Requested Date") |
||||
|
fleet = fields.Many2one('fleet.vehicle', string='Vehicle', required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}) |
||||
|
date_from = fields.Datetime(string='From', required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}) |
||||
|
date_to = fields.Datetime(string='To', required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}) |
||||
|
returned_date = fields.Datetime(string='Returned Date', readonly=1) |
||||
|
purpose = fields.Text(string='Purpose', required=1, readonly=True, |
||||
|
states={'draft': [('readonly', False)]}, help="Purpose") |
||||
|
state = fields.Selection([('draft', 'Draft'), ('waiting', 'Waiting for Approval'), ('cancel', 'Cancel'), |
||||
|
('confirm', 'Approved'), ('reject', 'Rejected'), ('return', 'Returned')], |
||||
|
string="State", default="draft") |
||||
|
|
|
@ -0,0 +1,11 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data> |
||||
|
<record model="res.groups" id="base.group_user"> |
||||
|
<field name="implied_ids" eval="[(4, ref('fleet.fleet_group_user'))]"/> |
||||
|
</record> |
||||
|
<record model="res.groups" id="hr.group_hr_manager"> |
||||
|
<field name="implied_ids" eval="[(4, ref('fleet.fleet_group_manager'))]"/> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 24 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 |
@ -0,0 +1,316 @@ |
|||||
|
<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;"> Employee Vehicle Request </h1> |
||||
|
<h3 style="font-size: 21px;margin-top: 8px;position: relative;"> This Module Helps You To Manage Vehicle Requests From Employee </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> Employee can request for any vehicle </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> Checking availability of vehicles </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> Validation for send request </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> Validation for requested dates</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> Advanced search view </li> |
||||
|
|
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="col-md-5 col-sm-12 col-xs-12"><img src="images/1veh.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;"> |
||||
|
Employee can request available vehicle for a time period. He should mention the time period and purpose. Then he can send this request to hr manager. Here also module checking the availability of vehicles </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%;"> Employee Vehicle Request </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> Employee can request for any vehicle |
||||
|
</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> Checking availability of vehicles |
||||
|
</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> Validation for send request |
||||
|
</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> Validation for requested dates |
||||
|
</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> Advanced search view |
||||
|
</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>Here any employee can request available vehicle for a time period. He should mention the time period and purpose. Then he can send this request to hr manager. Here also module checking the availability of vehicle </h3> |
||||
|
|
||||
|
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/1veh req.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> Here Hr Manager can approve the vehicle request. Or she can refuse the request. Also Employee can cancel this request from this stage before approval or rejection. </h3> |
||||
|
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/2veh req.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> Validation Messages </h3> |
||||
|
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/3veh req.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> Requested Period Validation </h3> |
||||
|
<div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/4veh req.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> |
||||
|
</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,122 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<record id="sequence_employee_fleet" model="ir.sequence"> |
||||
|
<field name="name">Vehicle Request Code</field> |
||||
|
<field name="code">employee.fleet</field> |
||||
|
<field eval="4" name="padding" /> |
||||
|
<field name="prefix">VR</field> |
||||
|
</record> |
||||
|
|
||||
|
<record model="ir.ui.view" id="fleet_vehicle_inherit_form_view"> |
||||
|
<field name="name">fleet.vehicle.form.inherit.view</field> |
||||
|
<field name="model">fleet.vehicle</field> |
||||
|
<field name="inherit_id" ref="fleet.fleet_vehicle_view_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="car_value" position="after"> |
||||
|
<field name="check_availability" invisible="1"/> |
||||
|
<field name="reserved_time" invisible="1"/> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record model='ir.ui.view' id='employee_fleet_form_view'> |
||||
|
<field name="name">employee.fleet.form</field> |
||||
|
<field name="model">employee.fleet</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<form string="Employee Fleet Request"> |
||||
|
<header> |
||||
|
<button name='send' string="Send Request" type="object" class='oe_highlight' states="draft"/> |
||||
|
<button name='approve' string="Approve" type="object" class='oe_highlight' |
||||
|
states="waiting" groups="hr.group_hr_manager,hr.group_hr_user"/> |
||||
|
<button name='reject' string="Reject" type="object" states="waiting" groups="hr.group_hr_manager,hr.group_hr_user"/> |
||||
|
<button name='cancel' string="Cancel" type="object" states="draft,waiting"/> |
||||
|
<button name='returned' string="Return" type="object" class='oe_highlight' |
||||
|
states="confirm" groups="hr.group_hr_manager,hr.group_hr_user"/> |
||||
|
<field name="state" widget="statusbar" statusbar_visible="draft,waiting,confirm,return"/> |
||||
|
</header> |
||||
|
<sheet> |
||||
|
<h1> |
||||
|
<field name="name" readonly="1"/> |
||||
|
</h1> |
||||
|
<group> |
||||
|
<group> |
||||
|
<field name="employee" options="{'no_create': True}"/> |
||||
|
<field name="date_from"/> |
||||
|
<field name="date_to"/> |
||||
|
<field name="returned_date" attrs="{'invisible': [('state','!=','return')]}"/> |
||||
|
</group> |
||||
|
<group> |
||||
|
<field name="req_date"/> |
||||
|
<field name="fleet" domain="[('check_availability','=',True)]" options="{'no_create': True}"/> |
||||
|
<field name="purpose"/> |
||||
|
</group> |
||||
|
</group> |
||||
|
</sheet> |
||||
|
<div class="oe_chatter"> |
||||
|
<field name="message_follower_ids" widget="mail_followers"/> |
||||
|
<field name="message_ids" widget="mail_thread"/> |
||||
|
</div> |
||||
|
</form> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record model='ir.ui.view' id='employee_fleet_tree_view'> |
||||
|
<field name="name">employee.fleet.tree</field> |
||||
|
<field name="model">employee.fleet</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" decoration-success="state == 'confirm'"> |
||||
|
<field name="name"/> |
||||
|
<field name="employee"/> |
||||
|
<field name="fleet"/> |
||||
|
<field name="date_from"/> |
||||
|
<field name="date_to"/> |
||||
|
<field name="state"/> |
||||
|
</tree> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record model='ir.ui.view' id='employee_fleet_search_view'> |
||||
|
<field name="name">employee.fleet.search</field> |
||||
|
<field name="model">employee.fleet</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<search string="Custody"> |
||||
|
<field name="name"/> |
||||
|
<field name="employee"/> |
||||
|
<field name="fleet"/> |
||||
|
<field name="date_from"/> |
||||
|
<field name="date_to"/> |
||||
|
<field name="state"/> |
||||
|
<separator/> |
||||
|
<group expand="0" string="Group By"> |
||||
|
<filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/> |
||||
|
<filter string="Employee" name="employee" domain="[]" context="{'group_by':'employee'}"/> |
||||
|
<filter string="Vehicle" name="vehicle" domain="[]" context="{'group_by':'fleet'}"/> |
||||
|
</group> |
||||
|
</search> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="action_employee_fleet" model="ir.actions.act_window"> |
||||
|
<field name="name">Vehicle Request</field> |
||||
|
<field name="res_model">employee.fleet</field> |
||||
|
<field name="view_mode">tree,form</field> |
||||
|
<field name="search_view_id" ref="employee_fleet_search_view"/> |
||||
|
<field name="help" type="html"> |
||||
|
<p class="oe_view_nocontent_create"> |
||||
|
Click to create a New Vehicle Request. |
||||
|
</p> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<menuitem id="employee_fleet_menu" |
||||
|
name="Vehicle Request" |
||||
|
parent="hr.menu_hr_root" |
||||
|
sequence="4" |
||||
|
groups="hr.group_hr_manager"/> |
||||
|
<menuitem id="employee_fleet_sub_menu" |
||||
|
name="Vehicle Request" |
||||
|
parent="employee_fleet_menu" |
||||
|
sequence="1" |
||||
|
groups="hr.group_hr_manager" |
||||
|
action="action_employee_fleet"/> |
||||
|
</odoo> |
@ -0,0 +1,38 @@ |
|||||
|
Biometric Device Integration v14 |
||||
|
================================ |
||||
|
This Cybrosys's module integrates Odoo attendance with biometric device attendance. |
||||
|
|
||||
|
Features |
||||
|
======== |
||||
|
* Integrates biometric device(Face+Thumb) with HR attendance. |
||||
|
* Managing attendance automatically |
||||
|
* Keeps zk machine history in Odoo |
||||
|
* Option to configure multiple zk devices |
||||
|
* Option to clear all zk history from both device and Odoo |
||||
|
|
||||
|
Technical Notes |
||||
|
=============== |
||||
|
Used Libraries: |
||||
|
|
||||
|
*This integration is only applicable for the the device ZKteco model 'uFace 202' & 'iFace990' |
||||
|
* zklib |
||||
|
you can install zklib library using "sudo pip install zklib" |
||||
|
|
||||
|
Compatible Devices |
||||
|
|
||||
|
*ZKteco model 'uFace 202' |
||||
|
*ZKteco model 'iFace990' |
||||
|
|
||||
|
Author |
||||
|
======= |
||||
|
* Cybrosys Techno Solutions <https://www.cybrosys.com> |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
Developer: Niyas Raphy @ Cybrosys, odoo@cybrosys.com V11 |
||||
|
Developer: Jesni Banu @ cybrosys, odoo@cybrosys.com V10 |
||||
|
Developer: Basith @ Cybrosys, odoo@cybrosys.com V12 |
||||
|
Developer: Varsha Vivek @ Cybrosys, odoo@cybrosys.com V13 |
||||
|
Developer: Ijaz Ahammed @ Cybrosys, odoo@cybrosys.com V14 |
||||
|
Developer: Mostafa Shokiel , mostafa.shokiel@gmail.com |
||||
|
|
@ -0,0 +1,22 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2018-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: cybrosys(<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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
from . import models |
@ -0,0 +1,45 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2018-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: cybrosys(<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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
{ |
||||
|
'name': 'Biometric Device Integration', |
||||
|
'version': '14.0.1.0.0', |
||||
|
'summary': """Integrating Biometric Device (Model: ZKteco uFace 202) With HR Attendance (Face + Thumb)""", |
||||
|
'description': """This module integrates Odoo with the biometric device(Model: ZKteco uFace 202),odoo13,odd,hr,attendance""", |
||||
|
'category': 'Generic Modules/Human Resources', |
||||
|
'author': 'Cybrosys Techno Solutions, Mostafa Shokiel', |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['base_setup', 'hr_attendance'], |
||||
|
'data': [ |
||||
|
'security/ir.model.access.csv', |
||||
|
'views/zk_machine_view.xml', |
||||
|
'views/zk_machine_attendance_view.xml', |
||||
|
'data/download_data.xml' |
||||
|
|
||||
|
], |
||||
|
'images': ['static/description/banner.gif'], |
||||
|
'license': 'AGPL-3', |
||||
|
'demo': [], |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
<?xml version="1.0"?> |
||||
|
<odoo noupdate="1"> |
||||
|
<record forcecreate="True" id="cron_download_data" model="ir.cron"> |
||||
|
<field name="name">Download Data</field> |
||||
|
<field eval="True" name="active"/> |
||||
|
<field name="user_id" ref="base.user_admin"/> |
||||
|
<field name="interval_number">10</field> |
||||
|
<field name="interval_type">minutes</field> |
||||
|
<field name="numbercall">-1</field> |
||||
|
<field name="model_id" ref="hr_zk_attendance.model_zk_machine"/> |
||||
|
<field name="state">code</field> |
||||
|
<field name="code">model.cron_download()</field> |
||||
|
</record> |
||||
|
</odoo> |
@ -0,0 +1,7 @@ |
|||||
|
## Module <hr_zk_attendance> |
||||
|
|
||||
|
#### 03.10.2020 |
||||
|
#### Version 14.0.1.0.0 |
||||
|
##### ADD |
||||
|
- Initial commit |
||||
|
|
@ -0,0 +1,25 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
################################################################################### |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# Copyright (C) 2018-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: cybrosys(<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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
from . import zk_machine |
||||
|
from . import machine_analysis |
||||
|
from . import zklib |
||||
|
|