Browse Source

Apr 25: [ADD] Initial Commit 'pantry_payroll'

pull/254/merge
RisvanaCybro 1 year ago
parent
commit
f14e527ee3
  1. 48
      pantry_payroll/README.rst
  2. 22
      pantry_payroll/__init__.py
  3. 50
      pantry_payroll/__manifest__.py
  4. 15
      pantry_payroll/data/ir_sequence_data.xml
  5. 48
      pantry_payroll/data/salary_rule_data.xml
  6. 6
      pantry_payroll/doc/RELEASE_NOTES.md
  7. 26
      pantry_payroll/models/__init__.py
  8. 46
      pantry_payroll/models/hr_payslip.py
  9. 67
      pantry_payroll/models/pantry_order.py
  10. 48
      pantry_payroll/models/pantry_order_line.py
  11. 72
      pantry_payroll/models/product_product.py
  12. 30
      pantry_payroll/models/product_template.py
  13. 4
      pantry_payroll/security/ir.model.access.csv
  14. 24
      pantry_payroll/security/pantry_payroll_security.xml
  15. BIN
      pantry_payroll/static/description/assets/banner.jpg
  16. BIN
      pantry_payroll/static/description/assets/icon.png
  17. BIN
      pantry_payroll/static/description/assets/icons/check.png
  18. BIN
      pantry_payroll/static/description/assets/icons/chevron.png
  19. BIN
      pantry_payroll/static/description/assets/icons/cogs.png
  20. BIN
      pantry_payroll/static/description/assets/icons/consultation.png
  21. BIN
      pantry_payroll/static/description/assets/icons/ecom-black.png
  22. BIN
      pantry_payroll/static/description/assets/icons/education-black.png
  23. BIN
      pantry_payroll/static/description/assets/icons/hotel-black.png
  24. BIN
      pantry_payroll/static/description/assets/icons/license.png
  25. BIN
      pantry_payroll/static/description/assets/icons/lifebuoy.png
  26. BIN
      pantry_payroll/static/description/assets/icons/logo.png
  27. BIN
      pantry_payroll/static/description/assets/icons/manufacturing-black.png
  28. BIN
      pantry_payroll/static/description/assets/icons/pos-black.png
  29. BIN
      pantry_payroll/static/description/assets/icons/puzzle.png
  30. BIN
      pantry_payroll/static/description/assets/icons/restaurant-black.png
  31. BIN
      pantry_payroll/static/description/assets/icons/service-black.png
  32. BIN
      pantry_payroll/static/description/assets/icons/trading-black.png
  33. BIN
      pantry_payroll/static/description/assets/icons/training.png
  34. BIN
      pantry_payroll/static/description/assets/icons/update.png
  35. BIN
      pantry_payroll/static/description/assets/icons/user.png
  36. BIN
      pantry_payroll/static/description/assets/icons/wrench.png
  37. BIN
      pantry_payroll/static/description/assets/misc/categories.png
  38. BIN
      pantry_payroll/static/description/assets/misc/check-box.png
  39. BIN
      pantry_payroll/static/description/assets/misc/compass.png
  40. BIN
      pantry_payroll/static/description/assets/misc/corporate.png
  41. BIN
      pantry_payroll/static/description/assets/misc/customer-support.png
  42. BIN
      pantry_payroll/static/description/assets/misc/cybrosys-logo.png
  43. BIN
      pantry_payroll/static/description/assets/misc/features.png
  44. BIN
      pantry_payroll/static/description/assets/misc/logo.png
  45. BIN
      pantry_payroll/static/description/assets/misc/pictures.png
  46. BIN
      pantry_payroll/static/description/assets/misc/pie-chart.png
  47. BIN
      pantry_payroll/static/description/assets/misc/right-arrow.png
  48. BIN
      pantry_payroll/static/description/assets/misc/star.png
  49. BIN
      pantry_payroll/static/description/assets/misc/support.png
  50. BIN
      pantry_payroll/static/description/assets/misc/whatsapp.png
  51. BIN
      pantry_payroll/static/description/assets/modules/employee_check_list.png
  52. BIN
      pantry_payroll/static/description/assets/modules/employee_documents_expiry.png
  53. BIN
      pantry_payroll/static/description/assets/modules/employee_orientation.png
  54. BIN
      pantry_payroll/static/description/assets/modules/employee_stages.png
  55. BIN
      pantry_payroll/static/description/assets/modules/employee_vehicle_request.png
  56. BIN
      pantry_payroll/static/description/assets/modules/hr_contract_types.png
  57. BIN
      pantry_payroll/static/description/assets/screenshots/1.png
  58. BIN
      pantry_payroll/static/description/assets/screenshots/2.png
  59. BIN
      pantry_payroll/static/description/assets/screenshots/3.png
  60. BIN
      pantry_payroll/static/description/assets/screenshots/4.png
  61. BIN
      pantry_payroll/static/description/assets/screenshots/5.png
  62. BIN
      pantry_payroll/static/description/assets/screenshots/6.png
  63. BIN
      pantry_payroll/static/description/assets/screenshots/7.png
  64. BIN
      pantry_payroll/static/description/assets/screenshots/8.png
  65. BIN
      pantry_payroll/static/description/assets/screenshots/hero.gif
  66. 683
      pantry_payroll/static/description/index.html
  67. 82
      pantry_payroll/views/pantry_order_views.xml
  68. 116
      pantry_payroll/views/product_product_views.xml
  69. 17
      pantry_payroll/views/product_template_views.xml

