| @ -0,0 +1,44 @@ | |||||
|  | .. 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 | ||||
|  | 
 | ||||
|  | Employee Documents | ||||
|  | ================== | ||||
|  | * Supporting Addon for HR, Manages Employee Related Documents | ||||
|  | 
 | ||||
|  | Configuration | ||||
|  | ============= | ||||
|  | Nothing to configure. | ||||
|  | 
 | ||||
|  | Company | ||||
|  | ------- | ||||
|  | * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | License | ||||
|  | ------- | ||||
|  | Affero General Public License, v3.0 (AGPL v3). | ||||
|  | (https://www.gnu.org/licenses/agpl-3.0-standalone.html) | ||||
|  | 
 | ||||
|  | Credits | ||||
|  | ------- | ||||
|  | * Developers: (V17) Farhana Jahan PT, 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 support and more information, please visit `Our Website <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | Further information | ||||
|  | =================== | ||||
|  | HTML Description: `<static/description/index.html>`__ | ||||
| @ -0,0 +1,22 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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,48 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 Documents', | ||||
|  |     'version': '17.0.1.0.0', | ||||
|  |     'category': 'Human Resources', | ||||
|  |     'summary': """Manages Employee Documents With Expiry Notifications.""", | ||||
|  |     'description': 'Manages Employee Related Documents' | ||||
|  |                    ' with Expiry Notifications.', | ||||
|  |     'author': 'Cybrosys Techno Solutions', | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'maintainer': 'Cybrosys Techno Solutions', | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'depends': ['hr'], | ||||
|  |     'data': [ | ||||
|  |         'security/ir.model.access.csv', | ||||
|  |         'data/employee_checklist_data.xml', | ||||
|  |         'data/ir_cron_data.xml', | ||||
|  |         'views/employee_checklist_views.xml', | ||||
|  |         'views/hr_employee_document_views.xml', | ||||
|  |         'views/hr_employee_views.xml', | ||||
|  |     ], | ||||
|  |     'demo': ['data/data.xml'], | ||||
|  |     'images': ['static/description/banner.jpg'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'installable': True, | ||||
|  |     'auto_install': False, | ||||
|  |     'application': False, | ||||
|  | } | ||||
| @ -0,0 +1,31 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data noupdate="1"> | ||||
|  |         <!--Data file for employee_checklist model--> | ||||
|  |         <record id="entry_education_certificate_document" | ||||
|  |                 model="employee.checklist"> | ||||
|  |             <field name="name">Education Certificate</field> | ||||
|  |             <field name="document_type">entry</field> | ||||
|  |         </record> | ||||
|  |         <record id="entry_salary_certificate_document" | ||||
|  |                 model="employee.checklist"> | ||||
|  |             <field name="name">Salary Certificate</field> | ||||
|  |             <field name="document_type">entry</field> | ||||
|  |         </record> | ||||
|  |         <record id="entry_experience_certificate_document" | ||||
|  |                 model="employee.checklist"> | ||||
|  |             <field name="name">Experience Certificate</field> | ||||
|  |             <field name="document_type">entry</field> | ||||
|  |         </record> | ||||
|  |         <record id="exit_experience_certificate_document" | ||||
|  |                 model="employee.checklist"> | ||||
|  |             <field name="name">Experience Certificate</field> | ||||
|  |             <field name="document_type">exit</field> | ||||
|  |         </record> | ||||
|  |         <record id="exit_salary_certificate_document" | ||||
|  |                 model="employee.checklist"> | ||||
|  |             <field name="name">Salary Certificate</field> | ||||
|  |             <field name="document_type">exit</field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,15 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data noupdate="1"> | ||||
|  |         <!--Set up a cron job to send reminders for document expiry dates.--> | ||||
|  |         <record id="employee_data_reminder" model="ir.cron"> | ||||
|  |             <field name="name">HR Employee Data Expiration</field> | ||||
|  |             <field name="model_id" ref="model_hr_employee_document"/> | ||||
|  |             <field name="state">code</field> | ||||
|  |             <field name="code">model.mail_reminder()</field> | ||||
|  |             <field name="interval_number">1</field> | ||||
|  |             <field name="interval_type">days</field> | ||||
|  |             <field name="numbercall">-1</field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,7 @@ | |||||
|  | ## Module <employee_documents_expiry> | ||||
|  | 
 | ||||
|  | #### 19.12.2023 | ||||
|  | #### Version 17.0.1.0.0 | ||||
|  | #### ADD | ||||
|  | 
 | ||||
|  | - Initial commit for Employee Documents | ||||
| @ -0,0 +1,25 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 employee_checklist | ||||
|  | from . import hr_employee | ||||
|  | from . import hr_employee_document | ||||
|  | from . import ir_attachment | ||||
| @ -0,0 +1,52 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 odoo import fields, models | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class EmployeeChecklist(models.Model): | ||||
|  |     """Create an 'employee_checklist' model to incorporate | ||||
|  |     details about document types""" | ||||
|  |     _name = 'employee.checklist' | ||||
|  |     _inherit = 'mail.thread' | ||||
|  |     _description = "Employee Checklist" | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Document Name', copy=False, required=1, | ||||
|  |                        help="Enter Document Name") | ||||
|  |     document_type = fields.Selection([('entry', 'Entry Process'), | ||||
|  |                                       ('exit', 'Exit Process'), | ||||
|  |                                       ('other', 'Other')], | ||||
|  |                                      string='Checklist Type', required=1, | ||||
|  |                                      help="Select checklist type for document") | ||||
|  | 
 | ||||
|  |     def name_get(self): | ||||
|  |         """Function to obtain the names '_en,' '_ex,' or '_ot' | ||||
|  |         for entry, exit, and other.""" | ||||
|  |         result = [] | ||||
|  |         for each in self: | ||||
|  |             if each.document_type == 'entry': | ||||
|  |                 name = each.name + '_en' | ||||
|  |             elif each.document_type == 'exit': | ||||
|  |                 name = each.name + '_ex' | ||||
|  |             elif each.document_type == 'other': | ||||
|  |                 name = each.name + '_ot' | ||||
|  |             result.append((each.id, name)) | ||||
|  |         return result | ||||
| @ -0,0 +1,55 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 odoo import fields, models, _ | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class HrEmployee(models.Model): | ||||
|  |     """Inherit the 'hr_employee' module to add 'Documents' super button.""" | ||||
|  |     _inherit = 'hr.employee' | ||||
|  | 
 | ||||
|  |     document_count = fields.Integer(compute='_compute_document_count', | ||||
|  |                                     string='# Documents', | ||||
|  |                                     help="Get total count of Document for" | ||||
|  |                                          " an Employee") | ||||
|  | 
 | ||||
|  |     def _compute_document_count(self): | ||||
|  |         """Function to obtain the total count of documents.""" | ||||
|  |         for rec in self: | ||||
|  |             rec.document_count = self.env['hr.employee.document'].search_count( | ||||
|  |                 [('employee_id', '=', rec.id)]) | ||||
|  | 
 | ||||
|  |     def document_view(self): | ||||
|  |         """Function to open the 'hr_employee_document' model.""" | ||||
|  |         self.ensure_one() | ||||
|  |         return { | ||||
|  |             'name': _('Documents'), | ||||
|  |             'domain': [('employee_id', '=', self.id)], | ||||
|  |             'res_model': 'hr.employee.document', | ||||
|  |             'type': 'ir.actions.act_window', | ||||
|  |             'view_mode': 'tree,form', | ||||
|  |             'view_type': 'form', | ||||
|  |             'help': _('''<p class="oe_view_nocontent_create"> | ||||
|  |                            Click to Create for New Documents | ||||
|  |                         </p>'''), | ||||
|  |             'limit': 80, | ||||
|  |             'context': {'default_employee_id': self.id} | ||||
|  |         } | ||||
| @ -0,0 +1,87 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 datetime import datetime, date, timedelta | ||||
|  | 
 | ||||
|  | from odoo import api, fields, models, _ | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class HrEmployeeDocument(models.Model): | ||||
|  |     """Create a new module for retrieving document files, allowing users | ||||
|  |      to input details about the documents.""" | ||||
|  |     _name = 'hr.employee.document' | ||||
|  |     _description = 'HR Employee Documents' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Document Number', required=True, copy=False, | ||||
|  |                        help="Enter Document Number") | ||||
|  |     document_id = fields.Many2one('employee.checklist', | ||||
|  |                                   string='Document', | ||||
|  |                                   required=True, | ||||
|  |                                   help="Choose Employee Checklist for" | ||||
|  |                                        " Employee Document") | ||||
|  |     description = fields.Text(string='Description', copy=False, | ||||
|  |                               help="Description for Employee Document") | ||||
|  |     expiry_date = fields.Date(string='Expiry Date', copy=False, | ||||
|  |                               help="Choose Expiry Date for Employee Document") | ||||
|  |     employee_id = fields.Many2one('hr.employee', copy=False, string="Employee", | ||||
|  |                                   help="Choose Employee for Employee Document") | ||||
|  |     doc_attachment_ids = fields.Many2many('ir.attachment', | ||||
|  |                                           'doc_attach_ids', | ||||
|  |                                           'doc_id', 'attach_id3', | ||||
|  |                                           string="Attachment", | ||||
|  |                                           help='You can attach the copy' | ||||
|  |                                                'of your document', | ||||
|  |                                           copy=False) | ||||
|  |     issue_date = fields.Date(string='Issue Date', | ||||
|  |                              default=fields.Date.context_today, copy=False, | ||||
|  |                              help="Choose Issue Date for Employee Document") | ||||
|  | 
 | ||||
|  |     def mail_reminder(self): | ||||
|  |         """Function for scheduling emails to send reminders | ||||
|  |         about document expiry dates.""" | ||||
|  |         for doc in self.search([]): | ||||
|  |             if doc.expiry_date: | ||||
|  |                 if (datetime.now() + timedelta(days=1)).date() >= ( | ||||
|  |                         doc.expiry_date - timedelta(days=7)): | ||||
|  |                     mail_content = ("  Hello  " + str( | ||||
|  |                         doc.employee_id.name) + ",<br>Your Document " + str( | ||||
|  |                         doc.name) + "is going to expire on " + \ | ||||
|  |                                     str(doc.expiry_date) + ". Please renew it " | ||||
|  |                                                            "before expiry date") | ||||
|  |                     main_content = { | ||||
|  |                         'subject': _('Document-%s Expired On %s') % ( | ||||
|  |                             str(doc.name), str(doc.expiry_date)), | ||||
|  |                         'author_id': self.env.user.partner_id.id, | ||||
|  |                         'body_html': mail_content, | ||||
|  |                         'email_to': doc.employee_id.work_email, | ||||
|  |                     } | ||||
|  |                     self.env['mail.mail'].create(main_content).send() | ||||
|  | 
 | ||||
|  |     @api.onchange('expiry_date') | ||||
|  |     def check_expr_date(self): | ||||
|  |         """Function to obtain a validation error for expired documents.""" | ||||
|  |         if self.expiry_date and self.expiry_date < date.today(): | ||||
|  |             return { | ||||
|  |                 'warning': { | ||||
|  |                     'title': _('Document Expired.'), | ||||
|  |                     'message': _("Your Document Is Already Expired.") | ||||
|  |                 } | ||||
|  |             } | ||||
| @ -0,0 +1,35 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions (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 odoo import fields, models | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class IrAttachment(models.Model): | ||||
|  |     """Inherit the 'ir_attachment' model to retrieve attached documents.""" | ||||
|  |     _inherit = 'ir.attachment' | ||||
|  | 
 | ||||
|  |     doc_attach_ids = fields.Many2many('hr.employee.document', | ||||
|  |                                       'doc_attachment_ids', | ||||
|  |                                       'attach_id3', | ||||
|  |                                       'doc_id', | ||||
|  |                                       string="Attachment", invisible=1, | ||||
|  |                                       help="Choose Employee Document for" | ||||
|  |                                            " Attachment") | ||||
| 
 | 
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 310 B | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 576 B | 
| After Width: | Height: | Size: 733 B | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 673 B | 
| After Width: | Height: | Size: 11 KiB | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 653 B | 
| After Width: | Height: | Size: 905 B | 
| After Width: | Height: | Size: 839 B | 
| After Width: | Height: | Size: 427 B | 
| After Width: | Height: | Size: 627 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 988 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 80 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 565 B | 
| After Width: | Height: | Size: 26 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 4.0 KiB | 
| After Width: | Height: | Size: 38 KiB | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 46 KiB | 
| After Width: | Height: | Size: 85 KiB | 
| After Width: | Height: | Size: 49 KiB | 
| After Width: | Height: | Size: 87 KiB | 
| After Width: | Height: | Size: 76 KiB | 
| After Width: | Height: | Size: 46 KiB | 
| After Width: | Height: | Size: 183 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 58 KiB | 
| After Width: | Height: | Size: 105 KiB | 
| After Width: | Height: | Size: 82 KiB | 
| After Width: | Height: | Size: 14 KiB | 
| @ -0,0 +1,763 @@ | |||||
|  | <!DOCTYPE html> | ||||
|  | <html lang="en"> | ||||
|  | 
 | ||||
|  | <head> | ||||
|  |     <meta charset="UTF-8"> | ||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|  |     <title>Odoo App 3 Index</title> | ||||
|  |     <!-- Bootstrap CSS --> | ||||
|  |     <link rel="stylesheet" | ||||
|  |           href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" | ||||
|  |           integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" | ||||
|  |           crossorigin="anonymous"> | ||||
|  |     <link rel="stylesheet" | ||||
|  |           href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css"> | ||||
|  |     <link rel="preconnect" href="https://fonts.googleapis.com"> | ||||
|  |     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | ||||
|  |     <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" | ||||
|  |           rel="stylesheet"> | ||||
|  | </head> | ||||
|  | <body> | ||||
|  | <section> | ||||
|  |     <div class="container" | ||||
|  |          style="font-family: 'Inter', sans-serif !important;background-color: #fff !important;"> | ||||
|  |         <div class="row"> | ||||
|  |             <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between flex-wrap align-items-sm-center" | ||||
|  |                  style="border-bottom:1px solid rgba(0, 0, 0, 0.22)"> | ||||
|  |                 <div class="my-3"> | ||||
|  |                     <img src="assets/misc/Cybrosys R.png" | ||||
|  |                          style="width:auto !important; height:40px !important"> | ||||
|  |                 </div> | ||||
|  |                 <div class="my-3 d-flex align-items-center"> | ||||
|  |                     <div class="text-center" | ||||
|  |                          style="background-color:#017E84 !important;font-size: 0.8rem !important; color:#fff !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width: 120px !important;"> | ||||
|  |                         Community | ||||
|  |                     </div> | ||||
|  |                     <div class="text-center" | ||||
|  |                          style="background-color:#875A7B !important; color:#fff !important;font-size: 0.8rem !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important;min-width: 120px !important;"> | ||||
|  |                         Enterprise | ||||
|  |                     </div> | ||||
|  |                     <div class="text-center" | ||||
|  |                          style="background-color:#7C7BAD !important; color:#fff !important;font-size: 0.8rem !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width: 120px !important;"> | ||||
|  |                         Odoo.sh | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="row"> | ||||
|  |             <div class="col-sm-12 col-md-12 col-lg-12 text-center d-flex align-items-center flex-column" | ||||
|  |                  style="margin: 80px 0px !important;"> | ||||
|  |                 <h1 style="font-size: 2.8rem;font-weight: 700; color: | ||||
|  |                     #1A202C;"> | ||||
|  |                     Employee Documents</h1> | ||||
|  |                 <p class="my-3 mb-4" | ||||
|  |                    style="max-width: 80%; font-weight: 400 !important; line-height: 32px; color: #718096;"> | ||||
|  |                     Manages Employee Related Documents. | ||||
|  |                 </p> | ||||
|  |                 <div style="width: 80%; margin-top: 3rem;"> | ||||
|  |                     <img src="assets/screenshots/hero.gif" | ||||
|  |                          class="img-responsive" width="100%" height="auto"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container mt-5 mb-5"> | ||||
|  |             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mt-4"> | ||||
|  |                 <p class="m-0" | ||||
|  |                    style="font-weight: 600; font-size: 24px; color:#714b67 !important"> | ||||
|  |                     Key Highlights | ||||
|  |                 </p> | ||||
|  |             </div> | ||||
|  |             <div class="row py-4"> | ||||
|  |                 <div class="col-md-6 col-sm-12 p-3"> | ||||
|  |                     <div class="d-flex   h-100" style="padding: 30px;border-radius: 12px; | ||||
|  |                                     background: #FFF; | ||||
|  |                                     box-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.25); "> | ||||
|  |                         <div style="width: 36px; height: 36px; border-radius: 50%; background: #714B67; | ||||
|  |                                     display: flex; justify-content: center; align-items: center; | ||||
|  |                                     margin-right: 10px; flex-shrink: 0;"> | ||||
|  |                             <i class="fa-solid fa-star  " | ||||
|  |                                style="color: #fff;font-size:14px;"></i> | ||||
|  |                         </div> | ||||
|  |                         <div> | ||||
|  |                             <p style="color: #1A202C;font-weight: 600; | ||||
|  |                                       font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                                 Manage Employee Documents</p> | ||||
|  |                             <p class="m-0" style="color:#718096">Easily manage | ||||
|  |                                 documents of employees. | ||||
|  |                             </p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-6 col-sm-12 p-3"> | ||||
|  |                     <div class="d-flex   h-100" style="padding: 30px;border-radius: 12px; | ||||
|  |                                     background: #FFF; | ||||
|  |                                     box-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.25); "> | ||||
|  |                         <div style="width: 36px; height: 36px; border-radius: 50%; background: #714B67; | ||||
|  |                                     display: flex; justify-content: center; align-items: center; | ||||
|  |                                     margin-right: 10px; flex-shrink: 0;"> | ||||
|  |                             <i class="fa-solid fa-star  " | ||||
|  |                                style="color: #fff;font-size:14px;"></i> | ||||
|  |                         </div> | ||||
|  |                         <div> | ||||
|  |                             <p style="color: #1A202C;font-weight: 600; | ||||
|  |                                       font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                                 Documents Types</p> | ||||
|  |                             <p class="m-0" style="color:#718096">Different | ||||
|  |                                 document types. | ||||
|  |                             </p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-6 col-sm-12 p-3"> | ||||
|  |                     <div class="d-flex   h-100" style="padding: 30px;border-radius: 12px; | ||||
|  |                                     background: #FFF; | ||||
|  |                                     box-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.25); "> | ||||
|  |                         <div style="width: 36px; height: 36px; border-radius: 50%; background: #714B67; | ||||
|  |                                     display: flex; justify-content: center; align-items: center; | ||||
|  |                                     margin-right: 10px; flex-shrink: 0;"> | ||||
|  |                             <i class="fa-solid fa-star  " | ||||
|  |                                style="color: #fff;font-size:14px;"></i> | ||||
|  |                         </div> | ||||
|  |                         <div> | ||||
|  |                             <p style="color: #1A202C;font-weight: 600; | ||||
|  |                                       font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                                 Expiry Date</p> | ||||
|  |                             <p class="m-0" style="color:#718096">Expiry Date for | ||||
|  |                                 Documents. | ||||
|  |                             </p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-6 col-sm-12 p-3"> | ||||
|  |                     <div class="d-flex   h-100" style="padding: 30px;border-radius: 12px; | ||||
|  |                                     background: #FFF; | ||||
|  |                                     box-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.25); "> | ||||
|  |                         <div style="width: 36px; height: 36px; border-radius: 50%; background: #714B67; | ||||
|  |                                     display: flex; justify-content: center; align-items: center; | ||||
|  |                                     margin-right: 10px; flex-shrink: 0;"> | ||||
|  |                             <i class="fa-solid fa-star  " | ||||
|  |                                style="color: #fff;font-size:14px;"></i> | ||||
|  |                         </div> | ||||
|  |                         <div> | ||||
|  |                             <p style="color: #1A202C;font-weight: 600; | ||||
|  |                                       font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                                 Expiry Date Validation</p> | ||||
|  |                             <p class="m-0" style="color:#718096">Validation for | ||||
|  |                                 Expiry Date. | ||||
|  |                             </p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-6 col-sm-12 p-3"> | ||||
|  |                     <div class="d-flex   h-100" style="padding: 30px;border-radius: 12px; | ||||
|  |                                     background: #FFF; | ||||
|  |                                     box-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.25); "> | ||||
|  |                         <div style="width: 36px; height: 36px; border-radius: 50%; background: #714B67; | ||||
|  |                                     display: flex; justify-content: center; align-items: center; | ||||
|  |                                     margin-right: 10px; flex-shrink: 0;"> | ||||
|  |                             <i class="fa-solid fa-star  " | ||||
|  |                                style="color: #fff;font-size:14px;"></i> | ||||
|  |                         </div> | ||||
|  |                         <div> | ||||
|  |                             <p style="color: #1A202C;font-weight: 600; | ||||
|  |                                       font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                                 Mail Notifications</p> | ||||
|  |                             <p class="m-0" style="color:#718096">Mail | ||||
|  |                                 Notification Based on Expiry Date. | ||||
|  |                             </p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container rounded"> | ||||
|  |             <ul class="nav nav-tabs d-flex" | ||||
|  |                 style="width: fit-content;margin: 0 auto;gap: 1rem;"> | ||||
|  |                 <li class="col text-center py-2 text-nowrap " | ||||
|  |                     style="color: #fff; background-color: #714B67;border-radius: 6px 6px 0px 0px;"> | ||||
|  |                     <a | ||||
|  |                             class="active show" data-toggle="tab" href="#tab1" | ||||
|  |                             style="color: #fff;font-weight: 500; background-color: #714B67; text-decoration: none;"> | ||||
|  |                         <i class="fa-regular fa-image  pr-2" | ||||
|  |                            style="color: #fff;"></i> | ||||
|  |                         Screenshots</a></li> | ||||
|  |                 <li class="col text-center py-2 text-nowrap " | ||||
|  |                     style="color: #fff; background-color: #714B67;border-radius: 6px 6px 0px 0px;"> | ||||
|  |                     <a | ||||
|  |                             data-toggle="tab" href="#tab2" | ||||
|  |                             style="color: #fff;font-weight: 500;  text-decoration: none;"><i | ||||
|  |                             class="fa-solid fa-star  pr-2" | ||||
|  |                             style="color: #fff;"></i>Features</a></li> | ||||
|  |                 <li class="col text-center py-2 text-nowrap " | ||||
|  |                     style="color: #fff; background-color: #714B67;border-radius: 6px 6px 0px 0px;"> | ||||
|  |                     <a | ||||
|  |                             data-toggle="tab" href="#tab3" | ||||
|  |                             style="color: #fff;font-weight: 500; text-decoration: none; background-color: #714B67;"><i | ||||
|  |                             class="fa-solid fa-book-open  pr-2" | ||||
|  |                             style="color: #fff;"></i>Released Notes</a></li> | ||||
|  |             </ul> | ||||
|  |             <div class="tab-content" | ||||
|  |                  style="background-color: rgba(121, 113, 119, 0.04);"> | ||||
|  |                 <div id="tab1" class="tab-pane fade in active show"> | ||||
|  |                     <div class="col-lg-12 py-2" | ||||
|  |                          style="padding: 1rem 4rem !important;"> | ||||
|  |                         <div | ||||
|  |                                 style="border: 1px solid #d8d6d6; border-radius: 4px; background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                             <div class="row justify-content-center p-3 w-100 m-0"> | ||||
|  |                                 <img src="assets/screenshots/1.png" | ||||
|  |                                      class="img-responsive" width="100%" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                             <div class="px-3"> | ||||
|  |                                 <h4 class="mt-2" | ||||
|  |                                     style=" font-weight:600 !important; color:#282F33 !important; font-size:1.3rem !important"> | ||||
|  |                                     Click on the Documents super button</h4> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-lg-12 py-2" | ||||
|  |                          style="padding: 1rem 4rem !important;"> | ||||
|  |                         <div | ||||
|  |                                 style="border: 1px solid #d8d6d6; border-radius: 4px;  background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                             <div class="row justify-content-center p-3 w-100 m-0"> | ||||
|  |                                 <img src="assets/screenshots/2.png" | ||||
|  |                                      class="img-responsive" width="100%" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                             <div class="px-3"> | ||||
|  |                                 <h4 class="mt-2" | ||||
|  |                                     style=" font-weight:600 !important; color:#282F33 !important; font-size:1.3rem !important"> | ||||
|  |                                     Fill the form to add a new document.</h4> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-lg-12 py-2" | ||||
|  |                          style="padding: 1rem 4rem !important;"> | ||||
|  |                         <div | ||||
|  |                                 style="border: 1px solid #d8d6d6; border-radius: 4px;  background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                             <div class="row justify-content-center p-3 w-100 m-0"> | ||||
|  |                                 <img src="assets/screenshots/3.png" | ||||
|  |                                      class="img-responsive" width="100%" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                             <div class="px-3"> | ||||
|  |                                 <h4 class="mt-2" | ||||
|  |                                     style=" font-weight:600 !important; color:#282F33 !important; font-size:1.3rem !important"> | ||||
|  |                                     Notification mails for expired | ||||
|  |                                     documents.</h4> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div id="tab2" class="tab-pane fade"> | ||||
|  |                     <div class="col-mg-12" style="padding: 1rem 4rem;"> | ||||
|  |                         <ul style="list-style: none; padding: 1rem 0;font-weight: 500;"> | ||||
|  |                             <li class="py-3" | ||||
|  |                                 style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                                     <span style="margin-right: 12px;"><img | ||||
|  |                                             src="assets/misc/star (1) 2.svg" | ||||
|  |                                             alt="" | ||||
|  |                                             width="16px"></span>Manage Employee | ||||
|  |                                 Documents. | ||||
|  |                             </li> | ||||
|  |                             <li class="py-3" | ||||
|  |                                 style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                                     <span style="margin-right: 12px;"><img | ||||
|  |                                             src="assets/misc/star (1) 2.svg" | ||||
|  |                                             alt="" | ||||
|  |                                             width="16px"></span>Documents Types. | ||||
|  |                             </li> | ||||
|  |                             <li class="py-3" | ||||
|  |                                 style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                                     <span style="margin-right: 12px;"><img | ||||
|  |                                             src="assets/misc/star (1) 2.svg" | ||||
|  |                                             alt="" | ||||
|  |                                             width="16px"></span>Expiry Date. | ||||
|  |                                 <ul style="list-style: none;font-weight: 400; color:#718096"> | ||||
|  |                                     <li> | ||||
|  |                                     </li> | ||||
|  |                                 </ul> | ||||
|  |                             </li> | ||||
|  |                             <li class="py-3" | ||||
|  |                                 style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                                     <span style="margin-right: 12px;"><img | ||||
|  |                                             src="assets/misc/star (1) 2.svg" | ||||
|  |                                             alt="" | ||||
|  |                                             width="16px"></span>Expiry Date | ||||
|  |                                 Validation. | ||||
|  |                                 <ul style="list-style: none;font-weight: 400; color:#718096"> | ||||
|  |                                     <li> | ||||
|  |                                     </li> | ||||
|  |                                 </ul> | ||||
|  |                             </li> | ||||
|  |                             <li class="py-3" | ||||
|  |                                 style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                                     <span style="margin-right: 12px;"><img | ||||
|  |                                             src="assets/misc/star (1) 2.svg" | ||||
|  |                                             alt="" | ||||
|  |                                             width="16px"></span>Mail | ||||
|  |                                 Notifications. | ||||
|  |                                 <ul style="list-style: none;font-weight: 400; color:#718096"> | ||||
|  |                                     <li> | ||||
|  |                                     </li> | ||||
|  |                                 </ul> | ||||
|  |                             </li> | ||||
|  | 
 | ||||
|  |                         </ul> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div id="tab3" class="tab-pane fade"> | ||||
|  |                     <div class="col-mg-12 active" style="padding: 1rem 4rem;"> | ||||
|  |                         <div class="py-3" | ||||
|  |                              style="font-weight: 500;background-color: #fff; border-radius: 4px; padding: 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);"> | ||||
|  |                             <div class="d-flex mb-3" | ||||
|  |                                  style="font-size: 0.8rem; font-weight: 500;"><span>Version | ||||
|  |                                         17.0.1.0.0</span><span | ||||
|  |                                     class="px-2">|</span><span | ||||
|  |                                     style="color: #714B67;font-weight: 600;">Released on:24th Nov 2023</span> | ||||
|  |                             </div> | ||||
|  |                             <p class="m-0" | ||||
|  |                                style=" color:#718096!important; font-size:1rem !important;line-height: 28px;"> | ||||
|  | 
 | ||||
|  |                                 Initial Commit for Employee Documents.</p> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container mt-5"> | ||||
|  |             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mt-5"> | ||||
|  |                 <p class="m-0" | ||||
|  |                    style="font-weight: 600; font-size: 24px; color:#000 !important"> | ||||
|  |                     Related Products</p> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div id="myCarousel" class="carousel slide py-3" data-ride="carousel"> | ||||
|  |             <div class="carousel-inner"> | ||||
|  |                 <div class="carousel-item active"> | ||||
|  |                     <div class="row p-4"> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/invoice_format_editor/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px; "> | ||||
|  |                                             <img src="assets/modules/1.png" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  | 
 | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Invoice Format Editor</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/whatsapp_redirect/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px; "> | ||||
|  |                                             <img src="assets/modules/2.jpg" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Send Whatsapp Message</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/inventory_barcode_scanning/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px; "> | ||||
|  |                                             <img src="assets/modules/3.png" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Barcode scanning in Inventory</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="carousel-item"> | ||||
|  |                     <div class="row p-4"> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/dynamic_accounts_report/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px; "> | ||||
|  |                                             <img src="assets/modules/4.png" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Dynamic Accounts Reports</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/hr_payroll_community/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px;"> | ||||
|  |                                             <img src="assets/modules/5.jpg" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Odoo 17 HR Payroll</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <div class="col"> | ||||
|  |                             <div class="p-3"> | ||||
|  |                                 <a href="https://apps.odoo.com/apps/modules/17.0/export_stockinfo_xls/" | ||||
|  |                                    style="color: #000; text-decoration: none;"> | ||||
|  |                                     <div style="border:1px solid #CBCBCB !important;border-radius: 4px;"> | ||||
|  |                                         <div style="width: 300px;"> | ||||
|  |                                             <img src="assets/modules/6.png" | ||||
|  |                                                  alt="" width="100%" | ||||
|  |                                                  height="auto"> | ||||
|  |                                         </div> | ||||
|  |                                         <p class="text-center pt-2 text-black font-weight-bold"> | ||||
|  |                                             Export Product Stock in Excel</p> | ||||
|  |                                     </div> | ||||
|  |                                 </a> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |             <a class="carousel-control-prev" href="#myCarousel" | ||||
|  |                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="#myCarousel" | ||||
|  |                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 class="container mt-5"> | ||||
|  |             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mt-4"> | ||||
|  |                 <p class="m-0" | ||||
|  |                    style="font-weight: 600; font-size: 24px; color:#000 !important"> | ||||
|  |                     Our Services</p> | ||||
|  | 
 | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container my-5"> | ||||
|  |             <div class="row py-3"> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#13EA36 ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/cogs.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Customization</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#DBC711; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/wrench.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Implementation</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative; border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#FF6B6B ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/lifebuoy.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Support</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative; border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#FFA801 ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/user.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Hire | ||||
|  |                             Odoo Developer</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative; border-radius: 4px;"> | ||||
|  | 
 | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#54A0FF; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/puzzle.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Integration</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#6D7680 ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/update.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Migration</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#786FA6 ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/consultation.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Consultancy</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px;position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#F8A5C2 ; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/training.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Implementation</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-4 col-sm-6 px-4 py-4"> | ||||
|  |                     <div | ||||
|  |                             style="background-color: #fff; padding: 25px; text-align: center;  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px; position: relative;border-radius: 4px;"> | ||||
|  |                         <div style="position: absolute; top: 0%; left: 50%; transform: translate(-50%, -50%);"> | ||||
|  |                             <div style="background-color:#E6BE26; border-radius: 50%; padding: 15px;    width: 68px; | ||||
|  |                                     height: 68px; display: inline-block; box-shadow:0px 4px 4px rgba(0, 0, 0, 0.25);"> | ||||
|  |                                 <img src="assets/icons/license.png" | ||||
|  |                                      alt="service-icon" width="38px" | ||||
|  |                                      height="auto"> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                         <p style="margin-top: 20px; font-weight: bold;">Odoo | ||||
|  |                             Licensing Consultancy</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container mt-5"> | ||||
|  |             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mt-4"> | ||||
|  |                 <p class="m-0" | ||||
|  |                    style="font-weight: 600; font-size: 24px; color:#000 !important"> | ||||
|  |                     Our Industries</p> | ||||
|  | 
 | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container"> | ||||
|  |             <div class="row my-5 py-4"> | ||||
|  |                 <div class="col-md-3 col-sm-6 p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100 " | ||||
|  |                          style="border-right: 1px solid rgb(209, 209, 209); border-bottom: 1px solid  rgb(209, 209, 209); padding: 30px; box-shadow: 6px 0 10px rgba(228, 227, 227, 0.373);"> | ||||
|  |                         <img src="assets/icons/trading-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                            font-size: 1.2rem; margin-bottom: 2px;">Trading</p> | ||||
|  |                         <p>Easily procure and sell your products</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6  p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-right: 1px solid rgb(209, 209, 209);border-bottom: 1px solid  rgb(209, 209, 209); padding: 30px;"> | ||||
|  |                         <img src="assets/icons/pos-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;">POS</p> | ||||
|  |                         <p>Easy configuration and convivial experience</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6  p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-right: 1px solid  rgb(209, 209, 209);border-bottom: 1px solid   rgba(0, 0, 0, 0.2); padding: 30px; box-shadow: 0 5px 10px  rgba(228, 227, 227, 0.373)"> | ||||
|  |                         <img src="assets/icons/education-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                             Education</p> | ||||
|  |                         <p>A platform for educational management</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6  p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-bottom: 1px solid  rgb(209, 209, 209); padding: 30px; "> | ||||
|  |                         <img src="assets/icons/manufacturing-black.png" | ||||
|  |                              width="42px" height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                             Manufacturing</p> | ||||
|  |                         <p>Plan, track and schedule your operations</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6 p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-right: 1px solid  rgb(209, 209, 209); padding: 30px;"> | ||||
|  |                         <img src="assets/icons/ecom-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;">E-commerce & | ||||
|  |                             Website</p> | ||||
|  |                         <p>Mobile friendly, awe-inspiring product pages</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6   p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-right: 1px solid  rgb(209, 209, 209); padding: 30px;box-shadow: 0 -5px 10px  rgba(228, 227, 227, 0.373);"> | ||||
|  |                         <img src="assets/icons/service-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;">Service | ||||
|  |                             Management</p> | ||||
|  |                         <p>Keep track of services and invoice</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6    p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style="border-right: 1px solid  rgb(209, 209, 209); padding: 30px; "> | ||||
|  |                         <img src="assets/icons/restaurant-black.png" | ||||
|  |                              width="42px" height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;"> | ||||
|  |                             Restaurant</p> | ||||
|  |                         <p>Run your bar or restaurant methodically</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-3 col-sm-6   p-0"> | ||||
|  |                     <div class="d-flex flex-column h-100" | ||||
|  |                          style=" padding: 30px;box-shadow: -5px 0 10px  rgba(228, 227, 227, 0.373);"> | ||||
|  |                         <img src="assets/icons/hotel-black.png" width="42px" | ||||
|  |                              height="auto" alt=""> | ||||
|  |                         <p style="color: #714B67;font-weight: 600; margin-top: 10px; | ||||
|  |                             font-size: 1.2rem; margin-bottom: 2px;">Hotel | ||||
|  |                             Management</p> | ||||
|  |                         <p>An all-inclusive hotel management application</p> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container mt-5"> | ||||
|  |             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mt-5"> | ||||
|  |                 <p class="m-0" | ||||
|  |                    style="font-weight: 600; font-size: 24px; color:#000 !important"> | ||||
|  |                     Support</p> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="container my-5"> | ||||
|  |             <div class="row" style="background-color: #FFFAFE;"> | ||||
|  |                 <div class="col-md-6 pb-4  d-flex align-items-center justify-content-center" | ||||
|  |                      style="border-right: 1px solid #D9D9D9;"> | ||||
|  |                     <div style="padding: 30px;"> | ||||
|  |                         <div class="d-flex align-items-center"> | ||||
|  |                             <img src="assets/misc/support (1) 1.svg" alt="" | ||||
|  |                                  width="60px" style="margin-right: 12px;"> | ||||
|  |                             <div style="padding: 0px 8px;"> | ||||
|  |                                     <span | ||||
|  |                                             style="color: #714B67;font-size: 24px;font-weight: 600;padding-bottom: 1rem;">Need | ||||
|  |                                         Help?</span> | ||||
|  |                                 <p class="m-0" style="color:#718096;">Got | ||||
|  |                                     questions or need help? Get in touch.</p> | ||||
|  |                                 <div style="font-weight: 400;"><span><img | ||||
|  |                                         src="assets/misc/support-email.svg" | ||||
|  |                                         alt="" | ||||
|  |                                         width="18px" | ||||
|  |                                         style="filter: invert(1);margin-right: 0.8rem;"></span>odoo@cybrosys.com | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="col-md-6 pb-4 d-flex align-items-center justify-content-center"> | ||||
|  |                     <div style="padding: 30px;"> | ||||
|  |                         <div class="d-flex align-items-center"> | ||||
|  |                             <img src="assets/misc/whatsapp 1.svg" alt="" | ||||
|  |                                  width="60px" style="margin-right: 12px;"> | ||||
|  |                             <div> | ||||
|  |                                 <span style="color: #714B67;font-size: 24px;font-weight: 600;">WhatsApp</span> | ||||
|  |                                 <p class="m-0" style="color:#718096;">Say hi to | ||||
|  |                                     us on WhatsApp!</p> | ||||
|  |                                 <div style="font-weight: 400; font-size: 16px;"><span><img | ||||
|  |                                         src="assets/misc/phone.svg" | ||||
|  |                                         alt="" width="14px" | ||||
|  |                                         style="filter: invert(1); margin-right: 0.8rem;"></span>+91 | ||||
|  |                                     99456767686 | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | <!-- Optional JavaScript --> | ||||
|  | <!-- jQuery first, then Popper.js, then Bootstrap JS --> | ||||
|  | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> | ||||
|  | <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> | ||||
|  | </body> | ||||
|  | </html> | ||||
| @ -0,0 +1,46 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!--Form view of employee_checklist model--> | ||||
|  |     <record id='employee_checklist_view_form' model='ir.ui.view'> | ||||
|  |         <field name="name">employee.checklist.view.form</field> | ||||
|  |         <field name="model">employee.checklist</field> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <form string="Checklist"> | ||||
|  |                 <sheet> | ||||
|  |                     <group> | ||||
|  |                         <field name="name"/> | ||||
|  |                         <field name="document_type"/> | ||||
|  |                     </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> | ||||
|  |     <!--Tree view of employee_checklist model--> | ||||
|  |     <record id='employee_checklist_view_tree' model='ir.ui.view'> | ||||
|  |         <field name="name">employee.checklist.view.tree</field> | ||||
|  |         <field name="model">employee.checklist</field> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <tree> | ||||
|  |                 <field name="name"/> | ||||
|  |                 <field name="document_type"/> | ||||
|  |             </tree> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  |     <!--Menu action for employee_checklist model--> | ||||
|  |     <record id="employee_checklist_action" model="ir.actions.act_window"> | ||||
|  |         <field name="name">Employee Checklist</field> | ||||
|  |         <field name="res_model">employee.checklist</field> | ||||
|  |         <field name="view_mode">tree,form</field> | ||||
|  |     </record> | ||||
|  |     <!--Menu for the model employee_checklist--> | ||||
|  |     <menuitem | ||||
|  |             id="employee_checklist_menu" | ||||
|  |             action="employee_checklist_action" | ||||
|  |             parent="hr.menu_human_resources_configuration" | ||||
|  |             sequence="3" | ||||
|  |             groups="base.group_no_one"/> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,44 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!--Form view of hr_employee_document model--> | ||||
|  |     <record id='hr_employee_document_view_form' model='ir.ui.view'> | ||||
|  |         <field name="name">hr.employee.document.view.form</field> | ||||
|  |         <field name="model">hr.employee.document</field> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <form> | ||||
|  |                 <sheet> | ||||
|  |                     <group> | ||||
|  |                         <group> | ||||
|  |                             <field name="name"/> | ||||
|  |                             <field name="document_id"/> | ||||
|  |                             <field name="doc_attachment_ids" | ||||
|  |                                    widget="many2many_binary" class="oe_inline"/> | ||||
|  |                             <field name="employee_id" invisible="1"/> | ||||
|  |                         </group> | ||||
|  |                         <group> | ||||
|  |                             <field name="issue_date"/> | ||||
|  |                             <field name="expiry_date"/> | ||||
|  |                         </group> | ||||
|  |                     </group> | ||||
|  |                     <notebook> | ||||
|  |                         <page string="Description"> | ||||
|  |                             <field name="description"/> | ||||
|  |                         </page> | ||||
|  |                     </notebook> | ||||
|  |                 </sheet> | ||||
|  |             </form> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  |     <!--Tree view of hr_employee_document model--> | ||||
|  |     <record id='hr_employee_document_view_tree' model='ir.ui.view'> | ||||
|  |         <field name="name">hr.employee.document.view.tree</field> | ||||
|  |         <field name="model">hr.employee.document</field> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <tree string="docs"> | ||||
|  |                 <field name="name"/> | ||||
|  |                 <field name="issue_date"/> | ||||
|  |                 <field name="expiry_date"/> | ||||
|  |             </tree> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,20 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <!--Inherit Documents super button for hr_employee button--> | ||||
|  |     <record id="view_employee_form" model="ir.ui.view"> | ||||
|  |         <field name="name"> | ||||
|  |             hr.employee.view.form.inherit.employee.documents.expiry | ||||
|  |         </field> | ||||
|  |         <field name="model">hr.employee</field> | ||||
|  |         <field name="inherit_id" ref="hr.view_employee_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <div class="oe_button_box" position="inside"> | ||||
|  |                 <button class="oe_stat_button" name="document_view" | ||||
|  |                         type="object" icon="fa-list-ol"> | ||||
|  |                     <field string="Documents" name="document_count" | ||||
|  |                            widget="statinfo"/> | ||||
|  |                 </button> | ||||
|  |             </div> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,44 @@ | |||||
|  | .. 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 | ||||
|  | 
 | ||||
|  | Stock Picking From Invoice | ||||
|  | ========================== | ||||
|  | This Module Enables To Create Stocks Picking From Customer/Supplier Invoice | ||||
|  | 
 | ||||
|  | Configuration | ||||
|  | ============= | ||||
|  | * No additional configurations needed | ||||
|  | 
 | ||||
|  | Company | ||||
|  | ------- | ||||
|  | * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | License | ||||
|  | ------- | ||||
|  | AFFERO General Public License, Version 3 (AGPL v3). | ||||
|  | (https://www.gnu.org/licenses/agpl-3.0-standalone.html) | ||||
|  | 
 | ||||
|  | Credits | ||||
|  | ------- | ||||
|  |  Developer: (V17) Mohammed Dilshad Tk, 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 support and more information, please visit `Our Website <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | Further information | ||||
|  | =================== | ||||
|  | HTML Description: `<static/description/index.html>`__ | ||||
| @ -0,0 +1,22 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################ | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: MOHAMMED DILSHAD TK (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,40 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################ | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: MOHAMMED DILSHAD TK (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': "Stock Picking From Invoice", | ||||
|  |     'version': '17.0.1.0.0', | ||||
|  |     'category': 'Accounting', | ||||
|  |     'summary': """Stock Picking From Customer/Supplier Invoice""", | ||||
|  |     'description': """This Module Enables To Create Stocks Picking From  | ||||
|  |      Customer/Supplier Invoice""", | ||||
|  |     'author': "Cybrosys Techno Solutions", | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'maintainer ': 'Cybrosys Techno Solutions', | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'depends': ['account', 'stock', 'payment'], | ||||
|  |     'data': ['views/account_move_views.xml'], | ||||
|  |     'images': ['static/description/banner.png'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'installable': True, | ||||
|  |     'auto_install': False, | ||||
|  |     'application': False, | ||||
|  | } | ||||
| @ -0,0 +1,7 @@ | |||||
|  | ## Module <invoice_stock_move> | ||||
|  | 
 | ||||
|  | #### 19.12.2023 | ||||
|  | #### Version 17.0.1.0.0 | ||||
|  | #### ADD | ||||
|  | 
 | ||||
|  | Initial Commit for Stock Picking From Invoice | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################ | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: MOHAMMED DILSHAD TK (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 account_move | ||||
|  | from . import account_move_line | ||||
| @ -0,0 +1,125 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################ | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: MOHAMMED DILSHAD TK (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 odoo import fields, models, _ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountMove(models.Model): | ||||
|  |     """Inherits 'account move' to show stock picking in invoice""" | ||||
|  |     _inherit = 'account.move' | ||||
|  | 
 | ||||
|  |     def _get_stock_type_ids(self): | ||||
|  |         """Fetch the move types and return to 'picking_type_id' field""" | ||||
|  |         data = self.env['stock.picking.type'].search([]) | ||||
|  |         if self._context.get('default_move_type') == 'out_invoice': | ||||
|  |             for line in data: | ||||
|  |                 if line.code == 'outgoing': | ||||
|  |                     return line | ||||
|  |         if self._context.get('default_move_type') == 'in_invoice': | ||||
|  |             for line in data: | ||||
|  |                 if line.code == 'incoming': | ||||
|  |                     return line | ||||
|  | 
 | ||||
|  |     picking_count = fields.Integer(string="Count", copy=False, help="Count of " | ||||
|  |                                                                     "the " | ||||
|  |                                                                     "created " | ||||
|  |                                                                     "picking") | ||||
|  |     invoice_picking_id = fields.Many2one(comodel_name='stock.picking', | ||||
|  |                                          string="Picking Id", copy=False, | ||||
|  |                                          help="corresponding picking") | ||||
|  |     picking_type_id = fields.Many2one(comodel_name='stock.picking.type', | ||||
|  |                                       string='Picking Type', | ||||
|  |                                       default=_get_stock_type_ids, | ||||
|  |                                       help="This will determine picking " | ||||
|  |                                            "type of incoming shipment") | ||||
|  | 
 | ||||
|  |     def action_stock_move(self): | ||||
|  |         """Function to create transfer from invoice""" | ||||
|  |         if not self.picking_type_id: | ||||
|  |             raise UserError(_( | ||||
|  |                 " Please select a picking type")) | ||||
|  |         for order in self: | ||||
|  |             if not self.invoice_picking_id: | ||||
|  |                 pick = {} | ||||
|  |                 if self.picking_type_id.code == 'outgoing': | ||||
|  |                     pick = { | ||||
|  |                         'picking_type_id': self.picking_type_id.id, | ||||
|  |                         'partner_id': self.partner_id.id, | ||||
|  |                         'origin': self.name, | ||||
|  |                         'location_dest_id': self.partner_id. | ||||
|  |                         property_stock_customer.id, | ||||
|  |                         'location_id': self.picking_type_id. | ||||
|  |                         default_location_src_id.id, | ||||
|  |                         'move_type': 'direct' | ||||
|  |                     } | ||||
|  |                 if self.picking_type_id.code == 'incoming': | ||||
|  |                     pick = { | ||||
|  |                         'picking_type_id': self.picking_type_id.id, | ||||
|  |                         'partner_id': self.partner_id.id, | ||||
|  |                         'origin': self.name, | ||||
|  |                         'location_dest_id': self.picking_type_id. | ||||
|  |                         default_location_dest_id.id, | ||||
|  |                         'location_id': self.partner_id. | ||||
|  |                         property_stock_supplier.id, | ||||
|  |                         'move_type': 'direct' | ||||
|  |                     } | ||||
|  |                 picking = self.env['stock.picking'].create(pick) | ||||
|  |                 self.invoice_picking_id = picking.id | ||||
|  |                 self.picking_count = len(picking) | ||||
|  |                 order = order.invoice_line_ids.filtered(lambda item: | ||||
|  |                                                         item.product_id.type in | ||||
|  |                                                         ['product', 'consu']) | ||||
|  |                 (order._create_stock_moves(picking)._action_confirm(). | ||||
|  |                  _action_assign()) | ||||
|  | 
 | ||||
|  |     def action_view_picking(self): | ||||
|  |         """Function to view moves while clicking shipment smart button""" | ||||
|  |         action = self.env.ref('stock.action_picking_tree_ready') | ||||
|  |         result = action.read()[0] | ||||
|  |         result.pop('id', None) | ||||
|  |         result['context'] = {} | ||||
|  |         result['domain'] = [('id', '=', self.invoice_picking_id.id)] | ||||
|  |         pick_ids = sum([self.invoice_picking_id.id]) | ||||
|  |         if pick_ids: | ||||
|  |             res = self.env.ref('stock.view_picking_form', False) | ||||
|  |             result['views'] = [(res and res.id or False, 'form')] | ||||
|  |             result['res_id'] = pick_ids or False | ||||
|  |         return result | ||||
|  | 
 | ||||
|  |     def _reverse_moves(self, default_values_list=None, cancel=False): | ||||
|  |         """ Reverse a recordset of account.move. | ||||
|  |             If cancel parameter is true, the reconcilable or liquidity lines | ||||
|  |             of each original move will be reconciled with its reverse's. | ||||
|  |             :param default_values_list: A list of default values to consider per | ||||
|  |              move. ('type' & 'reversed_entry_id' are computed in the method). | ||||
|  |             :return: An account move recordset, reverse of the current self.""" | ||||
|  |         if self.picking_type_id.code == 'outgoing': | ||||
|  |             data = self.env['stock.picking.type'].search( | ||||
|  |                 [('company_id', '=', self.company_id.id), | ||||
|  |                  ('code', '=', 'incoming')], limit=1) | ||||
|  |             self.picking_type_id = data.id | ||||
|  |         elif self.picking_type_id.code == 'incoming': | ||||
|  |             data = self.env['stock.picking.type'].search( | ||||
|  |                 [('company_id', '=', self.company_id.id), | ||||
|  |                  ('code', '=', 'outgoing')], limit=1) | ||||
|  |             self.picking_type_id = data.id | ||||
|  |         return super(AccountMove, self)._reverse_moves() | ||||
| @ -0,0 +1,78 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################ | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: MOHAMMED DILSHAD TK (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 odoo import models | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountMoveLine(models.Model): | ||||
|  |     _inherit = 'account.move.line' | ||||
|  | 
 | ||||
|  |     def _create_stock_moves(self, picking): | ||||
|  |         """Function to create stock move""" | ||||
|  |         done = self.env['stock.move'].browse() | ||||
|  |         for line in self: | ||||
|  |             price_unit = line.price_unit | ||||
|  |             if picking.picking_type_id.code == 'outgoing': | ||||
|  |                 template = { | ||||
|  |                     'name': line.name or '', | ||||
|  |                     'product_id': line.product_id.id, | ||||
|  |                     'product_uom': line.product_uom_id.id, | ||||
|  |                     'location_id': picking.picking_type_id. | ||||
|  |                     default_location_src_id.id, | ||||
|  |                     'location_dest_id': line.move_id.partner_id. | ||||
|  |                     property_stock_customer.id, | ||||
|  |                     'picking_id': picking.id, | ||||
|  |                     'state': 'draft', | ||||
|  |                     'company_id': line.move_id.company_id.id, | ||||
|  |                     'price_unit': price_unit, | ||||
|  |                     'picking_type_id': picking.picking_type_id.id, | ||||
|  |                     'route_ids': 1 and [ | ||||
|  |                         (6, 0, [x.id for x in self.env['stock.rule'].search | ||||
|  |                         ([('id', 'in', (2, 3))])])] or [], | ||||
|  |                     'warehouse_id': picking.picking_type_id.warehouse_id.id, | ||||
|  |                 } | ||||
|  |             if picking.picking_type_id.code == 'incoming': | ||||
|  |                 template = { | ||||
|  |                     'name': line.name or '', | ||||
|  |                     'product_id': line.product_id.id, | ||||
|  |                     'product_uom': line.product_uom_id.id, | ||||
|  |                     'location_id': line.move_id.partner_id. | ||||
|  |                     property_stock_supplier.id, | ||||
|  |                     'location_dest_id': picking.picking_type_id. | ||||
|  |                     default_location_dest_id.id, | ||||
|  |                     'picking_id': picking.id, | ||||
|  |                     'state': 'draft', | ||||
|  |                     'company_id': line.move_id.company_id.id, | ||||
|  |                     'price_unit': price_unit, | ||||
|  |                     'picking_type_id': picking.picking_type_id.id, | ||||
|  |                     'route_ids': 1 and [ | ||||
|  |                         (6, 0, [x.id for x in self.env['stock.rule'].search( | ||||
|  |                             [('id', 'in', (2, 3))])])] or [], | ||||
|  |                     'warehouse_id': picking.picking_type_id.warehouse_id.id, | ||||
|  |                 } | ||||
|  |             diff_quantity = line.quantity | ||||
|  |             tmp = template.copy() | ||||
|  |             tmp.update({ | ||||
|  |                 'product_uom_qty': diff_quantity, | ||||
|  |             }) | ||||
|  |             template['product_uom_qty'] = diff_quantity | ||||
|  |             done += self.env['stock.move'].create(template) | ||||
|  |         return done | ||||
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 310 B | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 576 B | 
| After Width: | Height: | Size: 733 B | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 673 B | 
| After Width: | Height: | Size: 11 KiB | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 653 B | 
| After Width: | Height: | Size: 905 B | 
| After Width: | Height: | Size: 839 B | 
| After Width: | Height: | Size: 427 B | 
| After Width: | Height: | Size: 627 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 988 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 80 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 565 B | 
| After Width: | Height: | Size: 26 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 4.0 KiB | 
| After Width: | Height: | Size: 38 KiB | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 46 KiB | 
| After Width: | Height: | Size: 85 KiB | 
| After Width: | Height: | Size: 49 KiB |