48
pantry_payroll/README.rst

@ -0,0 +1,48 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Payroll Management In Pantry
============================
This module allow us to manage payroll in pantry.
Configuration
=============
* No additional configuration required
Company
-------
*`Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
-------
General Public License, version 3 (AGPL v3).
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Credits
-------
* Developer : (V15) Bhagyadev KP
* Contact: 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 further information, please visit `Our Website <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

22
pantry_payroll/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from . import models

50
pantry_payroll/__manifest__.py

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
{
'name': 'Payroll Management In Pantry',
'version': '15.0.1.0.0',
'category': 'Human Resources',
'summary': """Efficiently oversee payroll operations by factoring in
pantry expenditures through seamless deductions""",
'description': """This app will allow us to Manage Payroll of Pantry.
While creating Employee Payslip ,Salary Rule will be Added to that
Employee. The Amount of Product will Deduct from Salary.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "http://www.cybrosys.com",
'depends': ['sale', 'hr_payroll_community'],
'data': [
'security/pantry_payroll_security.xml',
'security/ir.model.access.csv',
'data/salary_rule_data.xml',
'data/ir_sequence_data.xml',
'views/product_product_views.xml',
'views/product_template_views.xml',
'views/pantry_order_views.xml',
],
'images': ['static/description/banner.jpg'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

15
pantry_payroll/data/ir_sequence_data.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<!-- Pantry order sequence -->
<record id="pantry_order_sequence" model="ir.sequence">
<field name="name">Pantry Order sequence</field>
<field name="code">pantry.order</field>
<field name="active">TRUE</field>
<field name="prefix">PAO/</field>
<field name="number_increment">1</field>
<field name="number_next">1</field>
<field name="padding">4</field>
</record>
</data>
</odoo>

48
pantry_payroll/data/salary_rule_data.xml

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<!-- Create salary rule -->
<record id="pantry_rule" model="hr.salary.rule">
<field name="code">PR</field>
<field name="name">Pantry</field>
<field name="category_id" ref="hr_payroll_community.DED"/>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = inputs.PR and - (inputs.PR.amount)
</field>
<field name="appears_on_payslip" eval="True"/>
<field name="sequence" eval="190"/>
</record>
<record id="hr_rule_input_loan" model="hr.rule.input">
<field name="code">PR</field>
<field name="name">Pantry</field>
<field name="input_id" ref="pantry_rule"/>
</record>
<!--Adding salary rule into salary structure-->
<record id="hr_payroll_community.structure_base"
model="hr.payroll.structure">
<field name="code">BASE</field>
<field name="name">Base for new structures</field>
<field eval="[(6, 0, [ref('hr_payroll_community.hr_rule_basic'), ref('hr_payroll_community.hr_rule_taxable'),ref('hr_payroll_community.hr_rule_net'),ref('pantry_rule')])]"
name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="hr_payroll_community.structure_001"
model="hr.payroll.structure">
<field name="code">ME</field>
<field name="name">Marketing Executive</field>
<field eval="[(6, 0, [ref('hr_payroll_community.hr_salary_rule_houserentallowance1'), ref('hr_payroll_community.hr_salary_rule_convanceallowance1'),ref('hr_payroll_community.hr_salary_rule_professionaltax1'),ref('hr_payroll_community.hr_salary_rule_providentfund1'),ref('pantry_rule')])]"
name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
<field name="parent_id" ref="hr_payroll_community.structure_base"/>
</record>
<record id="hr_payroll_community.structure_002"
model="hr.payroll.structure">
<field name="code">MEGG</field>
<field name="name">Marketing Executive for Gilles Gravie</field>
<field eval="[(6, 0, [ref('hr_payroll_community.hr_salary_rule_ca_gravie'), ref('hr_payroll_community.hr_salary_rule_meal_voucher'),ref('pantry_rule')])]"
name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
<field name="parent_id" ref="hr_payroll_community.structure_001"/>
</record>
</data>
</odoo>

6
pantry_payroll/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <pantry_payroll>
#### 24.04.2024
#### Version 15.0.1.0.0
#### ADD
- Initial Commit for Payroll Management In Pantry

26
pantry_payroll/models/__init__.py

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from . import hr_payslip
from . import pantry_order
from . import product_product
from . import product_template
from . import pantry_order_line

46
pantry_payroll/models/hr_payslip.py

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from odoo import api, models
class HrPayslip(models.Model):
"""Class for HR Payslip"""
_inherit = 'hr.payslip'
@api.model
def get_inputs(self, contract_ids, date_from, date_to):
"""This function calculates the additional inputs
for the employee payslip."""
res = super(HrPayslip, self).get_inputs(contract_ids, date_from,
date_to)
amount_employee = 0
employee_id = self.env['hr.contract'].browse(
contract_ids[0].id).employee_id
pantry_lines = self.env['pantry.order'].search([
('partner_id', '=', employee_id.user_id.partner_id.id)
])
for adv_obj in pantry_lines:
if self.date_from <= adv_obj.date_order.date() <= self.date_to:
amount_employee += adv_obj.amount_total
for result in res:
result['amount'] = amount_employee
return res

67
pantry_payroll/models/pantry_order.py

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from odoo import api, fields, models
class PantryOrder(models.Model):
"""A class that represents a new model pantry order"""
_name = 'pantry.order'
_description = 'Pantry Order'
_inherit = 'mail.thread'
name = fields.Char(string='Order Sequence', readonly=True,
help='Sequence of the order')
partner_id = fields.Many2one('res.partner', string='Order User',
readonly=True,
default=lambda self: self.env.user.partner_id,
help='The user who is ordering')
state = fields.Selection(string='Status', required=True, selection=[
('draft', 'Draft'), ('confirmed', 'Confirmed')], default='draft',
help='The current status of the order')
date_order = fields.Datetime(string='Order Date',
default=fields.Datetime.now, readonly=True,
help='The date order')
order_line_ids = fields.One2many('pantry.order.line',
'pantry_order_id',
string='Order Line')
amount_total = fields.Float(string='Total', compute='_compute_amount_total',
help='The total amount of the order')
@api.model
def create(self, vals):
"""Sequence for the order"""
if vals.get('name', 'New') == 'New':
vals['name'] = self.env['ir.sequence'].next_by_code(
'pantry.order') or 'New'
res = super(PantryOrder, self).create(vals)
return res
@api.depends('order_line_ids')
def _compute_amount_total(self):
"""Calculates the amount_total"""
for rec in self:
rec.amount_total = sum(
rec.mapped('order_line_ids').mapped('subtotal'))
def action_confirm_pantry_order(self):
"""Change the state to confirmed"""
self.state = 'confirmed'

48
pantry_payroll/models/pantry_order_line.py

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from odoo import api, fields, models
class PantryOrderLine(models.Model):
"""A class that represents a new model pantry order line"""
_name = 'pantry.order.line'
_description = 'Pantry Order Line'
pantry_order_id = fields.Many2one('pantry.order', string='Pantry Order',
required=True,
help='The corresponding pantry order')
product_id = fields.Many2one('product.product', string='Product',
required=True,
domain=[('pantry_product', '=', True)],
help='The product to order')
quantity = fields.Float(string='Quantity',
help='The quantity of the product')
unit_price = fields.Float(string='Unit Price',
help='The unit price of the product')
subtotal = fields.Float(string='Subtotal', compute='_compute_subtotal',
help='The subtotal of the order line')
@api.depends('quantity')
def _compute_subtotal(self):
"""Calculates the subtotal"""
for rec in self:
rec.subtotal = rec.quantity * rec.unit_price

72
pantry_payroll/models/product_product.py

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from odoo import fields, models
class ProductProduct(models.Model):
"""Class for adding quantity button on product kanban view."""
_inherit = "product.product"
quantity = fields.Integer(string="Quantity", help="Quantity", default=1)
def action_quantity_decrement(self):
"""Function for increment the quantity of product"""
if self.quantity > 1:
self.quantity -= 1
def action_quantity_increment(self):
"""Function for decrement the quantity of product"""
self.quantity += 1
def action_buy_pantry(self):
"""Make a quotation while purchasing a product from the pantry."""
quotation = self.env['pantry.order'].search(
[('partner_id', '=', self.env.user.partner_id.id),
('state', '=', 'draft')])
val_list = {
'product_id': self.id,
'unit_price': self.lst_price,
'quantity': self.quantity,
}
if quotation:
val_list['pantry_order_id'] = quotation[0].id
product = quotation.order_line_ids.filtered(
lambda sol: sol.product_id == self)
if product:
product[0].quantity += self.quantity
else:
quotation.write(
{'order_line_ids': [fields.Command.create(val_list)]})
else:
quotation = self.env['pantry.order'].create({
'partner_id': self.env.user.partner_id.id,
'order_line_ids': [fields.Command.create(val_list)]
})
self.quantity = 1
return {
'type': 'ir.actions.act_window',
'res_model': 'pantry.order',
'res_id': quotation.id,
'view_mode': 'form',
'target': 'current',
'views': [[False, "form"]],
}

30
pantry_payroll/models/product_template.py

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Bhagyadev K P(<https://www.cybrosys.com>)
#
# This program is free software: you can modify
# it under the terms of the GNU Affero General Public License (AGPL) as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
################################################################################
from odoo import models, fields
class ProductTemplate(models.Model):
"""A class that represents already existing model product template"""
_inherit = 'product.template'
pantry_product = fields.Boolean(string="Pantry Product",
help='Is this a pantry product or not')

4
pantry_payroll/security/ir.model.access.csv

@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_pantry_order_user,access.pantry.order.user,model_pantry_order,base.group_user,1,1,1,0
access_pantry_order_admin,access.pantry.order.admin,model_pantry_order,pantry_payroll.group_pantry_admin,1,1,1,1
access_pantry_order_line_user,access.pantry.order.line.user,model_pantry_order_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_pantry_order_user access.pantry.order.user model_pantry_order base.group_user 1 1 1 0
3 access_pantry_order_admin access.pantry.order.admin model_pantry_order pantry_payroll.group_pantry_admin 1 1 1 1
4 access_pantry_order_line_user access.pantry.order.line.user model_pantry_order_line base.group_user 1 1 1 1

24
pantry_payroll/security/pantry_payroll_security.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Pantry admin user group -->
<record id="group_pantry_admin" model="res.groups">
<field name="name">Pantry Admin</field>
</record>
<!-- Pantry admin rule -->
<record id="pantry_admin_rule" model="ir.rule">
<field name="name">Pantry admin rule</field>
<field name="model_id" ref="model_pantry_order"/>
<field name="domain_force">[]</field>
<field name="groups"
eval="[(4, ref('pantry_payroll.group_pantry_admin'))]"/>
</record>
<!-- Pantry user rule -->
<record id="pantry_users_rule" model="ir.rule">
<field name="name">Pantry user rule</field>
<field name="model_id" ref="model_pantry_order"/>
<field name="domain_force">[('partner_id','=',user.partner_id.id)]
</field>
<field name="groups"
eval="[(4, ref('base.group_user'))]"/>
</record>
</odoo>

BIN
pantry_payroll/static/description/assets/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
pantry_payroll/static/description/assets/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
pantry_payroll/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
pantry_payroll/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
pantry_payroll/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
pantry_payroll/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
pantry_payroll/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
pantry_payroll/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
pantry_payroll/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
pantry_payroll/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
pantry_payroll/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
pantry_payroll/static/description/assets/icons/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
pantry_payroll/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
pantry_payroll/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
pantry_payroll/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
pantry_payroll/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
pantry_payroll/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
pantry_payroll/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
pantry_payroll/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
pantry_payroll/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
pantry_payroll/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
pantry_payroll/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
pantry_payroll/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
pantry_payroll/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
pantry_payroll/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
pantry_payroll/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
pantry_payroll/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
pantry_payroll/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
pantry_payroll/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

BIN
pantry_payroll/static/description/assets/misc/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
pantry_payroll/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
pantry_payroll/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
pantry_payroll/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
pantry_payroll/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
pantry_payroll/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
pantry_payroll/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
pantry_payroll/static/description/assets/modules/employee_check_list.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
pantry_payroll/static/description/assets/modules/employee_documents_expiry.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
pantry_payroll/static/description/assets/modules/employee_orientation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
pantry_payroll/static/description/assets/modules/employee_stages.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
pantry_payroll/static/description/assets/modules/employee_vehicle_request.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
pantry_payroll/static/description/assets/modules/hr_contract_types.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
pantry_payroll/static/description/assets/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
pantry_payroll/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
pantry_payroll/static/description/assets/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
pantry_payroll/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
pantry_payroll/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
pantry_payroll/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
pantry_payroll/static/description/assets/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
pantry_payroll/static/description/assets/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
pantry_payroll/static/description/assets/screenshots/hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

683
pantry_payroll/static/description/index.html

@ -0,0 +1,683 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Payroll Management In Pantry</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
Manage The Payroll By Deducting The Pantry Order</p>
<!-- END OF APP HERO -->
<img src="./assets/screenshots/hero.gif" class="img-responsive"
width="100%" height="auto"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
This app will allow us to manage payroll of pantry. While creating
employee payslip, salary rule will be added to that employee. The amount
of product will deduct from salary.
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Buy Products From Pantry.</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Pantry Order Automatically Created.</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Pantry Admin User Group.</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Automatically Deduct The Pantry Order Amount From Payslip.</span>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Only the user with the 'Pantry Admin' user group will
be able to see all the pantry orders and be able to delete it.
</p>
<img src="assets/screenshots/1.png" class="img-thumbnail">
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
You can go to Employees-->Pantry-->Products to see the pantry
products
</p>
<img src="assets/screenshots/2.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
When creating a new Pantry Product, you have to enable 'Pantry
Product' option
</p>
<img src="assets/screenshots/3.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
You can increment or decrement the quantity and 'BUY' the
product
</p>
<img src="assets/screenshots/4.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
It will take you to the pantry order. You can confirm the order.
You can also go to the orders through
Employees-->Pantry-->Pantry Order.
</p>
<img src="assets/screenshots/5.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
You can go and create an employee payslip. Choose the employee,
period and the contract. You need to ensure that,a salary
structure is selected inside the contract. Then you can click on
the 'COMPUTE SHEET' and salary will be computed
</p>
<img src="assets/screenshots/6.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
All the computed payslips can be seen in the smart button and
also in the Salary Computation tab
</p>
<img src="assets/screenshots/7.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
<div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
All the computed payslips can be seen in the smart button and
also in the Salary Computation tab
</p>
<img src="assets/screenshots/8.png"
class="img-responsive img-thumbnail border" width="100%"
height="auto"/>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related
Products
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/employee_documents_expiry/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/employee_documents_expiry.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/15.0/hr_contract_types/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/hr_contract_types.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/15.0/employee_orientation/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/employee_orientation.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/employee_check_list/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/employee_check_list.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/15.0/employee_stages/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/employee_stages.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/15.0/employee_vehicle_request/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/employee_vehicle_request.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="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="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png"
class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</div>
<!-- SUPPORT -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48"
width="48"
style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need
help?
Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52"
width="52"
style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on
WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068
27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
<!-- END OF SUPPORT -->
</div>

82
pantry_payroll/views/pantry_order_views.xml

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Pantry order action -->
<record id="action_pantry_order" model="ir.actions.act_window">
<field name="name">Pantry Order</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">pantry.order</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new pantry order
</p>
</field>
</record>
<!-- Pantry order menu -->
<menuitem id="pantry_order_menu" name="Pantry Order" action="pantry_payroll.action_pantry_order" parent="hr_pantry_menu"/>
<!-- Pantry order tree view -->
<record id="pantry_order_view_tree" model="ir.ui.view">
<field name="name">pantry.order.view.tree</field>
<field name="model">pantry.order</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="partner_id"/>
<field name="date_order"/>
<field name="amount_total"/>
<field name="state" widget="badge"
decoration-info="state == 'draft'"
decoration-success="state == 'confirmed'"/>
</tree>
</field>
</record>
<!-- Pantry order form view -->
<record id="pantry_order_view_form" model="ir.ui.view">
<field name="name">pantry.order.view.form</field>
<field name="model">pantry.order</field>
<field name="arch" type="xml">
<form>
<header>
<field name="state" widget="statusbar"/>
<button string="Confirm" class="btn btn-primary" type="object" name="action_confirm_pantry_order" attrs="{'invisible': [('state', '==', 'confirmed')]}"/>
</header>
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="partner_id"/>
</group>
<group>
<field name="date_order"/>
</group>
</group>
<notebook>
<page string="Order Lines">
<field name="order_line_ids" attrs="{'readonly': [('state', '=', 'confirmed')]}">
<tree editable="bottom">
<field name="product_id"/>
<field name="quantity"/>
<field name="unit_price"/>
<field name="subtotal"/>
</tree>
</field>
<h2 class="oe_subtotal_footer oe_right">
<group>
<field name="amount_total"/>
</group>
</h2>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
</odoo>

116
pantry_payroll/views/product_product_views.xml

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Pantry products action -->
<record id="action_pantry_product" model="ir.actions.act_window">
<field name="name">Pantry Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_mode">kanban</field>
<field name="domain">[('pantry_product','=',True)]</field>
<field name="context">{'default_pantry_product': True}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new pantry product
</p>
</field>
</record>
<!-- Pantry products menu -->
<menuitem id="hr_pantry_menu" name="Pantry" parent="hr.menu_hr_root"/>
<menuitem id="product_menu" name="Products" action="action_pantry_product"
parent="hr_pantry_menu"/>
<!-- Pantry products kanban view -->
<record id="pantry_product_view_kanban" model="ir.ui.view">
<field name="name">product.product.view.kanban.pantry.payroll</field>
<field name="model">product.product</field>
<field name="arch" type="xml">
<kanban create="0" sample="1">
<field name="id"/>
<field name="lst_price"/>
<field name="activity_state"/>
<field name="color"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_kanban_image">
<img t-att-src="kanban_image('product.product', 'image_128', record.id.raw_value)"
alt="Product" class="o_image_64_contain"/>
</div>
<div class="oe_kanban_details">
<field name="priority" widget="priority"
readonly="1"/>
<strong class="o_kanban_record_title">
<field name="name"/>
<small t-if="record.default_code.value">[
<field name="default_code"/>]
</small>
</strong>
<div class="o_kanban_tags_section">
<field name="product_template_variant_value_ids"
groups="product.group_product_variant"
widget="many2many_tags"
options="{'color_field': 'color'}"/>
</div>
<ul>
<li>
<strong>Price:
<field name="lst_price"/>
</strong>
</li>
</ul>
<div name="tags"/>
<div class="oe_kanban_footer oe_kanban_bottom_left">
<div class="o_kanban_buttons d-flex justify-content-between">
<div>
<button name="action_quantity_decrement"
id="quantity_decrement"
type="object"
class="btn btn-primary">
-
</button>
<field name="quantity"
string="Quantity"/>
<button name="action_quantity_increment"
id="quantity_increment"
type="object"
class="btn btn-primary">
+
</button>
</div>
<div>
<button class="btn btn-primary"
name="action_buy_pantry"
type="object">Buy Now
</button>
</div>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="pantry_product_kanban_action_view"
model="ir.actions.act_window.view">
<field name="sequence" eval="70"/>
<field name="view_mode">kanban</field>
<field name="view_id" ref="pantry_payroll.pantry_product_view_kanban"/>
<field name="act_window_id" ref="action_pantry_product"/>
</record>
<!-- Products inherit form view -->
<record id="product_normal_form_view" model="ir.ui.view">
<field name="name">product.product.view.form.inherit.pantry.payroll
</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="inside">
<span class="d-inline-block">
<field name="pantry_product"/>
<label for="pantry_product"/>
</span>
</xpath>
</field>
</record>
</odoo>

17
pantry_payroll/views/product_template_views.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Products inherit form view -->
<record id="product_template_only_form_view" model="ir.ui.view" >
<field name="name">product.template.view.form.inherit.pantry.payroll</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="inside">
<span class="d-inline-block">
<field name="pantry_product"/>
<label for="pantry_product"/>
</span>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save